X-Analysis X-Data X-Migrate X-Modernize X-Resize
Case Studies Customer List
Case Studies Customer List
downloads
contact
references
products
for RPG Business Rules and Modernization and JAVA Migration

Overview: Design Recovery, Modernization and X-Analysis


This is an extract from the RedBook from IBM on X-Analysis. To download this document click here

This chapter presents the iSeries Developer Roadmap and explains how X-Analysis fits into the roadmap.

1.1 Why modernize an existing RPG application?

Each company has their own set of reasons for modernizing their applications. Companies do not modernize their applications just to catch the next technology wave. Rather they are driven by specific business needs, such as:

Improving application accessibility through open interfaces - the style that companies operate in has changed over the years. Frequently companies make their core applications accessible to their business partners, customers and remote workers. Often this access is given via a browser based interface to the core applications.
Improving the responsiveness of development - rapidly changing business needs require development of additional functionality with minimal risk of disrupting applications already in production.
Improving long term maintainability - the majority of an application's life is spent in application maintenance. To increase the longevity and decrease maintenance cost, business applications must be refactored to easily handle change.
Improving portability of applications across platforms - companies want the flexibility to run their applications on a diverse set of platforms. Applications written in modern programming languages give companies the flexibility to select from a variety of platforms.
Increasing the ability to attract developers skilled in the new languages - the great majority of newly qualified application developers are skilled in languages other than RPG and COBOL. Requiring new recruits to retrain in the traditional languages is an additional expense and unappealing to the new developers. Finding skilled developers becomes less of a problem when the companies move to the new programming techniques and languages.
Increasing number of tool options and application packages - the Java and Open Source communities encourage a very competitive software vendor market that supplies tools, techniques and solutions to companies. Companies can take advantage of these items to improve their application development.

Whatever the business needs driving companies to modernize their applications, they want to ensure the business logic, a core asset to the company, is preserved. Secondly they want to minimize the pain and effort required to modernize their applications. The following chapters show you how to do just that.

 

1.5.1 X-Analysis components

X-Analysis consists of a foundation product and various extensions which can be installed as needed by the customer. Figure 1-5 shows the X-Analysis product with various extensions and shows how they fit together.

for Business Rule Analysis

Note: X-Browse and X-Subset, X-Verify and X-Archive interact and are often purchased together.

