Implement ongoing analysis and management of business-critical IT applications

Use Rational Team Concert and Rational Asset Analyzer to manage the scope and risk of proposed changes as part of an optimized IT infrastructure

This article focuses on the aspect of the development lifecycle related to managing the scope and risk of changes and provides information about an integrated solution that can add value to your ability to plan for change.

Amy M. Silberbauer (asilber@us.ibm.com), Executive IT Specialist, IBM

Photo of SilberbauerAmy is currently the Rational Industry Solutions architect lead and a member of the Unleash the Labs team. She specializes in enterprise modernization, service-oriented architecture (SOA), and business process management. She has been with IBM for 25 years, with 22 years in development and six as lead architect of the Rational Asset Analyzer team.



12 June 2012

Also available in Chinese

Introduction

In today's competitive business climate, organizations must be able to respond quickly and efficiently to market needs that are driving changes in business goals, priorities, and requirements. To establish a competitive advantage, IT investments must be directly tied to these goals and priorities. A software delivery infrastructure that is flexible, collaborative, and integrated into the overall business is also critical to success.

A strategy to modernize the software development environment is the essential first step toward planning for business flexibility. In addition, ensuring that your environment supports multiplatform development completely and collaboratively is a core requirement. This can be a daunting task when we consider the large investments that most organizations have in mainframe-based applications that are driving critical business processes. These applications are generally undocumented, or at least under-documented, and skills required to maintain and change these applications are becoming scarce.

So how can your organization get started? What are the logical first steps toward establishing this modern development environment that can support business flexibility going forward? To ensure business flexibility through IT agility, a clear understanding of the existing software inventory must be well understood and directly tied to ongoing, planned changes to that inventory.

Therefore, the necessary first step is understanding the structure of existing applications that are currently guiding your business, so that you can get an image of how those applications "hang together." Only then can you establish a vision and roadmap for application modernization decisions, project and team organization, and, ultimately, a plan for software development and delivery that can respond quickly to changing business requirements. Furthermore, by integrating the process of collecting knowledge about applications with the process of making changes to those applications, your plans can be based on accurate information, so that you can properly assess the scope and risk of those changes.

This article addresses a critical component of multiplatform development: integration of software application analysis with the source code change management infrastructure to enable more accurate decision-making and planning throughout the process of software maintenance and change.


Application analysis overview

The integration starts with IBM® Rational Team Concert™ for end-to-end, multiplatform software development lifecycle management. It provides source code management, build, promotion, and deployment capabilities, but also the necessary infrastructure to organize projects and teams, to manage ongoing and interactive project planning, and to ensure complete traceability across the lifecycle among all stakeholders to associate IT changes with business requirements.

IBM® Rational® Asset Analyzer is then added to this environment to provide the application analysis that is required to understand the software artifacts that exist in the enterprise, as well as the relationships both within and across those applications.

These tools are part of a broader Rational solution, the Integrated Solution for System z Development, which focuses on establishment of a core, integrated, modern development environment for multiplatform development as the necessary first step in any enterprise modernization strategy. Figure 1 shows an initial Integrated Solution for System z topology.

Figure 1. ISD for z topology
topology diagram for an integrated solution

This article focuses on just two of these components, so you can integrate Rational Asset Analyzer source analysis capabilities with Rational Team Concert source code management to ensure ongoing analysis as part of your software development and change lifecycle.


Preparation

To prepare your development environment for this integrated solution, you must first have set up Rational Team Concert to manage a software project, including (but not limited to) these elements:

  • A project area (and, optionally, team areas)
  • zComponentProjects that represent your software application artifacts that are shared with the Rational Team Concert repository
  • A stream structure that represents your software application across the phases of the lifecycle, including production, formal tests, and development
  • One or more build definitions to build your software application
  • Enterprise extensions that are required for mainframe-based builds: data set definitions, translators, language definitions

Figure 2 shows an example of a stream structure used throughout the remainder of this article. Your stream structure might be different or more complex than this one.

