SG 247362
SG 247362
Cécile Péraire
Mike Edwards
Angelo Fernandes
Enrico Mancin
Kathy Carroll
ibm.com/redbooks
International Technical Support Organization
July 2007
SG24-7362-00
Note: Before using this information and the product it supports, read the information in “Notices” on
page vii.
This edition applies to the IBM Rational Method Composer Version 7.1
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
The team that wrote this IBM Redbooks publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Chapter 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Part 2. The IBM Rational Unified Process for System z for Beginners . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to
Service-Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Introduction to RUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 The heart of RUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 The IBM Rational Method Composer (RMC) platform . . . . . . . . . . . . . . . . . . . . . 13
2.3 Key principles for successful software development. . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Adapt the process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Balance competing stakeholder priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Collaborate across teams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.4 Demonstrate value iteratively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.5 Elevate level of abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.6 Focus continuously on quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 RUP lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Inception Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Elaboration Phase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.3 Construction Phase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.4 Transition Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Developing service-oriented solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Service Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.2 Service Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.3 Service Realization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.4 Service Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Part 3. The IBM Rational Unified Process for System z for Advanced Practitioners . . . . . . . . . . . . . . 51
Part 4. IBM RUP for System z for Method Designers and Project Managers . . . . . . . . . . . . . . . . . . . 199
Chapter 10. IBM RUP for System z Work Breakdown Structure . . . . . . . . . . . . . . . . . 201
10.1 Inception Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
10.2 Elaboration Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.3 Construction Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
10.4 Transition Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Chapter 11. How to customize the IBM Rational Unified Process for System z . . . . 207
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.2 How to create a project plan specific to your project. . . . . . . . . . . . . . . . . . . . . . . . . 209
11.2.1 Identify the phase iterations, activities, and tasks to execute . . . . . . . . . . . . . . 209
11.2.2 Creating a project plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.3 How to customize the RUP for System z using RMC . . . . . . . . . . . . . . . . . . . . . . . . 212
11.3.1 Method development work products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.3.2 Method development tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Appendix A. Catalog Manager case study: Inception Phase Work Products . . . . . . 227
Appendix B. Catalog Manager case study: Elaboration Phase Work Products . . . . 229
Appendix C. Catalog Manager case study: Construction Phase Work Products . . . 231
Appendix D. Catalog Manager case study: Transition Phase Work Products. . . . . . 233
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Contents v
vi The IBM Rational Unified Process for System z
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring
any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs.
Java, JavaScript, JavaServer, JSP, J2EE, RSM, and all Java-based trademarks are trademarks of Sun
Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Pentium, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
This IBM® Redbooks® publication describes the new Rational® Unified Process® (RUP®)
for System z™ method, which has been especially created for use by organizations that are
involved in developing application software in the System z environment.
Developing application software in the System z environment has been going on for many
decades and generally during this time, traditional development lifecycle methodologies have
been applied to the development process. With the current environment of businesses
needing to be more agile, on demand, and flexible to user needs, pressure is on IT
organizations to respond in as agile and flexible a manner as possible in order to satisfy user
needs with precision and quality.
RUP is based on proven development principles and contains best practices for developing
software. This specific adaptation of a modern best-of-breed methodology, that is, RUP for
System z, provides you with a development process that has already yielded much valued
benefits to software development practitioners in other platform environments.
This IBM Redbooks publication demonstrates the use of the RUP for System z method by
using a case study of an application development example. It provides you with actual
example work products produced during the various lifecycle iterations and phases, so that
you are able to more easily understand the iterative and incremental nature of application
development and its associated benefits.
The new RUP for System z is also available as a Web site for easy reference, through a
Rational Method composer (RMC) plug-in. This IBM Redbooks publication shows you how to
download and install the new RUP for System z plug-in. Furthermore, it helps you configure it
if necessary, to suit your own application development environment in order to enable your
team to derive the utmost benefit and add value to your development activities.
This IBM Redbooks publication is intended for the whole of the System z application
development community from beginners to advanced practitioners, for roles ranging from
project managers, architects and designers, to programmers and testers alike, because it
covers the full end-to-end development lifecycle for the System z environment. In addition,
System z Development Managers and Method Designers in particular might find this book
useful as a ready reference guide.
For convenience and to suit different levels of user expertise, this book is broken down into
the following parts:
Part 2. The IBM Rational Unified Process for System z for Beginners
Part 3. The IBM Rational Unified Process for System z for Advanced Practitioners
Part 4. The IBM Rational Unified Process for System z for Method Designers and Project
Managers
Part 5. Appendixes
Figure 0-1 From left, Enrico Mancin, Cécile Péraire, Angelo Fernandes, and Mike Edwards
Cécile Péraire is a method architect and author with IBM US, contributing to the definition of
IBM software development methods, including the Rational Unified Process (RUP) and some
of its most significant extensions. Before joining the IBM Rational Unified Process team,
Cécile worked as a senior consultant with Rational, assisting clients adopting Rational
methods and tools. She has about 16 years of experience in the field of software
engineering. Cécile holds a Ph.D. in software testing from the Swiss Federal Institute of
Technology in Lausanne (EPFL).
Angelo Fernandes is a Quality and Support Lead for System z development at the
Australian Development Laboratory in IBM Australia. He has more than 28 years of System z
development and support experience, having worked in both client and IBM software
development environments. Over the years, he has fulfilled roles spanning the complete
end-to-end lifecycle of software development and has project managed a number of IBM
System z software product development and support projects.
Mike Edwards is a Software Engineer on the development team for Electronic Service
Agent™ for zSeries® in IBM Canada. He holds a Master’s Degree in Engineering from the
University of Toronto and has worked in the IT Industry for more than 20 years. Before joining
IBM, Mike worked in a number of industries as an independent consultant.
Kathy Carroll is a Software Engineer in Research Triangle Park, North Carolina. She has
more than 15 years experience with application development software from development to
consulting. Her current role is the lead developer for the VAGen to EGL Migration team. She
holds a Computer Science degree from Wake Forest University.
Per Kroll, STSM, Manager RUP/RMC, IBM Software Group, Rational, Raleigh.
Bruce MacIsaac, Manager RUP/OpenUP Content, IBM Software Group, Rational, San Jose.
Bob Cancilla, Product Market Manager - Rational Tools for System i™ and System z, IBM
Software Group, Rational, Costa Mesa.
Preface xi
James Conover, IBM SWG-AIM, Buffalo
and
Joe DeCarlo, Manager for Special Projects, International Technical Support Organization,
Raleigh Center via San Jose, California.
Your efforts will help increase product acceptance and customer satisfaction. As a bonus,
you'll develop a network of contacts in IBM development labs, and increase your productivity
and marketability.
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
Chapter 1. Introduction
In this chapter, we discuss the purpose, the target audience, the rationale for the book, and
the scope of the method. We also provide an overview of the contents, including case study
examples we used during the researching and writing of this book.
Its aim is to describe the key fundamental principles and best practices of RUP and to
demonstrate the value of applying these very same principles and practices to development
activities within the System z environment by using Rational Unified Process for System z.
By using a real System z CICS® TS application written in COBOL as a case study, the aim is
to demonstrate the key elements and steps involved in adopting the RUP for System z
process to application development in the System z environment.
The book also describes how to obtain and install the new RUP for System z plug-in created
for the Rational Method Composer (RMC), so that you can publish the method as a Web site
and further customize the method, if necessary, to suit your own organization’s needs and
preferences.
1.2 Audience
This IBM Redbooks publication is intended for the whole of the System z application
development community from project managers, architects and designers, to programmers
and testers alike, because it covers the full end-to-end development lifecycle for the System z
environment.
In addition, System z Development Managers and Method Designers in particular, that is,
people who are responsible for implementing methods, standards, and procedures within
their teams or organizations, might find this book more useful as a reference guide to assist
them in adapting RUP for System z to their own development environments. The intent is for
you to be able to implement RUP for System z in a manner that is most appropriate to your
own specific development environment, so that you might reap the vast benefits that are
associated with it.
1.3 Rationale
Although in the recent past since the 1990s, there have been several changes in methods
and processes used in the System z application development environment, they have all
largely been related to the traditional waterfall development lifecycle model. So far, it has
been a common belief that modern development methodologies, such as RUP, are
applicable only to the Object-Oriented programming world.
However, given the current frequently changing, on demand business climate in which we
live, businesses are required to be nimble, flexible, and responsive to ever changing business
needs. Therefore, we thought it timely to investigate and document how a modern, popular,
and integrated development methodology, such as RUP, can be applied to application
development in the System z environment in order to add value to the applications and
products developed for System z.
The result is this IBM Redbooks publication. This book leverages the best elements of RUP
with a specific focus on the System z development environment.
Pure maintenance is out of our scope. For more information about maintenance, refer to 4.6,
“Note on maintenance projects” on page 49 for a brief discussion about maintenance projects
and refer to the RUP for Maintenance Projects plug-in at:
http://www.ibm.com/developerworks/rational/downloads/06/plugins/rmc_prj_mnt/
The RUP for Maintenance Projects plug-in provides a delivery process, tasks, and guidance
for avoiding pitfalls during a maintenance cycle and successfully delivering a product with
higher quality than the previous release.
1.5 Overview
The main topics of this IBM Redbooks publication are:
Introduction to RUP and its extension to Service-Oriented Architecture (SOA)
Why RUP for System z
RUP for System z roadmap
RUP for System z process essentials
RUP for System z end-to-end lifecycle
RUP for System z content elements
Catalog Manager case study
Enterprise Generation Language (EGL)
RUP for System z Work Breakdown Structure (WBS)
How to customize RUP for System z
The main topics are followed by an appendix, which contains work products of the Catalog
Manager application development case study that were generated during various iterations of
the RUP development phases. There is an appendix that provides a terminology mapping
between RUP and System z terms and another that provides information about where to
download the RUP for System z Rational Method Composer (RMC) plug-in.
Chapter 1. Introduction 5
development, obtained from industry experts and from thousands of clients and development
projects. So why not expose RUP to benefit the System z environment too?
Chapter 1. Introduction 7
8 The IBM Rational Unified Process for System z
Part 2
Most of the content in this chapter comes directly from RUP and RUP for SOA where you can
obtain additional introductory information.
The IBM Rational Unified Process (RUP) is a software engineering process framework. It
provides best practices and guidance for successful software development and a disciplined
approach to assigning tasks and responsibilities within a development organization. Its goal is
to ensure the production of high-quality software that meets the needs of its users within a
predictable schedule and budget. Figure 2-1 illustrates the overall architecture of RUP.
The graph shows that most iterations cover all disciplines; however, the emphasis varies over
time. For example, in early iterations you spend more time on requirements; in later iterations,
you spend more time on implementation.
This introduction to RUP and its SOA extension includes the following content:
Introduction to RUP
This section answers fundamental questions about the nature and purpose of RUP.
One of the core practices behind RUP is iterative and incremental development. This practice
is also good to keep in mind as you start with RUP: Do not try to “do” all of RUP at once.
Adopt an approach to implementing, learning, and using RUP that is itself iterative and
incremental. Start by assessing your existing process and selecting one or two key areas that
you want to improve. Begin using RUP to improve these areas first and then, in later
iterations or development cycles, make incremental improvements in other areas.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 13
The key elements of the platform are:
Method delivery tool
RUP is delivered to practitioners as an interactive Web site using industry-standard
browser technology. A RUP Web site is a Rational Method Composer-published process
presentation configured for your project and tailored to your specific needs. The Web site
is created using dynamically generated HTML pages, which RMC enables you to publish
in the form of multiple RUP Web sites, each representing a configured and tailored
process definition.
Method configuration tool
IBM Rational Method Composer (RMC) supports the fine-grained publish-time
configuration of method content and processes to meet the varied needs of different
projects and users. RMC allows the optional inclusion of method and process extensions
using Method Composer’s plug-in technology. It also allows you to configure variants on
processes, which are published differently depending on user-specific selections.
Method authoring tool
The IBM Rational Method Composer (RMC) tool is specifically designed for method
content management and process authoring with functions, such as form-based
authoring, breakdown structure-based authoring, content browsing, content search, and
import and export of method content. RMC also provides mechanisms for rapid process
assembly using process patterns and reusable method elements. It supports the creation
of method plug-ins that provide powerful ways of extending and modifying existing
content, simplifying method content, process management, and maintenance.
A marketplace for process extensions
The RMC/RUP section of the developerWorks® Rational Web site provides a place for
process engineers in the software development community to share their method
extensions as consumable plug-ins and provides a rich source of method extensions for
the project manager. The RMC/RUP section of the developerWorks Rational Web site can
be found at:
http://www.ibm.com/developerworks/rational/products/rup/
Benefits:
Lifecycle efficiency
Increased project agility
Realistic plans and estimates
Pattern:
Rightsize the process to project needs, including:
– The size and distribution of the project team
– The complexity of the application
– The need for compliance
Adapt process ceremony to the lifecycle phase (allow formality to evolve from light to
heavy as uncertainties are resolved).
Improve the process continuously.
Balance plans and estimates with the level of uncertainty.
Anti-patterns:
Always see more process and more detailed up front planning as better:
– Force early estimates and stick to those estimates.
– Develop precise plans, and manage the project by tracking against a static plan.
Benefits:
Align applications with business and user needs.
Reduce custom development.
Optimize business value.
Pattern:
Define, understand, and prioritize business and user needs.
Prioritize projects and requirements and couple the needs with the software capabilities.
Understand what assets we can leverage.
Balance asset reuse with user needs.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 15
Anti-patterns:
Thoroughly document precise requirements at the outset of the project and force
stakeholder acceptance of requirements:
– Negotiate any changes to the requirements where each change can increase the cost
or duration of the project.
– Lock down requirements up front, thereby reducing the ability to leverage existing
assets.
– Primarily perform custom development.
Architect a system only to meet the needs of the most vocal stakeholders.
Benefits:
Team productivity
Better coupling between business needs and the development and operations of software
systems
Pattern:
Motivate people to perform at their best.
Create self-managed teams.
Encourage cross-functional collaboration (for example, analysts, developers, and testers).
Provide effective collaborative environments.
Manage evolving artifacts and tasks to enhance collaboration, progress, and quality
insight with integrated environments.
Integrate business, software, and operation teams.
Anti-patterns:
To nurture heroic developers willing to work extremely long hours, including weekends
Have highly specialized people equipped with powerful tools for doing their jobs, with
limited collaboration between different team members, and limited integration between
different tools. The assumption is that if just everybody does his or her job, the end result
will be good.
Benefits:
Early risk reduction
Pattern:
Enable feedback by delivering incremental user value in each iteration.
Adapt your plans using an iterative process.
Embrace and manage change.
Attack major technical, business, and programmatic risks early.
Anti-patterns:
Plan the whole lifecycle in detail and track variances against plan (can actually contribute
to project failure).
Assess status in the first two thirds of the project by relying on reviews of specifications,
rather than assessing status of test results and demonstrations of working software.
Benefits:
Productivity
Reduced complexity
Pattern:
Reuse existing assets.
Use higher-level tools and languages to reduce the amount of documentation produced.
Focus on architecture first.
Architect for resilience, quality, understandability, and complexity control.
Anti-patterns:
To go directly from vague, high-level requirements to custom-crafted code:
– Because few abstractions are used, a lot of the discussions are made at the code level
compared to a more conceptual level, which misses many opportunities for reuse,
among other things.
– Informally captured requirements and other information require decisions and
specifications to be revisited repeatedly.
– Limited emphasis on architecture causes major rework late in the project.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 17
Benefits:
Higher quality
Earlier insight into progress and quality
Pattern:
Ensure team ownership of quality for the product.
Test early and continuously in step with integration of demonstrable capabilities.
Incrementally build test automation.
Anti-patterns:
To peer-review all artifacts and complete all unit testing before integration testing
To conduct in-depth peer review of all intermediate artifacts, which is counterproductive
because it delays application testing and hence identification of major issues
To complete all unit testing before doing integration testing, again delaying identification of
major issues
Objectives
The primary objectives of the Inception Phase include:
Establishing the project’s software scope and boundary conditions, including an
operational vision, acceptance criteria, and what is intended to be in the product and what
is not
Discriminating the critical use cases of the system, the primary scenarios of operation that
will drive the major design trade-offs
Exhibiting, and maybe demonstrating, at least one candidate architecture against some of
the primary scenarios
Estimating the overall cost and schedule for the entire project (and more detailed
estimates for the Elaboration Phase)
Estimating potential risks (the sources of unpredictability)
Preparing the supporting environment for the project
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 19
Figure 2-2 Typical iteration in the Inception Phase
Milestone
At the end of the Inception Phase is the first major project milestone or Lifecycle Objectives
Milestone. At this point, you examine the lifecycle objectives of the project and decide either
to proceed with the project or to cancel it.
Evaluation criteria:
Stakeholder concurrence on scope definition and cost/schedule estimates.
Agreement that the right set of requirements has been captured and that there is a shared
understanding of these requirements.
Agreement that the cost/schedule estimates, priorities, risks, and development process
are appropriate.
All risks have been identified and a mitigation strategy exists for each risk.
The project might be canceled or considerably rethought if it fails to reach this milestone.
Objectives
The primary objectives of the Elaboration Phase include:
To ensure that the architecture, requirements, and plans are stable enough, and the risks
sufficiently mitigated to be able to predictably determine the cost and schedule for the
completion of the development. For most projects, passing this milestone also
corresponds to the transition from a light-and-fast, low-risk operation to a high cost, high
risk operation with substantial organizational inertia.
To address all architecturally significant risks of the project.
To establish a baseline architecture derived from addressing the architecturally significant
scenarios, which typically expose the top technical risks of the project.
To produce an evolutionary prototype of production-quality components, as well as
possibly one or more exploratory, throwaway prototypes to mitigate specific risks, such as:
design/requirement trade-offs, component reuse, and product feasibility or
demonstrations to investors, clients, and users.
To demonstrate that the baseline architecture will support the requirements of the system
at a reasonable cost and in a reasonable time.
To establish a supporting environment.
In order to achieve these primary objectives, it is equally important to set up the supporting
environment for the project. This includes tailoring the process for the project, preparing
templates, guidelines, and setting up tools.
Essential activities
The essential activities of the Elaboration Phase include:
Defining, validating, and baselining the architecture as rapidly as practical.
Refining the vision, based on new information obtained during the phase, establishing a
solid understanding of the most critical use cases that drive the architectural and planning
decisions.
Creating and baselining detailed iteration plans for the Construction Phase.
Refining the development process and putting in place the development
environment, including the process, tools, and automation support required to support
the construction team.
Refining the architecture and selecting components. Potential components are
evaluated and the make, buy, and reuse decisions sufficiently understood to determine
the Construction Phase cost and schedule with confidence. The selected architectural
components are integrated and assessed against the primary scenarios. Lessons learned
from these activities might well result in a redesign of the architecture, taking into
consideration alternative designs or reconsideration of the requirements.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 21
Figure 2-3 Typical iteration in Elaboration Phase
Milestone
At the end of the Elaboration Phase is the second important project milestone, the Lifecycle
Architecture Milestone. At this point, you examine the detailed system objectives and scope,
the choice of architecture, and the resolution of the major risks.
Evaluation criteria:
The product vision and requirements are stable.
The architecture is stable.
The key approaches to be used in test and evaluation are proven.
Test and evaluation of executable prototypes have demonstrated that the major risk
elements have been addressed and have been credibly resolved.
The iteration plans for the Construction Phase are of sufficient detail and fidelity to allow
the work to proceed.
The iteration plans for the Construction Phase are supported by credible estimates.
All stakeholders agree that the current vision can be met if the current plan is executed to
develop the complete system in the context of the current architecture.
Actual resource expenditure as opposed to planned expenditure is acceptable.
The project may be aborted or considerably rethought if it fails to reach this milestone.
Objectives
The primary objectives of the Construction Phase include:
Minimizing development costs by optimizing resources and avoiding unnecessary scrap
and rework.
Achieving adequate quality as rapidly as practical.
Achieving useful versions (alpha, beta, and other test releases) as rapidly as practical.
Completing the analysis, design, development, and testing of all required functionality.
To iteratively and incrementally develop a complete product that is ready to transition to its
user community. This implies describing the remaining use cases and other requirements,
fleshing out the design, completing the implementation, and testing the software.
To decide if the software, the sites, and the users are all ready for the application to be
deployed.
To achieve some degree of parallelism in the work of development teams. Even on
smaller projects, there are typically components that can be developed independently of
one another, allowing for natural parallelism between teams (resources permitting). This
parallelism can accelerate the development activities significantly, but it also increases the
complexity of resource management and workflow synchronization. A robust architecture
is essential if any significant parallelism is to be achieved.
Essential activities
The essential activities of the Construction Phase include:
Resource management, control, and process optimization
Complete component development and testing against the defined evaluation criteria
Assessment of product releases against acceptance criteria for the vision
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 23
Figure 2-4 Typical iteration in Construction Phase
Milestone
At the Initial Operational Capability Milestone, the product is ready to be handed over to the
Transition Team. All functionality has been developed and all alpha testing (if any) has been
completed. In addition to the software, a user manual has been developed, and there is a
description of the current release.
Evaluation criteria
The evaluation criteria for the Construction Phase involve the answers to these questions:
Is this product release stable and mature enough to be deployed in the user community?
Are all the stakeholders ready for the transition into the user community?
Are actual resource expenditures as opposed to planned still acceptable?
Transition might have to be postponed by one release if the project fails to reach this
milestone.
Objectives
By the end of the Transition Phase, lifecycle objectives should have been met and the project
should be in a position to be closed out. In some cases, the end of the current lifecycle might
coincide with the start of another lifecycle on the same product, leading to the next generation
or version of the product. For other projects, the end of transition can coincide with a
complete delivery of the artifacts to a third party, who might be responsible for operations,
maintenance, and enhancements of the delivered system.
This Transition Phase ranges from being very straightforward to extremely complex,
depending on the kind of product. A new release of an existing desktop product might be very
simple, whereas the replacement of a nation’s air-traffic control system can be exceedingly
complex.
Activities performed during an iteration in the Transition Phase depend on the goal. For
example, when fixing bugs, implementation and test are usually enough. If, however, new
features have to be added, the iteration is similar to one in the Construction Phase requiring
analysis, design, and so forth.
The Transition Phase is entered when a baseline is mature enough to be deployed in the user
domain. This typically requires that some usable subset of the system has been completed
with acceptable quality level and user documentation so that transitioning to the user provides
positive results for all parties.
Essential activities
The essential activities of the Transition Phase include:
Executing deployment plans
Finalizing user support material
Testing the deliverable product at the development site
Creating a product release
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 25
Getting user feedback
Fine-tuning the product based on feedback
Making the product available to users
Milestone
At the end of the Transition Phase is the fourth important project milestone, the Product
Release Milestone. At this point, you decide if the objectives were met, and if you need to start
another development cycle. In some cases, this milestone might coincide with the end of the
Inception Phase for the next cycle. The Product Release Milestone is the result of the
customer reviewing and accepting the project deliverables.
At the Product Release Milestone, the product is in production and the post-release
maintenance cycle begins. This might involve starting a new cycle or additional maintenance
release.
The framework for RUP/SOMA is described in Figure 2-6, which demonstrates the key
phases of the method, including the influences driving each phase and the artifacts produced.
Note that the key artifact manipulated by the method is the Service Model in 2.5.4, “Service
Model” on page 29.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 27
Figure 2-7 Service Identification workflow
The RUP Artifact: Service Model is described in both a document form and a Unified
Modeling Language (UML) form (Template: Service Model in Word and Template: Service
Model in UML) though it is more likely that a project will use elements of both of these forms
in presenting the results of their work.
Chapter 2. Introduction to the IBM Rational Unified Process and its extension to Service-Oriented Architecture 29
30 The IBM Rational Unified Process for System z
3
With the demand for flexibility and responsiveness comes the need and responsibility to
provide supportive applications and systems to meet user needs. Delivery of applications and
systems must be both timely and of a consistent quality. In addition, applications that we build
must accurately satisfy requirements, so that the users get precisely what they need to be
able to achieve their business objectives optimally.
The waterfall model, as the name suggests, is derived from the cascading effects of a
waterfall with a distinct start and end, with an ordered number of phases in between, from
requirements gathering and analysis, design, implementation and integration, concluding with
testing at the very end. A phase is not started until a prior stage is completed.
With the waterfall model approach, there are generally only two user interaction points: the
first during the Requirements gathering stage and the other at the final Deployment stage
when the application solution or product is handed over to the users. Obviously, there can be
and generally there are surprises at the end in that user needs have been accurately met.
Figure 3-1 on page 33 shows a traditional waterfall model diagram.
So is it time for the System z development world to be introduced to a more modern and
thoroughly tested development approach? We think so.
Today, as software development is becoming a key business capability, our best practices
are maturing within the larger context of business-driven development. We think RUP for
System z is the method to adopt to take System z development and its resulting application
products to the next higher level of quality and consumerability.
The problem with the requirements discipline in the waterfall model is that it is usually
performed one time at the beginning of the project based on which product or application is
built. A considerable amount of time elapses between interaction and input from the user
toward deriving the requirements, to the time the product is built, tested, and delivered. By
then, more likely than not, user needs have changed in order to keep pace with the current
climate of frequently changing business conditions. The primary problem here is the inability
to easily adapt to changing user requirements.
The problem with deployment in the waterfall model is that there is generally only one
deliverable handed over to the user in the form of the final product, which is delivered at the
very end of the development cycle. This practice, as alluded to earlier, creates cause for
surprises because user needs are not accurately met.
RUP addresses these same deficiencies and provides many more other benefits. Rather than
prescribing a plan-build-assemble sequence of activities for a software project, RUP is an
iterative, incremental process that steers development teams toward results more quickly.
An iteration typically spans two to three weeks, but the number and size of the iterations are
project specific. The iteration interval after it has been decided must remain constant
throughout the project. Furthermore, the iterations are divided into four phases: Inception,
Elaboration, Construction, and Transition as illustrated in Figure 3-4 on page 35.
Kurt Bitnner, IBM Communities of Practice Architect, in his paper Driving Iterative
Development With Use Cases, March 2006, states that each iteration concludes in a minor
milestone being met and each phase concludes in a major milestone being met.
Furthermore, each iteration produces a partial working implementation of the final system
with each implementation building on the previous implementation until the final product is
complete, states Per Kroll, Manager of Methods, IBM Rational, in Transitioning from waterfall
to iterative development, April 2004.
So, in summary, the key differences between the waterfall and RUP’s iterative process are:
Requirements is done not only at the beginning but continues throughout the process,
because requirements by nature change over time and development efforts need to be
aligned to stakeholder needs.
Implementation starts earlier to enable early stakeholder feedback, which is key to
ensure that we build the right system.
Test starts earlier. Because the later the discovery of defects, the more costlier it is to put
things right.
Project plans are refined throughout the project based on a continuous re-evaluation (at
least one time per iteration) of risks and priorities.
As we all know, the System z environment is still the powerhouse of the industry, powering
and driving all the mission-critical systems and applications that keep the largest modern day
enterprises up and running, ready to adapt quickly and efficiently to the next round of
changes that future innovation will bring.
For this reason, we thought it necessary to produce a development method specifically for
System z practitioners, a method that depicts software development practices currently in use
in the System z environment while still leveraging some of the modern best practices
encompassed in RUP.
RUP for System z provides practitioners with specific software development guidance and a
succinct end-to-end process dedicated to the System z environment. RUP for System z
includes a large set of work product examples taken from an application created in CICS
Cobol and turned into Web services. The end-to-end lifecycle is available in the form of a
Work Breakdown Structure (WBS).
The RUP for System z roadmap addresses green field development and system evolution
with architectural changes (including turning an existing capability into a Web service for
instance) or with significant impact on existing user business processes. Refer to 4.6, “Note
on maintenance projects” on page 49 for a discussion about pure maintenance projects.
The Conceive New Project activity brings a project from the initial germ of an idea to a point at
which a reasoned decision can be made to continue or abandon the project. During this
activity, an economic analysis, the Business Case, is produced and the risks are assessed.
The Business Case, Risk List, and initial Vision are reviewed. If found satisfactory, the project
is formally set up and is given limited sanction (and budget) to begin the planning effort. An
initial draft of the Software Development Plan is created.
The Define Requirements activity covers the definition of the project Vision. It gains
agreement on the scope of the system and outlines the key requirements. The requirements
can be described in terms of a Use-Case Model, which includes Use Cases and Actors. The
primary purpose of a use case is to capture the required system behavior from the perspective
of the user in achieving one or more desired goals. A use case represents one or more
sequences of actions that a system performs that yield an observable result of value to a
particular actor, such as a user. In inception, the main use cases are identified and briefly
described. The requirements (functional and non-functional), which do not fit appropriately
within the use cases, must be documented in the Supplementary Specifications. After several
use cases and supplementary requirements are identified, they are prioritized so that their
order of development can be decided. For instance, use cases that represent some
significant functionality, have a substantial architectural coverage (that exercises many
architectural elements), or stress or illustrate a specific and delicate point of the architecture,
will be developed first. In addition, the project terms must be defined in a Glossary, which will
be maintained throughout the life of the project. This activity also kicks off the test effort by
providing a first draft of the Test Plan.
The Plan the Project activity starts with an assessment of the current iteration and a
reevaluation of the risks. It refines the Software Development Plan (covering all project
phases and iterations) and creates a fine-grained Iteration Plan for the next iteration or
iterations. This activity also acquires the necessary resources (including staff) to perform the
coming iteration or iterations.
The project might be canceled or considerably rethought if it fails to reach this milestone.
The Refine Requirements activity addresses detailing the requirements of the system in
terms of its use cases. Only the use cases that are in the scope of the current iteration are
detailed in order to reach the goal of the iteration. The remaining use cases will be detailed in
later iterations. Detailing a use case involves describing its flow of events (see Guideline: Use
Case for guidance about how to detail a use-case flow of events). The requirements
(functional and non-functional) that do not fit appropriately within the use cases need to be
detailed in the supplementary specifications. Use cases and supplementary requirements
continue to be prioritized, so that their order of development can be decided. The project
terms continue to be defined or refined in the Glossary.
The Define Architecture activity starts by creating an initial sketch of the software architecture
in Define Candidate Architecture. This sub-activity defines a candidate architecture (initial
system organization), leverages existing assets, defines the architectural patterns, identifies
the architecturally significant use cases, and perform a use-case analysis (also called a
use-case realization) on each candidate architecture. This includes identifying the Analysis
Elements necessary to express the behavior of each use case. These analysis elements will
be later refined into design elements, such as Modules and Design Classes, and source
code. After a candidate architecture has been defined, the Define Architecture activity
completes the architecture for an iteration in Refine the Architecture. This sub-activity
provides the natural transition from analysis activities to design activities by identifying
appropriate design elements from analysis elements. It also describes the organization of the
system’s run-time and deployment architecture and maintains the consistency and integrity of
the architecture. The activity ends with a review of the resulting architecture, as documented
in the Software Architecture Document.
The Design Components activity addresses the detailed design of one or more components
within the scope identified in the iteration plan. The main goals are (see Perform Component
Design):
Refine the definition of each component behavior with interactions of design elements
(modules, classes, interfaces, events, and so forth) or remaining Analysis Elements.
Identify new design elements by analyzing these interactions.
Partition the design elements into subsystems and document the internal structure and
behavior of the subsystems, their interfaces, and their dependencies. These subsystems
can now be refined and implemented separately from each other.
Refine the definitions of design elements by working out the “details” of how they realize
the behavior required of them.
When services are involved, the Design Components activity refines the design with service
elements (see Design Services). When databases are involved, this activity identifies the
design elements to be persisted in a database and designs the corresponding database
structures (see Design Databases). When a user-interface is involved, this activity models
The Code and Unit Test Components activity completes a part of the implementation so that
it can be delivered for integration. This activity implements the elements in the design model
by writing source code, adapting existing source code, and compiling, linking, and performing
unit tests. If defects in the design are discovered, rework feedbacks on the design are
submitted. The activity also involves fixing code defects and performing unit tests to verify the
changes. The code is reviewed to evaluate quality and compliance with the programming
guidelines.
The Integrate and Test activity covers the integration and test of the product. The Integrate
sub-activity integrates changes from multiple implementers to create a new consistent
version of an Implementation Subsystem (this is done for any implementation subsystem
within the scope of the iteration) and integrates implementation subsystems to create a new
consistent version of the overall system when appropriate. The integrator integrates the
system, in accordance with the Integration Build Plan, by adding the delivered
implementation subsystems into the system integration workspace and creating Builds. Each
build is then integration-tested by a tester. After the last increment, the build can be
completely system-tested. The Test sub-activity includes the tasks required for testing within
a particular scope. The scope could be a specific level or type of test, such as Functional
Verification Test (FVT) or System Verification Test (SVT). It might also be limited to the
components, or portions thereof, that have been implemented or are planned to be
implemented during the iteration. The Test sub-activity includes the refinement of the Test
Plan, the definition of Test Cases and their implementation into Test Scripts (a test script is a
step-by-step instruction enabling the execution of a test case), the execution and evaluation
of the tests (by a group of tests called Test Suite created to exercise a category of tests, such
as FVT or SVT), and the corresponding reporting of incidents that are encountered. It also
includes the definition and implementation of the Installation Verification Procedures (IVPs).
The Plan the Project activity starts with an assessment of the current iteration and a
re-evaluation of the risks. It refines the Software Development Plan (covering all project
phases and iterations) and creates a fine-grained Iteration Plan for the next iteration or
iterations. This activity also acquires the necessary resources (including staff) to perform the
coming iteration or iterations.
The project might be canceled or considerably rethought if it fails to reach this milestone.
Summary of essential work products and their state at the end of the Elaboration Phase:
Glossary (about 80% complete)
Software Development Plan (about 95% complete)
Iteration Plans for the construction iterations (about 100% complete, at least for first
iteration)
Risk List (about 50% complete)
Use-Case Model (about 80% complete)
Supplementary Specifications (about 80% complete)
Software Architecture Document (about 100% complete)
Design Model (about 60% complete)
Service Model (about 60% complete)
Test Plan (about 30% complete)
Test Cases (about 40% complete)
Test Scripts (about 40% complete)
Implementation Elements, including source code (about 40% complete)
Builds are available (one or more per iteration, for instance)
One or more executable architectural prototypes are available (to explore critical
functionality and architecturally significant scenarios)
Installation Verification Procedures (IVPs) (about 80% complete)
The Refine Requirements activity completes detailing the requirements of the system in terms
of Use Cases. The requirements (functional and non-functional) that do not fit appropriately
within the use cases must be detailed in the Supplementary Specifications. The project terms
continue to be defined or refined in the Glossary.
The Design Components activity completes the detailed design of the components within the
scope identified in the iteration plan. This activity ends with a review of the resulting design
(see Review the Design) as documented in the Design Model and optionally other supporting
models, such as the Service Model.
The Code and Unit Test Components activity completes most parts of the implementation so
that they can be delivered for integration. This activity implements the elements in the design
model by writing source code, adapting existing source code, compiling, linking, and
performing unit tests. The code is reviewed to evaluate quality and compliance with the
programming guidelines.
The Integrate and Test activity covers the integration and test of the product. The Integrate
sub-activity integrates changes from multiple implementers to create a new consistent
version of an Implementation Subsystem (this is done for any implementation subsystem
within the scope of the iteration) and integrates implementation subsystems to create a new
consistent version of the overall system when appropriate. The Test sub-activity includes the
tasks required for testing within a particular scope, such as Functional Verification Test (FVT)
of the components implemented during the iteration or System Verification Test (SVT). It
includes the refinement of the Test Plan, definition of Test Cases and their implementation
into Test Scripts (a test script is a step-by-step instruction enabling the execution of a test
case), the execution and evaluation of the tests (by a group of tests called the Test Suite
created to exercise a category of tests, such as FVT or SVT), and the corresponding
reporting of incidents that are encountered. It also includes the definition and implementation
of the Installation Verification Procedures (IVPs).
The Plan the Project activity starts with an assessment of the current iteration and a
reevaluation of the risks. It refines the Software Development Plan (covering all project
phases and iterations) and creates a fine-grained Iteration Plan for the next iteration or
iterations. This activity also acquires the necessary resources (including staff) to perform the
coming iteration or iterations.
Transition might have to be postponed by one release if the project fails to reach this
milestone.
Summary of essential work products and their state at the end of the Construction Phase:
Glossary (about 100% complete)
Software Development Plan (about 100% complete)
Iteration Plans for the transition iterations (about 100% complete, at least for first iteration)
Risk List (about 75% complete)
Use-Case Model (about 100% complete)
Supplementary Specifications (about 100% complete)
Design Model (about 100% complete)
Service Model (about 100% complete)
Test Plan (about 90% complete)
Test Cases (about 80% complete)
Test Scripts (about 80% complete)
Implementation Elements, including source code (about 90% complete)
Builds are available (one or more per iteration, for instance)
The executable system is available
Installation Verification Procedures (IVPs) (about 90% complete)
User Support Material (about 40% complete)
The Transition Phase ranges from being straightforward to extremely complex, depending on
the type of product. A new release of an existing desktop product might be simple, whereas
the replacement of a nation’s air-traffic control system might be exceedingly complex.
Activities performed during an iteration in the Transition Phase depend on the goal. For
example, when fixing bugs, implementation and test are usually enough. If, however, new
features have to be added, the iteration is similar to one in the Construction Phase requiring
analysis and design and so forth.
In transition, in some cases, it might be necessary to update the system requirements and
design. Any significant changes, however, should be deferred to a future generation of the
solution to maintain the stability necessary to field capability that is useful to the users and
establish a foundation for building future solutions (or decisions made at the Initial
Operational Capability Milestone might have to be revisited). Refer to Refine Requirements
and Design Components for more information about how to refine the requirements and
design if necessary.
The Code and Unit Test Components activity completes all remaining parts of the system
implementation so that they can be delivered for integration. This activity implements the
elements in the design model by writing source code, adapting existing source code,
compiling, linking, and performing unit tests. The code is reviewed to evaluate quality and
compliance with the programming guidelines.
The Integrate and Test activity completes the integration and test of the product. The
Integrate sub-activity integrates changes from multiple implementers to create a new
consistent version of an Implementation Subsystem and integrates implementation
subsystems to create a new consistent version of the overall system. The Test sub-activity
includes the tasks required for testing within a particular scope, such as System Verification
Test (SVT). It includes the refinement of the Test Plan, definition of Test Cases and their
implementation into Test Scripts (a test script is a step-by-step instruction enabling the
execution of a test case), the execution and evaluation of the tests (by a group of tests called
Test Suite created to exercise a category of tests, such as SVT), and the corresponding
reporting of incidents that are encountered. It also completes the definition and
implementation of the Installation Verification Procedures (IVPs).
The Perform Beta and Acceptance Test activity covers beta and acceptance testing of the
product. The Perform Beta Test sub-activity solicits feedback on the product from a subset of
the intended users while it is still under active development. A beta test gives the product a
controlled, real-world test, so that feedback from potential users can be used to shape the
final product. It also provides a preview of the next release to interested clients. The Perform
Acceptance Test sub-activity ensures that the product is deemed acceptable to the client
prior to its general release.
The Package Product activity builds and packages the product for release. It produces any
remaining User Support Material and any artifact needed to effectively deploy the product to
its users, such as Training Materials or Release Notes. It also produces a Deployment Unit
that enables the software product to be effectively installed and used. The Deployment Unit
package consists of a Build (an executable collection of components), documents, such as
User Support Material, and Installation Verification Procedures (IVPs). A Deployment Unit is
sufficiently complete to be downloaded and run on a node. This definition fits the cases where
the product is available over the Internet and the Deployment Unit can be downloaded
directly and installed by the user. In the case of “shrinkwrap” software, the Deployment Unit is
adorned with distinct packaging consisting of artwork and messaging (Product Artwork) and
sold as a Product.
At the Product Release Milestone, the product is in production and the post-release
maintenance cycle begins. This can involve starting a new cycle or an additional maintenance
release.
By the end of the Transition Phase, the project should be in a position to be closed out. In
some cases, the end of the current lifecycle might coincide with the start of another lifecycle
on the same product, leading to the next generation or version of the product. For other
projects, the end of the Transition Phase might coincide with a complete delivery of the
artifacts to a third party, who might be responsible for operations, maintenance, and
enhancements of the delivered system.
For more information about maintenance, refer to the RUP for Maintenance Projects plug-in
at:
http://www.ibm.com/developerworks/rational/downloads/06/plugins/rmc_prj_mnt/
The RUP for Maintenance Projects plug-in provides a delivery process, tasks, and guidance
for understanding the purpose of a maintenance development cycle, avoiding pitfalls during a
maintenance cycle, and successfully delivering a product with higher quality than the
previous release.
The state of several essential work products at the Inception Phase milestone are:
Business Case (100% complete)
Vision (about 100% complete)
Glossary (about 40% complete)
Software Development Plan (about 80% complete)
Iteration Plan for the first elaboration iteration (about 100% complete)
Risk List (about 25% complete)
Use-Case Model (about 20% complete)
Supplementary Specifications (about 20% complete)
Test Plan (about 10% complete)
Software Architecture Document (about 10% complete)
Architectural Proof-of-Concept (one or more proof of concept prototypes available to
address very specific risks)
The state of several essential work products at the Construction Phase milestone are:
Glossary (about 100% complete)
Software Development Plan (about 100% complete)
Iteration Plans for the transition iterations (about 100% complete, at least for first iteration)
Risk List (about 75% complete)
Use-Case Model (about 100% complete)
Supplementary Specifications (about 100% complete)
Design Model (about 100% complete)
Service Model (about 100% complete)
Test Plan (about 90% complete)
Test Cases (about 80% complete)
Test Scripts (about 80% complete)
Implementation Elements, including source code (about 90% complete)
Builds are available (one or more per iteration, for instance)
At the Product Release Milestone, the product is in production and the post-release
maintenance cycle begins.
Summary of several essential work products completed at the Transition Phase milestone:
Risk List
Test Plan
Test Cases
Test Scripts
Implementation Elements, including source code
Deployment Unit
Build
User Support Material
Installation Verification Procedures (IVPs)
Product
The RUP for System z delivery process is available on the RUP for System z Web site, as
illustrated in Figure 6-1 on page 66. Refer to the RUP for System z Web site for a detailed
presentation of the delivery process and to Chapter 10, “IBM RUP for System z Work
Breakdown Structure” on page 201 for a presentation of the Work Breakdown Structure.
The RUP for System z Web site can be generated out of the RUP for System z RMC plug-in
from IBM developerWorks at:
http://www.ibm.com/developerworks/rational/downloads/06/rmc_plugin7_1/
Figure 7-5 Module Design Task - Step: Decide Whether to Generate Code
Figure 7-6 Module Design Task - Step: Use Design Patterns and Mechanisms
Figure 7-12 Module Design Task - Step: Create Initial Design Modules (Part 3)
Figure 7-21 Define Installation Verification Procedures Task (Purpose and Relationships)
Figure 7-25 Service Analysis Task (Purpose, Relationships, and Main Description)
The case study uses a CICS catalog manager application to provide an implementation
example of Rational Unified Process for System z (RUP for System z). This application is a
working COBOL application that is shipped with CICS TS 3.1 and is designed to illustrate
best practices for exposing CICS applications as Web services.
We will review the RUP for System z steps employed in the development of this sample
application to demonstrate the agility of iterative development as compared to the traditional
waterfall model used ubiquitously in development environments.
We realize that for any z/OS® development effort, there is normally a group of professionals
spanning the software development dispersion. All information provided by this chapter must,
therefore, only be used as a project guide and not an official solution.
After an item is ordered, the catalog is automatically updated to reflect the new stock levels.
Replenished items in the catalog are reset to a stock amount of 100.
The application is accessed from both a 3270 terminal interface and a Web-based interface
using a commercially available Internet browser as illustrated in Figure 8-1. SOAP and Web
services are used to expose the CICS-controlled information (catalog manager functions) as
service-oriented architecture (SOA) service providers, which in turn are accessed using SOA
service requestors from a browser.
Because the focus of this chapter is on the iterative development process applied to specific
functions of the Catalog Manager application, much of the details concerning the CICS TS
configuration and Web services are omitted. You can find additional information about these
topics in Application Development for CICS Web Services, SG24-7126-00.
The Catalog Manager iterative development plan has one iteration in the Inception Phase,
three iterations in the Elaboration Phase, two iterations in the Construction Phase, and two
iterations in the Transition Phase. We assess and mitigate the risks during each iteration with
each iteration culminating in a minor milestone for the project and facilitating successful
achievement of the phase’s objectives.
Table 8-1 illustrates the Catalog Manager project plan broken down into iterations and
phases. It depicts the relationship between the iterations and their respective phase, the
relationship of the phases to each other, and the major milestone that marks the conclusion of
each phase.
Elaboration Iteration E1 - Architectural Prototype for CICS Application 15 Mon 10/23/06 Fri 11/10/06
Elaboration Iteration E2 - Architectural Prototype for Web Services 15 Mon 11/13/06 Fri 12/01/06
Connectivity
Elaboration Iteration E3 - Architectural Prototype for Web Services 15 Mon 12/04/06 Fri 12/22/06
Catalog Access
Construction Iteration C2 - Develop Replenish Inventory Capability 15 Mon 01/22/07 Fri 02/09/07
and Beta Release
Table 8-2 further describes these phases in more detail as well as the associated major
milestone that concludes the phase.
Inception Phase The Inception Phase will develop The Lifecycle Objectives
the product requirements and Milestone at the end of the
establish the business case for Inception Phase and marks the
the system. The major use cases Go/No Go decision for the
will be identified and a high level project.
Software Development Plan will
be developed. At the end of the
Inception Phase, we will decide
whether to fund and proceed with
the project based upon the
business case.
Elaboration Phase The Elaboration Phase will refine The Lifecycle Architectural
the requirements and develop a Milestone marks the end of the
stable architecture. At the Elaboration Phase. The major
completion of the Elaboration architectural components are in
Phase, all high risk use cases will place and stable.
have been analyzed and
designed. An executable system
called an architectural
prototype will test the feasibility
and performance of the
architecture.
Transition Phase The Transition Phase will prepare The Product Release
the R1.0 and R2.0 releases for Milestone (completion of the
distribution. It provides the R2.0 release) marks the end of
required support to ensure a the Transition Phase. At this
smooth installation. point, all capabilities defined in
the Vision document are installed
and available for the users.
One of the risks identified in building the Catalog Manager application is the software
development team’s unfamiliarity with Web services architecture and technology, which might
preclude them from delivering the Web services component on time. To mitigate this, we
decide to provide early training on Web services to the team members in Iteration one of the
Elaboration Phase, prior to developing the Web services component.
Identifying the major use cases for a catalog order system, such as the Catalog Manager,
entails getting everyone’s agreement that a client needs to be able to list the items in a
catalog as well as order a certain quantity of a specific item. Moreover, a customer service
representative must be able to replenish (restock) depleted items in the catalog. The Catalog
Manager application is illustrated in Figure 8-2.
All stakeholders agree on these points prior to taking the project to the next step, that is,
developing the architecture approach in the Elaboration Phase. If all stakeholders do not
agree on these points, a decision to cancel the project is made. This can in fact be a desirable
outcome of the Inception Phase, because terminating a project at this stage is the least
expensive option of all the phases.
Vision 100
Glossary 40
Risk List 25
Use-Case Model 20
Supplementary Specification 20
During this phase, we outline the basic and alternate flows of each use case as well as
identify the most critical (important) use cases. For each critical use case, we identify the
architecturally significant (most important) scenarios for the Catalog Manager and use them
to create the executable architecture; that is, we design, implement, and test these scenarios.
We also document these architectural scenarios in our Software Architecture Document.
But how do we determine these scenarios? Per Kroll, Manager of Methods, IBM Rational,
suggests the following approaches:
The functionality is the core of the application, or it exercises key interfaces.
The system’s key functionality must determine the architecture. Analyze factors such as:
redundancy management strategies, resource contention risks, performance risks, data
security strategies, and so on.
Choose use cases describing the functionality that must be delivered.
Delivering an application without its key functionality is fruitless.
E1 Iteration Complete analysis and design for high risk Architectural issues
requirements related to CICS. related to CICS clarified.
Architectural Create Use-Case Specification for the List
Prototype for Catalog Items use case, derive an Analysis Technical risks related
CICS Application Model, and refine it into a Design Model. to CICS mitigated.
(week 4-6) Document the architecture (high-level design) in Early prototype for user
the Software Architecture Document. review.
Develop the architectural prototype for CICS
application. Performance risks
Code the part of the application implementing related to high volume of
the List Catalog Items use case. requests mitigated on
Demonstrate feasibility and performance the CICS side.
through testing.
E3 Iteration Complete analysis and design for all remaining Architectural issues
high risk requirements related to Web Services. related to Web Services
Architectural Derive analysis elements from the List Catalog fully clarified.
Prototype for Items use-case specification in the context
Web Services of Web services and refine the Design Model. Technical risks related
Catalog Access Refine the architecture (high-level design) in the to Web Services fully
Software Architecture Document. mitigated.
(week 10-12)
Develop the architectural prototype for Web Early prototype for user
Services, so the Catalog Manager is available as review.
a Web service.
Code the Web services elements related to the Performance risks
List Catalog Items use case. related to high volume of
requests mitigated on
Demonstrate feasibility and performance the Web Services side.
through testing (integrate as necessary).
Browser Incompatibility
Define and Implement Installation Verification Risk mitigated.
Procedures (IVPs) for the List Catalog Item use
case.
Figure 8-3 shows the Catalog Manager user interface, which is a basic interface to fulfill the
List Catalog Items use case and to exit the application. Options 2 and 3 are not implemented
at this time but serve as placeholders for functionality to be implemented during later phases.
F3=EXIT F12=CANCEL
After the List Items function is selected, a list of items, descriptions, and costs displays (see
Figure 8-4 on page 100).
In order to fulfill the behavior of the List Catalog use case, we designed and implemented the
modules in Figure 8-5 on page 101. We followed best practices by employing a Model View
Controller (MVC) design pattern separating the data (model) and user interface (view)
concerns.
The data (Model) in the VSAM file is handled by module DFH0XVDS, the user interface (View)
is handled by module DFH0XGUI, and the Controller module is DFH0XCMN.
The Catalog Manager application on the z/OS host is really unaware that it is communicating
with a Web service, because this communication is handled by the CICS Transaction Server
(CICS TS) housing the Catalog Manager.
The Configure Catalog use case is implemented by first invoking the CONFIGURE option
from a Web services client welcome panel as seen in Figure 8-6 on page 102.
Figure 8-7 shows the Configure Application panel that displays after selecting the Configure
option from the panel in Figure 8-6. This panel allows you to specify the connection endpoints
of the Catalog Manager service provider on the z/OS host. The other options (LIST ITEMS,
INQUIRE, ORDER ITEM, and REPLENISH) have not been implemented at this stage. They
are placeholders to allow for additional Web services functionality during a later iteration and
phase.
We again use an MVC design pattern to implement getting and setting the Web services
configuration endpoints as seen in Figure 8-8 on page 103.
Because we already have a placeholder (see Figure 8-7 on page 102) for the Web services
List Items use case, we now develop the Web services client code to support this use case.
However, we also need to enable the previously implemented List Items function (Elaboration
E1) of the Catalog Manager on the z/OS host as a Web services provider. This is a necessary
requirement, because the List Items Web services requester will be communicating with the
List Items Web services provider in CICS.
There are two methods of converting a CICS COBOL program into a Web service provider:
Use the CICS TS 3.1 Web services assistant program DFHLS2WS.
Use the Web services enablement components wizard of WebSphere® Developer for
zSeries (see pages 122-133 of Application Development for CICS Web Services,
SG24-7126-00).
For our purposes, we utilize the CICS Web Services assistant program DFHLS2WS. There
are, of course, a number of resource definition and configuration steps that we perform in the
CICS environment to allow the Catalog Manager through CICS to act as a service provider.
For a discussion about this topic, refer to Application Development for CICS Web Services,
SG24-7126-00. We will discuss this topic in more detail during the implementation of the
Replenish Inventory use case in the Construction Phase.
The implementation of this use case will enable our Web services client to request the
Catalog Manager on the z/OS host to list the items in the catalog, just as though it were
performing this function natively on a 3270 workstation. In this capacity, the Catalog Manager
utilizing the services of CICS TS 3.1 is acting as a Web services provider. The items are
retrieved and returned to the Web services client to be displayed.
After selecting the List Items option in Figure 8-6 on page 102, Figure 8-9 is displayed. On
submitting this request, it sends the result of the List Items back to the Web services client
interface to be displayed. The results are exactly the same as in Figure 8-4 on page 100.
Figure 8-9 Catalog Manager Web service client List Items panel
Figure 8-10 depicts the model elements that we use to implement the List items use case. As
before, we use a MVC design pattern for the implementation. For the CICSProvider interface,
we only implement the inquireCatalog() function to support the use case, but we include the
other placeholder functions for additional use cases in later iterations and phases.
This means that we need to have a stable, proven architecture to handle the technical risks
that we identify. In other words, the test scenarios for the use cases developed in the
Elaboration Phase have not caused the system to fail. At this point, we have a partially
completed design model, test cases, and executable code.
The decision to proceed to the Construction Phase is made based on us mitigating the
technical risks that we identify.
The following sections outline the Catalog Manager Elaboration Phase iteration details, work
product deliverables, and the use of different tools to develop the project.
Glossary 80
C2 Iteration Plan 80
Risk List 50
Supplementary Specification 80
Analysis Model 50
Design Model 60
Service Model 60
Test Plan 30
Source Code 40
During this phase, we do most of the work and implement all functionality. The remaining
scenarios are detailed, designed, implemented, and tested, following a pattern not unlike that
of the Elaboration Phase.
Up until this point, our testing has been focused on proving the suitability (Inception) and
technical feasibility (Elaboration) of the solution. We switch gears now to concentrate more on
testing the user interface of the solution, but we also need to ensure that prior architectural
tests continue to work as the new functionality is implemented. Because the number of test
cases has now grown, we make use of an automation tool to alleviate the manual testing
effort.
C1 Iteration Implement and test key user All important features from a user
requirements. perspective are implemented.
Develop Ordering
Capability Create Use-Case Specification
for the Order Catalog Item use
(week 13-15) case, derive analysis elements,
refine the Design Model, and
implement.
The order item selection (for the 3270 interface) is made from the main menu as seen in
Figure 8-11.
We develop the PLACE-ORDER() function to support the order item use case as seen in
Figure 8-12 on page 108. Also, we have to Web enable this function in CICS using the CICS
TS Web services assistant program DFHLS2WS, as we did before for the List Catalog
function.
However, for the Web services interface, another panel is provided from the main menu as
shown in Figure 8-13 that allows you to specify additional attributes, such as user name and
department name, when placing the order.
Figure 8-13 Catalog Manager Web services client order item panel
The Replenish Inventory selection (for the 3270 interface) is made from the main menu as
seen in Figure 8-15, and the supporting functionality is illustrated in Figure 8-16 on page 110.
For the Web services interface, we also select the REPLENISH option from the Web
interface main menu as shown in Figure 8-6 on page 102. The supporting modules/classes to
implement this function are illustrated in Figure 8-17 on page 111. Again, we also need to
Web enable the Replenish function in CICS as a Web services provider to communicate with
our Replenish Web services requester client. The next section discusses this approach in
more detail.
Because we already have an existing COBOL application for the Replenish function, we
employ the Bottom-up-approach.
We now execute the following steps to enable the Replenish function as a Web service
provider in CICS:
1. Run CICS Web Services assistant DFHLS2WS passing it as input; our replenish function
data structure as shown in Figure 8-18 on page 112. This does the following tasks:
a. Creates a WSDL for the replenish function.
b. Creates a WSBIND file. The WSBIND file is used by CICS to:
i. Transform Simple Object Access Protocol (SOAP) messages to application data on
input.
SOAP is the protocol that is used to communicate among the three actors in an
SOA, as shown in Figure 8-19 on page 112: the service provider (Catalog Manager
via CICS), the service requester (Web services client), and the service broker. The
Example 8-1 on page 113 shows the input parameters passed to DFHLS2WS for the
Replenish Inventory function.
2. Copy the generated WSBIND file to a UNIX® directory on z/OS that will act as a Web
service pickup directory for the PIPELINE (see next step). For our
example, we define a pickup directory called
/u/rup4z/provider/wsdir.
3. Define a service provider PIPELINE in CICS using the following CICS transaction:
A PIPELINE is a sequence of programs arranged so that the output from one program is
used as input to the next program. There are pipelines that support service providers and
pipelines that support service requesters.
The replenishInventory Web service definition is displayed in Figure 8-21 on page 115.
6. The URIMAP $309050 in Figure 8-21 is created dynamically by CICS. It is used to map an
incoming request to the associated Web service and pipeline. CICS bases the definition
on the URI specified in the input to DFHLS2WS in step 1 and stored by DFHLS2WS in the
WSBIND file. We list the contents of the URIMAP by issuing the following command:
CEMT I URIMAP($309050)
INQUIRE URIMAP($309050)
STATUS: RESULTS - OVERTYPE TO MODIFY
Uri($309050 ) Pip Ena Http
Host(* ) Path(/exampleApp/replenishInventory )
Notice that the PATH attribute is set to the URI that will be found in the HTTP request issued
by our Web client.
7. We use WebSphere Developer for zSeries to import our WSDL
/u/rup4z/provider/wsdl/replenishInventory/wsdl into our Software Development Platform
(SDP) as shown in Figure 8-23 on page 116.
8. We are ready to test our Web services, so we utilize the WSDL editor in WDz as shown in
Figure 8-24:
a. In WDz, right-click your WSDL file and select Open With WSDL Editor.
b. In the WSDL editor, click the Graph tab.
c. In the Services pane, expand services → port → soap:address.
d. Click the Properties tab to specify the Web service endpoint.
This URI corresponds to the URI path defined earlier in CICS for the replenishInventory Web
services provider.
Web Services Explorer provides a form where you enter your request-specific data. All
values must be entered according to the WSDL specification as shown in Figure 8-25.
a. Enter 01REPL for ca_request_id.
b. Enter 0 for other fields.
c. Click Go.
10.The results of the replenishInventory request are displayed in the status panel as shown in
Figure 8-26 on page 118.
We are now ready to deploy the solution as a beta release to be evaluated by users and
stakeholders. This takes us to the Transition Phase.
The following sections outline the Catalog Manager Construction Phase iteration details, work
product deliverables, and the use of different tools to develop the project.
Glossary 90
T2 Iteration Plan 80
Risk List 75
Design Model 95
Service Model 95
Test Plan 90
Source Code 95
Iterations in Transition
The Transition Phase has two iterations that can be summarized as shown in Table 8-9.
The span between R1 and R2 allows us to address any interdependent defects in the Web
services components that might arise from user testing of R1 of the product.
Successful deployment of the product indicates that the Product Release Milestone has been
achieved. Of course, Product Release milestone assessment is based on the satisfaction of
our users and stakeholders.
The following sections outline the Catalog Manager Transition Phase iteration details, work
product deliverables, and the use of different tools to develop the project.
Glossary 100
EGL is a feature that is bundled with the following version 6.0.x WebSphere and Rational
design and construction products:
Rational Software Developer Platform (RAD)
Rational Software Architect (RSA)
WebSphere Developer for zSeries (WDz)
WebSphere Developer Studio Client (for iSeries®)
Both platforms integrate rapid development technologies, such as Java Server Faces (JSF),
within the Eclipse framework, which produce a highly productive development environment.
JSF is a server-side user interface component framework, which is graphical, consistent, and
easy to use. The framework provides a simple model for the development of Java-based
dynamic Web pages. EGL integration into these IBM and Rational products exploits drag and
drop development (for example, Web page development) and declarative programming to
specify properties (for example, data element properties). These simplified development
styles result in high quality code generated and compiled by EGL rather than crafted by the
developer. The EGL perspective provides EGL specific editors and a debugger, which
provide a common look and feel for both Web-centric and data-intensive programs. The EGL
editor has the following functionality:
Standard editing operations
4GL macro statements
Drag and drop rapid development techniques
Context-based Content Assist
Colorized language elements
Code Templates
Code Snippets
Editor view preferences (colors, fonts, hide/show line numbers, and so forth)
Integration with the syntax compiler to display compile errors
These features of the EGL editor contribute to EGL’s goal to provide a simplified approach to
application development. The EGL and JSF aware editors facilitate the ease of learning the
language syntax and programming paradigm. The technology neutral specification of the
EGL language, EGL code generation, and EGL-based debugging provides complete,
end-to-end isolation from the complexity of the deployment environment. Therefore, existing
System z procedural programmers can quickly utilize the EGL and JSF framework to develop
System requirement to recreate and execute this sample code is version 6.0.x of Rational
Software Developer, Rational Software Architect, or WebSphere Developer for zSeries at the
latest level of maintenance with features EGL and IBM WebSphere Application Server V6.0
Test Environment installed. Configuration of the development workspace will be covered in
the elaboration section.
Parallel development was used to develop this Web client application. The page template
was developed independently of the Elaboration Phase use cases (that is, the List Catalog
Items and the Configure Catalog use cases). An experienced Web developer was assigned
the page template, because it required HTML and JavaScript™ knowledge. The page
template has a navigational link to all the pages in the application. JavaScripts were used to
suppress the navigational link to the currently rendered page. Thus, the replenish page will
not have the replenish navigational link. The new EGL Web developer was able to
concentrate on how to achieve the use-case functionality rather than be obsessed with the
appearance of the pages. The key concepts utilized during the Elaboration Phase were:
Web Services Explorer to test the WSDL file
Project Explorer view Create EGL Interfaces and Binding Library. Menu option to EGL
artifacts from WSDL files
Page Data View Insert New control for select objects menu option to get visual
components on the page and bind it to data in the pageHandler
EGL pageHandler onPageLoad function to initialize page values
EGL forward statement to transfer control to another page
EGL system functions j2eeLib.getSessionAttr and j2eeLib.setSessionAttr to cache
session data
EGL system function serviceLib.setWebEndpoint to dynamically alter the Web service
endpoint
EGL system function mathLib.stringAsDecimal to format the cost column
EGL record/dataItem specification to assist with data formatting
During the Construction Phase, the EGL developer incorporated the Catalog Manager Page
Template to unify the page layouts and navigation. To facilitate development, an EGL code
template was defined to provide a shortcut for the functions required to invoke a Web service.
The most significant decision of the Construction Phase was where to invoke the Web
service. The page that gathered the request data could request the Web service then
determine whether the response page or the error page is the next page. An alternate
approach is to send the request parameter to the response page, which would request the
The default perspective layout has the Project Explorer view in the upper left corner. It
provides the means to navigate to development artifacts using a hierarchical containment
structure. This view shows the relationships among the EGL projects, packages, and source
files. All other open views are updated with content when an element is selected or opened in
an editor. The Console view, in the lower right, shows the output of your program execution
and enables you to enter data for a running program. The Console view can show standard
output text, standard error text, and standard input text in three colors: by default, standard
output text is blue, standard error text is red, and standard input text is green. The Outline
view, in the lower left, displays an outline of the structured file that is currently open in the
editor area in the upper right. The content of the Outline view is editor specific. Syntax errors
will be detailed in the Problems view in the lower right.
These are the high level development steps that we followed to inquire about the catalog:
1. Create EGL Web Project.
2. Import WSDL file.
3. Test WSDL file.
4. Generate EGL artifacts from WSDL file.
2. Select Next and enter the project name EzcCatalogWebProj. The EGL case study
application acronym is ezc (EGL RUP for z Catalog Manager). Every development artifact
will have this acronym as a prefix to its name. Figure 9-4 on page 129 shows the
appropriate settings for the New EGL Web Project Wizard.
3. On the first page of the new EGL Web Project wizard, specify the project name and
ensure that Create new project build descriptor(s) automatically is selected. Use Next
to advance to the next page shown in Figure 9-5 on page 130.
4. Deselect the WDO Relational database runtime Web project feature, because the data
access will occur using the Web services. Select Finish to create the Web project. Accept
the Confirm Perspective Switch prompt.
5. Navigate to the WEB-INF source folder under the newly created Web project’s
WebContent folder, select the folder, then select New → Folder from the Project Explorer
context menu. If that option is not available, select New → Other and expand Simple on
the New Wizard. Name the folder wsdl. Import the wsdl files from the workspace where
you imported the sample application. Figure 9-6 on page 131 illustrates the file Import
dialog.
6. Locate the inquireCatalog.wsdl file in the Project Explorer view and use the context menu
option Web Services → Test with Web Services Explorer. If this menu option is
missing, you do not have the Web Services Developer Capability selected in the
workbench preferences. Figure 9-7 on page 132 shows the resulting browser.
7. On the Web Services Explorer view, add a new endpoint and modify it to reference the
location of your Web services. Select the check box beside the new service endpoint and
click Go. Recheck the new endpoint and select the Operation DFH0XCMN. The Web
Explorer will show the request parameters for the Web service. Ensure the status
message says the endpoints were updated successfully. Initialize ca_request_id to
01INQC, ca_list_start_ref to 50 (or any integer value less than 70), and all the remaining
fields to zero. You might want to validate your connectivity to the Web services by using
inquireSingle.wsdl, because it has fewer fields to initialize. Figure 9-8 on page 133
shows the Web Services Explorer with entry fields for the request data.
After all the data fields have been initialized, click Go. If the status message is “IWAB0383E
Error validate RequestPart”, look for any request fields marked with a red asterisk (*). Most
likely, it is an unsignedShort field that was not initialized to zero. If successful, the status looks
like Figure 9-9 on page 134.
If you modify the ca_list_start_ref to 75 and request the service, you get the soap error
shown in Figure 9-10 on page 135.
Using the Web Services Explorer quickly lets you validate that you have access to the
service, lets you validate that the service is up and running, and allows you to validate the
request data.
8. The next step is to create the EGL service binding library and the EGL interfaces that are
necessary to invoke the inquire catalog Web service. Select the inquireCatalog.wsdl file
in the Project Explorer view, select the menu option Create EGL Interfaces and Binding
Library, and accept the wizard defaults by selecting Finish. Figure 9-11 on page 136
shows the EGL perspective after the EGL service components have been generated.
9. The EGL editor is opened on the file that defines the Web service request variables. The
Outline view shows the structural list of the data elements and records defined to
represent the Web service request. Switch to the Web perspective and create a Java
Server Page (JSP) to gather request data and invoke the service. From the Project
Explorer view, highlight the WebContent folder and select New → Faces JSP File. If that
option is not available, select New → Other and expand EGL on the New Wizard. On the
new Faces JSP wizard, name the file ezcInquirePrototypePage and accept the default
properties. Verify that you are editing the JSP file in the Web perspective. Figure 9-12 on
page 137 shows the development environment.
The new Faces JSP file wizard will create the JSP file and an associated EGL pageHandler
file of the same name. The pageHandler is written in EGL and controls a user’s runtime
interaction with a Web page. From a pageHandler, you can assign data values for submission
to a JSP file, change the data returned from the user or from a called program, and forward it
to another JSP file. The PageHandler includes:
An OnPageLoad function, which is invoked the first time that the JSP renders the Web
page
A set of event handler functions, each of which is invoked in response to a specific user
action, such as clicking a button
Optionally, validation functions that are used to validate Web page input fields
Private functions that can be invoked only by the PageHandler functions
It is important to note that the OnPageLoad function can neither forward control to another
page nor cause an error message to be displayed when the page is first presented to the
user. For more details, use the Help → Search toolbar menu option and search on
“PageHandler runtime scenarios”.
In Figure 9-12, the content area shows the Page Designer editor opened on the newly
created JSP file in design mode. The Page Data view, the Properties view, and the Palette
11.Double-click on any error message in the generation results. The offending file will be
opened to the line of source code that produced the problem. Double-click on the
message “The type ca_request_id is ambiguous”, which opens the pageHandler view
with the reference to ca_request_id highlighted. Press F3 to open the definition of the
type. Because the type is ambiguous, you will get the dialog in Figure 9-14 on page 139.
12.Figure 9-14 shows that ca_request_id is defined in the request and the response
packages. The pageHandler must use both the request and the response definition of
ca_request_id. Without fully qualifying the type definitions, the pageHandler will have
compiler errors as shown in Figure 9-15 on page 140.
13.Now you have enough information to realize that the Web service used the same data
structure for the request and the response. The generated code produces a request
package and a response package with the same data item names. Therefore, the types
need to be fully qualified in the pageHandler. For clarity and simplicity, the generated
variable names have been altered to start with input_ and output_ rather than
DFH0XCMNPort_DFH0XCMN. The name of the generated function has also been modified to
reflect the Web service that is being invoked. Figure 9-16 on page 141 shows the modified
pageHandler, which resolves the ambiguous references.
14.Set the initial values for the required input fields in the OnPageLoad function. Take
advantage of code assist to get correct names without typographical errors. To invoke
code assist, start typing a variable name, press Ctrl+Spacebar, and code assist prompts
you with possible completions. If code assist does not offer suggestions, you might have
syntax errors. Add a new function, requestInquireCatalogAction, that will set the
endpoint and request the Web service. The new function and the modified onPageLoad
function are shown in Figure 9-17.
Figure 9-17 New source code for ezcInquirePrototypePage.egl to invoke the Web service
Figure 9-18 Page Data View with the service request variable selected
16.Select the Insert New Controls for “ca_list_start_ref” from the Page Data view context
menu. On the insert control wizard, you can change labels and the order of the
components. Select Creating a new record to render a submit button. Verify that the
options dialog has Create submit button checked and append a colon to each label not
selected. Figure 9-19 on page 143 shows the wizard settings used to create the Catalog
Manager EGL example.
17.This action will create an HTML table to control the layout of the JSP user-interface
components themselves and the EGL bindings, which are relationships between
components and data or logic. In this case, one input text field is added to the page and it
has been bound to the originally selected EGL data variable. Figure 9-20 shows the
Design tab of the Page Designer.
19.Select the Source tab to see the raw source code as shown in Figure 9-22.
20.The submit button needs to be bound to an action. This is done by highlighting the
function in the Page Data view and dropping it on the submit button. Select
requestInquireCatalogAction from the Page Data view and drag it to the Submit button
and drop it. Now, when the button is selected by the user, the bound pageHandler function
Figure 9-23 Page Data View with the service response variables selected
21.Make sure that Displaying an existing record (read-only) is selected, so that all fields
have the control type of output. Figure 9-24 shows the setting for the Insert Control dialog
for the response variables.
22.Save your changes and test the page. Select the JSP in the Project Explorer view and
select Run on Server. Select Finish on the Select Server dialog if you are prompted. If
you are required to define a server, you do not have the integrated WebSphere test
environment feature installed.
23.Be patient while the server starts. Watch the status of the server in the Servers view. The
starting status looks like Figure 9-26.
24.Do not attempt to do anything else in WDz until the server has started. Figure 9-27 on
page 147 shows the started status.
25.Here is the content of the Console view after the server starts. The console has
informational (blue) messages as well as error (red) messages. This is the first place to
look if your server does not start. If your server status is started, do not worry about red
messages. Figure 9-28 shows the Console content.
26.It is helpful to clear the console before using the Web page so that the console content is
limited to the execution of the application. Recall that the writeStdout statements included
in the pageHandler show here. Figure 9-29 show the runtime rendering of the JSP page.
Figure 9-30 Response data and console output for inquire catalog service
28.Now, enter 75 as the next test. The invocation of the Web service results in an exception
that EGL logs into the console, and the page is rendered in its initial state as shown in
Figure 9-31 on page 149.
Figure 9-30 on page 148 and Figure 9-31 illustrate the default rendering of the Web service
data to the page and tracing messages to the console. EGL did the majority of the work. The
JSP and pageHandler need to be tweaked to handle error conditions and to resolve cosmetic
issues, specifically the format of the cost data and zero numeric data. With very little
development effort, the prototype validates that the Web application can gather request
parameters, change the Web service endpoint, and display the response data. Error
handling, data movement between pages, and data formatting need to be resolved in order to
complete the elaboration prototype use cases.
2. The layout of the page must be modified to emphasize the header. The Properties view is
the primary means for modifying the elements on the page. Figure 9-33 shows the
Properties view when the header text is highlighted (that is, the static text: An Error Has
Occurred).
3. Use the first and fourth Format buttons to make the header font larger and bolder. The
optional format toolbar can also be used to make these font changes. When editing a JSP
page, you will have a Toolbar menu. Ensure that the Format menu has a check mark
beside it. The format toolbar will appear below the workspace menu bar. The toolbars are
readily available and easy to use. The “hover help” makes it easy to determine what the
tools do.
4. Use the Page Data view Insert Controls for “errorDetails” menu options. Now, you
need to make the output field for the error message as large as possible. Modify the width
of the HTML table that contains the field. An easy way to find this table is to use the
Outline view, which is usually found in the lower left corner of the EGL or Web
perspective. Figure 9-34 on page 151 is the Outline view of the prototype configure page
with the HTML table selected.
5. After the HTML table is selected, open the Properties view, which looks like Figure 9-35.
6. On the Properties view, change the width to 100 percent of its container. Set the width of
the first cell to 104 pixels. Make the text in this field bold. Figure 9-36 on page 152 shows
the element selected in the Outline view and the Design tab.
7. Because the first two columns have a specified width, only the third column grows when
the table grows with the page. The error pages also need a backward navigational link. To
add the BACK link, open the HTML Tags palette drawer and drag and drop a link on the
bottom of the page. Select the type Others, set the URL to javaScript:history.back(),
and set the Link text to Back. The completed dialog for this hyperlink is shown in
Figure 9-37.
The EGL online documentation indicates that the runtime processing of a Web service can
generate an EGL system exception, notably SysLib.ServiceInvocationException. The
documentation reveals that all exceptions have a code and a description, and the service
invocation exception has several more descriptive fields. It is helpful to have a separate error
page for the details of an EGL system exception.
9. Create a separate error page to show the details of an EGL system exception detail.
Name the page ezcExceptionDetailsPrototypePage with the header EGL System
Exception Details. Adjust the header text so that it has a larger, bolder font than the
default. Select Edit Page Code from the Page Designer Design tab context menu to
modify the pageHandler. Define an EGL record, eglExceptionDetailsPrototypeRec, in
the pageHandler to hold all six fields associated with a service invocation exception. Add
the variable declaration for details of type eglExceptionDetailsPrototypeRec. Modify the
onPageLoad function to accept an eglExceptionDetailsPrototypeRec parameter named
inDetails and initialize the pageHandler variable details to the parameter. Figure 9-39 on
page 154 shows the content of the exception pageHandler.
10.The displayName property for the record items is used for labels and column headings
when the record is dropped on the JSP page. Now, drop the details data object onto the
JSP page. Modify the HTML table, so its width is 100%. Make all the labels bold and adjust
the first cell to a pixel width of 104. Add the BACK hyperlink.
11.This exception details page will be launched from a try-onException block, which needs to
surround any Web service invocation. The EGL system function, sysLib.currentException,
provides access to the exception fields. The forward statement transfers control to the
named page. It is helpful to verify that the JSP name was entered correctly, because no
runtime error message is issued if the page does not exist. Highlight the page name in the
forward statement and press F3. If the editor opens on the page, the name was typed
correctly. Figure 9-40 on page 155 shows the exception handling in the modified
invokeInquireCatalogServiceAction function.
12.Retest the inquire catalog function with item ref value 75. Now, the exception is handled
and the runtime exception page shows in Figure 9-41.
13.Do not forget to try out the BACK hyperlink. Now that the application can handle system
exceptions, it will be easier to test the configure application use case.
3. Switch back to the Page Designer on the prototype configure page. Add the
currentEndpoint and newEndpoint pageHandler variables to the JSP page using the
Insert New Controls for selected objects context menu option on the Page Data tab.
Ensure that the Update an existing record radio button is selected so that a submit
button can be added. The currentEndpoint needs a control type of Output, and the
newEndpoint needs a control type of Input. Bind the requestConfigureEndpointAction to
the submit button. Open the faces component drawer on the palette and drop a command
button after the submit button. Use the Properties view to change the Button label to
Inquire as shown in Figure 9-44.
Figure 9-44 Command button Properties view on the Display options tab
4. Bind each action function to its appropriate command button. Add another command
button to the inquire page and a function to its pageHandler to invoke the configure page.
Figure 9-45 on page 158 shows a preview of the configure page.
5. The default field size does not show the entire value of the Web service endpoint. The
layout of the page must be modified to emphasize the header and make the endpoint text
field large enough to show the entire value just like the error pages (see Figure 9-33 on
page 150). Make sure the HTML consumes 100% of the panel (see Figure 9-35 on
page 151). Adjust the width of the first column to 104 pixels (see Figure 9-36 on
page 152). To ensure that the input text field will take the majority of its column, adjust the
width of the input text field to a percentage. Figure 9-46 shows the Properties view of the
input text field, and it is not obvious how to modify its width.
6. Select the push button after the Style: Props: field and modify the dialog to resemble
Figure 9-47 on page 159.
7. The modified layout width attribute will allow the entire text of the endpoint to be visible.
This information is required to invoke the Web service. To make the field required, select
the new endpoint value input text field and modify its validation properties to make it a
required field (check Value is required) as shown in Figure 9-48.
8. Now, you can test the ezcConfigurePrototypePage page. Start the server and then select
Run on Server for ezcConfigurePrototypePage.jsp. Figure 9-49 on page 160 shows the
runtime version of the prototype configure page.
9. Replace the new endpoint input field with the appropriate endpoint, select Submit, then
select Inquire, and select the Submit button on the inquire page. Figure 9-50 shows the
result of this test scenario.
Even if you do not code specific trace entries to the console, you need to review the console
frequently.
The production version of this data table needs better column labels, a properly formatted
monetary value, center or right alignment for numeric values, and zeros showing for numeric
values rather than blanks. The easiest way to achieve these changes is by using an EGL
Record.
3. Several EGL-provided functions are utilized to get the data into the new record. The
function getSize returns how many catalog items are in the ca_cat_item field. The EGL
system library mathLib handles the conversion of the string ca_cost field to the decimal
value required by the money field. The remaining formatting issue is whether to have right
or center alignment on the numeric fields. The alignment needs to be modified on the
visual component. Use the Insert New Controls for “prettyList” menu option to add
visual components for the newly added prettyList array. Change the HTML table
properties, so that its width is 100% of the page width (reference Figure 9-35 on page 151).
Modify the horizontal alignment property (Alignment: Horizontal) to Right for the cost
column. The modified Properties view is shown in Figure 9-54 on page 163.
4. Change the ItemRef, In Stock, and On Order columns to have the Alignment: Horizontal
property set to Center. Test the application and verify the data formatting. Figure 9-55
illustrates the data formatting capabilities of the EGL dataItem declarations.
The prototype provides an executable architecture that validates the invocation of Web
services, storage and retrieval of session data, error handling, passing data between pages,
and page to page navigation. Due to the ease of construction, the elaboration was a
throwaway prototype rather an executable architecture that gets extended during the
Construction Phase.
The simplest pages are built first, then you move in complexity to the layout intensive pages.
To create the application error details page, you follow the same steps:
1. Select the folder EzcCatalogWebProj\WebContent in the Project Explorer view.
2. Create a new Faces JSP File named ezcErrorDetailsPage using navigationShell.jtpl.
3. Switch to the Page Designer’s Source tab.
4. Change the page title to EGL RUPz Catalog Application Error.
5. Change the page ID to appError.
6. Switch to the Page Designer’s Design tab.
7. Change the header to An Error Has Occurred.
8. Select the Edit Page Code context menu option.
9. Add variable declaration errorDetails string to the pageHandler.
10.Add parameter inDetails string to the function onPageLoad and use it to initialize the
pageHandler variable.
11.Save the modifications to the pageHandler.
12.Add controls for errorDetails, check the option Display an existing record (read-only),
and change the label to Error using page designer.
13.Change the first column cell size to 104 pixels as referenced in Figure 9-36.
14.Make the text in the first column cell bold.
15.Make the HTML table grow with the page as referenced in Figure 9-35.
16.Save the JSP file.
Figure 9-57 on page 166 is the completed application error page defined with the page
template.
To create the system exception details page, you follow the similar steps. Reference 9.4.2,
“Error handling” on page 149 for more details:
1. Select the folder EzcCatalogWebProj\WebContent in the Project Explorer view.
2. Creates Faces JSP File named ezcExceptionDetailsPage using navigationShell.jtpl.
3. Switch to the Page Designer’s Source tab.
4. Change the page title to EGL RUPz System Exception.
5. Change the page ID to sysError.
6. Switch to the Page Designer’s Design tab.
7. Change the header to An EGL System Exception Has Occurred.
8. Select the Edit Page Code context menu option.
9. Add the EGL record definition for the details as shown in Figure 9-39 on page 154.
10.Add variable declaration errorDetails eglExceptionDetailsRec to the pageHandler.
11.Add parameter inDetails eglExceptionDetailsRec to the function onPageLoad and use
it to initialize the pageHandler variable.
12.Save the modifications to the pageHandler.
13.Add controls for errorDetails and check the option Display an existing record
(read-only) using the page editor.
14.Change the first column cell size to 104 pixels as referenced in Figure 9-36 on page 152.
15.Make all the label text bold.
16.Make the HTML table grow with the page as referenced in Figure 9-35 on page 151.
17.Save the JSP file.
This template will provide the functions required to retrieve the configured endpoint, set the
Web service endpoint, invoke the service, and handle the results. After the onPageLoad
function, type ezc and hold down the Ctrl+Spacebar keys (which invoke content assist).
Select ezcWebCall from the pop-up list and press Enter. Figure 9-59 on page 169 is the
source code that is added to the pageHandler.
The variable parts of the code will be contained in a blue box. The Tab key will navigate
between the variables. When the text is highlighted, you can type over the value. After the
four variables are customized, copy the generated function invocation into the try block, and
then the code to invoke the Web service is completed. Figure 9-60 on page 170 show the
complete code to invoke the place order Web service.
To create a Web service requesting page, you start with the basic steps outlined in the
previous section and then take additional steps to interface with the Web service.
Eventually, you might need to verify that a button actually has a function bound to it. Select
the button and toggle to the Source tab. The definition of the button should be highlighted.
The following text indicates the function requestReplenishAction has been bound to the
submit button action="#{ezcReplenishPage.EGLrequestReplenishAction}".
The inquire catalog and inquire single pages have the same general layout as the replenish
and place order pages. The inquire pageHandlers need additional coding to populate the
formatting EGL record, which will be passed to the inquire response page. To create the
inquire single item page:
1. From the Project Explorer view, select the inquireSingle.wsdl file and select menu
choice Create EGL Interfaces and Binding Library.
2. Select the folder EzcCatalogWebProj\WebContent in the Project Explorer view.
3. Create a new Faces JSP File named ezcInquireSinglePage using navigationShell.jtpl.
4. Switch to the Page Designer’s Source tab.
5. Change the page title to EGL RUPz Inquire Catalog Item.
6. Change the page ID to inquireONE.
7. Switch to the Page Designer’s Design tab.
8. Change the header to Enter Catalog Item Reference Number.
9. Open the EGL palette drawer and drop service on the page. Select the service with the
binding inquireSingle_ServiceBindingLib.
10.Save the JSP file.
11.Remove the compiler errors by modifying the pageHandler variable declarations to
resemble Figure 9-16. Qualify the type definitions with the package name and shorten the
variable name with the input/output prefixes.
12.Initialize the request parameters in the onPageLoad function:
– input_ca_request_id = “01INQS”;
– input_ca_inquire_single.ca_item_ref_req = 10;
13.Use the ezcWebCall EGL template with the following customizations:
– InquireSingle
– oneEP
– inquireSingle
– formatResults()
14.Change the true block forward statement to just the invocation of formatResults.
15.Code the formatResults function as shown in Figure 9-61 on page 174.
The inquire catalog implementation is basically the inquire single implementation with an
extra pageHandler variable to handle validation for the input parameter. Recall the
All four pages that invoke Web services are very similar. The page template and the EGL
code template allow the pages to be quickly developed. The only remaining pages are the
HTML intensive pages.
21.Select the h:dataTable tab, shown in Figure 9-65, to change the order of the columns and
add the Select label to the new column.
22.In the Page Data view, expand ezcInquireResponsePage, select selected, and drag the
data variable to checkbox in the newly added selected column.
23.You must modify the value property of this column from
#{ezcinquireResponsPage.EGLselected.nullAsIntegerArray to
#{ezcInquireResponsePage.EGLselectedAsIntegerArray. Figure 9-66 shows the view
used to make this change.
24.Change the horizontal alignment of the column data. Cost is right-aligned. Item Ref, In
Stock, On Order, and Select are centered.
25.Save the JSP file.
10.Add the new functions specified in Figure 9-68 on page 180 to the pageHandler.
11.Modify the onPageLoad function to initialize the endpoint variables such as Figure 9-69.
14.To make the labels span the entire table, you will have to join together two cells. Select
two adjacent cells in the first row while holding down the Ctrl key. Figure 9-71 shows the
result of this selection.
15.Using the context menu, select Table → Join Selected Cells to create one cell.
16.Do this for rows 4, 7, and 10.
17.Use the Ctrl key to select rows 1, 4, 7, and 10. Modify the background color to lime on the
Properties view.
23.Open the Faces Components drawer on the palette. For column 2 on rows 2, 5, 8, and 11,
drop output text.
24.In the Page Data view, expand ezcConfigurePage. Drag the currentXXX page data
variables and bind them to the appropriate output text field.
25.From the Faces Components drawer, drop input text. For column 2 on rows 3, 6, 9, and
12, drop input text.
26.In the Page Data view, expand ezcConfigurePage. Drag the newXXX page data
variables and bind them to the appropriate input text field.
27.Also, modify the input text component to have borders of 0 thickness. Figure 9-73 on
page 183 shows where to make this modification on the Set Style Properties dialog.
28.For each of the input fields, change the validation so that a value is required and make the
cell width 100%.
29.Drag the Command button from the Faces Component drawer to each of the last two
rows, center their horizontal alignment, and add graphics. The top button is the SUBMIT.
The bottom button is RESET.
30.Bind the action requestConfigureEndpointsAction to the top button and
requestResetEndpointsAction to the bottom button, which results in Figure 9-74 on
page 184.
2. Before invoking any service, the Web service endpoints must be configured. Select the
CONFIGURE button to get to the configuration page shown in Figure 9-76 on page 186.
3. Notice the CONFIGURE navigational button is not available, because the configure page
is active. Update all the New text fields with the location of your Web services and select
the SUBMIT button. Test the inquire catalog service by selecting LIST ITEMS and enter
50 in the input field as shown in Figure 9-77 on page 187.
4. Verify that the LIST ITEMS navigation button is not available and select Submit. The
results are shown in Figure 9-78 on page 188.
5. Verify the alignment of all the column data. Verify the format of the Cost column. Select
the SUBMIT button without selecting a part to verify that you get an application error
message indicating a part must be selected. Use the BACK button to retry the SUBMIT
button after selecting part item number 50. Enter values in the place order page similar to
those values shown in Figure 9-79 on page 189.
6. Leave any field empty to see a validation error message. Entering character data in the
numeric fields will also result in a validation error. With all the fields filled with appropriately
formatted data, the SUBMIT button will result in the informational page shown in
Figure 9-80 on page 190.
7. Select the INQUIRE button to test the inquire single Web service. Figure 9-81 on
page 191 shows the inquire item request page.
8. Verify that the INQUIRE button is not available. Enter 50 as the part item reference in
order to verify that the in stock and on order amounts have been properly adjusted by the
quantity ordered. Reference Figure 9-78 on page 188 for the original amounts and
Figure 9-79 on page 189 for the quantity ordered. Figure 9-82 on page 192 shows the
result of the inquire of a single part.
9. Verify the data table content and data format. You should verify that you get an error
message if you use the SUBMIT button without the part selected. Use the BACK button to
try the SUBMIT button with the item selected to verify that the application navigates to the
place order page. Select the REPLENISH button to get to the page shown in Figure 9-83
on page 193.
10.Leave any field empty to see a validation error message. Entering character data in the
numeric fields will also result in a validation error. With all the fields filled with appropriately
formatted data, the SUBMIT button will result in the informational page shown in
Figure 9-84 on page 194.
11.Test the application using invalid Web service endpoints. Navigate to the configure
application page and modify the inquire single Web service endpoint to have an invalid
server address. Invoke the inquire single Web service to verify the system exception
details page shown in Figure 9-85 on page 195.
12.Go back to the configure page and set the inquire single endpoint to the valid host and
strip several characters from the end of the valid endpoint. Retry the inquire single request
and verify the system exception page resembles Figure 9-86 on page 196.
13.Now, verify that the replenish inventory Web service did adjust all the in stock values to
100. Use 10 as the starting part reference number. Figure 9-87 on page 197 reveals that
the in stock values were reset to 100.
14.When you can successfully invoke each Web service, you should explore the affects of
stopping and starting the server as well as stopping the application. If you close the Web
browser and reselect the Run on Server menu option, you can immediately issue an
inquire Web service because the server is still holding on to the cached endpoints. To
relinquish the endpoints, you must stop the server.
9.7 Summary
This chapter is a step-by-step guide to help you recreate the EGL portion of the RUP for z
Catalog Manager sample application. If you work through this chapter, you will discover how
EGL enables you to develop a Web application very quickly.
Figure 10-1 The RUP for System z Workflow and Work Breakdown Structure
Chapter 10. IBM RUP for System z Work Breakdown Structure 203
10.3 Construction Phase
Figure 10-4 presents the Work Breakdown Structure for a typical iteration in construction.
This Work Breakdown Structure includes activities and tasks with predecessors. The number
of steps per task is shown with blue dots.
Chapter 10. IBM RUP for System z Work Breakdown Structure 205
206 The IBM Rational Unified Process for System z
11
It is crucial for the success of the project that the delivery process is relevant for the current
project, its size, and the formality of its requirements.
Because the Rational Unified Process provides guidance on a wide range of software
engineering principles, you typically need to understand which parts of the process
framework can be fully adopted and which parts can be modified or even excluded. Tailoring
the process is just one part of implementing a process for a project. After the process has
been tailored, the project manager instantiates and executes it for the specific project. An
instantiated process is an enactable project plan (it includes actual iterations, activities, tasks,
and work products for an actual project). Instantiation is done as part of project planning.
We recommend tailoring the Rational Unified Process using Rational Method Composer
(RMC). By using RMC, the resulting process Web site has the exact same functionality, look,
and feel as the classic RUP Web site. Also, if RMC is used, a Delivery Process can be
instantiated by exporting it from RMC and then importing it into a project management tool,
such as Rational Portfolio Manager, where actual work products can be identified, actual
resources can be assigned to roles, and so forth. Before starting a plug-in project, we highly
RMC:
http://www.ibm.com/developerworks/rational/downloads/06/rmc_plugin7_1/
RUP:
http://www-128.ibm.com/developerworks/rational/library/4686.html
Tip: Refer to Rational Unified Process Concept: Tailoring RUP for a detailed description of
a variety of tailoring scenarios.
Note: The recommended method development process and the directions for using RMC
to customize the RUP for System z are discussed in the next section.
Tip: Refer to Rational Unified Process RUP Lifecycle page for information about how to
identify how many iterations per phase are necessary for your project.
For example, the RUP for System z Inception Iteration has five activities as shown in
Figure 11-2 on page 210. You have to decide if you need to perform them all. For instance, it
might not be necessary to perform the Perform Architectural Proof-of-Concept activity on your
project.
Chapter 11. How to customize the IBM Rational Unified Process for System z 209
Figure 11-2 The five Inception Iteration activities of RUP for System z
By acknowledging that this is the start and end of the iteration, and not the project, we can
encourage more parallel work and study the dependencies between tasks. Therefore, these
activity diagrams drive iterative project planning. For example, if you look at Figure 11-3,
which depicts the tasks of Define Requirements activity, you can see how most of them can
be executed in parallel. Obviously, this parallelism will reflect on your project planning.
It is not only the project manager’s job to decide which activities and tasks to perform in each
iteration of the RUP Phases; it is the team’s decision. Basically, the project manager takes
into account the directions provided by team’s members and subsequently plans, tracks, and
manages the risks accordingly.
After the team decides what iterations, activities, and tasks need to be performed (by using a
Development Case, for instance, or any other artifact), the project manager should create the
plan accordingly. The last step after determining the activities and tasks is to include key input
or output work products. The work products affect your plan in terms of milestones and the
evidence of deliverables.
To export an existing process to a planning tool using RMC is fairly simple. You need to
select File → Export, select Project Template, and follow the prompts for the planning tool
that you use, Rational Portfolio Manager or MS Project. For step-by-step guidance to export a
process using RMC, see the “Publishing and exporting Method Content” online help topic.
After you export the WBS to an xml file, the next step is opening the exported file with the
planning tool that you are going to use.
Using a planning tool, such as IBM Rational Portfolio Manager or Microsoft Project, you see it
is simple to tailor your plan according to your own process defined in the previous section.
The Gantt charts in Figure 11-4 on page 212 show an example of the RUP for System z
delivery process exported into a project plan and modified to suit the needs of a particular
project.
Chapter 11. How to customize the IBM Rational Unified Process for System z 211
Figure 11-4 Example of Project Plan for RUP for System z
The plan in Figure 11-4 is clearly organized by time, but you can also identify disciplines by
color (as coded in the overall architecture diagram of RUP in Figure 2-1 on page 12). For
example, the first four tasks are in the project manager discipline, the Set Up Tools is in the
environment discipline, the Develop Vision is in the requirements discipline, and finally, the
Define Test Approach task is in the test discipline. In this way, all the team members can
clearly identify their own tasks according the identification of the discipline, and the project
manager can look for a clear single point of view of dependent tasks.
This section presents and defines the essential work products produced during a method
development project, as well as the typical tasks performed to produce these work products.
You can read more information about method development in the Rational Edge article “A
Roadmap to Method Development” by Cécile Péraire, February 2007, at:
http://www.ibm.com/developerworks/rational/library/feb07/peraire/index.html
Table 11-1 The different types of Method Elements and their definition
Method Element
Role. Set of related skills, competencies, Activity. Grouping of tasks (together with
and responsibilities of an individual or their related roles and work products).
individuals. Represents the key building blocks for
Task. Assignable unit of work. Every task is processes. Can be used to compose
assigned to a specific role. capability patterns or delivery processes.
Work Product. Anything used, produced, or Capability Pattern. A reusable cluster of
modified by a task. activities. Can also be used to compose
Content Guidance. Supplemental delivery processes and other capability
information added to a content element patterns.
(such as a template, example, tool mentor, or Delivery Process. End-to-end project
white paper). lifecycle.
Process Guidance. Supplemental
information added to a process element
(such as a roadmap).
A Method Element can be seen from two different and important perspectives: From the
perspective of the Method Designer, who defines the method structure and hence identifies
Method Elements and their relationships, or from the perspective of the Method Author, who
writes the description (that is, textual and graphical content) of the Method Elements. This
second perspective is particularly significant, because a large proportion of the method
development effort is spent authoring Method Elements. For this reason, a separate work
product called Method Element Description is used to refer to the content of a Method
Element (even though the Method Element Description work product is included into the
Method Element work product).
The other essential work products specific to method development are summarized in
Table 11-2 on page 214 (together with the role responsible for each work product) and further
presented in the paragraphs that follow.
Chapter 11. How to customize the IBM Rational Unified Process for System z 213
Table 11-2 Essential work products and their responsible role
Work product Role
Method sketch
Outline of the method, identifying candidate method elements, and
possibly including some of their relationships and early description.
Method definition
Well-formed definition of a method in terms of its Method Elements
(including their descriptions), their relationships, and characterization of
one or more Method Configurations.
In RMC, a Method Definition is a composite work product encompassing
all Method Plug-ins and Method Configurations relevant to the method
under construction.
Method plug-in
Well-formed definition of a component of a method (or of the entire method
if the method is defined using only one component) in terms of its Method Method designer
Elements (including their description) and their relationships. Oversees the definition
In RMC, a Method Plug-in is a container for Method Packages: of the overall method.
Method Package
In RMC, a Method Package is a container for Method Elements (and Synonyms:
other Method Packages). Method Architect,
Method Element Method Engineer, or
Content Element (Role, Task, Work Product, or Content Guidance) or Process Engineer.
Process Element (Activity, Capability Pattern, Delivery Process, or
Process Guidance). Refer to Table 11-1 for definitions.
Method configuration
Characterization of a method configuration or version of the method.
In RMC, a Method Configuration defines how to compose a Method Web
site based on the Method Elements included in a selection of Method
Plug-ins and Method Packages, as well as the views that will be presented
in the Method Web site tree browser.
Early in the project, we recommend that you outline the method using a Method Sketch. The
goal of the Method Sketch is to help the team identify candidate Method Elements and some
of their relationships and to propose an early description for some of the key elements. To do
so, and depending on the project type (creation of a new method from scratch, extension of
an existing method with content elements only, extension of an existing method with content
and process elements, and so forth), the Method Sketch might take various forms. For
instance, it might include one or more of the following elements: A walkthrough of the
lifecycle; a brief description of candidate roles, tasks, and work products, and their
relationships; a list of candidate method guidance (templates, examples, white papers, and
so forth); an early Work Breakdown Structure (WBS); a mock-up of the method Web site. The
Method Sketch can be documented on a white board, in a word document, a spreadsheet, a
visual model, or using any other support. This free framework is meant to encourage creative
thinking and allow the team to define and review several first sketches of the method using
the content, format, notation, and support that best fit their needs and skills. After the new
The Method Web site is the main outcome of a method development project. It makes the
newly defined method, or method framework, available to the practitioners through a set of
interconnected Web pages. In RMC, a Method Web site is automatically generated from the
Method Definition (one Method Web site can be generated per Method Configuration).
Figure 11-6 on page 217 provides an example of the Method Web site.
To summarize the role of the different constituents of a Method Definition, we can use the
analogy of a bookstore specialized in selling book sets at a discounted price. A Method
Plug-in can be compared to a bookstore department (travel, comics, children, and so forth).
A Method Package can be compared to a set of books packaged to be sold together, the
Method Element to an individual book, the Method Configuration to your shopping list, and
the Method Web Site to the shopping bag full of books that you take home after shopping.
Chapter 11. How to customize the IBM Rational Unified Process for System z 215
Figure 11-5 Example of Method Definition for the RUP for System z in RMC and selection of elements to be published in
the RUP for System z Web site
Figure 11-5 provides a simplified example of RMC Method Definition for the RUP for System
z, including three Method Plug-ins (rup, rup_for_soa, and rup_for_z, because the rup_for_z is
defined by extending rup and rup_for_soa, plus other plug-ins not shown in Figure 11-5) and
one Method Configuration (RUP for System z Configuration). The RUP for System z
Configuration determines the content of the RUP for System z published Web site. In this
simplified example, the Web site will include the content elements of the Method Content
package of rup (the Processes package of rup has been filtered out), the content elements of
the Method Content package of rup_for_soa (the Processes package of rup_for_soa has
been filtered out), as well as all the method elements (from both Method Content and
Processes packages) of rup_for_z. The practitioners will be able to navigate the Web site
through the navigation tree shown on the View column of Figure 11-5.
Figure 11-6 on page 217 provides an example of the Method Web site for the RUP for System
z (early version), generated out of the Method Definition presented on Figure 11-5.
In the case of a new method built from scratch, the Method Definition is empty at the
beginning of the project. In the case of a method customization, the Method Definition already
contains the plug-ins relevant to the existing method (not the existing configurations,
however, because a configuration is specific to a particular method and consequently is not a
reusable asset). For instance, in order to create a customized version of the RUP for System
z, you start with a Method definition, including the Plug-ins shown in Figure 11-5 on
page 216.
Note: The complete list of plug-ins included in the RUP for System z Method Definition is:
rup, base_concepts, formal_resources, informal_resources, rup_soa_plugin,
rup_legacy_evolution_plugin, rup_ibm, and rup_for_z.
Then, you add at least one new Method Plug-in (referencing the existing plug-ins) in order to
define the Method Elements specific to your new method and add one new Method
Configuration in order to configure your new Method Web site. Your new Method Elements
can be built from scratch or by leveraging elements of the existing method using variability
relationships, such as contribute, extend, or replace. For more information about variability
relationships, refer to the IBM training: PRJ350, Essentials of IBM Rational Method
Composer v7.1.
Chapter 11. How to customize the IBM Rational Unified Process for System z 217
Matter Experts (SMEs). However, we recommend that you involve other stakeholders in the
evaluation of the method, such as practitioners and clients, to make sure that the method is
consumable and meets the stakeholders’ expectations.
Figure 11-7 Essential tasks together with the role that performs the task and input/output work products
Table 11-3 provides the description of the Sketch Method task. The task is independent from
the actual strategy adopted by the project team to define the method, such as top-down (the
definition of the overall lifecycle in terms of phases and their objectives drives the
identification of the content elements) or bottom-up (the identification of the content elements
drives the definition of the lifecycle). In practice, project teams generally use a combination of
the two strategies. However, whenever applicable, we recommend favoring a top-down
strategy, which tends to produce more cohesive methods, because each content element is
more clearly tied to one or more phase objectives.
Review existing assets, such as RUP for System z, and identify reuse
opportunities.
Identify candidate method elements (content and processes) that are relevant to
the new method. If applicable, distinguish the elements that are in the project
scope from the elements outside of the project scope (because they are already
present in existing methods and can be reused as-is for instance).
If applicable, review the structure of the existing Method plug-ins forming the
foundation of the new method, such as the rup and rup_for_z plug-ins.
Define Method plug-ins relevant to the new method and their dependencies to
other plug-ins if applicable.
Define Method elements within the appropriate packages and their relationships,
including variability relationships to leverage existing assets.
Chapter 11. How to customize the IBM Rational Unified Process for System z 219
220 The IBM Rational Unified Process for System z
12
We were determined to discover the answers to these questions. The result of our quest for
answers has been documented in this book.
The materials in this book have predominantly been derived from actually performing RUP
prescribed functions. Applying RUP practices to the development of a real System z CICS
COBOL application gave us the insight we sought.
In Chapter 1, we introduced the RUP for System z IBM Redbooks publication project: its
purpose, intended audience, and the rationale behind it.
In Chapter 2, we provided a brief introduction to the Rational Unified Process and to its
extension to service-oriented architecture (SOA). What it is and what it contains.
In Chapter 3, we expanded on the question, “Why RUP for z?” We explored the traditions
behind System z application development and the differences between the old and new
development methodologies. We summarized the key differences and associated benefits of
the RUP compared to the waterfall model-based methodologies.
In Chapter 4, we provided a RUP for System z roadmap. The roadmap walks through each
phase (inception, elaboration, construction, and transition) of a typical System z development
project. The roadmap also describes the overriding goal of each of the four phases and its
associated objectives. It describes typical iterations within each phase and provides
information about phase milestones and essential work products.
In Chapter 5, we provided RUP for System z process essentials: A brief definition of each
project phase (inception, elaboration, construction, and transition) in terms of main goals,
activities, and milestones. For each activity, the process essentials list the corresponding key
In Chapter 7, we presented the RUP for System z content elements (roles, tasks, and
artifacts) that are specific to the System z environment. The RUP for System z includes a
large number of content elements. Most of these elements come from the Rational Unified
Process (RUP) and its service-oriented architecture (SOA) extension. However, we had to
add some content elements to the RUP for System z, because these content elements are
specific to the System z environment. In this chapter, we presented these new content
elements.
In Chapter 8, we provided the details of our case study: the Catalog Manager application. It
introduces the CICS COBOL Catalog Manager application and provides details about the
RUP practices, activities, and tasks with which we were involved during the development of
the application.
In Chapter 9, we provided an overview of the Enterprise Generation Language (EGL) and its
Web application development paradigm. Chapter 9 provides information about how EGL was
used to develop a Web client application in order to provide a Web interface into the CICS
COBOL Catalog Manager application. The Web client accesses the Web services exposed
from within the CICS COBOL Catalog Manager application.
In Chapter 10, we provided the RUP for System z Work Breakdown Structure (WBS) that
covers the whole development lifecycle from beginning to end. This WBS can be used as a
template for planning and running a project. In this chapter, we presented the WBS for each
project phase (inception, elaboration, construction, and transition).
And finally in Chapter 11, we provided a practical approach to customize RUP for System z to
suit your own organization’s needs if required. It illustrates the flexibility of the RUP for
System z method, acknowledging the fact that your own environment might differ in some
parts to the environment used in our project and therefore the importance of having the ability
to customize the method to your own needs and preferences in order to derive maximum
benefit.
Equally important are all the elements gathered in the Appendixes of this book. They are
intended to provide you with key actual work products that were generated at various phases
of our project, so that you can see and appreciate the incremental nature and benefits of the
RUP for System z method.
In exploring RUP, we found that it was certainly highly applicable to application development
in the System z environment. We hope this book and its associated elements, for example,
the RMC method plug-in and the example work products, assist you in utilizing RUP for
System z to your organization’s best advantage.
Part 5 Appendixes
The appendixes that follow present work products of the Catalog Manager case study. This
case study uses a CICS Catalog Manager application to provide an implementation example
of the IBM Rational Unified Process for System z (RUP for System z).
Also, the appendixes include a terminology mapping between RUP and z, which maps RUP
terminology to equivalent terms used in the System z software development process, to
mitigate the learning process when transitioning to RUP.
Finally, the appendixes refer to additional material that you can download from the Internet.
and choose:
SG24-7362-00-AppendixA.zip
After you have downloaded AppendixA.zip and unpacked the file, the contents of Appendix A
are:
Catalog Manager - Business Case I1 v 1.0.doc
Catalog Manager - Vision.doc
Catalog Manager - Glossary.doc
Catalog_Manager_Software_Development_Plan.doc
Catalog_Manager_Risk_List.doc
Catalog Manager UseCaseModelSurveyRpt.pdf
Catalog_Manager_Supplementary_Specification_V1.1.doc
Catalog Manager Software Architecture Document V1.1.doc
Catalog_Manager_Test_Plan_V1.0.doc
Catalog_Manager_Iteration_Plan_E1.doc
After you download AppendixB.zip and unpack the file, the contents of Appendix B are:
Catalog_Manager_Software_Development_Plan.doc
Elaboration Catalog_Manager_Risk_List.doc
Catalog Manager UseCaseModelSurveyRpt.pdf
List Catalog Item.UCS
Configure Catalog.UCS
Replenish Inventory.UCS
Order Item.UCS
Supplementary Specification.SUP
Catalog Manager Software Architecture Document V1.2.doc
Catalog_Manager_Test_Plan_V1.1.doc
TestScenarioMatrixListCatalog.xls
TestScenarioMatrixConfigureCatalog.xls
TestCaseMatrixConfigureCatalog.xls
TestCaseMatrixListCatalog.xls
TestEvaluationSummary.doc
and choose:
SG24-7362-00-AppendixC.zip
After you have downloaded AppendixC.zip and unpacked the file, the contents of Appendix C
are:
Construction Catalog_Manager_Software_Development_Plan.doc
Construction Catalog_Manager_Risk_List.doc
Order Item.UCS
Replenish Inventory.UCS
Catalog_Manager_Test_Plan_V1.2.doc
TestScenarioMatrixOrderItem.xls
TestScenarioMatrixReplenishInventory.xls
TestCaseMatrixOrderItem.xls
TestCaseMatrixReplenishInventory.xls
TestEvaluationSummary.doc
and choose:
SG24-7362-00-AppendixD.zip
After you have downloaded AppendixD.zip and unpacked the file, the contents of Appendix D
are:
Transition Catalog_Manager_Risk_List.doc
TestEvaluationSummary.doc
Product Product
Actual product or solution to be delivered to the The Product is the actual product or solution to
client. It includes: Product Artwork, be delivered to the customer. It includes:
Installation Artifacts, Deployment Unit, and Installation Artifacts such as Program
Bill of Materials. Directory, User Manuals, Program (A program
consists of elements such as modules, macros,
and other types of data).
For z/OS systems, a product called System
Modification Program Extended (SMP/E) is
normally used to install a product, install
changes (service, user modifications, or new
functions) to the product and track the current
status of each of the elements of the product.
and choose:
SG24-7362-00-CobolCode.zip
SG24-7362-00-EGLCode.zip
SG24-7362-00-RMCPlugin.zip
SG24-7362-00-AppendixA.zip
SG24-7362-00-AppendixB.zip
SG24-7362-00-AppendixC.zip
SG24-7362-00-AppendixD.zip
Alternatively, you can go to the IBM Redbooks publications Web site at:
ibm.com/redbooks
Select Additional materials and open the directory that corresponds with the IBM Redbooks
publication form number, SG24-7362-00.
You can also download the RUP for System z RMC plug-in from IBM developerWorks at:
http://www.ibm.com/developerworks/rational/downloads/06/rmc_plugin7_1/
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this IBM Redbooks publication.
Other publications
These publications are also relevant as further information sources:
Per Kroll and Philippe Kruchten, The Rational Unified Process Made Easy: A
Practitioner’s Guide to Rational Unified Process. Addison Wesley 2003.
Per Kroll and Walker Royce, “Key principles for business-driven development,” The
Rational Edge, October 2005:
http://www-128.ibm.com/developerworks/rational/library/oct05/kroll/index.html
Per Kroll, “Introducing IBM Rational Method Composer,” The Rational Edge, November
2005:
http://www-128.ibm.com/developerworks/rational/library/nov05/kroll/index.html
Peter Haumer, “IBM Rational Method Composer (RMC): Part 1: Key Concepts,” The
Rational Edge, December 2005:
http://www-128.ibm.com/developerworks/rational/library/dec05/haumer/
Peter Haumer, “IBM Rational Method Composer (RMC): Part 2: Authoring Method
Content and Processes,” The Rational Edge, January 2006:
http://www-128.ibm.com/developerworks/rational/library/jan06/haumer/
Cécile Péraire, “A Roadmap to Method Development,” The Rational Edge, February 2007:
http://www.ibm.com/developerworks/rational/library/feb07/peraire/index.html
Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development
Process. Addison Wesley Longman, 1998
Philippe Kruchten. The Rational Unified Process, An Introduction, Second Edition.
Addison Wesley Longman. 2000
Kurt Bittner, March 2006. “Driving Iterative Development With Use Cases”:
http://www-128.ibm.com/developerworks/rational/library/4029.html
Index 249
iterative 33 Product 237
iterative over waterfall 35 product release milestone 49
productivity 17
Program Directory 236
L Program Modules and their relationships 237
lifecycle 6 Project milestones review 236
lifecycle architecture milestone 43 Project Plan 238
lifecycle efficiency 15 Project Schedule 236
lifecycle objectives milestone 40 provide effective collaborative environments 16
locating Web material 241 purpose of Rational Unified Process for System z 4
zipped Catalog Manager Case Study Construction
Phase Work Products 242
zipped Catalog Manager Case Study Elaboration Q
Phase Work Products 242 quality, understandability, complexity control. 17
zipped Catalog Manager Case Study Inception Phase
Work Products 242
zipped Catalog Manager Case Study Transition R
Phase Work Products 242 Rational Method Composer 5
zipped COBOL code sample for the Catalog Manager Rational Method Composer (RMC) 13
application (Replenish Inventory use case) 242 Rational Unified Process 12
zipped EGL code sample for the Web interface of the architecture 12
Catalog Manager application 242 process framework 12
Low Level Design 236 three central elements 13
framework of reusable method content and pro-
cess building blocks 13
M method and process definition language 13
maintenance projects 49 set of philosophies and principles for successful
manage evolving artifacts 16 software development 13
marketplace for process extensions 14 Rational Unified Process for System z 4
method and process definition language
RUP 13 rationale 4
Method Authoring Tool 14 audience 4
method configuration tool 14 Catalog Manager case study 6
Method delivery tool 14 content elements 6
method development tasks 217 customize RUP for System z 7
method development work products 213 end-to-end lifecycl 6
motivate people to perform at their best 16 Enterprise Generation Language (EGL) 6
introduction 3
overview 5
N process essentials 6
nurture heroic developers 16 purpose 4
roadmap 6
O RUP for System z Work Breakdown Structure (WBS)
optimize business value 15 6
overview scope 5
Rational Unified Process for System z Why RUP for System z? 5
5 Rational Unified Process for System z roadmap 37
rationale
Rational Unified Process for System z 4
P realistic plans and estimates 15
pattern of behavior that best embodies the principle 14 Redbooks Web site 244
peer-review all artifacts 18 Contact us xii
plan the whole lifecycle in detail 17 reduce custom development 15
plug-in 5 reduce the amount of documentation produced 17
principles for successful software development 14 reduced complexity 17
prioritize projects and requirements and couple needs Release Notes 237
with software capabilities 15 Release Notes/Announcement Letter 237
process essentials 53 Replenish function as a web service provider in CICS
Rational Unified Process for System z 6 111
process framework bottom-up approach 111
Rational Unified Process 12 meet-in-the-middle-approach 111
V
T Vision 239
Task
Code Test 238
Execute Test 238 W
Implement Test 238 Work Breakdown Structure 201
task construction phase 204
define installation verification procedures (IVPs) 85 elaboration phase 203
Index 251
inception phase 202
transition phase 205
RUP for System z Faced with the growing need for the System z development community
to continue to produce world class quality applications, while at the INTERNATIONAL
includes a succinct
same time precisely fulfilling user needs and demands, there is a TECHNICAL
end-to-end process
requirement now more than ever before, for System z developers to SUPPORT
for z practitioners adopt more modern and agile development principles and ORGANIZATION
methodologies.
RUP for System z
The IBM world renown Rational Unified Process (RUP) is a modern
includes many software development methodology based on proven development
examples of various principles and current best practices.
deliverables BUILDING TECHNICAL
This IBM Redbooks publication focuses on applying the very same key INFORMATION BASED ON
principles and best practices on which RUP is based to application PRACTICAL EXPERIENCE
RUP for System z is development in the System z environment.
available as an No matter which facet of System z application development you are IBM Redbooks are developed
RMC/RUP plug-in involved with, this IBM Redbooks publication is an invaluable reference by the IBM International
that describes, in System z appropriate language, the RUP for System z Technical Support
method along with elements and workflows specifically created and Organization. Experts from
delivered for the System z environment. In addition, it provides as a
IBM, Customers and Partners
from around the world create
case study example, a COBOL CICS application developed using the timely technical information
RUP for System z methodology. The case study provides you an based on realistic scenarios.
iteration-by-iteration walkthrough, from requirements gathering, right Specific recommendations
through to analysis, design, code, testing, and deployment of the are provided to help you
application. implement IT solutions more
This IBM Redbooks publication also shows you how to obtain the RUP
effectively in your
environment.
for System z plug-in for the Rational Method Composer (RMC). The
RMC plug-in allows you to publish the method as a Web site for your
own organization’s use and to further customize the method to your
own specific needs and preferences, if necessary.
For more information:
ibm.com/redbooks