AD Module 1 Product Introduction, Features, Terms and Concepts
AD Module 1 Product Introduction, Features, Terms and Concepts
1
Company Trademarks and Copyrights
© Copyright …..
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
2
The IBM Application Discovery Curriculum
3
Module 1 – Product Overview
After completing this module, you will be able to perform the following tasks
in IBM Application Discovery (AD):
Define what AD is
Describe what AD is used for
List who uses AD and for what purpose
Describe the value of AD in development and maintenance
Describe the AD (basic) component architecture
Cross-reference how you currently do application discovery and analysis –
with AD features & facilities discussed in this module
4
What is IBM Application Discovery (AD)?
Eclipse-based static code analysis solution, that fast-tracks the discovery
and analysis phases of System z/Enterprise Software work
COBOL, PL/I, Assembler, JCL, SQL, Natural, Java
DB2, VSAM/QSAM, JCL, SQL, MQ, ADABAS
Batch applications
Scheduling
Jobs/Procs/MVS Utilities
Online applications
CICS
IMS TM (IMS/DC)
5
5
How is IBM Application Discovery (AD) Used?
AD replaces ISPF searchFor & manual source code analysis:
Learn/Discover the semantics of an application
Streamline and accelerate ABEND root cause investigation
Understand the use and dependencies of and within z/OS resources:
Files & databases
Programs & copybooks
Maps (screens)
JCL & Batch Scheduler information
Discover/Capture business rules
Identify locations & options for exposing business services through APIs
Assists in the development and test phases to identify impacts across
the enterprise and identifying areas to test, reducing risk and
improving test coverage
Identifies elements
Maps dependencies & relationships among the elements
Gathers metrics, counts related to the IT artifacts in the enterprise
6
6
AD versus Traditional Static Analysis
AD extracts application semantics
from source code and displays
them as Hyper-linked:
Graphics
Reports
7
7
Modeling the Semantics of a z/OS Application
Batch Schedule Online Transaction
AD extracts application semantics
Batch Job through a parsing process which
understands the principles of MVS
application software.
Job Step
Extracted application elements and
relationships are captured & stored
//DD DSN= Load Module as meta-data in a relational DB
File EXEC PGM= (DB2 or SQLServer)
Relational tables in this repository
Program are modeled on MVS application
Environments and Runtimes.
FD Paragraph Variable The product U.I. provides a window
into your application semantics, and
Statement you can write custom SQL queries
that extend AD’s functionality.
9
Product Architecture & Integration Points
Analyze Tools AD Dashboard
AD Client
Graphs
Flow Diagrams
Source/Usage Views
Screens
Connect
External (3rd
Party) Report
Tools
Build (Parse)
z/OS Resources
AD Repository
Relational tables that capture your z/OS
Application’s Model
10
Analysis Project – Concept
What is a “Analysis Project”?
AD calls physical groupings of programs and other application source code components “analysis projects” – or
just “Projects”
Source code components are brought into the AD Build Server via a number of mechanisms (SCM, agents,
library scans etc.) and stored on the AD Build Server
Using the AD Build Client, analysis projects are defined based on the available source code
These analysis projects are then built and made available for users to perform graphical analysis, run reports
and execute custom SQL queries to generate the required analysis outputs
An AD implementation typically has many analysis projects, used by different teams to drive specific analysis
requirements
Cross-platform/Cross-application
analysis is done by “joining” a
Analysis Projects
11
AD User Interface
The User Interface is a standard Eclipse GUI consisting of Perspectives,
Views (each tabbed window is a view), Menus, Menu-Actions,
Preferences, hyperlinked lists, etc.
Menu System
Perspective
AD Graphs View
Properties View
12
IDz or ADFz
What’s in it for me?
Work Made Easier
Graphical analytics (clearly) reveal program semantics
Instead of learning through laborious and error-prone line-by-line code examination
Hyper-linked access to exact source and data locations within a file
Single click workflow - instead of: TypeType:F2/F9/TypeType:F7/F8/F7/TypeTypeTypeType:F2/F9 workflow
Generated (automation of) APIs
Instead of complex manual development projects and tasks
Superfluous tasks reduced
Auto-commenting code, SPUFI/SQL code-test eliminated, GUI-bookmarking, Content-Assist, multiple file
organization methods and dozens of other features reduce or eliminate mundane repetitive workflow
Fewer “Mulligans” (mistakes and do-overs)
The tooling clearly illustrates program and data semantics as well as ABEND root cause analysis – improving
technical comprehension and reducing coding and testing errors
Career future-proofing
None of the z/OS vendors are investing in green-screen functionality – and they’re all
investing in Eclipse-based solutions (AD is based on Eclipse)
So unless you’re planning to retire in the next 6-12 months you will more than likely run
into Eclipse
Start now – learn AD and get a jump on tomorrow’s Eclipse assignments
and projects today
13
Summary (Simplified Big Picture)
Analysis Tools
Graphs, Flow Diagrams
Source, Usage Views
AD User Community
The Build operation reads application Application Developers
source files – identifying and capturing • Architects
• Project Managers
AD Server Admin
Community references and dependencies which
populate rows in the Repository tables
14
Questions
Repository Model
? ? ? ? ? ? ?
QUESTIONS?
15
Example Use Cases: Application Understanding
Answer questions, such as: What programs are invoked by
a batch job? … What subroutines are called and how do they
interact with MVS files and databases?
16
Example Use Cases: Program Understanding
Answer questions, such as: What is this program’s
procedural control flow? What is this paragraph’s (statement-
level) control flow? What paragraphs update a file or database?
Procedure Flow
Flow Charting
17
Example Use Cases: Field Expansion & Impact Analysis
Reduce project effort and risk of downtime by understanding
change impact upfront
Find components affected by
changes to:
Field declarations: Data elements, data
sets, data stores
Section of program source code
Entry point signature: Name, Parms
Distributed assets: Java classes
18
Example Use Cases: Complexity Metrics
Gain control of your assets and know what you have
Assess breadth of technologies Identify required resources
Assess quality and complexity Identify “brittle” programs
Find Dead Code – Unused routines Assign work based on objective
and Unreferenced modules complexity metrics and criteria
19
Example Use Cases: Identifying APIs
AD provides tools for identifying candidate APIs from within and across your
z/OS application
z/OS Connect EE API toolkit provides specific feature/function that
automates the generation & deployment of APIs
20
Example Use Cases: Application Understanding for Documentation
Educating new developers – or developers new to an application
Produced soft & hard-copy documentation
Provide an electronically-precise understanding of how
applications “hang together” – a+nswer questions like:
– What software artifacts use this data element, DB2 column, DB2 table,
transaction, etc.
– What is the runtime execution flow for a batch job or transaction for IMS
and CICS applications
– What components are required to Build?
– Dependencies such as: Called programs, Copybook & Include files
– What is the makeup of – or how intricate is a business application?
Metrics, variable-counts, breakdown by complexity, language, etc.
– Job X abends: What are the downstream jobs dependent on Job X. What data
files & databases will not be updated? Which triggers will not fire? What reports
will not be produced?
21
Summary – AD Supported Environments & Runtimes
Mainframe – z/OS
Languages – COBOL, PL/I, Assembler, Natural, ADS/Online
Databases - VSAM, DB2, IMS/DB, Datacom, Adabas, IDMS
Batch – JCLs, Procs, Ctrl
TP monitors – CICS, IMS/DC, IDMS/DC
Schedulers – IWS, A-Auto, CA7
Messaging – MQ
SMF analysis – Jobs, CICS Transactions
SCM – CA Endevor, Librarian, Serena ChangeMan ZMF, z/OS PDS, IBM RTC
AD tools – ADFz, IDz
Monitoring – OMEGAMON for CICS
Distributed
Languages: “Limited Basic Maiframe” Java – v5 & v6
22
Summary – AD Use Cases
Graphical Analysis Reporting
Component dependencies and where- Industry standard analysis – Halstead,
used – impact analysis McCabe, FP, Heuristic
Flexible hierarchy views, Filtering, search Configurable metrics and reports
capabilities Coding and quality standards, dead code,
Cross Application and Modular inter- impact analysis
dependencies External reporting access
Flowcharts, Screen Flow, Data Flow, Custom queries and outputs
Control Flow
Drill down – Cross Application, Dashboard & Correlation
Paragraph, Statement
Consolidated view of application metrics
Applications trend analysis
Usage Integration with external data (business
Dataset Usage in Jobs metrics, service desk)
Job Usage Inventory
Program Usage in Jobs
Procedure Usage in Jobs Server Integration
Program Structure (all supported External integration (3rd Party Dashboards,
languages) SCM, Scheduling, Enterprise CMDB)
Variable Usage in Programs(all supported
languages)
Database Usage in Programs(all
supported databases)
Include Usage in Programs
MQueue Usage in Programs
SQL Table Field Usage
23 23
23
Chalkboard/Discussion
Application Analysis Tasks Current methods and tools?
Project scoping
Analyze an application
25
Detailed application understanding – Application semantics hyperlinked from AD
Repository
– The AD repository stores:
Data elements (points-of-interest)
Relationships among elements
Your code
Parsed & Indexed AD Repository
SQL Tables
26
IBM Application Discovery - Big Picture
IDE
Integration Graphical Analysis Reports ‘Where Used’
Analysis Managemen
t control
27
27
AD Stakeholders
AD User
Community AD
Project Managers:
Server/Admin
•Technical Community
•Non-technical
AD Administrator
Business Analysts • AD artifacts, Concatenation
set, etc.
Application Analysts
and Technical
Architects DBA
• Maintenance of
Database/Performance –
Programmers • RUNSTATS, REORG, Binds
• Index creation for tuning
Documentation
Teams
Server administrator for
product installation
28
Testing Teams
28
AD Tools
Advanced Usage
Inventory Annotation
Search X-Refs
Source
Callgraph Explorer Report
Code
Eclipse
Views
29
Product Architecture & Integration Points
IDz Client
Analyze Tools
Graphs
Flow Diagrams
Source/Usage Views
Screens
Projects
• COBOL Programs
•
•
COBOL Copybooks
PROCS & JCL
AD Repository
• PL/I Programs
• BMS Maps
• CICS Transactions
• Assembler Programs
• Assembler Macros
Build (Parse)
Source Resources
30