Figure 2. Initial Rational Team Concert stream structure for multiplatform development
Diagram of stream structure for initial setup

As you evaluate how to integrate software application analysis with the ongoing software development lifecycle, you should assess where in this stream structure you want that analysis to occur. In other words, which "snapshot in time" best represents the software artifacts that include not only the ongoing changes but also a stable version of that application? Choosing production-level source might not necessarily reflect the ongoing changes from a development lifecycle until it is perhaps too late to analyze scope and risk of changes. A development-level representation might not be the best option either, because those changes might still be in progress and not yet at a stable level. Ideally, choose some level of software in formal test, because the changes represented have been identified as relatively stable and still contain ongoing changes.

Set up for Rational Asset Analyzer analysis

Rational Asset Analyzer software analyzes source code artifacts, such as COBOL or JCL, and subsystem information, such as resources defined in IBM CICS® or IBM DB2® software. To analyze source code, you simply point Rational Asset Analyzer software to the source code and scan. The integrated solution is realized by associating a Rational Asset Analyzer scan request with a Rational Team Concert build definition, whereby Rational Team Concert extracts the source to a location specified by the build definition and then makes a request to Rational Asset Analyzer software to scan from that location. The integration is built on the standard capabilities of both applications, enabling analysis as part of the ongoing software change process.

Note:
To set up for Rational Asset Analyzer analysis, you must have installed Rational Asset Analyzer on a Microsoft Windows server with the components required for mainframe subsystem scanning on your mainframe system.

Create a Rational Asset Analyzer Scan build definition in Rational Team Concert

Rational Asset Analyzer scan requests will be initiated in the integrated solution through a Rational Team Concert build definition by requesting a build. To define this build, open your Rational Team Concert client and follow these steps:

  1. From the Team Artifacts view, navigate to the project Builds folder, right-click, and select New Build Definition.
Figure 3. Create new build definition
Select New Build Definition from Builds folder
  1. On the New Build Definition page, click Next.
Figure 4. New Build Definition wizard
New Build Definition screen
  1. On the General Information page, provide an appropriate name to specify that this build definition is for Rational Asset Analyzer scanning, select the Ant-Jazz Build Engine template, and click Finish.
Figure 5. Build Definition General Information page
The General Information page is displayed
  1. On the Build Definition page, notice that there is a warning indicating that you must specify a supporting build engine. In the Supporting Build Engines section, click the Create button to create a new Rational Asset Analyzer build engine:
Figure 6. Build Definition Overview page
Build Definition dialog window

Larger view of Figure 6.

  1. On the New Build Engine General Information page, provide a name to specify that this is the Rational Asset Analyzer build engine, select the Jazz Build Engine type, and click Finish.
Figure 7. New Build Engine General Information page
Specify new build engine information
  1. Your new build engine appears in the Supporting Build Engines section of your build definition:
Figure 8. New Supporting Build Engine
New build engine associated with build definition
  1. Click the Schedule tab to provide details about scheduling your Rational Asset Analyzer scan.

Tip:
This can be any schedule that you prefer. You can use it to fully automate Rational Asset Analyzer scanning as part of a source code management lifecycle:

Figure 9. Schedule tab for the Rational Asset Analyzer scan
Specify characteristics for a scheduled scan

Larger view of Figure 9.

  1. Click the Properties tab and add a new property, SourceLocation, and specify a directory on your Rational Asset Analyzer server. This directory can be anything that you choose. It will be used later to complete the configuration of the solution.
Figure 10. The Scan Properties tab in Rational Asset Analyzer
Specify SourceLocation property for scans

Larger view of Figure 10.

  1. Click the Jazz Source Control tab. Here, you specify many of the details that enable scanning from an Rational Team Concert stream:
    • Create a repository workspace based on the stream representing your "snapshot in time" that holds the source code to be fetched for a build request.
    • Specify the load directory that is the target of the Rational Team Concert fetch based on the SourceLocation property specified above, and indicate that this directory should not be deleted. This ensures that ongoing delta changes will be scanned into Rational Asset Analyzer.
    • In the Accept Options section, indicate that changes to the stream should be accepted into the build workspace and that no build (scan) should occur unless there are changes.
