So you've just inherited several COBOL programs from a newly retired co-worker. These programs are huge, and you have only a slight idea what they do, or what they touch. How do you go about discovering how they work? This is where IBM Rational Developer for System Z (RDz) and IBM Rational Asset Analyzer (RAA) can help you understand what your source does, what it affects, and what risks are at play in changing those systems.
This was presented at the 2013 IBM Innovate Conference in Orlando, Florida.
2. About Us: Strongback Consulting
IBM Advanced Business Partner
– Rational, WebSphere, Lotus, Information Management SVP certified
– Strongly focused on Enterprise Modernization and application lifecycle management
– Key Industries Served: Finance, Insurance, Healthcare, Manufacturing, Government
– Rational Design Partner for HATS and other Rational enterprise modernization
technologies
Discover us at:
http://www.strongback.us
Subscribe to us at
http://feeds.feedburner.com/StrongbackConsulting
Socialize with us on Facebook & LinkedIn
http://www.facebook.com/StrongbackConsulting
http://www.linkedin.com/company/290754
3. Agenda
The business challenge from the view of the IT manager or executive
Viewing the big picture with Rational Asset Analyzer
RAA Features
New features in RAA 6.1
The view from the programmer analyst
How to conduct archaeology on your source code
RAA and RDz integration
Analytic tooling within Rational Developer for System z
3
4. The Executive’s Business Challenge
Manage complexity
– Control expenses associated with large, old, brittle application carrying costs
Manage risk
– Increased complexity drives up production defect rates with corresponding
business impact
– Developers who understand the semantics of these systems are close to
retirement – assuming the Wall Street gods don't repeat 2007/2008 follies
Leverage production application value
– Operational drivers for business are your Enterprise Systems
– Exploit the processing in working production code by coupling it with mobile
and distributed application access – through:
* SOA
* Business Rules Mining
4
5. Using old 3270-based tools
– TSO/ISPF … introduced circa ~1974
100% manual/character-based tooling
- Error-prone
- Labor-intensive
Application Complexity
How is z/OS application work done?
Application Shelf Life
Even "no tools"
– Given the limitations of the ISPF environment for large-application
maintenance, support and development, many programmers and programmer/analysts
actually prefer to use sticky-pads and paper clips with source listings for source analysis
tasks
(if you think we're kidding ask them)
The above nets out to an extreme*** curve for application maintenance, production
support and development process
How do you flatten "Application Carrying Costs"?
5
*** Euphemism for expensive
6.
RAA is a static code analysis tool
It stores the semantics of your applications in a
repository and exposes the operational flow details
of your Enterprise Systems:
–
Graphically
–
Through hyper-linked relationships
–
As Business Rules
Reducing complexity and associated cost/risk for:
–
Application discovery
–
Program analysis
–
Data flow analysis
–
Impact analysis
RDz is a modern development IDE
It leverages the technological advances over the
last forty years and provides:
–
Integrated: Edit/Analyze/Syntax Check
* Integrated within the product and with RAA
* Integration with SCM and green-screen tooling
–
Eclipse-style development functionality
–
Complete development/maintenance/production
support lifecycle coverage
Application Complexity
Flatten Application Carrying Costs using RAA + RDz
Application Shelf Life
7. Your world
Composed of:
– Systems
• Applications
– Application elements
– Relationships among application
elements
The semantics of your application
are buried in:
– Source code
– Documentation – which is only as good
as it is current and accurate
8. Your world through the lens of RAA
Transaction Diagram
Composite
Load Module
Application meta-data elements
and relationships among
elements graphically exposed
through hyper-links stored in a
relational repository
– Up-to-date
Batch Job Diagram
– Precise
9. Your programs exposed through the lens of RAA
Program meta-data, elements
and relationships among
elements graphically exposed
through hyper-links stored in a
relational repository
– Always up-to-date
– Precise
Repository "meta-data" on COBOL programs
Program flow
10. RAA + RDz Benefits
Lowered application Carrying Costs
through:
–
Decreased analysis time & effort:
* Application semantics rendered
graphically and hyper-linked across
all elements and relationships in
the application repository
–
Decreased development time & effort:
* Modern integrated graphical tools
* Integrated graphical workbench
–
Improved testing facilities
* Code Coverage
* Automated unit testing framework
11. More RAA + RDz Benefits
Lowered risk:
–
Application semantics – normally only understood by SMEs captured in the RAA Repository
–
Improved application quality through code review rules which expose potential performance
and maintenance improvements risks and improvements
Simplified application governance through RAA's metrics and high-level application
dashboard
Satisfies the development cravings of Generations X, Y and Z
–
11
Eclipse-based contemporary workbench
12. Rational Asset Analyzer’s role in Enterprise and Enterprise
Modernization
Software artifact inventory
Traditional
View
Business rules artifacts inventory
Application understanding
Change impact analysis
COBOL Business Rules Mining
Collaboration platform for all
Persistence platform for human knowledge about your apps
New View
Provides a common language for Business, Dev & Ops to share
Cloud ready
Language agnostic capability
RAA provides Common Language
Business
Owners
Development/
Test
Operations/
Production
Monitor and Optimize
Customers
Develop and Test
Release and
Deploy
Continuous Innovation, Feedback and Improvements
12
13. What is new in RAA 6.1
Code Review for COBOL
Language Agnostic Business Rules
RTC Integration – scanning files from
RTC with RAA
Usability & Currency
14. RAA - Surfacing Code Review for COBOL
Code Review for COBOL gives focus when clients have hundreds (or thousands) of programs to improve
Gives the enterprise view allowing to identify programs that should be actually looked at RDz
Its static set of 19 rules
Can be automatically run during inventory, identify statements consistent with the rules
The results are:
persisted for use in Custom Queries or sophisticated analysis using 3rd party reporting or visualization
tools
highlighted in Related source view line-gutter
summarized in Program summary page tab
itemized in Program details page tab
15. Language Agnostic Business Rules
Provides selected rule mining functionality for any file, crating a
platform for capturing, persisting and sharing human knowledge.
Use in concert with, also language agnostic, symbol scanning
With new detail page actions and new user dialogs any text file can participate in
business rule rules inventory and impact analysis.
Functions include:
Relate any file to a business rule
Relate range of lines in a file to a business rule
Related files appear in new section on Business rule details page
Rule relationships are highlighted in a new Related source view line-gutter
Impact analysis may be run on rule assets to determine their relationship to other enterprise
assets
18. Language Agnostic Business Rules
Rule relationships are highlighted in a new Related source view line-gutter
19. Language Agnostic Business Rules
Impact analysis may be run on rule assets to determine their relationship to other
enterprise assets
20. Scanning Rational Team Concert stored files with RAA
The solution developed by IBM Integrated Solution for System z Development team
Adopted and enhanced by RAA team to help in RAA development by scanning RAA files from RTC
with RAA itself.
The value of two product working together is more than a simple sum; added value:
Each RAA scans is recorded ad RTC build
Scan history available in RTC as build results page
The log files from RAA scans are published to RTC as build scans and made available directly
from RTC interface
21. Usability and Currency
Usability
– Exporting diagrams in SVG
– Printing Diagrams
– Export of UI table content to CSV
– View logs on the menu
– Hashsum based incremental scanning
Currency
– DB2 v9 & 10 syntax in embedded SQL
– Eclipse 4.2 support for RAA plugin for RDz
– Many documentation updates and improvement
23. Usability - Export of UI table content to CSV
Usability - View logs on the menu (with sort also by timestamp)
24. Usability - Hashsum based incremental scanning
Works for all distributed files and scanning COBOL/PL/I on workstation
Content based (not file name and not timestamp based)
Not yet enabled for scanning PDSes on z/OS
Ability to explicitly force rescan (checkbox to Inventory wizard)
Following action will force rescan implicitly
– Queue container for analysis
– Queue selected
– REST request for analysis
– RAA plugin - scans are on save after file changed or explicitly requested by the user
25. RAA on Windows - Installation simplifications
The only mandatory pre-req remaining on Windows is DB2
The option to use an embedded application server instead of
IBM WebSphere Application Server is now available. RAA
now embeds an application server, WAS Liberty Profile
8.5.0.1. This is an optional use, lightweight application
server.
Option to use full enterprise strength of IBM WebSphere
Application Server remains
Rexx is no longer a mandatory prerequisite. RAA now
embeds Open Object Rexx 4.0.1. If a version of Open
Object Rexx was previously installed on the system and is
not otherwise needed, it can be uninstalled.
Java is no longer a mandatory prerequisite. RAA now
embeds the Java Runtime Environment.
27. The view from the programmer analyst
Understand old
code is much
like conducting
an
archaeological
dig
27
28. A day in the life of a software archaeologist
1. A “Production Problem” arises
2. No one knows the source code
3. Code has been handed down from
developer to developer
4. Was compiled years ago
5. 20K lines of code…. or more
6. YOU get “selected” to debug the
issue
7. Spend DAYS understanding it
8. change one line, test
9. Repeat step 8…several times
10. Refactor to remove dead code
28
29. The white elephant: 12,000 lines of spaghetti
Where do you start?
Unpredictable abends
Hard to navigate
Difficult to create a “mental map”
Potentially lots of dead code
Out of date comments
29
30. Viewing down into the pit
Program Control Flow
Diagram:
Birds Eye view of source
Treat it like a blueprint
30
31. Your programs analyzed with RDz + RAA
Integrated functionality:
• Analyze
• Code
• Syntax check (real-time)
• Debug
• Work with test data:
• DB2 tables
• QSAM/VSAM files
• IMS database segments
• Manage z/OS datasets
Real-time syntax validation
Content Assist-based coding
Integrated analysis + coding
32. Digging sideways – Performance Hierarchy
Perform Until
Statements
Understand where your
code goes from where you
currently are.
Each element is navigable
to another.
32
Conditional
Statements
Potential
program
fall thru
33. Finding nuggets of information
Data Elements View – a sortable view of all your data elements
33
35. Refactoring
Refactoring = make system-wide code changes without
affecting the behavior of the program
Auto format source code
… and how many hours have you
spent doing that by hand??
35
36. Resources
Check out all our links for our presentations, including this one
–https://delicious.com/strongback/tag_bundle/Innovate2013
–“one link to rule them all”
36
37. Complimentary Sessions of Ours
1212A
1393A
37
Making a HATS a
Dolphin - Northern E1
Strategic Investment:
Integration with Relational
Systems and Web
Services
The Caffeinated
Dolphin - Northern E2
Mainframer: Java on
System z with Rational
Developer for System z
Wed, 5/Jun, 11:15 AM 12:45 PM
Thu, 6/Jun, 11:00 AM 12:00 PM
38. Subscribe to us at
http://feeds.feedburner.com/StrongbackConsulting
Discover us at:
http://www.strongback.us
Socialize with us on Facebook & LinkedIn
http://www.facebook.com/StrongbackConsulting
http://www.linkedin.com/company/290754
Watch Us at Youtube http://www.youtube.com/user/strongbackconsulting
https://vimeo.com/user7519232
Call us at: 386-232-8746
Editor's Notes
software, in a relatively short span of time, has changed the world for the better, we have little lasting detail information of the software of the past.
This is the project your developer dreads – finding the bug in a 40,000 lines of spaghetti Cobol. Only the strongest survive to work another day. The rest quit, change careers, or go into an asylum. Using ISPF to view this much code is like using a paper towel tube to view the Empire State Building.
How a developer would use RAA
Where do my COBOL assets meet my distributed assets? What touches this stored proc?
Cover the purpose and need for refactoring. Mention zUnit is a way to help ensure functionality does not change as you refactor those 40K lines of code into a manageable, agile load module