For an application development project to be successful, developers need to employ both construction and application lifecycle management tools. Construction tools such as integrated development environments (IDEs) provide developer productivity tools such as smart editors, validators, emulators and debuggers. Application lifecycle management tools provide planning and change management, source version control, assembly (build) management and other tools that enable teams of developers to work together.
Cross-platform application development teams that are globally distributed have a much more difficult time, though, since most construction and application lifecycle management tools specialize in supporting specific platforms or technologies. Such teams are often divided into silos based on technology, platform or geographic location. The reason for this division is that the tools that they use for their daily tasks are different and are not designed to work with the tools that the other team may be using.
With the latest releases of IBM® Rational® Developer for System z® (hereafter referred to as "Rational Developer") and IBM® Rational Team Concert™ for System z® ("Rational Team Concert" hereafter), IBM Rational software is providing a holistic solution that addresses the construction and application life cycle management needs of such globally distributed cross-platform application development teams.
Rational Developer provides the construction tools for developers of all tiers of the application (be it Java™, Web, or COBOL and IBM® CICS®) and results in a common user experience for all developers. Rational Team Concert provides a common repository with supporting tooling to create and manage plans, work items, versions of the various types of source members required in cross-platform applications, builds and assembly for various types of source members, as well as providing process policy enactment, rich project health metrics gathering, event feeds and transparency. In addition, there are many other collaborative development features that make developers much more in tune with the concert that they are a part of.
This article demonstrates how the two products were designed to work together to help a cross-platform application team collaboratively report, plan, diagnose, fix, build and redeploy a fix to a critical problem found by a customer.
Our story is about a globally distributed development team which, among other things, is responsible for maintaining a cross-platform mortgage payment application. The business logic for the application is in a set of CICS program modules. This application also has a Java-based Web user interface running in IBM® WebSphere® Application Server that invokes the CICS transaction through a Web service call. All source members of the application are managed in the Rational Team Concert source control repository. The members of the development team use an Eclipse based development environment into which both the Rational Developer and the Rational Team Concert clients were installed (this is referred to as shell-sharing). They use Rational Team Concert work items for tracking issues and change management and the Rational Team Concert build infrastructure for their cross-platform build and deployment needs. Furthermore, the Rational Team Concert project dashboard gives the product owner full visibility into the progress and health of the project. Figures 1 and 2 illustrate the structures of the application and the team.
Figure 1. Structure of the cross-platform mortgage application
Figure 2. Mortgage application team structure
Defect reported by customer
Scott, the product owner, receives a call from a customer who reports receiving an incorrect response from the company's mortgage service portal: a calculated monthly payment of USD $0.72 for a 30--year, $300,000 loan with a fixed mortgage rate of 5.75%. Scott promptly verifies the problem and opens a defect work item in the Rational Team Concert repository (Figure 3) and then assigns it to the Web developer, Dave, to investigate. Scott uses the Rational Team Concert screen capture tool to attach a screen photo of the failure to the work item.
Figure 3. Defect used to track the investigation and fix of the problem
Using the Team Debug feature to diagnose the problem
Dave gets an email which tells him that a new critical defect has been assigned to him. He also sees it in his work item inbox in his Rational Team Concert client. He loads the component that contains the Web application for which the failure was reported into his development environment from the Rational Team Concert repository and launches the WebSphere Application Server test system in debug mode specifying the parameters that were captured in the screenshot. He reproduces the problem and traces the failure down to the values returned from the CICS Web service call.
Figure 4. Web UI application debug view shows failure
Realizing that it is likely that the CICS COBOL code caused this defect, Dave uses the "Drop to frame" feature in the debugger to reposition the debug session to the line just before the Web service call. He converts his debug session to a team debug session by choosing the "Share with team repository" action from the context menu. Lastly, he chooses the "Park Debug Session" from the context menu to allow others to continue debugging from where he left off.
Reassigning the defect in Rational Team Concert
Dave adds a comment to the work item mentioning the parked debug session and assigns it to Steven, the CICS developer.
Steven sees the work item that Dave assigned to him and finds the Team Debug session that Dave parked for him. He drags the work item to his Current work item trim on the status bar in his development environment so that any changes he makes are automatically associated with this work item. He sees the exact same thing that Dave sees – the COBOL Web service returns the wrong value from the computation. He suspects the problem is not related to the COBOL converter generated for the Web service but that the COBOL CICS programs are broken.
Debugging the COBOL CICS application
Steven uses the Debug feature to trace and debug the code. He goes into the IBM Debug Tool to set up a DTCN profile and activates it. This allows him to debug the COBOL CICS application running in the test CICS region:
Figure 5. Activate the CICS debug profile
With the debug profile activated, Steven launches the debug session from Rational Developer, traces the code, and discovers that, although the calculation is performed correctly, the variable used to store the calculated value
EPSPDATA-RETURN-MONTH-PAYMENT is declared incorrectly. This leads to a truncation of the calculated payment.
Figure 6. Debugging the CICS application
Figure 7. An illustration of the failure
Using Rational Team Concert with Rational Developer for editing IBM z/OS applications
To fix this problem, Steven goes to the Team Repository view, locates the component where the COBOL source parts are stored for this mortgage calculation application, and performs a "Load zFiles to z/OS" action to load the COBOL sources from the stream in the source control repository into his IBM System z development environment:
Figure 8. Load zFiles to the z/OS wizard
The fact that Rational Developer and Rational Team Concert are co-installed (shell-sharing) and integrated allows Steven to load the COBOL parts into his IBM z/OS project and his sandbox on z/OS. In this case, his sandbox on z/OS has a prefix of
Figure 9. z/OS project with repository artifacts loaded
After the source files are loaded into his z/OS project, Steven opens the COBOL program, EPSCSMRT, in the IBM System z LPEX editor. As he examines the code, he can clearly see that the truncation is the problem, because the two variables used in a MOVE statement are declared with different storage.
Figure 10. Comparison of two copy members
EPSPCOM-RETURN-MONTH-PAYMENT is declared as a PIC S9(7)V99 COMP. However, EPSPDATA-RETURN-MONTH-PAYMENT is declared as a PIC S9(1)V99 COMP. This difference confirms his assessment that the latter is declared incorrectly.
To fix this problem, Steven changes the declaration of EPSPDATA-RETURN-MONTH-PAYMENT to be the same as EPSPCOM-RETURN-MONTH-PAYMENT. He saves his changes, and checks the changes into his repository workspace in the Rational Team Concert software configuration management (SCM) tool.
Figure 11. Check in pending changes to the SCM
Rebuild and test the code change
Steven invokes the IBM z/OS "Rebuild project" action to perform a team build. Rational Team Concert rebuilds the EPSCSMRT and EPMPMT load modules into the DFHRPL concatenation of the test region. Because the load modules have changed, Steven needs to issue a NEWCOPY command for CICS to pick up the changes.
From the z/OS project, Steven creates an application deployment manifest file and opens it in the Resource Definition editor. Using the editor, he adds the name of the resources to the Resource list and clicks Install to install it to CICS. By using the editor, he can perform the NEWCOPY without having to use the emulator.
Figure 12. Update the module in CICS by using the manifest file
With the resources reinstalled, Steven tests his changes from the Mortgage Web application. He runs through his test cases and gets the correct output from the application (see Figure 13).
Figure 13. Test the changes
Complete the work item
With the code tested, the work item can be completed. Steven goes back to the Pending Changes view in his development environment, selects the change set that is associated with his current work item, adds a description of the change, and chooses the "Deliver" action to flow the changes from his repository workspace to the development stream. To close the defect, he opens the work item, marks it resolved, and initiates an approval request to Dave.
Dave gets notified automatically of Steven's request for approval. By using the mortgage application Web client, Dave can verify the fix by running through the same set of test cases. Dave approves the change and updates its status to "verified". Then he adds an additional request for approval from Scott.
Scott is notified of Dave's approval request. He reviews the explanation and the fix in the work item, confirms his approval, and assigns the defect to Alex to do an official build and promote of the change to the test and production environments.
This article was meant to whet your appetite for the kinds of collaborative development scenarios that are possible when you combine the Rational Developer for System z Integrated Development Environment with the Rational Team Concert for System z collaborative application life cycle management tools. We've demonstrated how these seamlessly and powerfully integrated products complement each other to support the needs of cross-platform application development teams.
There are other integration features available in these products that we did not cover in this article, such as storing hyperlinks to z/OS file system artifacts in Rational Team Concert work items and adding unmanaged z/OS file system members to the Rational Team Concert repository. Review the Resources section below for more information about these and other features not covered here, and watch developerWorks for articles and demos that will cover the integration between these two products in more detail.
- Watch Part 1, Part 2, and Part 3 of a demo which plays out the scenario described in this article in detail.
- Learn more about Jazz and Rational Team Concert at jazz.net, and explore the Rational Team Concert developerWorks portal. You can also check out the IBM Jazz channel on YouTube.com.
- Learn more about IBM Rational Team Concert for System z by visiting the ibm.com Rational Team Concert for System z product page, the portal on jazz.net, reading topics in the Information Center, and the other articles in this Using IBM Rational Team Concert for System z series.
- Learn more about IBM Rational Developer for System z by visiting the product page, the community hub at the Rational Café, reading through the Information Center or reviewing the demos in this IBM Education Assistant module.
- Watch Part 1 and Part 2 of a demo that shows, in more detail, how the collaborative debugging feature described in this article can be used.
- Read the article Debugging remote CICS applications by using IBM Rational Developer for System z Debugger published in the IBM System z Advisor newsletter.
- Subscribe to the IBM developerWorks newsletter, a weekly update on the best of developerWorks tutorials, articles, downloads, community activities, webcasts and events.
- Browse the technology bookstore for books on these and other technical topics.
- Learn about other applications in the IBM Rational Software Delivery Platform, including collaboration tools for parallel development and geographically dispersed teams, plus specialized software for architecture management, asset management, change and release management, integrated requirements management, process and portfolio management, and quality management. You can find product manuals, installation guides, and other documentation in the IBM Rational Online Documentation Center.
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Explore Rational computer-based, Web-based, and instructor-led online courses. Hone your skills and learn more about Rational tools with these courses, which range from introductory to advanced. The courses on this catalog are available for purchase through computer-based training or web-based training. Additionally, some "Getting Started" courses are available free of charge.
Get products and technologies
- Download a free trial version of Rational Team Concert for System z.
- Download a free trial version of Rational Developer for System z.
- Download these IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Tivoli®, and WebSphere®.
Dig deeper into Rational software on developerWorks
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.