Refactoring Tools – Proparse, Prorefactor, Prolint etc. Steven Lichtenberg Sr. Technologist Jenark Business Systems, Inc.

Slides:



Advertisements
Similar presentations
The Open Source Developer's Kit Scott Wheeler Nortoc Inc. January 14, 2003.
Advertisements

©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
Designing Reusable Frameworks for Test Automation
TPF/Eclipse: A New TPF Application Test Tool for the Eclipse and WebSphere ® Environments Presenter: Thiru Thirupuvanam TPF Users Group May 2003 New Orleans,
P5, M1, D1.
INTRODUCTION Chapter 1 1. Java CPSC 1100 University of Tennessee at Chattanooga 2  Difference between Visual Logic & Java  Lots  Visual Logic Flowcharts.
DEV-2: Getting Started with OpenEdge® Architect – Part I
Improving your OpenEdge® Development Productivity David Lund Sr. Training Program Manager, Progress.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Prolint: Find Your Bugs Before They Find You Judy Hoffman Green Jurjen Dijkstra BP Exchange PROGRESS.
Introducing OpenEdge BPM: Ken Wilner, VP of Technology, OpenEdge Integrating Business Process Management Capabilities Into Your OpenEdge Application.
By SAG Objectives Cross platform QA Automation for web applications Scheduling the automation Automatically build the test scripts Generate the.
Goals Give you a feeling of what Eclipse is.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
The Basic Tools Presented by: Robert E., & Jonathan Chase.
Design, Implementation and Maintenance
Eclipse as a Teaching Platform for Kenya Student: Thomas Timbul (MEng 4) Supervised by: Robert Chatley.
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Background History Note 1 Refer to Soltis: Appendix.
Program development & programming languages Chapter 13.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
Understanding Eclipse Development Environment Hen-I Yang July 7, 2006
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Chapter 1: A First Program Using C#. Programming Computer program – A set of instructions that tells a computer what to do – Also called software Software.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
ARCH-03: Implementing the OpenEdge™ Reference Architecture – Part 1 John Sadd Progress Fellow and OpenEdge Evangelist.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
JCreator Tonga Institute of Higher Education. Programming with the command line and notepad is difficult. DOS disadvantages  User Interface (UI) is not.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Refactoring1 Improving the structure of existing code.
IBM Software Group ® Context-Sensitive Help with the DITA Open Toolkit Jeff Antley IBM October 4, 2007.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
15/06/2006 The Future of Visual DCT EPICS Collaboration 2006 Argonne National Laboratory
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
© All rights reserved. U.S International Tech Support
Cross Language Clone Analysis Team 2 October 13, 2010.
Mik Kersten Mylyn Project Lead, Tasktop President & CTO BZ Media Webinar, July , made available under the EPL v1.0 Eclipse 3.3 and Mylyn 2.0.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Functional Testing with Eclipse TPTP | Copyright © IBM Corp., All rights reserved. Source code in this presentation is made available under.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)
An Introduction to JavaServer™ Pages Prepared by Nicole Swan.
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
SEG 4110 – Advanced Software Design and Reengineering Topic T Introduction to Refactoring.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Cross Language Clone Analysis Team 2 February 3, 2011.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect, V7.5 Module 18: Applying Patterns and Transformations.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 13 A & B Programming Languages and the.
PHP on Windows server. About PHP history, usage [ 3 ] Basics about PHP Open, free, object oriented (recently added namespaces), procedural, type free.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
AdaControl A free ASIS based tool J-P. Rosen Adalog.
Evolution and History of Programming Languages
CSC201: Computer Programming
SSW Code Auditor Insert witty intro.
TRANSLATORS AND IDEs Key Revision Points.
Design and Programming
An Introduction to Eclipse
5/8/2019 3:20 AM bQuery-Tool 3.0 A new and elegant way to create queries and ad-hoc reports on your Baan/Infor ERP LN data. This Baan session is a query.
Presentation transcript:

Refactoring Tools – Proparse, Prorefactor, Prolint etc. Steven Lichtenberg Sr. Technologist Jenark Business Systems, Inc.

Steven Lichtenberg Fall 2005 VAPUG Goals Define Refactoring and why it is important to developers Explain the tools available for refactoring Progress code Demonstrate how these tools can provide better developer productivity

Steven Lichtenberg Fall 2005 VAPUG Agenda What is Refactoring? Introducing Proparse What is it Why is it useful Building off the base - Prolint Automated Code updates using Prorefactor Eclipse A new way to think about code Integrating Prorefactor into the New Eclipse IDE

Steven Lichtenberg Fall 2005 VAPUG What is Refactoring? “Refactoring is the act of improving source code without changing its behavior. It is often discussed within the same context as patterns. Some reference materials are Design Patterns (Gamma et al.), Patterns of Enterprise Application Architecture (Fowler), and Refactoring (Fowler). Refactoring is historically a manual activity, but recently many automated refactoring tools have begun to emerge. These have turned refactoring into something that happens extremely quickly, and with a vastly reduced risk of error.” -John Green, Joanju

Steven Lichtenberg Fall 2005 VAPUG Why Refactoring “Application source code must constantly be refactored, otherwise it decays to chaos. For a growing and evolving application, well designed, well written code does not stay that way on its own. After a few years and a dozen programmers have touched what was originally a work of elegance, you are left with something that is difficult to maintain and very expensive to expand upon.” John Green, Joanju

Steven Lichtenberg Fall 2005 VAPUG What is Refactoring - Remember Done every day Tools are available Patterns can be automated. Goal is not to alter functionality

Steven Lichtenberg Fall 2005 VAPUG What is Refactoring - Points Refactoring is often done in concert with functional changes Every time you modify a piece of code, it is to your advantage to evaluate the code structure to see if refactoring is appropriate

