Lecture Notes on ALM, CLM, and the Jazz Platform

advertisement
Introduction
This paper discusses Application Lifecycle Management (ALM) to manage life of an application
through its aspects of Governance, Development and Maintenance. The need for ALM processes
and tools have increased with the ever-increasing complexity of software development. This
paper also covers IBMs tool for Collaborative Lifecycle management (CLM) and its relationship to
ALM. It also covers the key tools of CLM : Rational Team Concert, Rational, Rational
Requirement Composer and Rational Quality Manager.
Application Lifecycle Management
Application Lifecycle Management (ALM) is a broad term to creating and managing an application
throughout its entire life cycle – from design through coding and testing, to maintenance and
eventually to retirement.
Three Aspects Of ALM
ALM can be divided into three distinct areas: governance, development, and operations. Figure 1
illustrates this, showing each of the aspects
Governance
Application
Lifecycle
Management
Development
Operations
Figure 1 Three Areas of ALM
An applications lifecycle is demarcated by significant events. It begins with an idea , which is then
executed to ultimately build an application. The next big event is deployment when the application
goes into production and finally when it no longer has significant business value, the application
reaches end of life and is removed from service.
Governance, which encompasses all of the decision-making and project management for this
application, extends over the entire life cycle. Development, the process of creating the
application, occurs first between idea and deployment and it occurs again several times in the
application’s lifetime, both for upgrades and for wholly new versions. Operations, the work
required to run and manage the application, typically begins shortly before deployment and then
occurs continuously until the end of the application. The application is terminated or replaced.
Figure 2
A Closer View of ALM [1]
Governance
In ALM, the purpose of governance is to ensure the application satisfies business needs. Figure 2
provides a close-up view of ALM governance, providing more detail on what it entails.
The first step in ALM governance is business case development. As Figure 3 indicates, this
analysis takes place before the development process begins. It addresses the business need
that the project seeks to meet. It consists of expected cost, benefits and risks. Once the
business case is approved, application development starts, and governance is now implemented
through project portfolio management. Once the application is completed it is deployed and it
becomes part of the organization’s portfolio of applications.
Figure 3: Governance Extends over Entire Application Lifecycle [1]
An application is an asset like any other, and so the organization needs an ongoing
understanding of its benefits and costs. Application portfolio management (APM) provides this, a
way to avoid duplicating functionality among different applications. APM also provides
governance for the deployed application, addressing things such as when updates and significant
revisions make business sense. It contains business case development and project portfolio
management for each of the revisions to the application as can be seen on the Development line
in Figure 3.ECTS OF ALM: GO
Governance
Governance is the only activity that extends throughout the entire ALM time span. In many ways,
it’s the most important aspect of ALM. The application cannot meet all its functionality in the given
time if project manager fails to govern the project efficiently.
Development
While equating ALM to the software development process isn’t accurate, development certainly is
a fundamental part of every application’s lifecycle. Figure 4 takes a closer look at this aspect of
ALM.
Figure 4 Development occurs in the first part of application’s lifecycle; periodically thereafter [1]
Once the business case is approved, the software development lifecycle begins. Development is
a series of iterations as it can be seen in the figure. Each iteration contains some requirements
definition, some design, some development, and some testing and deployment. (The exact
activities depend upon the development methodology employed)
Once the SDLC process for version 1 of the application is complete, the application is deployed.
However it is not the end of the development, as the application needs periodic updates, as
shown in the figure, and perhaps one or more full SDLC efforts to create new versions, as in this
example. (Certainly from a business perspective, the developing business is still very much in the
red financially and will be for some time after initial deployment. Only after the application is fully
deployed and operational (and revenues are being received) will the development organization go
into the black and start to experience a profit).
Operations
Every deployed application is monitored and managed. Figure 5 shows some of the important
parts in this operations process.
Figure 5 Operations begin shortly before application deployed; continues until application
removed from service. [1]
As with Governance, the Operations line is intimately connected to Development activity.
According to David Chappell planning for deployment likely begins shortly before the application
is completed and the act of deployment itself is a fundamental part of operations. Usually
deployment is the last step of development. Once deployed, application enters a maintenance
phase (or operations). Once the application is deployed, it must be monitored, maintained and
updated throughout its useful lifetime. Similarly, each update to the application must be deployed
once it’s completed, as the figure indicates.
Collaboration Lifecycle Management
Collaborative Lifecycle Management (CLM) is an integrated Application Lifecycle Management
solution by IBM. It provides integrations across Jazz-based products to connect the work of
analysts with developers and testers. Cross-product links support traceability, web-like
navigation, review, commenting, and status tracking across project repositories. CLM integrations
build on the Jazz™ Foundation to provide a common approach to artifact linking, dashboards,
security, and user interface frameworks. [2]
CLM integrations provide the following capabilities: [2]
•
•
•
•
Link to existing artifacts across repositories in integrated products; for example, test cases are
linked to work items and requirements.
Hover-over links to quickly check status of associated work; for example testers can
monitor the status of a defect reported to the development team.
Add a viewlet to a dashboard to report query results from associated projects; for example, one
may display requirements not yet assigned in test plans
Add comments to any artifact in an integrated repository. (Integrated Repository – It is workspace
repository to hold copies of files and folders.)
Team members can use CLM integrations to achieve business objectives across the application
lifecycle, as shown in the Figure 6.
Figure 6 Collaborative Lifecycle Management connects analysts, developers, and testers [2]
Figure 6 shows the three applications of CLM. Rational Requirements professional also know as
Rational Requirement Composer, Rational Quality Manager and Rational Team Concert.
In IBM® Rational® DOORS® Requirements Professional:[2]
• Requirements are implemented in different iterations in Rational Team Concert and validated by
test plans in Rational Quality Manager.
• Analysts and other team members develop requirements that drive development work items, test
plans and test cases.
•
•
•
In IBM Rational Team Concert: [2]
Project and development managers use iteration plans to create a development schedule
Iteration plan stories and other work items implement individual requirements.
Developers work on defects submitted by testers as a result of test execution.
•
•
•
In IBM Rational Quality Manager:[2]
The test team links requirements to test plans and test cases.
Testers link test cases to development work items to track development progress.
Testers submit defects in Rational Team Concert and verify the status of a defect or a build.
Jazz Platform
Jazz is an integrated development platform with an emphasis on team collaboration,
communication, and software development processes. [6]
Jazz is built on Eclipse technology and focused on integrating tasks across the software lifecycle
to improve the productivity of an entire team. This platform consists of architecture and a set of
application frameworks and toolkits, as shown in the Figure 7. [3]
Figure 7 Jazz Platform [4]
The Jazz platform also supports simple artifact exchange and collaboration between developers
by using higher value assets, such as complete change sets, as compared to the previous more
time consuming exchange of source code files or mail with code snippets. Different types of
collaboration such as instant messaging are present to support communication and presence
awareness, and enable everybody to be informed of events important to the team or to the
individual.
Live project health information can be drawn directly from actual work, rather than from timeconsuming progress reports in the jazz platform. Traceability and auditability are automated by
managing all artifacts and their inter-relationships across the life cycle. [3]
Project and Team Areas
The Jazz platform provides basic concepts to creating and managing projects as illustrated in
Figure 8
Figure 8 Project and team areas in Rational team concert [3]
The following structures are used for project and team management in Rational Team Concert:
Project Area
“A project area provides definition for the project deliverables, team structure, process, and
schedule.” [4]
Team Areas
“A team area manages team membership, roles assignments, and team artifacts.” [4]
Work Item Category
“Categories group work items by the various components or functional areas of the project and
are associated with a team area.” [4]
Team process
“A process is the collection of roles, practices, rules, and guidelines that are used to organize and
control the flow of work. The Jazz platform is process aware, and the rules of process behavior
validate preconditions and provide follow-up actions. A process can also define project reports,
queries, and work item types” [4]
The CreditCheck Team Area that brings development team together on collaborative
development in Rational Team Concert is shown in Figure 9. Some key Team Area properties are
highlighted in the figure. For example, the Team Artifacts and Team Central views provide
transparency to team health, the team members and their assigned roles, and the iteration
structure with the current iteration plan that is selected. [4]
Team Artifact
Iteration
Team Members
Admin
Figure 9 The CreditCheck area in Rational Team Concert [3]
The following artifacts are used for agile planning in Rational Team Concert (Figure 9):
Development line
A development line represents an area of activity within a project that typically has its own
objectives, deliverables, team, process, and schedule. Project intervals or phases are defined
within a development line and are expressed as a hierarchy of iterations.
Iteration
Iterations are defined within a development line and are expressed as a hierarchy of project
intervals. Iteration plans are used to express the details of an iteration in terms of work items.
Work item
A work item is a representation of the tasks and issues that a team needs to address during the
development cycle. Work items are key for iteration planning and indicators of the health of the
project. [3]
Rational Requirement Composer (RRC)
“RRC is a tool to define, collaborate and manage requirements for any size development or
project team. Project teams can manage their requirements, write good use cases, improve
traceability, strengthen collaboration, reduce project risk, and increase quality with it. It provides
improvement in the following key areas:” [3]