Figure 11. Rational Asset Analyzer Scan Jazz Source Control tab
Specify characteristics for Jazz source control

Larger view of Figure 11.

  1. Click the Ant tab. In the Build File and Targets section, specify the absolute path and file name of a build XML file, based on your SourceLocation property, in the Build file entry field:
Figure 12. Rational Asset Analyzer Scan Ant tab, build file
Specify an RAA scan build XML file
  1. Save your new build definition.

The build definition and build engine will appear in your project Builds folder. With a Rational Team Concert build definition created to perform Rational Asset Analyzer scans, you are ready to set up the Rational Asset Analyzer server environment to perform those scans.

Prepare the Rational Asset Analyzer server to process Rational Team Concert scan requests

On your Rational Asset Analyzer server, perform these tasks to enable Rational Team Concert scanning:

  1. Ensure that the Jazz Build Engine is installed and started on the Rational Asset Analyzer server machine, so that it is ready to accept build requests. (See the link in Resources for where to get the Jazz Build Engine and installation instructions.)
  2. (Optional) Create an application in Rational Asset Analyzer to hold your scanned artifacts. This is useful if, for example, you intend to analyze multiple software applications represented by distinct Rational Team Concert project areas.
Figure 13. Rational Asset Analyzer application definition
Dialog window to define a new application
  1. (Optional) If you have defined an application in step 2, record the ID of this new application through the Rational Asset Analyzer REST interface. You can access the REST interface through the browser on your Rational Asset Analyzer server, using a URL similar to this:

    https://host:port/raarest/assets/application

You should see something similar to what the following screen segment shows.

Figure 14. Asset Summary for the application
Summary lists assets and IDs

Define the specifics of your Rational Asset Analyzer scan request

  1. Locate or create the directory on your server that was specified as the SourceLocation on your RAA Scan build definition Properties tab in the previous section.
  2. In this directory, create two text files with the associated content (customize the values highlighted in bold for your environment):
    • RAAScan.text
    • raaBuild.xml

RAAScan.txt

This file contains Rational Asset Analyzer scanning instructions, where:

  • container is the Load Directory specified in your Rational Asset Analyzer Scan build definition above on the Jazz Source Control tab
  • applicationId is the optional numeric identifier for the application in Rational Asset Analyzer (if you did not create an application, remove this line from the file)
Listing 1. RAAScan.text file contents
{
    container: "c:\\ScanRAA\\RTCTestStream", 
    scanZips: false, 
    scanSymbols: false, 
    applicationId: 11 
}

raaBuild.xml

This is the ANT script to initiate scan (build) requests from Rational Team Concert, as specified on the Ant tab in your RAA Scan build definition, where:

  • message is the value that appears in the build results, so it should be informative
  • executable points to your Rational Asset Analyzer installation directory
  • URL provides Rational Asset Analyzer connection information
  • text file is the name of the file above (for example, RAAScan.txt).
Listing 2. raaBuild.xml file contents
<project name="scanRAA" default="startScan"> 
    <target name="startScan"> 
    <echo message="Submit a scan request of sample source..."/> 
    <exec executable="<RAAInstallRoot>\bin\dmhrest.bat" 
        <arg value="POST"/> 
        <arg value="http://<host>:<port>/raarest/assets/container?action=scan"/> 
        <arg value="-if"/> 
        <arg value="c:\ScanRAA\RAAScan.txt"/> 
    </exec> 
    </target> 
</project>

With your integrated solution components in place, you are ready to perform an initial scan of application artifacts.


Prime the Rational Asset Analyzer repository

With your software application source code in the Rational Team Concert repository and the solution components in place, you can prime the Rational Asset Analyzer repository with initial analysis information. This is simple now that you have a Rational Team Concert build definition to initiate Rational Asset Analyzer scans:

  1. Locate the RAA Scan build definition in your Rational Team Concert client, and right-click to select Request Build from the drop-down menu.
