Using IBM Rational Team Concert for System z and the Jazz platform: Part 2. Integrating IBM Rational Developer for System z with IBM Rational Team Concert for System z for increased value

Cross-platform application development is difficult today. There are a multitude of tools, a mishmash of processes, cultural differences, and development team silos based on platform or technology used, all of which complicate and slow the software delivery process of these types of applications. This article describes how IBM® Rational® Developer for System z, the best-of-breed integrated development environment for building cross-platform applications, integrates with the team collaboration facilities provided by the Rational Team Concert for System z software. This integration gives teams that are building cross-platform applications the tools that they need to break down the development silos, coordinate their efforts, provide better communication flow, increase traceability, and achieve higher levels of application quality.

Share:

Alex A. Akilov (aaakilov@us.ibm.com), Software Architect, Rational Enterprise Modernization, IBM

Photo of Alex A. AkilovAlex Akilov joined IBM in 1987 and has been involved with the development of various products in the Software Group, as well as various research projects during a five-year assignment with IBM Research. He was a founding member and chief programmer of IBM Rational Team Concert for System z and IBM Rational Team Concert for i products. He later served as the architect and development lead who was responsible (with Scott Longwell) for the integration of the Rational Team Concert for System z and Rational Developer for System z products. He is currently involved with the definition of the Rational Enterprise Modernization Green Thread, as well as other strategy and enablement initiatives.



Scott P. Longwell (longwell@us.ibm.com), Development Lead, Rational Developer for System z z/OS development environment, IBM

Photo of Scott P. LongwellScott Longwell has been with IBM for 29 years. He is the development lead of the IBM z/OS development environment component in the Rational Developer for System z product. Scott was the architect and development lead for the integration of Rational Developer for System z and Rational Team Concert for System z (with Alex Akilov).



Steven Ma (stevenma@us.ibm.com), Usability Engineer, IBM

Photo of Steven MaSteven Ma joined IBM in 1999 and has worked on various projects in the Software Group, including VisualAge for COBOL, WebSphere Portal Developer Community, and WebSphere Studio Asset Analyzer. Over the last few years, he has been serving as the User Experience lead for Rational Developer for System z, for which he is primarily involved in user interface design, feature demonstration contents, and accessibility compliance. Steven graduated from the University of Toronto with both a B.A.Sc and an M.A.Sc degree in mechanical and industrial engineering.



David Myers (myersda@us.ibm.com), Product Line Manager, Rational Developer for System z, IBM

Photo of David MyersDave Myers, the IBM System z Application Development Tools product line manager, is in charge of Rational Developer for System z and Rational Team Concert for System z. He is based in Research Triangle Park, North Carolina, USA. Dave has extensive experience in both the distributed and the IBM System z environments, including nine years as a software engineer working with government, banking, insurance, and finance customers in designing, developing, and modernizing heterogeneous Java 2 Platform, Enterprise Edition, Microsoft .NET, and System z applications and workloads. He also works as a developer on Eclipse-based Rational Developer for System z, Rational Business Developer, and Jazz-based tools when time allows.



03 December 2009

Also available in Portuguese

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.

Background

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
Java Web app calls EPSCSMRT COBOL pgm using SOAP

Larger view of Figure 1.

Figure 2. Mortgage application team structure
Shows roles of team members and their locations

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
screen view shows the defect report and attachment

Larger view of Figure 3.


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
Debugger on Result.jsp line 57, ret value=0.72

Larger view of Figure 4.

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
3270 screen shows CICS debug control panel

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
IDE debug stopped in EPSCSMRT CICS COBOL program

Larger view of Figure 6.

Figure 7. An illustration of the failure
Shows how EPSMPMT returns truncated result

Larger view of Figure 7.


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
Load wizard page with two selected CPY members

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 MASTEVE.MORT.

Figure 9. z/OS project with repository artifacts loaded
Rational Developer project shows repository files

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
Variable sizes different in the comparison view

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
Pending Changes tab shows EPSPDATA.cpy checked in

Larger view of Figure 11.


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
Shows EPSMPMT and EPSCSMRT programs selected

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
Web UI shows the correct result of 1750.72

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.


Summary

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.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Rational software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational, DevOps
ArticleID=449504
ArticleTitle=Using IBM Rational Team Concert for System z and the Jazz platform: Part 2. Integrating IBM Rational Developer for System z with IBM Rational Team Concert for System z for increased value
publish-date=12032009