�
Improved requirements definition, validation, and management of requirements change
through the software development life cycle
�
Increased and clearer communication among business stakeholders and IT delivery teams
wherever they are located
Less project rework, faster project execution, and lower-cost delivery
Team members require a number of techniques in order to elicit requirements information.
Rational Requirements Composer assists in this area because it provides functions to capture
sketches and storyboards, use cases, glossaries, and process models. Analysts can use these
functions to provide context information for requirements as shown in Figure 10.
Figure 10 Rational Requirements Composer [3]
Rational Team Concert
Rational Team Concert (Figure 11) is a Rational product on the Jazz team collaboration platform.
It provides the following key capabilities to support collaborative development:
 Integrates seamlessly the development task across the delivery life cycle for the team �
 Facilitates team collaboration and coordination and helps the team develop applications
more effectively and with less risk
 Supports team collaboration across co-located and globally distributed teams �
 Establishes and maintains traceability and audit trails, and automates bookkeeping so that
teams are accountable �
 Integrates into Eclipse for developers and provides Web access for external contributors
 Makes collaborative development more enjoyable [3]
Figure 11 Rational Team Concert [3]
Rational Team Concert supports and provides seamlessly integrated workflows, both for the
application life-cycle assets managed by the Jazz repository, but also to assets managed by
external repositories that are seamlessly integrated into the Jazz platform.
The following ALM domains are supported by Rational Team Concert (Figure 11):




