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.
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.
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.
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.
|