1. Modern environment for z/OS
development
Rosalind Radcliffe
Venkat Balabhadrapatruni
Feb 4, 2013
Session: 12503
Insert
Custom
Session
QR if
Desired.
2. 2
2
Four key barriers preventing optimal return on
IT investments
Decades of
application
investments
Islands of skills,
languages
and platforms
Poorly
integrated
teams
Infrastructure
inefficiency
“We need to enable our teams
to collaborate across platforms,
languages, and environments.”
“We need a cost effective way to improve
our infrastructure efficiency and free up
capacity to handle more workload.”
“We don’t understand the effort,
risk and impact of modernizing
our legacy applications.”
“Our skills gap keeps growing.
How do we stay current with all the language
and technology changes?”
3. 3
3
Overview of Supported Production Scenario
Project Manager or Support Team has submitted Project Change Request …
4: Promote and deploy
enhancement
- Promote changes from
development to test
- Create update package with set
of changes from development
- Deploy update package to the
test environment
3: Implement required
changes, build and deliver
- Analyze source to identify
modifications
- Implement and test
modifications
- Perform personal build and
deliver new features
2: Review and Approve
Change Request
- Review analysis for change
request and approve for
scheduling
- Create development work
item(s) for implementation
- Add work to project plan
1: Review Change Request
- Analyze application to be changed
- Size/scope effort and risk of
change
- Submit to Project Manager for
review, approval and scheduling Analyst/SME
Lead
Developer/
Release
Engineer
Project
Manager
Application
Developer
5. Track Project Status
with Rational Team
Concert Dashboard
4. 4
4
Development Life Cycle
• Define the tasks
• Create a plan
• Create a work item
• Assign the work
item to a developer
• Load the
project/source
artifacts from SCM
• Navigate, Analyze,
Edit, Syntax check
source code
• Compile
• Quality assurance
• Debug
• Code Coverage
• Code review
• Unit Testing
• Check-in/Deliver the
source code
• Build
CLM RDz
RTC
RDz
RD&T
RTC
RTC
RDz
Source
Dev Build
Planning Governance/Unit test
5. 5
5
Decreases development time by 15 to 20 percent
“Building an agile development team requires a multiplatform approach, and Sodifrance
uses Rational Developer for System z and Rational Team Concert for System z to help
application teams synchronize their efforts and improve collaboration.
Rational on System z offers a powerful and valuable combination
for any company that wants to boost its development team’s productivity.”
— Hugh Smith, Project Manager, Sodifrance
Collaborative application lifecycle management
Deploy new, common team infrastructure for source control, change
management and build that empowers your team with integrated
collaboration, process automation and reporting
Requirements
Project/Planning Development Testing
Unify
6. 6
6
Rational Team Concert – A single tool, many
capabilities
• Source Control
Planning
Work Items
Method Enforcement and
Automation
Dashboards & Reporting
Builds – Continuous
Integration
7. 7
7
Query
Storage
Collaboration
Discovery
Administration:
Users, projects,
process
JAZZ SERVICES
Business Partner
Extensions Your Extensions
Rational Team Concert: Built on an open, Web 2.0
platform
Supporting a broad range of desktop clients, IDE’s and languages
Rational Developer for System z
Rational Software Architect
Rational Systems Developer
Rational Business Developer
Rational Developer for Power
Eclipse Clients Web Clients
Visual Studio
Microsoft .NET Clients Rational Desktop Clients
Rational Team Concert
Web 2.0
Jazz Client Extensions
Eclipse Platform
IBM Rational Extensions
Best Practices
Presentation:
Mashups
8. 8
8
Rational Developer for System z:
An Integrated Development Environment for System z
Rational Developer for System z
A modern IDE for productive development of
cross-platform applications written in COBOL,
PL/I, ASM, Java, EGL or C/C++ in System z
CICS, IMS, DB2, Batch applications
Access to typical System
z sub-system functionality
in z/OS, CICS, IMS, DB2,
WAS
Integration with Debug Tool
for Development and Test
Integration with Fault
Analyzer for Dump Analysis
Integration with File
Manager for file and test
data handling
Integration with Asset
Analyzer for Application
Understanding and Impact
Analysis
Integration with Team
Concert for Lifecycle and
Source Management
Integration with RD&T for
flexible access to System z
environment
9. 9
9
The Benefits of a RDz's IDE
Instead of maneuvering to access panels and working sequentially,
in RDz the functionality you need is always in-focus – you work concurrently
Access
Datasets
+ Dataset
Management
Access Jobs
(Outlist facility)
Edit a program
Dataset Statistics
Submit a Compile
File Compare
File Search
10. 10
10
Traditional development and Enterprise
web services
Enterprise Service Tools
Single service projects
Top down, bottom up, and meet in the middle
web service enablement for CICS, IMS, and
Batch/TSO environments.
Service flow projects
Graphical composition of CICS applications
chained together to form a new business
service.
Enable Enterprise Applications for Mobile and
Web
Supports traditional development/maintenance
• Cobol, PL/I, Assembler, JCL
Supports modern architecture development
11. 11
11
Rational Development and Test Environment for
System z
The ultimate in modern application development for System z
Note: This Program is licensed only for development and test of applications that run on IBM z/OS. The Program may not be used to run production workloads of any kind, nor more
robust development workloads including without limitation production module builds, pre-production testing, stress testing, or performance testing.
RDz & ISPF user
ISPF user
RDz user
RDz user
RDz user
COBOL, PL/I, C++, Java, EGL, Batch,
Assembler, Debug Tool
x86 PC running Linux
RDz user
IMS
z/OS
WAS
DB2
MQ
CICS
Increase availability of z/OS testing environment and resources
Liberate developers to rapidly prototype new applications
Develop and test System z applications anywhere, anytime!
Eliminate costly delays by reducing dependencies on operations staff
Improve quality and lower risk via automation, measurement, and collaboration
Focus on what is required for the change at hand, then scale
12. 12
12
Centralized administration
Push to Client - Configuration Files management and product updates
Desktop configuration setup
• upon connecting to the host, a
user is notified if they have
incoming changes to their
configuration files.
Product updates
• triggered from central place to all
the users connecting to the host
An Export Wizard – to help an Admin
configure various settings on RDz
client and upload it to a central
location.
Settings are grouped by function into
configuration files such as remote
connections or system mappings.
13. 13
13
Development Life Cycle
• Define the tasks
• Create a plan
• Create a work item
• Assign the work
item to a developer
• Load the
project/source
artifacts from SCM
• Navigate, Analyze,
Edit, Syntax check
source code
• Compile
• Quality assurance
• Debug
• Code Coverage
• Code review
• Unit Testing
• Check-in/Deliver the
source code
• Build
CLM RDz
RTC
RDz
RD&T
RTC
RTC
RDz
Source
Dev Build
Planning Governance/Unit test
14. 14
Any process: Executable and repeatable
Use ONE tool to support both agile and non-agile
Process
Architect
Variant #1
Variant #2
Variant #3
Project
Manager
Scrum
Waterfall
Iterative
Project C
Waterfall
Analyst Release
Engineer
Developer Quality
Professional
Project B
Analyst Release
Engineer
Developer Quality
Professional
Project A
Product Owner Scrum Master Team Member
Agile
Iterative
Formal
Project
Mgt
Template
Scrum
Template
14
17. 17 17
In-context Collaboration – Team View
Team Central
Shows what is happening on project:
• News & events
• What’s being worked on
• Changes
Configurable (RSS feeds) - New kinds of information
easily added
Personalized, Persistent - Each team member can
tailor to their needs
17
18. 18
18
Development Life Cycle
• Define the tasks
• Create a plan
• Create a work item
• Assign the work
item to a developer
• Load the
project/source
artifacts from SCM
• Navigate, Analyze,
Edit, Syntax check
source code
• Compile
• Quality assurance
• Debug
• Code Coverage
• Code review
• Unit Testing
• Check-in/Deliver the
source code
• Build
CLM RDz
RTC
RDz
RD&T
RTC
RTC
RDz
Source
Dev Build
Planning Governance/Unit test
19. 19
19
RDz Source Code Integration
RDz
Rational Team Concert
SCLM
Rational ClearCase
Framework for other SCMs
CA Endevor
Rational’s Strategic Source Code tooling is
RTC and RDz provides tight integration
RDz offers integration into a variety of other
Source Code Management (SCM) tools as
well as a framework for creating SCM
integration on your own (CARMA)
Variety of vendors supply plug-ins to RDz to
provide easy access to processes and
source code controlled by their products
22. 22
RDz and RTC together
• Once the project is loaded, it will appear
in the RDz z/OS projects view
• RDz augments the development
productivity & experience
• Appropriate editors (COBOL, maps, etc.)
and functions (content assist, real time
syntax check, etc.)
• High value functions (Enterprise web
services, SFM, Code review, Unit testing,
program analysis/control flow etc.)
23. 23
23
Create a Property Group
Generate property groups for your project based on RTC build definition
Allows RDz to resolve the dependencies and thus offer all the tooling
24. 24
24
Navigate datasets and jobs live on zOS
• Connect to multiple hosts concurrently
• Respects existing security configurations and user IDs
• Search, filter, browse, edit, compare, migrate, and
allocate new MVS datasets and USS files
• Copy source code, members, or datasets between
systems with a few mouse clicks.
• Access JES queues submit jobs, view job state, and
open output spools
• Submit TSO or USS commands
• Add datasets and members into projects to group
applications and work items together logically
• Open an emulator in the IDE to configured hosts
25. 25
25
Edit capabilities in RDz
• RDz at a high level has different types of
editors
• Lpex Editor
• Supports editing of COBOL, PLI,
HLASM, JCL, C/C++, Rexx etc.
• Provides ISPF like edit experience
including prefix commands, command
line and even look and feel
• Supports advanced edit functions for
COBOL, PLI and HLASM like real time
syntax checking, content assist
• COBOL and PLI advanced editors
• Based on the Eclipse editor
infrastructure, provide more advanced
edit capabilities like quick fixes, hyper-
linking, hover, easy navigation between
various edit sessions or within the same
edit session.
• Supports real time syntax checking,
content assist, key word highlighting etc.
26. 26
26
Edit capabilities in RDz
• RDz at a high level has different types
of editors
• WYSYWIG editors
• Creation, edit of BMS and MFS maps
• Has the source and design view –
allows drag and drop of fields in the
design view which generates the
appropriate source
• Data Editors
• Edit QSAM data
27. 27
27
Editor Productivity features - Develop
code more efficiently
Find all statements
and
variables
(including from COPYBOOKS or
INCLUDE)
29. 29
29
Editor Productivity Features
Provide "Open Called Program" action
Hyper linking support for Open/ Browse/
View copybooks/include files
Show In > Outline action to COBOL and
PL/I Editor
30. 30
30
Editor Productivity Features
Mark “Write occurrences” capability
to the supported EXEC statements
Occurrences within EXEC
statements known to be “writes” are
highlighted with a BROWN
background
• All “read” statements will continue to
be highlighted with a GREY
background
31. 31
31
Search for Occurrences Action
Once a variable is selected the user triggers the “Find Occurrences”
action using the Menu under search or keyboard shortcut “Ctrl+Shift+U”
The occurrences are shown in the “Search results” page
32. 32
32
Copy book and Include file resolution
• Hover over a COPY book name or a INCLUDE file to see the
contents
• Pressing F2 when hovering will “pin” the hover as shown
• The window can then be dragged to expand, the Pencil icon
shown below can be used to edit the copy book
33. 33
33
JCL Template Support
Templates are provided for standard JCL statements, and users can create their
own Templates
When editing .jcl file using “Ctrl+Space” in the editor will trigger a pop list allowing
the user to select the template to insert into the editor contents
34. 34
Enhanced Application Quality & Structure
Analysis
• Application Analysis
• Control flow diagrams for COBOL programs,
Graphical representation of the program flow with links to the
source
• Helps identify and highlight potential unreachable code
36. 36
Pending Changes
• If you want finer grained
control on your SCM
operations, then the Pending
Changes view is for you
• Check in, deliver, accept
changes
• Suspend, resume, discard
changes
• Replace, reload out-of-sync
• Resolve conflicts
• Open change sets and work
items via the web client
37. 37
Traceability : Check-in History
• Someone made a costly mistake merging and you want to
understand exactly where the mistake was made
• Problem : Traditional history commands & UI only show
before/after & merge states for a change set … it does not show
intermediates
• Solution : Use Check-in history in Eclipse, CLI or .NET clients
38. 38
38
Development Life Cycle
• Define the tasks
• Create a plan
• Create a work item
• Assign the work
item to a developer
• Load the
project/source
artifacts from SCM
• Navigate, Analyze,
Edit, Syntax check
source code
• Compile
• Quality assurance
• Debug
• Code Coverage
• Code review
• Unit Testing
• Check-in/Deliver the
source code
• Build
CLM RDz
RTC
RDz
RD&T
RTC
RTC
RDz
Source
Dev Build
Planning Governance/Unit test
39. 39
39
Debug Multiple Runtimes – using IBM Debug tool
• Use the cross-platform debugger to
debug end-to-end systems as they
execute in the runtime
• IMS
• CICS
• DB2
• Batch
• WAS
• Java
• From the workstation:
• View executing source code
• Step through host code line-by-line
• Set breakpoints
• Alter working storage values
• Alter register values
• Etc…
• Debug zOS and distributed code in the
same interface even stepping between
runtimes and platforms!
40. 40
40
Enhanced Application Quality – Code
Coverage
• Line Level Code Coverage - provides tools to measure
and report on test coverage of an application
• Indicating what source code lines were tested and remain to be
tested
41. 41
41
Innovative Debugging using Collaboration
• Collaborative debug with RDz and
IBM Debug Tool via the Rational
Team Concert Server!
• Share breakpoints and monitors
with other team members
• Transfer debug session control to
other users
• Save debugging sessions for later
retrieval in the team environment
• Works for WAS (JEE) and System
z applications
42. 42
42
Enhanced Quality & Structure Analysis – Code
review
• Code Review/Governance -
provides predefined rules and
templates for COBOL and PL/I
applications
•Ensure adherence to corporate
standards
43. 43
43
zUnit – Unit testing framework for z/OS
• Frameworks that assist developers in
writing code to perform repeatable,
self-checking unit tests are
collectively known as xUnit.
• xUnit defines a set of concepts that
together provide a light-weight
architecture for implementing unit
testing frameworks.
• JUnit, for example, is a very popular
instance of the xUnit architecture.
• zUnit is a xUnit instance for System z
• Goal is to encourage the continuous
integration and continuous testing
methodology for System z Application
development and maintenance
TESTCASE1
(...)
ADDTESTS2
(...)
TEST0012
(...)
TESTnnn2
(...)
SETUP2
(...)
TEARDOWN2
(...)
. . .
ZXUTCINI(...)
ZXUTCADD(...)
ZXUASTFM(...)
ZXUASTFA(...)
USER.ZUNIT(TESTCASE)
zUnit Test Runner API
Invoking the assertion APIs in the
SETUP, TEARDOWN, or active TEST
entry will fail the current Test.
1
Language-specific details:
In COBOL, this is the first program appearing in the Test Case source file and it will
be invoked by the Test Runner for Test Case initialization.
In PL/I, the is the procedure declared with option(fetchable) in the Test Case source
file and it will be invoked by the Test Runner for Test Case initialization.
2
Language-specific details:
In COBOL, these are expected to be subprograms (non-nested and therefore
compatible with FUNCTION-POINTER).
In PL/I, these are expected to be internal procedures that are declared at the
package level (non-nested).
44. 44
44
Development Life Cycle
• Define the tasks
• Create a plan
• Create a work item
• Assign the work
item to a developer
• Load the
project/source
artifacts from SCM
• Navigate, Analyze,
Edit, Syntax check
source code
• Compile
• Quality assurance
• Debug
• Code Coverage
• Code review
• Unit Testing
• Check-in/Deliver the
source code
• Build
CLM RDz
RTC
RDz
RD&T
RTC
RTC
RDz
Source
Dev Build
Planning Governance/Unit test
45. 45
Enterprise Extensions Specific Functions
• Dependency build
• “Smart build” of z/OS and IBM i
applications, based on what
has changed
• Promotion
• Flow of source code changes
and build outputs through
development hierarchy
• Packaging and deployment
• Package build outputs and
deploy to another system (e.g.
test environment, QA,
production, etc)
46. 46
Test Machine 1
Jazz Team Server
The big picture
1. Dependency build runs on build machine. Source is loaded from Dev Stream and
outputs are built in Dev Library.
2. Promotion build runs on build machine. Source is promoted from Dev Stream to
Test Stream and build outputs are copied from Dev Library to Test Library.
3. Package build runs on build machine. Test Library build outputs are archived in a
package.
4. Deploy build runs on various test machines. Package is loaded to test machine
and build outputs are deployed to runtime libraries.
Test Stream
Dev Stream
Build Machine
Test Library
Dev Library
Runtime Library
Test Machine 2
Test Machine 3
Package
Runtime Library
Runtime Library
1
2
2
3
4
4
4
47. 47
Dependency Build Summary
1- Scan
2- Preprocessing
Scan new or changed
files
Extract their logical
information and
dependencies
For changed files:
impact on build maps
Calculate dependency
sets Dependency
sets
Build processing
Server Mainframe (Build machine)
Build
Maps
49. 49
Promotion
• Flow source code changes and build outputs through the
development hierarchy
Source
Outputs
50. 50
Summary
• Many companies spend more than 70% on keeping lights on, and that amount is
increasing
• IT organizations have problems modifying applications at speed of business
• IBM provides a structured approach to incrementally modernize your portfolio
based on business priorities
• Change without a plan is chaos
• A Plan without change is stagnation
• Business goals change
• applications need to change to address them
• Continual renewal is required
• tools help to guide, govern, drive, and accomplish this change
51. 51
Getting started
Next steps to modernize your enterprise
applications
Try latest System z software for free
Sign up for free web-based training
Join IBM Rational Cafe Communities
Get prescriptive service solutions
www.ibm.com/rational/modernization
Latest news on System z twitter
Latest customer videos
Success stories
Latest skills: System z job board
Enterprise
Modernization
Revitalize
Unify
Empower
Optimize
Enabling Product
and Service Innovation