Source code management �
Work items management, including agile iteration planning �
Build management �
Team health and collaboration
Rational Team Concert provide integration into Eclipse for developers, and Web access to team
collaboration capabilities for external contributors who require easy tool access with minimal
setup.
Rational Quality Manager
Rational Quality Manager provides a test management system that puts the team in total control
of their test efforts. Test planning, construction, and execution can be completed in Rational
Quality Manager. Decisions are managed in a database that enables the team to track against
the plan.
One of the most critical questions the test team needs to answer is: “When are we done testing?”
Teams are better equipped to answer that question by placing an emphasis on the test plan,
which enables a team to track their progress against the plan with Rational Quality Manager. A
team can do as much or as little as they need.





The Rational Quality Manager product provides the following features:
A collaborative Web-based quality management solution �
A central repository for test planning, construction, deployment, and execution �
The ability to align the test effort with project requirements �
Quantifiable metrics for project tracking and decision making �
Keyword-driven manual test authoring and execution [3]
Rational Quality Manager works for simple test management needs and yet is sophisticated
enough to scale to larger teams that share test assets across multiple releases of software.[3]
Most of the work item managed by the system can be assigned to a team member. A test plan
can be broken down into sections and assigned to different owners. Test case and test script
construction can be assigned and tracked to gauge the level of effort and progress in building the
tests. Test execution can be assigned and tracked through the execution results. Test lab
requests can be used for configuring test servers.
This assignment of work in all aspects of the test effort helps the team to ensure that all of the
expected work is completed. It also gives them insight into their progress against the work effort.
References
[1] David , Chappell. White Paper, 2008 www.redbooks.ibm.com/abstracts/sg247622.html
[2]http://publib.boulder.ibm.com/infocenter/rqmhelp/v2r0/index.jsp?topic=/com.ibm.help.common.jazz.calm.doc/topics/c_c
alm_common.html
[3] Collaborative Application Lifecycle Management with IBM Rational Products December 2008
[4] https://jazz.net/story/about/about-jazz-platform.jsp
[5] http://www-01.ibm.com/software/rational/alm/collaborate/
[6] http://realsearchgroup.org/SEMaterials/tutorials/jazz/jazz_tutorial.html
Download