Figure 15. Request the Rational Asset Analyzer scan
Request Build selected on the RAA Scan menu
  1. In the Request Build dialog window, simply click Submit to initiate the Rational Asset Analyzer scan request. Your build request will show in the build results view.
  2. When the build request is finished, double-click to open the build results:
Figure 16. RAA Scan Build Request results
Status and related information

Larger view of Figure 16.

Tip:
Completion of the build requests does not indicate that the Rational Asset Analyzer scan is finished, but only that the scan request is finished.

  1. Open Rational Asset Analyzer in the browser to view the status of this initial scan request.

When the analysis is finished, you will probably need to do a few more things to ensure that this initial inventory is primed and ready for ongoing analysis. Here are a few things to consider:

  • Rational Asset Analyzer expects all copybooks to be available to resolve references during source code scanning. As a result, you might see source code analysis errors in these cases:
    • If your zComponentProjects in Rational Team Concert are set up so that copybooks are separated from source code, you will need to create one or more Rational Asset Analyzer concatenation sets to specify the location of the copybooks.
    • If your application references subsystem copybooks, such as those provided by IBM CICS®, IBM DB2®, or IBM Information Management System (IMS™), you will need to ensure that those copybooks are made available to Rational Asset Analyzer. You can do this in one of two ways:
      • Include the copybooks in a separate zComponentProject and share them with the Rational Team Concert repository so they are available when source is fetched from the stream for a scan request.
      • Create a directory on your Rational Asset Analyzer server and download the copybooks to that location for reference in a Rational Asset Analyzer concatenation set.
  • If your application runs on or uses mainframe subsystems, such as CICS, DB2, or IMS, or your application contains Assembler source code, you will need to supplement the inventory with scans of these subsystems and any Assembler source code by using the Rational Asset Analyzer host scanning capabilities. This is outside of the scope of the integration with Rational Team Concert. As an example, the solution sample application is a CICS COBOL application, so we have supplemented the inventory with analysis information resulting from a scan of the CICS subsystem on the host system.
  • Errors typically result from missing application source code or redundancies in your application source code. Rely on this information to ensure that your migrated application is complete.

You should not expect your application inventory in Rational Asset Analyzer to be completely error-free, although you should determine an appropriate and acceptable percentage of errors as a threshold and work through the issues to achieve that goal.


Conclusion

Your integration of Rational Team Concert and Rational Asset Analyzer for application analysis is now ready to be included as part of the typical maintenance or planned release lifecycle. Ongoing analysis will occur automatically, provided that you have set up the RAA Scan build definition to operate on a scheduled basis and have indicated that builds (scans) should only occur when changes are accepted into the associated repository workspace through the stream.

With this integrated approach, analysis of the scope and risk of proposed changes can be a core part of the ongoing software change and development lifecycle, based on a current and easily managed source code inventory. As Figure 17 shows, Rational Asset Analyzer captures the content of your applications and provides valuable information to help you plan and make decisions.

Figure 17. Rational Asset Analyzer application diagram
Diagram of application artifacts and interactions

In addition, you can make this information available to your developers within the Eclipse-based Rational Team Concert and associated IDE workspace. Then they, too, can make better-informed decisions about changes.

Armed with software application knowledge pulled directly from the actual source code within the process of making changes, you can plan based on accurate information to properly assess the scope and risk of those changes, significantly improving the flexibility of your IT infrastructure.

Resources

Learn

Get products and technologies

  • Download a free trial version of Rational Asset Analyzer.
  • Download Rational Team Concert from Jazz.net and try it free on up to 10 projects for as long as you want (requires registration).
  • Get the Jazz Build Engine installation files on the Rational Team Concert page of Jazz.net, under the All Downloads section For instructions, see Installing the Build System Toolkit.
  • Evaluate other IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment.

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=819236
ArticleTitle=Implement ongoing analysis and management of business-critical IT applications
publish-date=06122012