Software Archaeology with RDz and RAA


Published on

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.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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
  • Software Archaeology with RDz and RAA

    1. 1. Software Archaeology with RDz and RAA - discovering what you've forgotten, knowing what you've inherited Christopher Sayles Consultant, Strongback Consulting Ujjwal Sinha Product Manager, Rational Asset Analyzer Session Z-1573 © 2013 IBM Corporation
    2. 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: Subscribe to us at Socialize with us on Facebook & LinkedIn
    3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    16. 16. Language Agnostic Business Rules Relate any file, or range of lines in a file, to a business rule
    17. 17. Language Agnostic Business Rules Related files appear in new section on Business rule details page
    18. 18. Language Agnostic Business Rules Rule relationships are highlighted in a new Related source view line-gutter
    19. 19. Language Agnostic Business Rules Impact analysis may be run on rule assets to determine their relationship to other enterprise assets
    20. 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. 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
    22. 22. Usability - Exporting diagrams in SVG Usability - Printing Diagrams
    23. 23. Usability - Export of UI table content to CSV Usability - View logs on the menu (with sort also by timestamp)
    24. 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. 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 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.
    26. 26. 26
    27. 27. The view from the programmer analyst Understand old code is much like conducting an archaeological dig 27
    28. 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. 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. 30. Viewing down into the pit Program Control Flow Diagram:  Birds Eye view of source  Treat it like a blueprint 30
    31. 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. 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. 33. Finding nuggets of information Data Elements View – a sortable view of all your data elements 33
    34. 34. Finding Unreachable Code Unreachable Code 34
    35. 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. 36. Resources  Check out all our links for our presentations, including this one – –“one link to rule them all” 36
    37. 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. 38. Subscribe to us at Discover us at: Socialize with us on Facebook & LinkedIn Watch Us at Youtube Call us at: 386-232-8746