Steven Lichtenberg Fall 2005 VAPUG Agenda What is Refactoring? Introducing Proparse What is it Why is it useful Building off the base - Prolint Automated Code updates using Prorefactor Eclipse A new way to think about code Integrating Prorefactor into the New Eclipse IDE

Steven Lichtenberg Fall 2005 VAPUG What is ProParse? A commercial product A single.dll A tool that PARSES Progress code Generates an in-memory process tree of each action statement The basis for many other automated tools for code management and processing Similar to COMPILE... PREPROCESS but better

Steven Lichtenberg Fall 2005 VAPUG What ProParse Isn't A compiler Proparse only knows about the database fields you tell it about Needs to be told explicitly about PROPATH variable A code writer Particularly interesting in and of itself

Steven Lichtenberg Fall 2005 VAPUG Why is this Useful? Replaces sed/awk/grep in finding expressions Understands preprocessor syntax and expands the text Understands {abc.i} and will do the substitution Provides a common base for more advanced code manipulation Simple API allows tool development AutoDox Prolint ProStyle etc.

Steven Lichtenberg Fall 2005 VAPUG How Do You Use ProParse? Easiest way to demo is to run launcher.w from the install directory EXAMPLES follow

Steven Lichtenberg Fall 2005 VAPUG Launcher.w

Steven Lichtenberg Fall 2005 VAPUG Sample Parse Output

Steven Lichtenberg Fall 2005 VAPUG Scan Listing

Steven Lichtenberg Fall 2005 VAPUG Token Listing

Steven Lichtenberg Fall 2005 VAPUG No-undo listing –This is interesting

Steven Lichtenberg Fall 2005 VAPUG Length Query

Steven Lichtenberg Fall 2005 VAPUG

Steven Lichtenberg Fall 2005 VAPUG Agenda What is Refactoring? Introducing Proparse What is it Why is it useful Building off the base - Prolint Automated Code updates using Prorefactor Eclipse A new way to think about code Integrating Prorefactor into the New Eclipse IDE

Steven Lichtenberg Fall 2005 VAPUG ProLint Automated source code review Written by Jurjen Dijkstra Available at Free add-on to ProParse Allows for enforcement of standard coding practices Rules based code analyzer

Steven Lichtenberg Fall 2005 VAPUG ProLint - cont Can be set up to run from Pro*Tools Output to Display window or HTML document Very easy to use

Steven Lichtenberg Fall 2005 VAPUG ProLint

Steven Lichtenberg Fall 2005 VAPUG Agenda What is Refactoring? Introducing Proparse What is it Why is it useful Building off the base - Prolint Automated Code updates using Prorefactor Eclipse A new way to think about code Integrating Prorefactor into the New Eclipse IDE

Steven Lichtenberg Fall 2005 VAPUG Why Refactor Changes the structure of the code without changing functionality Allows for enhanced architecture Keeps code readable and maintainable over time Allows for code re-use not envisioned in the original design Prevent spaghetti code/code rot

Steven Lichtenberg Fall 2005 VAPUG When To Refactor All the time! You are already doing it Should be considered at design time Should be continuously applied When applying bug fixes When doing maintenance coding

Steven Lichtenberg Fall 2005 VAPUG Why ProRefactor Automating Refactoring assures it will happen Allows for consistency in code structure Better than awk/sed/grep Understands Progress syntax Can identify between v-customer and customer.customer Over time code is easier to read, maintain and understand

Steven Lichtenberg Fall 2005 VAPUG ProRefactor Built as an Eclipse plug-in Can run stand alone as well Written in Java Includes source New refactorings can be developed as needed

Steven Lichtenberg Fall 2005 VAPUG Agenda What is Refactoring? Introducing Proparse What is it Why is it useful Building off the base - Prolint Automated Code updates using Prorefactor Eclipse A new way to think about code Integrating Prorefactor into the New Eclipse IDE

Steven Lichtenberg Fall 2005 VAPUG Eclipse – What is it? “Eclipse is an open source software development project dedicated to providing a robust, full-featured, commercial-quality, industry platform for the development of highly integrated tools.” - The Eclipse Project

Steven Lichtenberg Fall 2005 VAPUG Eclipse – What is it? “The Eclipse Platform is an open extensible IDE for anything and yet nothing in particular. The Eclipse Platform provides building blocks and a foundation for constructing and running integrated software- development tools. The Eclipse Platform allows tool builders to independently develop tools that integrate with other people's tools so seamlessly you can't tell where one tool ends and another starts.” The Eclipse Project

Steven Lichtenberg Fall 2005 VAPUG Eclipse – What is it? Created by IBM as an integrated IDE for WebSphere development 2000 Open Source November 2001 Incorporated under the Eclipse Foundation in 2004 Represented by a consortium of industry companies (IBM,HP,Apple,Novell etc)

Steven Lichtenberg Fall 2005 VAPUG Eclipse – What is it? Written in Java Uses SWT classes for Native UI widgets Cross platform Industry Standard

Steven Lichtenberg Fall 2005 VAPUG Eclipse ProRefactor is a plug-in to Eclipse PSC will be using Eclipse as their IDE starting with 10.1 Fully customizable Allows for integration that is not available today Run Progress code directly from IDE Webspeed will run directly without major configuration Refactor the same code you are editing using ProRefactor in the same environment

Steven Lichtenberg Fall 2005 VAPUG ProRefactor And Progress IDE

Steven Lichtenberg Fall 2005 VAPUG Credits/Acknowledgements Special Thanks to John Green and Judy Huffman – Authors of Proparse/ProRefactor Jurjen Dijkstra – Author of ProLint Progress list – Proparse furum The Eclipse Foundation

Steven Lichtenberg Fall 2005 VAPUG Questions