Each of the modules provide important capabilities to the development team. X-Analysis is described as follows:

  • X-Analysis (foundation) - Provides the core cross-referencing capabilities:
  • Performs application and data model generation.
  • Provides cross-referencing with drill down to specific details (variables, fields or lines of code).
  • Enables interactive viewing of source code, application structure diagrams, and data flow diagrams.
  • Provides a graphical view of all aspects of the existing application and the object where used.
  • X-Rev - Design recovery of higher level modeling information not directly contained in the existing code
  • - Extracts the data model implicit in the existing application.
    - Generates a data encyclopedia or data dictionary.
    - Aids data field analysis.
    - Documents data entity relationships.
  • Application Overview (usually accompanies X-Rev) - Provides comprehensive documentation and application sub-division capabilities
  • - Subdivides the application as needed based on the models.
    - Presents RPG code as pseudo code.
    - Documents business rule logic.
    - Provides Microsoft® Word and Visio® documentation wizards.
    - Enables viewing model subsets.
    - Provides export and source configuration management software tools.
  • X-Browse - Allows you to view and navigate your database using the extracted data model
  • - Provides instant query and report applications (without programming).
    - Creates joins for related data files.
    - Provides drill down links to all dependant data files.
    - Optimizes application performance using existing logical views.
    - Identifies available access paths and views.
    - Provides a completely formatted display of OS/400® journals for application data.
  • X-Subset, X-Verify and X-Archive - Aid in application testing and data archiving
  • - X-Subset builds a referentially consistent test data set for application testing.
    - X-Verify enables the testing of the referential integrity of production data based on the data model.
    - X-Archive handles selected or complete data archiving with selection criteria and audit trails. It also ensures referential integrity is maintained in the remaining data, in other words no records are orphaned.
  • X-Resize - Provides automated data file and field reengineering
  • - Provides impact analysis for all data instances (fields, variables, programs, files, etc.).
    - Provides exception reporting for special conditions and overlapping.
    - Includes automated:
    • Source conversion for all objects and source types
    • Bulk recompile
    • Data conversions
  • X-Control - Provides automated and integrated change management services
  • - Offers a single command request for programmer changes.
    - Provides parallel machine support.
    - Includes various controls and audits:
    • Control of modules returned to systems (by identification)
    • Audit history
    • Archiving of source and object code
    - Interfaces to documentation in Microsoft Office or text files.
  • X-Extract - Identifies and expresses business rule logic from individual programs or parts of the system
  • - Extracts a comprehensive database of business rules implicit in the existing code.
    - Provides narrative documentation of each extracted business rule enabling them to be viewed either stand alone or in the context of the programs from which they have been extracted.
    - Generates a complete Data Definition Language from the data model.
    - Generates XML Metadata Interchange (XMI) format from the model.
  • X-Migrate - Deconstructs the existing application into new components which can then be deployed in modern environments (such as a Web server environment)
  • - Generates data access objects for use with modern user interfaces such as JSF, RCP .Net.
    - Generates a generic controller following Model-View-Controller architecture.
    - Generates stateless business rule components from the RPG applications
    - Converts stateless business rule components from the RPG into JAVA for Java Migration

    1.6 X-Analysis and the iSeries Developer Roadmap

    As new technology comes along, existing programming languages and related programming models change to incorporate and take advantage of these advancements. The iSeries Developer Roadmap, created by IBM, shows how companies with traditional 5250 applications can evolve those applications to incorporate the new programming languages and methodologies. The roadmap as shown in Figure 1-6 consists of six pillars. Each pillar identifies a modernization goal and the programming languages and technology associated with that pillar. The six pillars are:

  • Traditional -Existing RPG or COBOL applications with a 5250 user interface. The applications frequently rely on a programming model where all aspects of the application are included in a single module making the application hard to maintain and change.
  • Improve your productivity - The use of technology and tools to maintain existing applications without unnecessary change.
  • Enhance the end user experience - Restructuring the presentation layer of the application making it suitable for use with graphical and browser interfaces.
  • Create a modular architecture -An application is redesigned to take advantage of new programming models, such as the Model-View-Controller architecture. An objective of this phase is to separate the various aspects of the application into reusable components.
  • Integrate applications - As business needs change, companies create or purchase new applications. These applications are frequently written in new programming languages. It is important that the existing applications and new applications can share data.
  • Integrate business processes - Businesses must react quickly to change. Business processes can be impacted by these changes. As business processes change, the applications that support them must change as well. The goal of this pillar is to incorporate technology that allows all aspects of the business to react quickly to change.
  • for JAVA Migration

    Aligning your business applications with any of the pillars can cause improvements to your business and development environment. It is important to evaluate your business needs to understand the form of modernization that is right for your company.

    1.6.1 Future tools view of the iSeries Developer Roadmap

    In order to realize the benefits of the iSeries Developer Roadmap, IBM through its IBM eServer iSeries Initiative for Innovation program has developed a corresponding future tools view of the roadmap (Figure 1-7 ). This view identifies tools and technology that enhance your application modernization effort. Both IBM and business partner tools and technology are included in this roadmap.

    for Design Recovery and RPG Modernization

    1.6.2 X-Analysis and the roadmap

    X-Analysis provides capabilities that fit within the first three pillars shown in Figure 1-7 .The pillars are mapped to X-Analysis as follows:

  • Improve your productivity -X-Analysis's primary function is to improve the productivity of the application development team. It accomplishes this through a rich set of documentation and navigation capabilities. X-Analysis allows developers quick access to cross-referencing functions, graphical structure displays and process flow information. The existing applications' implicit data model and RPG business rules can be extracted. Development teams can use X-Analysis to understand and maintain their current RPG and COBOL applications. This greatly accelerates design recovery of the application.
  • Enhance the end user experience - X-Analysis provides the capabilities which allow a business to improve the application user interface and increase the flexibility of applications. X-Analysis extensions provide the means to generate JavaServer Faces (JSF) and JavaBeans which provide a new user interface for the existing application. This largely automates a JAVA migration task.
  • Create a modular architecture -X-Analysis assists in recovering design information (such as Iseries Business Rules) necessary to reengineer selected application areas and to prepare the move to a component based architecture such as MVC architecture. In order to accomplish this transformation, application programmers and analysts need a deep understanding of their business logic and data model. X-Analysis dynamically extracts the data model and process model specific to each application area. The developers can then drill down into the detail of the RPG business rule logic involved. Developers find the cross-referencing and documentation functions extremely helpful when creating a new component based architecture such as MVC.
  • 1.7 X-Analysis modernization scenarios

    As stated previously, X-Analysis plays an important role in RPG application modernization.This section identifies three business scenarios and suggests the paths available to modernization.

    1.7.1 Business scenario 1

    The first scenario introduces a software vendor with many years of RPG programming experience and some Java and Web development skills. They have a large application with too many programs to consider converting them by hand. The team does not know how much effort would be required to modernize the application. Most of the applications are written in Original Program Model (OPM) RPG and a few are written in Integrated Language Environment (ILE) RPG. The company faces competitive pressure to provide browser based interfaces and rich client support.

    Therefore this company has decided to totally transform the presentation and control layers of their application to the MVC architecture.

    1.7.2 Business scenario 2

    The company in this scenario develops most of its applications in-house, using both OPM and ILE RPG. Their biggest concern is the amount of time at it takes to respond to new requests for added functionality. Often instead of trying to reuse existing programs, they create a new version of an existing program, compounding their maintenance problems. For example, in a recent project requiring the expansion of the customer number field from five digits to seven digits, they spent much more time than was budgeted. They know they must deal with these maintenance issues and find a new approach to handling enhancements. However, re-architecting the applications and using Java are not an option, at least not any time soon.

    For this scenario the customer needs clear documentation and an approach that will improve maintenance productivity without making any radical change to their applications. The company wants to take a conservative approach with minimal change and disruption while achieving improved maintenance productivity and the ability to add new function.

    1.7.3 Business scenario 3

    This company has highly skilled RPG and Java developers on staff, doing sophisticated iSeries and Web development. The application suite of RPG programs has grown over the years in an ad hoc manner. The RPG applications were developed quickly to respond to business opportunities with little thought of how they would be maintained or enhanced as business conditions changed. The company now has a large number of complex applications that are difficult to enhance, which prevents them from responding to business opportunities quickly. The IT executive and staff decided future projects will be developed using modern methodologies when possible. They will write Java components when appropriate, rework the RPG code to components as necessary, or port the RPG code to Java when the effort to rework the RPG code is too expensive.

     

    The executive wants to modernize the applications incrementally. He knows converting all the applications at one time would be a disaster. The company is looking for a method to help the staff isolate application areas, recover the business logic and the data model from the existing application and reengineer the application where possible.

     

    This company is typical of situations where modernization occurs on an application section by section basis. One section of the application is rebuilt at a time, but when each section is rebuilt a thorough modernization is required.