5 Tdswoo Guia Rup Reference and Certification v02
5 Tdswoo Guia Rup Reference and Certification v02
5 Tdswoo Guia Rup Reference and Certification v02
Esse documento foi criado com base no Livro IBM Rational Unified
Process Reference and Certification Guide e no se prope a substituir
o mesmo em parte ou em sua totalidade, sendo assim, apenas um
guia de referncia rpida.
Fernando Dantas
7/6/2007
Study Guide IBM Rational Unified Process and Certification Guide
Contedo
CHAPTER 1: WELCOME TO IBM RATIONAL UNIFIED PROCESS AND CERTIFICATION .......................................... 8
RUP Phases versus Waterfall Phases ............................................................................................................... 8
Discipline, Activity, Task .................................................................................................................................. 8
Discipline Work Breakdown Structure ............................................................................................................ 9
The Hump Chart .............................................................................................................................................. 9
Iterations ....................................................................................................................................................... 10
Evolution of the RUP ..................................................................................................................................... 10
Chapter 2. Key Principles for Business-Driven Development ............................................................................ 11
Key Principles................................................................................................................................................. 11
Adapt the Process .......................................................................................................................................... 11
Balance Competing Stakeholder Priorities .................................................................................................... 12
Collaborate Across Teams ............................................................................................................................. 12
Demonstrate Value Iteratively ...................................................................................................................... 14
Elevate the Level of Abstraction .................................................................................................................... 15
Focus Continuously on Quality ...................................................................................................................... 16
Part II: Unified Method Architecture (UMA) ..................................................................................................... 18
Chapter 3. Key Principles for Business-Driven Development ............................................................................ 18
Roles .............................................................................................................................................................. 18
Work Product ................................................................................................................................................ 18
Task ................................................................................................................................................................ 18
Step ................................................................................................................................................................ 18
Guidance ........................................................................................................................................................ 19
Categories ...................................................................................................................................................... 19
Chapter 4. Basic Process Elements .................................................................................................................... 21
Process Elements ........................................................................................................................................... 21
Activities ........................................................................................................................................................ 21
Milestone....................................................................................................................................................... 21
Process Package ............................................................................................................................................ 21
Process Diagrams........................................................................................................................................... 21
Workflow Diagram ........................................................................................................................................ 22
2
Study Guide IBM Rational Unified Process and Certification Guide
3
Study Guide IBM Rational Unified Process and Certification Guide
4
Study Guide IBM Rational Unified Process and Certification Guide
5
Study Guide IBM Rational Unified Process and Certification Guide
6
Study Guide IBM Rational Unified Process and Certification Guide
7
Study Guide IBM Rational Unified Process and Certification Guide
A discipline in RUP gives you all the guidance you require to learn not only when to perform a given activity
but also how to perform it. Therefore, disciplines in RUP allow you to bring closely related activities under
control. The benefits provided by separating the RUP activities into various disciplines are summarized as
follows.
- Makes the activities easier to comprehend.
- Proves useful when customizing a given discipline to meet the specific needs of the project.
- Enables different roles more effectively appreciate their responsibilities.
- Allows Project Managers to more effectively monitor and control these activities.
task. To provide additional support and guidance, each discipline offers a set of standard template artifacts
related to that discipline. These artifacts can be customized/tailored for a given project or organization.
Iterations
Iterative and incremental development happens within iterations that occur within a structured lifecycle
consisting of phases and milestones. It iteration can be compared as a waterfall project. The focus shifts as
we progress through the project lifecycle
The next big question that senior managers have is about gaining some control over the life of a project and
not losing control from iteration to iteration. This is known as time-boxing
To address these and similar challenges, we need to do time-boxing at the project, phase, and iteration
levels. As you continue through the RUP lifecycle, from one iteration to the next, note the four major
milestones, as mentioned earlier:
- Lifecycle Objectives milestone Scope and business case agreed
- Lifecycle Architecture milestone Architecture baselined
- Initial Operational Capability milestone Product sufficiently mature for use
- Product Release milestone Product release
As with the process donation, the basic capabilities of RMC were donated to Eclipse; the resulting tool,
Eclipse Process Framework composer, is available free as an open source application.
Study Guide IBM Rational Unified Process and Certification Guide
Benefits:
- Lifecycle Efficiency: adapting the degree of process ceremony to the lifecycle phase.
- Communication of risks: Less control and light formality during the early stages of the
project leads to better identification and management of risks.
Patterns:
- Right size de process to project: more formality means more process, and more process is
not always better.
- Adapt processes ceremony to Lifecycle phase: Earlier in the lifecycle, there is a greater need
for creativity. When the vision of the project and the product have been established, the
need for more control increases to ensure that the product meets the stated vision in a
timely fashion.
- Continuous Process Improvement: It is recommended that process-specific lessons learned
for a given iteration, as well as the project, be recorded and subsequently used to further
improve the process.
- Uncertainty-Driven Planning and Estimating: Attempts to produce detailed plans and
estimates will likely fail. As uncertainties are resolved, formality becomes more pronounced,
and the ability to produce detailed plans and better estimates increases.
Anti-Patterns:
- Early Baselining of Estimates: Do not attempt to baseline estimates earlier in the project
because uncertainty is greater then.
- Developing Static Plans: plans need to be more dynamic and evolving. It is an anti-pattern to
develop precise plans and manage projects by tracking against those static plans.
- Using a Static Process: It is an anti-pattern to try to always use the same degree of process
through the lifecycle.
11
Study Guide IBM Rational Unified Process and Certification Guide
Benefits:
- Increased business alignment: you need to assign priorities based on the needs that will
bring the most value to the business.
- Reduced custom development: leverage packaged solutions and internal existing assets, and
reuse software designs and solutions.
- Optimized business value: When stakeholders' needs are prioritized and efforts are
invested in shortening time to market business value optimization follows.
Patterns:
- Define, Understand, and Prioritize Business and User Needs: Balancing many such "most
important" needs, yet meeting the real business need while keeping the costs low and the
time to market short, is a challenge that requires strong negotiating and management skills.
- Prioritize Projects and Requirements and Couple Needs with Software Capabilities:
Research, experience, and leading industry practices have demonstrated that the most
effective way of building software-intensive products is to first identify and prioritize the
requirements.
- Understand What Assets You Can Leverage: This pattern is about gaining that
understanding of the systems or subsystems that can be leveraged as new software
applications are being developed.
- Balance Asset Reuse with User Needs: you can use an entire legacy system as a component
of a new system (SOA), or, in the case of a decision being made to redevelop the legacy
system, you can reuse artifacts such as requirements. In any event, carefully decide and
manage any form of change to legacy systems to ensure that overall complexity does not
exceed the necessary limit and future reusability remains an option.
Anti-Patterns:
- Thoroughly Document Precise Requirements and Force Stakeholder Acceptance: Any
attempt to document precise requirements early in the software development project and
to force stakeholder acceptance almost always results in a product that does not satisfy the
real business needs. That is the reason why this is one of the key anti-patterns.
- Architect a System Only to Meet the Needs of the Most Vocal Stakeholders: difficult and
vocal stakeholders influence the way requirements are prioritized and implemented.
Defining, understanding, and prioritizing the business and user needs through use-case and
user-centered design enable requirements to be managed objectively.
Benefits:
12
Study Guide IBM Rational Unified Process and Certification Guide
- Team Productivity: You need to communicate a consistent message to the team members
about the importance of teamwork and individual productivity.
- Better Coupling Between Business Needs, the Development, and IT Operations: one of the
major benefits achieved by implementing this principle is the better communication and
enhanced collaboration between the business, development, and IT operations.
Patterns:
- Motivate People to Perform at Their Best: Clear communication of responsibilities,
implementation processes, tools, values, addition of the right people, trust, rules of
communication, and management of knowledge are some of the core ingredients required
to build high-performing teams.
- Create Self-Managed Teams: Making a team commit to what it should deliver and then
providing that team with the authority to decide on all the issues that directly influence the
result.
- Encourage Cross-Functional Collaboration: Unlike traditional waterfall methodology,
iterative and incremental development requires members from cross-functional areas
(Business Modeling, Requirements, Analysis and Design, Implementation, Test, Deployment,
and others).
- Provide an Effective Collaborative Environment: Web-based collaboration tools enable
effective collaboration, which reduces the need for meetings and manually managing artifact
evolution. In addition, the collaborative environment automates much of metrics collection,
report generation, reminder alerts, escalations, bug tracking, and other related tasks.
- Manage Evolving Artifacts and Tasks: You need to manage evolving artifacts and tasks to
enhance collaboration, progress, and quality insight with integrated environments. It is
imperative that you manage evolving artifacts effectively to enhance collaboration while
staying focused on the overall quality.
- Integrate Business, Software, and Operation Teams: Separation between business,
development, and operations can produce extensive damage to the project. The IT
Infrastructure Library (ITIL) offers guidelines on leading-industry practices to integrate
business, software, and operation teams through service delivery and service support
disciplines.
Anti-Patterns:
- Nurture Heroic Developers Willing to Work Extremely Long Hours, Including Weekends:
Nurturing heroic developers hurts the creation of high-performance teams. In fact, to ensure
that team spirit is encouraged, recognitions and rewards should be related to team
achievements, not heroic developers.
- Have Highly Specialized Well-Equipped People with Limited Collaboration: If you do not
implement tools with cross-functional integration in mind, the teams will be discouraged
from collaborating, leading to unsuccessful projects.
- Assume That If Just Everybody Does His Job, The Result Will Be Good: Software
development is a team sport, and cross-functional teams need to work together as one to
achieve the results. "A team of teams" is needed to deliver results.
13
Study Guide IBM Rational Unified Process and Certification Guide
Benefits:
- Early Risk Reduction: If the risk mitigation strategy is successful, risks are reduced in an
iterative fashion early in the project. Parallel to the iterative development, the risk list is
consistently monitored and managed.
- Higher Predictability throughout the Project: Reducing the highest risks early while
demonstrating high-priority functionality iteratively, the plans are compared to reality more
frequently. Predictions and forecasts for future milestones will be more reliable based on
the experiences in earlier iterations.
- Trust Among the Stakeholders: With each iteration, the project team also demonstrates its
own capabilities. As the project moves through iterations, stakeholders are more likely to
build a trusting relationship with the project team. This trust is the basis for honest
communication and higher team morale..
Patterns:
- Enabling Feedback: In a waterfall process, business analysts are heavily involved in the
earliest stages (requirements), and verification does not come until user acceptance. Input
and feedback in a waterfall project:
The Standish Group identified various sources of project failure. It found that the failure of
16% of all projects is directly linked to lack of user involvement. Another 8% of unsuccessful
projects fail because of widely spaced project milestones.
To effectively demonstrate value iteratively, you need to establish a path of enabling and
encouraging feedback.
- Embracing Change: In today's business world, nothing seems to be more constant than
change. One phenomenon, observed at the end of iterations, is called the Yes, but-
syndrome, where stakeholders commonly agree with the functionality that they see was
created in the increment but brainstorm more functionality. Managing feedback does not
Study Guide IBM Rational Unified Process and Certification Guide
mean automatically accepting every change but instead understanding the severity and
relevance of the change. When you analyze the nature of the change and turn it into a
request, rescoping, re-estimating and possibly replanning of future iterations can occur.
- Removing Risk: Assess every identified risk and devise a mitigation strategy. Typical risk
mitigation strategies are:
- Risk acceptance: the project takes on the risk;
- Risk transfer: the risk is delegated to someone else out of scope;
- Risk avoidance: taking steps that prevent the risk from occurring, such as scope
reduction;
- Risk reduction: risks are stepwise reduced, as with iterative development.
- Adapting Plans: With the end of each iteration, the project team learned things that it might
not have been aware of when entering this iteration. Iterative development allows you to
incorporate the knowledge into future forecasts. Iterative planning is likely to be closer to
the reality, because the plan contains lessons learned from earlier iterations.
Anti-Patterns:
- Plan the Entire Project in Detail: Applying the anti-pattern of planning the entire project in
detail, you'll waste valuable time maintaining the detailed plans, which are far from reach. In
addition, when plans are communicated and change is difficult to introduce, stakeholders
lose trust in the team's capabilities.
- Rely on Deliverables Other Than Test Results or Demonstrations: This anti-pattern
emphasizes that projects relying on project documentation instead of demos and test results
might bet their money on the wrong horse. By definition, an iteration is not complete
without executable software that stakeholders can demonstrate and verify.
Benefits:
- Improved Productivity: Advanced construction tools with code generation and a consistent
use of standardized languages provide a collaboration platform for the project team. Proven
patterns and services increase the speed with which solutions are assembled and systems
are orchestrated.
- Reduced Complexity: Nesting components inside others while loosely coupling them and
wrapping components and systems while exposing important services reduce system
complexity. Patterns, models, and assets provide helpful instructions for approaching the
complexity of a system.
Patterns:
- Re-use Existing Assets: In today's IT world, where many systems and products already exist,
it's not as necessary to develop and build systems from scratch. You can delegate it to more
granular items, subsystems, components, objects, and more.
15
Study Guide IBM Rational Unified Process and Certification Guide
- Patterns and Re-Use: A pattern is a proven template whose use often leads to more success
and confidence than working without it. The so-called Gang-of-Four (Gamma, Johnson,
Helm, Vlissides) pattern catalog offers 23 additional solutions to common problems in object
orientation.
- Services and Re-Use: In object-oriented systems, objects exchange information through
sender-receiver communication, which is similar to service communication. Services can also
be provided across system boundaries through inter-system communication. The most
popular interfaces include standardized interfaces, such as SOAP.
- Use Higher-Level Tools and Languages: Invoking services for systems within the Internet is
complex if you have to write everything at every step from scratch. The good news, though,
is that modern languages such as Java offer a vast collection of class libraries to enable more
efficient programming.
- Focus on Architecture: Imagine one of the nonfunctional requirement states that a system
shall process up to X trades for the stock exchange every second. This requirement
challenges the architecture significantly, because the entire success of the system depends
on the successful implementation of this requirement. It would be foolish to postpone this
requirement to later phases in the project.
Anti-Patterns:
- Go Directly from Vague, High-Level Requirements to Custom-Crafted Code: During the
early days of programming, programmers specified procedures on paper but implemented
the solution directly into code. More serious software engineers today call this practice
hacking; it is similar to the idea of an architect who is going to build a family home and
shows up with a shovel, ready to dig..
Benefits:
- Higher Quality: Ensuring quality might consume project resources, but to a large degree test
automation alleviates this concern.
- Earlier Insight into Progress and Quality: The earlier you test, the earlier you learn about the
progress you make.
Patterns:
Study Guide IBM Rational Unified Process and Certification Guide
- Ensure Team Ownership of Quality for the Product: Establishing quality is a team effort and
an ongoing activity.
- Test Early and Continuously in Step with Integration of the Demonstrable Capabilities:
Through iterative-incremental development, there is not only early testing but a continuous
testing in each iteration. In a 12-month project, how is your confidence level after the
eleventh iteration? At this point the highest risks items are mitigated and tested up to 11
times. These two things are significant differences from traditional software engineering,
and they positively affect quality and feedback on progress.
- Incrementally Build Test Automation: It is essential for a project to start early with test
automation so that the benefits of repetition provide the biggest bang for the buck.
Anti-Patterns:
- Conduct In-Depth Peer Review: Application testing is crucial for the success of the system,
because it is commonly noticeable to stakeholders who test the application as a black-box.
All intermediate project artifacts have lower priority than testing the results.
- Complete Unit Testing Before Integration Testing: You need to test components in
collaboration with other components and validate the integration. Components must
harmonize even among different software engineers. If you observe this anti-pattern, the
application quality might come up short.
17
Study Guide IBM Rational Unified Process and Certification Guide
Roles
A role is defined as a set of related skills, competencies, and responsibilities. The people or tools in the roles
perform tasks and produce work products. For some tasks and work products, those in the roles are directly
responsible for performing the tasks and producing the work products. For other tasks and work products,
those in the roles simply participate in accomplishing what's needed.
Work Product
UMA distinguishes among three different kinds of work products:
- Artifacts are tangible and can be nested in other artifacts. For example, a Software
Development Plan is an artifact that contains the Risk-list artifact among others.
- Outcome is commonly intangible and not reused, which could be a state or result. For
example, an outcome could be improved performance or a competed tool installation.
- Deliverable is intended to be value provided to stakeholders internally or externally. A
deliverable consists of the other two work products: artifacts and outcomes. Deliverables are
intended to package content from other work products to be consumed, for example, by
stakeholders.
Work products are produced, consumed, or modified while a task is performed. Only one designated role is
responsible for each work product.
Task
A task is an action performed by roles, associated with input and output (work products), and driven by a
goal. The task describes the work to be performed and commonly an optional set of steps. Tasks usually last
between a few hours and a few days and affect only a small number of work products. Because of their
granularity, tasks are often repeated in iterations and are often too small for planning purposes.
Step
A step represents the most granular unit of work to be performed. Steps are useful for breaking down tasks
into more granular elements. They define tasks in greater detail and can separate various aspects of the task.
Even though steps are typically conceptualized as being sequential, as part of UMA, they are treated as
optional and can be executed in any order that works to complete the task. As a general rule of thumb, steps
may call upon the performing role to think, perform, or review.
18
Study Guide IBM Rational Unified Process and Certification Guide
Guidance
The following guidance types are optional elements that can be associated with tasks, work products, or
process elements. The intent behind them is to add more details to a certain element in a particular
situation.
- Checklist: allows you to specify a set of statements that can be used to check the completion
of a set of activities. This guidance is especially useful for reviews and status checks.
- Concept: provides more context to key ideas used in the referenced element. For example, a
concept for discipline might describe the basic principles, motivations, and advantages of
grouping elements by disciplines.
- Estimation Consideration: offers additional information about a specific estimation
technique. It provides sample situations in which the technique can be applied. Estimation
consideration guidance elements usually reference other elements that require cost,
schedule, or work-effort estimation.
- Example: show a practical application of a work product or task. For instance, a project plan
template becomes more descriptive when a real example of the artifact is demonstrated.
- Guideline: supplies more in-depth information about the referenced element, such as how
to execute steps or complete work products. Guidelines are particularly useful for new users
who need more assistance to complete their work.
- Practice: describe positive, proven strategies that are applied in various situations.
- Report: describe the standards for predefined forms and layouts of information. They are
often used in combination with tool automation when the structure and content of the
generated report requires specification. The report guidance also describes the information
extracted from work products.
- Reusable Asset: provide value and quality. A reusable asset might be a design pattern that
can then be directly linked to a tool such RSA.
- Roadmap: Perhaps someone wants you to walk her through a process. A roadmap describes
exactly such a request. Roadmap guidance elements are associated with activities to guide
the user through a complex process, providing a start-to-finish scenario.
- Supporting Material: Any required guidance elements that do not fit the definition of any of
the other guidance elements can be described as supporting material.
- Template: provide a predefined structure to a work product. They are helpful for creating
consistency in a project through the use of similar work products.
- Term Definition: A glossary contains term definitions.
- Tool Mentor: provide the technical and conceptual details to the user concerning how to
apply the tools to the situation outlined in the process.
- Whitepaper: connects externally published papers to the process, providing a larger scope
on the same concepts, different perspectives, and opinions. You can often add and remove
them without consequence.
Categories
Categories can be used to group content elements. There are four standard categories:
- Discipline: aid in allocating certain content elements (that is, tasks, capability patterns, and
guidance) to a certain area of concern. For example, you can group content related to
project management under one umbrella.
19
Study Guide IBM Rational Unified Process and Certification Guide
20
Study Guide IBM Rational Unified Process and Certification Guide
Process Elements
The UMA standardized activities, capability patterns, delivery processes, phases, and milestones arrange
content elements in sequences using work breakdown structures. With the UMA, however, you can also
arrange work in parallel, as often happens in iterative and agile software engineering process, such as RUP.
Activities
Method content (specifically tasks) is bundled into activities, which group a unit of work. Because activities
might contain other activities, the process engineer can create everything from a simple to a complex
activity hierarchy.
The following four elements are special forms of activities (stereotypes) that provide additional semantics to
the activity depending on their purpose:
- Iteration: allows process engineers to group activities that are planned to be repeated more
than once.
- Phase: groups process elements into a significant period in a project. Phases are often
related to different views or project perspectives. For example, in RUP, the Elaboration
phase takes a different perspective and emphasis on a project than the Construction phase
does.
- Capability Pattern: Capability patterns are incomplete process fragments that can contain
activities and milestones. Enable re-use these process fragments and compose delivery
processes from them. If a common pattern, such as plan iteration, is needed in different
parts of the delivery process, a capability pattern can be formed and re-used.
- Delivery Process: The intent of a delivery process is to publish and deploy what is grouped
so the user can eventually consume it. For example, RUP out-of-the-box is delivered with
three delivery processes: classic, small, and medium RUP.
Milestone
Milestones are decision points. They might follow an activity, capability pattern, phase, or iteration to verify
a certain situation followed by a decision. Milestones are often associated with metrics that compare a plan
with the actual result. The lifecycle objective (LCO) is an example of a milestone in RUP.
Process Package
For organizational purposes, process packages group process elements into folders. These folders are
optional and can be used to group solely capability patterns or delivery processes in the style of choice.
Process Diagrams
In addition to WBS, UMA supports visual representations of process elements. The three diagrams are the
workflow diagram, the activity detail diagram, and the work-product dependency diagram. The entire set of
UMA elements has a textual and visual representation according to the UMA superstructure.
21
Study Guide IBM Rational Unified Process and Certification Guide
Workflow Diagram
The workflow diagram can contain a start and end point, decision nodes, links, activities, synchronization
bars, task descriptors phases, and milestones. They provide a high-level overview of the activities and their
sequence. The guards allow branching in certain situations, whereas the synchronization bars demonstrate
which activities are performed in parallel. The user can drill down into each activity to retrieve an activity
detail diagram to get further details on the activity.
Descriptors
To utilize the same content elements in different aspects of process elements (for example, capability
patterns), use the common concept called descriptors. These descriptors replace the actual content element
(role, task, and work-product) in the context of the activity in which the element was accessed. Therefore,
within WBS, you use role descriptors, task descriptors, and work-product descriptors. The advantage of using
descriptors over content elements is that you can adjust the used content element (role, task, or work-
product) to the current situation without changing the actual source of the content. Also, a task descriptor,
for example, can remove steps from a task, making content elements more versatile when processes are
assembled. The user, however, will always be able to track back from the descriptor to the content element
to which the descriptor refers. Therefore, all the roles, tasks, and work-products used in Figures above are
actually the descriptors of the element, not the element itself.
There are three kinds of descriptors: Work Breakdown descriptors, Role descriptors, and Task descriptors.
Each of them shares the following attributes important for process authoring:
- isPlanned: Indicates whether a breakdown element is marked for inclusion in a generated
project plan.
- hasMultipleOccurances: Indicates whether a breakdown element is generated multiple
times, maybe even in parallel.
- isOptional: Indicates whether the breakdown element is optional or mandatory when a
project is carried out.
Furthermore, the task descriptor contains three additional attributes:
- isRepeatable: Indicates whether a breakdown element (for example, a task descriptor) is
expected to repeat sequentially over the same set of work-products (for example, an
iteration).
- isEventDriven: Indicates whether a certain event has to occur before the planned element is
performed. Without the event, the work does not need to be done. For example, an event
issuing a change request triggers tasks that deal with the change request.
- isOngoing: Indicates whether the element has no exact duration and has to be continuously
planned for. For example, the Project Management Office might periodically check the
compliance of a project to a certain standard.
Study Guide IBM Rational Unified Process and Certification Guide
Assess Business Status: You must assess the status of the organization and identify areas needing
improvement. You do this during the Assess Business Status stage. The goal is to limit the business modeling
effort. The key work product created as a result of this activity is the Target Organization Assessment.
Study Guide IBM Rational Unified Process and Certification Guide
Describe Current Business: If you will make no major changes to the business processes, and your intention
is to develop a software system that will help automate existing business processes, then all that is required
is to model those processes and software requirements in subsequent activities.
Define Business: This activity defines the to-be business. It involves identifying the business process and
refining the business process definitions. The Define Business activity consists of the workflow:
Identify Business Processes activity: define business goals that support the business strategy, to outline the
Business Use-Case Model, and to prioritize the business use cases that need to be described in detail.
Refine Business Process Definitions: high-priority business use cases are then further detailed.
Design Business Process Realizations: If you take the use-case approach, then you can design the to-be
business use-case realizations in terms of collaborations of business systems and business workers
Define Business Operations: If you select an operations-based approach, then the business subsystems
define operations
Refine Roles and Responsibilities: independent of which approach you adopt, you detail the business
systems, business workers, business entities, and business events and refine their respective responsibilities.
Study Guide IBM Rational Unified Process and Certification Guide
Explore Process Automation: This activity explores the automation opportunities for the business processes;
details how software systems that are to be acquired, developed, or deployed will fit into the organization;
and produces a business model from which to derive software requirements.
Develop Domain Model: If you determine during the Assess Business Status activity that you don't need full-
scale business models and require only a domain model, you can perform the Develop Domain Model
activity. This activity identifies all products and deliverables important to the business domain, details the
business entities, and provides a common understanding of the concepts found in the business operations
and environment.
Work Products
This section briefly reviews the key work products, each of which forms a part of the Business Modeling
work products set:
- Business Analysis Model: The Business Analysis model contains the business events,
business use-case realizations, business workers, business entities, business systems, and
business rules work products. If automation of business requirements is possible and
desired, the system analyst derives system requirements from this model.
- Business Architecture Document: presents the business architectures as a set of different
views of the architecture. Some sample views include the organization view, the domain
view, and the geographic view. Taken together, these views facilitate communication among
project team members and stakeholders. The set of views reflect what the business is, how
it is and should be performed, and where the business is conducted.
- Business Deployment Model: This model depicts how the logical business elements
described in the business architecture and Business Analysis model are assigned to physical
entities such as localities (geographical units). This work product is commonly needed only in
large business modeling efforts.
- Business Design Model: This model is a realization of the Business Analysis model. During
the realization, abstract elements are made concrete and mapped, for example, from
business workers to other humans or systems. This design model answers questions such as
those concerned with how the business functions and how it is planned to function in the
future.
- Business Architectural Proof-of-Concept: This work product describes the approach for a
potential solution to satisfy the architecturally significant business requirements. This
feasibility could be demonstrated through a prototype, a visual representation, or a
simulation.
- Business Use-Case Model: The Business Use-Case Model contains business actors, business
use cases, and business goals work products.
- Business Vision: The scope of the business vision is to describe the objectives and goals of
the business modeling effort. Because of its high-level focus, the business vision is an
excellent vehicle to communicate with senior management and reiterate the purpose of the
project with all stakeholders throughout the entire project.
- Target Organization Assessment: Describes the current status of the organization in which
the system is to be deployed. This description includes important information about current
processes, skill-sets, tools, market demographics, competition, technical trends, problems,
and improvement areas. Target Organization Assessment is utilized to:
26
Study Guide IBM Rational Unified Process and Certification Guide
o Provide the rationale and explain to the stakeholders why it's necessary to change
the business processes;
o Create a common understanding and motivate people in the target organization;
o Provide input to the Development Case and the Iteration Plans.
Business Architect
The Business Architect is responsible for describing the statics (structure) and the dynamics (behavior) of a
business architecture.
Business Designer
This role develops the business use cases and their relationships and interfaces. That includes the definition
of business worker, business entity, business event, and business operations.
Study Guide IBM Rational Unified Process and Certification Guide
Technical Reviewer
In the context of business modeling, the technical reviewer provides feedback concerning the Business Use-
Case Model and the Business Analysis Model. Note that the Technical Reviewer does perform reviews across
other disciplines as well.
Important Concepts
These concepts are important from both understanding the discipline as well as examination perspectives.
If executed independently, business modeling can result in several separate software development projects.
When executed in the same lifecycle with the software development project, this discipline provides
iteratively refined input for the Requirements discipline.
Domain Modeling
A domain model is also referred to as an "incomplete" business analysis model. It describes the information
of the business entities, their relationships, and their dependencies. Domain models are created in visual
notation, such as UML. They condense the terminology and entities of the business domain and provide
valuable input to system analysts whenever business analysis needs to be partially performed on a fast track.
Study Guide IBM Rational Unified Process and Certification Guide
Summary
The Business Process Analyst and the Business Architect are responsible for defining the present and future
business organization and processes. The business architecture document, the business use-case model, the
business design model, and the target organization assessment are key work products developed in this
discipline.
29
Study Guide IBM Rational Unified Process and Certification Guide
Chapter 6. Requirements
Requirements management is a term describing the activities involved in eliciting, documenting, and
maintaining a set of requirements for a software system. It is about discovering what the stakeholders need
the system to do for them. Incomplete requirements and lack of user involvement are the two top reasons
cited for project failure [Standish 1]. Both of these issues are failures in requirements engineering. A
requirement is something that we expect the system to meet. According to the RUP is defined as "a
condition or capability to which a system must conform."
Requirements Workflow
Analyze the Problem: we need to understand who the stakeholders are, what the scope is, and what the
different constraints imposed on the system are, due to government regulations, end users' unique needs,
and others. Note that the Analyze the Problem activity and the associated tasks help us satisfy some of the
patterns associated with the key principle of Balancing Competing Stakeholder Priorities.
Understand Stakeholder Needs: So where does originate the requeriments? Who says that we need to meet
this requirement? Who decides which requirements need to be met to achieve maximum business value? Is
there a relationship between business vision and the stakeholders' needs? How do we know that the
requirement has been met? Therefore, this activity addresses collecting and eliciting information from the
stakeholders in the project to understand what their needs are.
Define the System: The main purpose of this activity is to begin converging on the scope of the high-level
requirements by outlining the breadth of the detailed requirements for the system. The main emphasis
during this activity is to focus on problem analysis and gaining further understanding of the stakeholders'
needs. Features identified in the Vision are considered, and key system definitions of the system are
produced. As you continue to define new requirements, the Glossary is further refined as additional
common terms are identified. Managing dependencies across requirements becomes more critical.
Manage the Scope of the System: This activity ensures that the scope of the system being developed is as
explicit as possible and that the main focus is to keep the body of requirements work for a development
cycle as manageable as possible. An important concept that contributes toward keeping the body of
requirements work manageable is prioritization. In iterative and incremental development, prioritization
plays a key role in selecting the features and requirements that are to be included in the current iteration.
Refine the System Definition: To establish a consensus of the system to be created, this activity further
refines and details the requirements. This is achieved through the set of prioritized features of the product
often described in the Vision to ensure that the system can be delivered on time and within budget.
Study Guide IBM Rational Unified Process and Certification Guide
Actors that have already been identified and defined are reviewed, and further descriptions are added if
necessary. Use cases that have been previously outlined for these actors are further detailed. Note that this
activity happens during Elaboration iterations, which is supported by the fact that it actually involves further
refinement and detailing of requirements. Also, note that not all actors and use cases are detailed here, only
the critical ones.
Manage Changing Requirements: This activity ensures that the changes to the requirements are managed in
an effective and efficient manner. One key aspect of managing changing requirements is managing the
downstream impact of the approved changes as they are implemented.
Key Artifacts
This section reviews and defines some of the key artifacts.
Vision: The stakeholders' view of the product, in terms of needs and features, is captured in the Vision
artifact. Core requirements, which play a central role in providing a contractual basis for the more detailed
technical requirements, are envisioned in this artifact.
Glossary: So that important terms are consistently understood across the team, one Glossary is produced for
the entire system. It is useful for the project members to understand the terms that are specific to the
project.
Requirements Management Plan: Requirements artifacts, requirements types, and their respective
attributes are described in the Requirements Management Plan. This plan also specifies the information to
be collected and control mechanisms to be used for measuring, reporting, and controlling changes to the
product requirements.
Software Requirement: Software requirements are documented to specify software capability that the user
needs to solve a problem. Such a software capability is specified in the Software Requirement artifact.
Software Requirements Specification: The Software Requirements Specification focuses on the collection
and organization of all requirements surrounding the project. It captures the software requirements for the
complete system or a portion of that system.
Stakeholder Requests: It is important to capture all requests made on the project and how these have been
addressed. Although the System Analyst is responsible for this artifact, many key stakeholders contribute.
These stakeholders might include marketing people, users, customers, or sponsors. This artifact can contain
references to any type of external sourcesresults of stakeholder interviews, requests for changes,
statement of work, and othersto which the system must comply.
Storyboard: The main purpose of Storyboards is to understand the overall flow and interactions, not to
prototype or test the look and feel of the user interface. This artifact is a logical and conceptual description
of system functionality for a specific scenario, including the interaction required between the system users
and the system. A Storyboard tells a specific story.
Supplementary Specifications: Many types of requirements do not fall within the scope of functional
requirements. Therefore, these are not readily captured in the use cases. Supplementary Specifications
capture such nonbehavioral system requirements. Such requirements include legal and regulatory
requirements, quality attributes, and other nonfunctional requirements. We will discuss the concept of
requirements later in this chapter.
Use-Case Model: The main purpose of use-case modeling is to get to the core of what a system must do to
meet the stakeholders' needs. To achieve this, we must first focus on who (the Actors) will use it, or be used
by it, and then on what functionality the system must provide to give value to the user. In relation to this,
this artifact captures the model of the system's intended functions and its environment and serves as a
32
Study Guide IBM Rational Unified Process and Certification Guide
contract between the customer and the developers. It is used as an essential input to activities in Analysis
and Design, Implementation, and Test.
Requirements Attributes: This Requirement Attributes artifact provides a repository of the requirement
text, attributes, and traceability for all requirements. This repository also aims to assist managing change
from a requirements perspective. Therefore, everyone in the development organization should be able to
access it.
System Analyst
This role leads and coordinates requirements elicitation by outlining the system's functionality and
delimiting the system.
Study Guide IBM Rational Unified Process and Certification Guide
Requirements Specifier
The Requirements Specifier specifies and maintains the detailed system requirements. Figure 6-5 shows the
tasks that the Requirements Specifier performs and the artifacts for which the person(s) in that role are
responsible. Please note that each of these tasks and artifacts was discussed earlier in this chapter.
Study Guide IBM Rational Unified Process and Certification Guide
Analysis and design takes use cases as input artifacts and transforms them into a solution assuring that the
stakeholder expectations are met. Software architect, plays a significant role in this discipline by deciding on
the architectural approachfor example, service-oriented architecture (SOA) or component-based
architecture.
Early in the lifecycle, the Analysis and Design discipline is concerned with establishing a feasible vision for
the system and assessing appropriate techniques for building the solution. The evaluation, validation, and
design of architecture falls also into the scope of the Analysis and Design discipline, which emphasizes the
role of this discipline
In the Analysis and Design discipline, the Design Model constitutes the primary artifact created.
The purposes of the Analysis and Design discipline include the following:
- Transform the requirements into a design of the system-to-be;
- Evolve a robust architecture for the system;
- Adapt the design to match the implementation environment, designing it for performance.
35
Study Guide IBM Rational Unified Process and Certification Guide
The User Interface Designer is responsible for developing the prototype. Creating the prototype
involves designing the visual representation (paper or electronic) of the future system supporting a
use-case scenario and implementing the User Interface Prototype to simulate the look and feel of
the system by following a use-case scenario.
The Technical Reviewer is responsible for reviewing the design. During the review, he confirms that:
- All use cases and their scenarios are realized in the design model;
- The internal implementation of the design elements performs the behavior required
of them;
- The design guidelines were followed and that they're high quality.
He concludes his review by preparing the Review Record and documenting identified defects.
Design Components: It refines the definitions of design elements, refines and updates the use-case
realizations, and enables the Technical Reviewer to review the design. The Designer plays a key role during
this activity and is responsible for the following.
- Designing use cases by creating use-case realizations. This happens by describing
interactions between design objects through UML interaction diagrams (communication and
sequence).
- Describing persistence-related behavior to demonstrate how persistent objects are written,
read, and deleted.
- Unifying design classes and subsystems to ensure homogeneity and consistency in the design
model.
- Documenting subsystem elements, their behavior, and subsystem dependencies.
- Designing the class structure of the subsystem or component, which involves creating initial
design classes, identifying persistent classes, defining class visibility (public, private, or
package), defining operations, and assigning responsibilities to the classes.
- Designing testability elements and designing test-specific functionality. Successful designing
of testability elements involves identifying test-specific classes and packages, designing an
interface to the automated test tool, and designing test procedure behavior.
The Capsule Designer plays an important role in designing real-time systems and is responsible for
describing the characteristics of capsule design for object-oriented software engineering. Designing a
capsule involves creating ports and binding them to protocols, validating capsule interactions, defining a
capsule state machine, defining requirements on passive classes, introducing capsule inheritance, and
validating capsule behavior.
Design the Database: This optional activity identifies the design classes to be persisted in a database and
designs the corresponding database structures. This activity involves designing classes, specifying data
migration, designing databases, and reviewing the design. The Database Designer is responsible for
designing the database to implement persistence within an application. Designing the database involves
developing the logical data model (optional), developing a physical database design that represents the
detailed physical structure of the database, and reviewing the results to ensure the quality and integrity of
the model.
Design Services: provide detailed specification of service behavior and model the service portfolio in terms
of service providers and partitions. The Designer is responsible for designing services, which involves
defining and specifying the services and structure of a service-oriented solution in terms of collaborations of
contained design elements and external subsystems/interfaces.
Refine the Architecture: provides that natural transition between finishing analysis and beginning design
work.
37
Study Guide IBM Rational Unified Process and Certification Guide
Technical Reviewer: responsible for reviewing the architecture. The architecture review involves
defining the scope and goals of the review, following the approaches used for specific scope/goal
combination, reviewing the architecture according to the phase and iteration the project is in and
providing general recommendations, and following the review, allocating responsibility for each
defect identified.
Key Artifacts
Key artifacts for the Analysis and Design discipline include an Analysis Model, a Design Model, an
Architectural Proof-of-Concept, a Data Model, a Reference Architecture, and a Software Architecture
Document. Real-time systems have other artifacts as well.
Analysis Model: is a generalization or abstraction of the design and does not provide details on how the
system will deliver the needed functionality. To ensure consistency, you need to further refine and detail the
Analysis Model, which is a rough sketch of the system, to create a Design Model. When you can justify a
separate Analysis Model, it is crucial to keep the analysis and design models consistent.
Design Model: serves as an abstraction of the implementation model and its source code and is used as
essential input to activities in implementation and testing. Design Model is the primary artifact of the
Analysis and Design discipline.
Architectural Proof-of-Concept: Architectural Proof-of-Concept is a solutionperhaps just conceptualto
the problem for which the architecturally significant requirements were identified to solve. These
architecturally significant requirements were identified early in the inception phase.
Data Model: This artifact describes the logical and physical representations of persistent data that the
application uses.
Reference Architecture: is a predefined architectural pattern, or set of patterns, possibly partially or
completely instantiated, designed and proven for use in particular business and technical contexts, together
with supporting artifacts to enable their use.
Software Architecture Document: provides a comprehensive architectural overview of the system, using a
number of different architectural views to depict different aspects of the system.
Navigation Map: express the principal user interface paths through the system.
Service Model: is defined as a model of the core elements of a service-oriented architecture (SOA).
Other Artifacts for Real-Time Systems: Real-time systems are sometimes referred to as safety-critical
systems because of hard response requirements and timeliness.
Software Architect
This role leads the development of the system's software architecture, which includes promoting and
creating support for the key technical decisions that constrain the overall design and implementation for the
project.
Note that some tasks and artifacts do not belong to the Analysis and Design discipline, but this role is still
responsible for them. Such tasks include Prioritize Use Cases, which is performed within the Requirements
discipline, and Structure the Implementation Model, which is performed within the implementation
discipline.
38
Study Guide IBM Rational Unified Process and Certification Guide
System Analyst
This role leads and coordinates requirements elicitation by outlining the system's functionality and
delimiting the system. Although most tasks that this role perform come from the Requirements discipline,
this role is responsible for performing the Define System Context task within the Analysis and Design
discipline.
Designer
This role leads the design of a part of the system, within the constraints of the requirements, architecture,
and development process for the project. Figure 7-4 shows the responsibilities of and the artifacts created
by the Designer role.
Study Guide IBM Rational Unified Process and Certification Guide
Database Designer
Most application development projects leverage relational databases for persisting data. This role leads the
design of the persistent data storage structure to be used by the system.
Study Guide IBM Rational Unified Process and Certification Guide
Important Concepts
This section highlights a couple of the ways use cases relate to the Analysis and Design discipline. It also
provides some further definition of the concepts of components and subsystems.
Analysis Mechanism
An analysis mechanism represents a pattern that constitutes a common solution to a common problem.
Analysis mechanisms can show patterns of structure, patterns of behavior, or both. They are used during
analysis to reduce the complexity of analysis and to improve consistency by providing designers with a
shorthand representation of complex behavior.
41
Study Guide IBM Rational Unified Process and Certification Guide
Chapter 8. Implementation
The Implementation discipline is where actual code is produced, subsystems are integrated, and the system
is implemented. Unit tests are performed while implementing the system. Testing during implementation is
limited to unit testing. Other tests, such as the system test and the integration test, are carried out within
the Test discipline.
Implementation Workflow
Structure the Implementation Model: produces a set of Implementation Subsystems that he can develop
relatively independently. A well-organized Implementation Model prevents configuration management
problems and allows the product to build up from successively larger integration builds. The Software
Architect is responsible for structuring the Implementation Model.
Study Guide IBM Rational Unified Process and Certification Guide
Plan the Integration: plans the integration of the system for the current iteration. Planning the integration is
focused on which implementation subsystem should be implemented and in which order to integrate the
implementation subsystems in the current iteration. As the architecture and design evolve, examine and
update the integration plan to ensure that the build plan is not made obsolete by changes in the architecture
or the design. The Integrator is responsible for planning system integration and for developing the
Integration Build Plan. Planning system integration involves identifying subsystems, defining build sets,
defining a series of builds, and evaluating the Integration Build Plan. Note that the Iteration Plan artifact is a
mandatory input that is required to prepare the Integration Build Plan.
Implement Components: This activity completes a part of the implementation so that it can be delivered for
integration. The Implementer is responsible for Implementing design elements, Analyzing runtime behavior,
Implementing testability elements, Implementing and producing the Developer Test, Executing developer
tests and producing the Test Log. The Technical Reviewer reviews the code and produces the Review
Record.
Integrate Each Subsystem: This activity integrates changes from multiple implementers to create a new
consistent version of an Implementation Subsystem.
Integrate the System: This activity integrates implementation subsystems to create a new consistent version
of the overall system. The Integrator is responsible for integrating the system and developing the Build.
Integrating the system involves accepting subsystems and producing intermediate builds.
Key Artifacts
The key artifacts related to the Implementation discipline are the Build Plan, the Implementation Model, the
Build, and the Developer Test.
Implementation Model
The Implementation Model is a collection of components and the implementation subsystems that contain
them. Implementation Model consists of Implementation Elements, Implementation Subsystems, and
elements created to support developer testing.
Implementation Elements are parts of an implementation, specifically the lowest-level units of physical
composition, replacement, version control, and configuration management. Therefore, these form physical
parts that make up an implementation and include both files as well as directories. A piece of software code
(source, binary, or executable) can be represented by an Implementation Element. A file containing
information, such as a Read Me file, can also be represented by an Implementation Element.
Build
The purpose of a Build, constructed from other elements in the implementation, is to deliver a testable
subset of the runtime functions and capabilities of the system. A Build is an operational version of a system
or a part of the system that demonstrates a subset of the capabilities provided in the final product. In the
43
Study Guide IBM Rational Unified Process and Certification Guide
RUP progress is demonstrated via an executable, a (working) software deliverable rather than just
documents or the like.
Developer Test
The purpose of the Developer Test is to provide the implementation of a subset of required tests in an
efficient and effective manner. Most of the Developer Tests are created in the same timeframes as the
software components that need to be tested. Each Developer Test should consider the basic computer
hardware; the basic underlying software environment; additional specialized input/output peripheral
hardware; the required software of the specialized input/output peripheral hardware; the minimal set of
software tools necessary to facilitate test, evaluation, and diagnostic activities; the required configuration
settings of both software and hardware options; and any required preexisting consumables, such as
populated data sets and receipt printer dockets.
Software Architect
The Software Architect plays an important role in both the Analysis and Design and the Implementation
disciplines. This role leads the development of the system's software architecture, which includes promoting
and creating support for the key technical decisions that constrain the overall design and implementation of
the project.
Implementer
The Implementer is responsible for developing and testing components, in accordance with the project's
adopted standards, for integration into larger subsystems. When test components, such as drivers or stubs,
must be created to support testing, the Implementer is also responsible for developing and testing the test
components and corresponding subsystems.
Study Guide IBM Rational Unified Process and Certification Guide
Integrator
This role leads the planning and execution of implementation element integration to produce builds.
Important Concepts
The important concepts associated with the Implementation discipline include integration, prototypes, and
runtime observation and analysis.
Integration
Large software systems require multiple software components, some off the shelf and others custom
developed, to be integrated into a whole system. This is a specialized software development activity that
combines separate software components to produce a software system. Incremental integration means that
code is written and tested in small pieces and then combined into a working whole by adding one piece at a
time. The benefits include easy identification of faults, full testing of components, and early feedback on the
execution of the system.
Prototypes
Prototypes are used to check business viability, to demonstrate key technology, to obtain project
commitment or funding, to further understand requirements, and to check usability.
Chapter 9. Test
Test discipline provides guidance on evaluating the quality of the product. This evaluation is realized by
finding and documenting defects in software quality, advising on the perceived software quality, validating
and proving the assumptions made in the design and requirement specification through concrete
demonstration, validating that the software product operates as expected and specified, and validating that
requirements are implemented properly.
An interesting difference exists between Test and the other disciplines in RUP: Test is tasked with finding and
exposing weaknesses in the software product. A somewhat subtle difference is that those three disciplines
focus on completeness, whereas Test focuses on incompleteness.
Test Workflow
Define Evaluation Mission: this work is focused mainly on identifying the objectives for the testing effort
and a good resource utilization strategy, defining the appropriate testing scope and how the progress will be
monitored and assessed, and outlining the approach that will be used. Successful definition of the Evaluation
Mission requires the following:
Study Guide IBM Rational Unified Process and Certification Guide
Key Artifacts
Test Strategy: defines the strategic plan for how the test effort will be conducted against one or more
aspects of the target system. It includes an explanation of the general approach to be used and the specific
types, techniques, and styles of testing that will be employed as part of the strategy.
Test Plan: defines the goals and objectives of testing within the scope of the iteration (or project), the items
being targeted, the approach to be taken, the resources required, and the deliverables to be produced.
Test-Ideas List: enumerates ideas, often partially formed, that identify potentially useful tests to conduct. It
is particularly useful earlier in the development cycle.
47
Study Guide IBM Rational Unified Process and Certification Guide
48
Study Guide IBM Rational Unified Process and Certification Guide
Test Manager
This role leads the overall test effort. It includes quality and test advocacy, resource planning and
management, and resolution of issues that impede the test effort.
Test Analyst
This role identifies and defines the required tests, monitors detailed testing progress and results in each test
cycle, and evaluates overall quality.
Test Designer
This role leads defining the test approach and ensuring its successful implementation. This includes
identifying techniques, tools, and guidelines to implement the required tests and providing guidance to the
test effort on corresponding resource requirements.
Study Guide IBM Rational Unified Process and Certification Guide
Tester
This role conducts tests and logs the outcomes of his testing.
Reviewer
This role provides timely feedback to project team members on the work products they have submitted for
review. Any member of the team can assume this role as long as he has appropriate prerequisite skills.
Important Concepts
The important Test concepts include integration with iterative development, dimensionality of the testing,
and distinction between test cases and test scripts.
Dimensions of Testing
According to Kruchten (2000), product quality can be assessed by performing different kinds of tests, each
one with a different focus. These have been termed test dimensions and include quality, stage, and type of
testing. Each one is explained in this section.
Quality Dimension: Does the product do what we need it to do? A product might be free of defects, but if it
does not perform what it is supposed to do, it will be useless.
Stage of Testing: In iterative development, different targets of test are tested in different stages of the
software development. The different stages are as follows:
- Unit Test: smallest testable elements of the system are tested individually.
- Integration Test: Components, subsystems, or other integrated units are tested.
- System Test: The complete system or application is tested.
- Acceptance Test: The end users test the completed system or application to establish the
readiness of the system for deployment.
Study Guide IBM Rational Unified Process and Certification Guide
Types of Tests: can be organized around quality dimensions that align with the kinds of requirements
described in the Requirements discipline as FURPS.
- Functionality: Functionality tests involve the following Function Testing, Security and Access
Control Testing and Volume Testing
- Usability: is a method by which representative users of a product are asked to perform
certain tasks in an effort to measure the user interface's ease of use.
- Reliability: Reliability testing involves the following: Integrity Testing, Structure Testing,
Stress Testing
- Performance: Performance testing involves the following: Benchmark Testing, Contention
Testing, Load Testing, Performance Profiling.
- Supportability: Supportability testing involves the following: Configuration Test, Installation
Test, Regression Testing.
51
Study Guide IBM Rational Unified Process and Certification Guide
Deployment enables the project team to finally deliver the desired solution to the customer. There are a
number of different channels for delivering this solution. This discipline provides guidance on the best way
to package the product and all related support material and documentation.
Deployment Workflow
Plan Deployment: starts early in the project lifecycle and addresses not only the production of the
deliverable software but also the development of training material and system support material to ensure
that the end user can successfully use the delivered software product. The Deployment Plan is the key
artifact that the Deployment Manager produces while planning the deployment. The Deployment Manager
also produces the Bill of Materials, which lists all deliverable items.
Develop Support Material: Support material covers the full range of information that will be required by the
end user to install, operate, use, and maintain the delivered system. This activity produces the collateral
needed to effectively deploy the product to its users.
Study Guide IBM Rational Unified Process and Certification Guide
Key Artifacts
The key artifacts associated with the Deployment discipline include a styleguide, a deployment model, a
deployment unit, the product, and user support material.
Deployment Plan: is the key artifact that the Deployment Manager produces while planning the
deployment.
Bill of Materials: which lists all deliverable items.
Manual Styleguide: The purpose of this artifact is to describe the stylistic conventions to be used to develop
user support materials and document how to develop the end user support manuals. The Manual Styleguide
gives advice on, and rules for, general and domain-specific spelling, sentence style, and technical writing
issues.
Deployment Model: capture and show the configurations of processing nodes at runtime (processing
elements with at least one processor, memory, and possible other devices), devices (stereotyped nodes with
no processing capability at the modeled level of abstraction), the communication links between them
(connectors, between nodes, and between nodes and other devices), and the component instances and
objects that reside on them.The Deployment Model is leveraged and utilized by numerous roles, including
these:
- The Software Architect uses it to gain a clearer understanding of the physical execution
environment and build appreciation for issues related to distribution.
53
Study Guide IBM Rational Unified Process and Certification Guide
- The Database Designer uses it to understand the distribution of data in the system.
- The System Administrator leverages it to understand the physical environment in which the
system will execute.
- The Deployment Manager uses it as a primary source in planning the product's transition to
the user community.
- The Project Manager uses it to establish cost estimates and plan acquisition, installation,
and maintenance as appropriate.
Deployment Unit: This artifact consists of a build (an executable collection of components), documents (user
support material and release notes), and installation artifacts. A Deployment Unit is typically associated with
a single node in the overall network of computer systems or peripherals and is sufficiently complete to be
downloadable and run on a node.
Product: This is the actual product or solution to be delivered to the customer. The entire project effort is
geared toward creating a product that benefits the user community.
User Support Material: This artifact consists of materials that assist the end user in learning, using,
operating, and maintaining the product.
Deployment Manager
This role leads the planning of the product's transition to the user community. The Deployment Manager
also ensures that those plans are enacted appropriately, manages any issues, and monitors progress.
Configuration Manager
Supports the product development activity so that Developers and Integrators have appropriate workspaces
in which to build and test their work, and so that all artifacts are available for inclusion in the Deployment
Unit as required. The Configuration Manager is responsible for managing the overall Configuration
Management infrastructure and the environment for the product development team.
Study Guide IBM Rational Unified Process and Certification Guide
Course Developer
This role develops training materials for training users on how to use the product.
Technical Writer
This role is responsible for producing end user support material such as user guides, help texts, release
notes, and so.
Graphic Artist
This role performs the Create Product Artwork task and is responsible for the Product Artwork artifact.
Study Guide IBM Rational Unified Process and Certification Guide
Configuration and change management plays a crucial role in ensuring the development and the delivery of
the agreed-upon product. Changes will happen during the life of a project, and some features need to be
added and others need to be compromised to manage the scope and ensure delivery of the right product.
Measurement
Measurement is used to describe the state of the product based on the type, number, rate, and severity of
defects found and fixed during the course of product development. Specifically, quality and progress are
measured. These are defined as follows.
Quality describes the state of the project based on type, number, rate, and severity of defects found
and fixed during the course of product development.
Progress helps in determining the overall completeness status of the project.
Study Guide IBM Rational Unified Process and Certification Guide
The purpose of the CCM discipline is to control changes to and maintain the integrity of a project's artifacts.
In doing so, CCM allows for an effective CM process that:
- Is built into the software development process
- Helps manage the evolution of the software development work products
- Allows developers to execute CM tasks with minimal intrusion into the development process
The Configuration and Change Management process encourages version control of work products (artifacts)
in the development tools and de-emphasizes production of hardcopy documentation due to its inherent
inefficiency. In addition, this process ensures that the level of control applied to each work product is based
on the maturity level of that product. As work products mature, change authorization migrates from the
implementer, to the subsystem or system integrator, to the project manager, and ultimately to the
customer.
CM Workflow
The activities Plan Project Configuration and Change Control and Create Project Configuration Management
(CM) Environments are performed at the start of a project. The rest are performed on an ongoing basis
throughout the project lifecycle.
Study Guide IBM Rational Unified Process and Certification Guide
Plan Project Configuration and Change Control: establishes an appropriate plan, called the Configuration
Management Plan, which is used for managing and controlling change to the artifacts. The Change Control
Manager establishes the change control process and the Change Control Board and defines the change
review notification protocols. The change review notification protocols ensure that appropriate members of
staff are notified when Change Requests are submitted.
Create Project Configuration Management (CM) Environment: establishes an environment where the
overall product can be developed, built, and made available for stakeholders. This environment provides
private and shared workspaces and ensures that all project roles are able to access and work on the correct
artifacts at the right time. The Configuration Manager sets up the CM environment by setting up the CM
hardware environment, mapping the architecture to the repository, creating an initial set of versioned
elements, and defining baseline promotion levels. The Integrator creates the integration workspace that is
needed for the integration. When creating a new baseline, the Integrator needs to lock the integration
workspace to ensure that there is a static set of files and that the developers deliver no new files.
Monitor and Report Configuration Status: provides visibility to configuration change activity through
ongoing monitoring and reporting. The Configuration Manager reports on configuration status and defect
trends and produces Project Measurements. In addition, the Configuration Manager performs physical and
functional configuration audits and reports findings by producing Configuration Audit Findings.
Change and Deliver Configuration Items: manages project artifacts and the work involved from their initial
creation as private artifacts through to their delivery and general availability to the project team and other
stakeholders. Note that Any Role creates a development workspace, makes and delivers changes, and
updates the workspace. In addition, the Integrator creates and promotes the baselines. As a result, the
Workspace and Project Repository are updated.
Manage Baselines and Releases: ensures that consistent sets of related or dependent artifacts can be
identified as part of a "baseline". The Configuration Manager creates a copy of the deliverable items,
baselined and under version control in the project repository, onto the necessary media for deployment in
the target environment. The Deployment Unit is produced. As with the preceding activity, the Integrator
creates and promotes the baselines here as well.
Manage Change Requests: ensures that due consideration is given to the impact of a change on the project
and that approved changes are made within a project in a consistent manner. Note that Any Role can submit
and update a Change Request. The Change Control Manager schedules a CCB Review Meeting, retrieves
Change Requests for review, and reviews submitted Change Requests. The Project Manager schedules and
assigns the work as per the Software Development Plan, Iteration Plan, and optionally a Change Request. In
the case of a Change Request, which is optional, the work is scheduled and assigned within the Manage
Change Requests activity. The Test Analyst resolves the Change Request, verifies changes in the test build
and in the release build, and evaluates and verifies the results.
Key Artifacts
Key artifacts for the CCM discipline include change requests, the CM plan, configuration audit findings, the
project repository, and the workspace.
Change Request: This artifact is used to document and track requests for a change to the product. It
provides a record of decisions and, with an appropriate assessment process, ensures that the change impact
of the request is considered. A change request might represent either a defect or an enhancement request.
CM Plan: This artifact describes all Configuration and Change Control Management activities you will
perform during the course of the product or project lifecycle. This plan details the policies and procedures
58
Study Guide IBM Rational Unified Process and Certification Guide
applied to identify, protect, and report on all project artifacts. In addition, it contains the schedule of
activities; the assigned responsibilities; the required resources, including staff, tools, and computer facilities;
and the project change control process.
Configuration Audit Findings: This artifact identifies a baseline, any missing required artifacts, and
incompletely tested or failed requirements.
Project Repository: This artifact stores all versions of project files and directories. It also stores all the
derived data and metadata associated with the files and directories. Depending on the size of a project,
there could be multiple project repositories.
Workspace: enables controlled access to the artifacts and other resources required to develop the
consumable product. Workspaces provide secure and exclusive access to versioned project artifacts. Two
kinds of workspace can be identified: the development workspace and the integration workspace. On a
project, there is one shared integration workspace and possibly multiple development workspaces.
Configuration Manager
This role manages the overall CM infrastructure and environment for the product development team. The
CM function supports the product development activity so that developers and integrators have appropriate
workspaces in which to build and test their work and so that all work products are available for inclusion in
the Deployment Unit as required. The Configuration Manager role also has to ensure that the CM
environment facilitates product review and change and defect tracking tasks. Finally, this role is responsible
for writing the CM Plan and reporting progress statistics based on change requests.
Study Guide IBM Rational Unified Process and Certification Guide
Integrator
This role leads the planning and execution of implementation element integration to produce builds.
Any Role
This role characterizes the tasks that any team member can perform.
Important Concepts
Some of the important CCM concepts include CM tools, the scope of CCM, the product directory structure,
the promotion method, and the benefits of a CM system.
Study Guide IBM Rational Unified Process and Certification Guide
Promotion Method
As the project progresses through the lifecycle and baselines become more complete and stable, "promotion
levels" are used to characterize the baseline in terms of its completeness and stability. Promotion levels
become especially critical in an iterative development lifecycle like the RUP because products of the project
is continually refined and incremental builds are produced. Promotion levels, however, need to be defined
as appropriate to address the individual project needs. Having said this, a common set of definitions can be
reused in many different projects. Examples of promotions levels are as follows:
- Integration Tested
- System Tested
- Acceptance Tested
Benefits of CM System
Some of the key benefits achieved from the CM system are as follows:
- Supports development methods
- Maintains product integrity
- Ensures completeness and correctness of the configured product
- Provides a stable environment within which to develop the product
- Restricts changes to work products based on project policies
- Provides an audit trail on why, when, and by whom any work product was changed
61
Study Guide IBM Rational Unified Process and Certification Guide
Conceive New Project: The key objective of this activity is to obtain enough funding to proceed with the
scoping and planning effort. He identifies risks and creates a Risk List. One of the other key artifacts created
is the Business Case. The executive reviews the Business Case and performs an investment appraisal.
Evaluate Project Scope and Risk: As the software development progresses through iterations, the Project
Manager needs to evaluate project scope and relevant risks.
Plan the Project: involves developing the components and enclosures of the Software Development Plan.
He also defines the following: Monitoring and control processes, status reporting procedures, phases and
iterations, dffort to develop the schedule and budget.
Plan Remainder of Initial Iteration: This activity is essentially the same as Plan for Next Iteration. The
significance of explicitly showing this as a separate activity is to communicate the importance of planning for
Study Guide IBM Rational Unified Process and Certification Guide
the remainder of the initial iteration. The Project Manager reviews the Iteration Plan to ensure that it will
satisfy the objectives set out for the iteration as documented in the Software Development Plan.
Manage Iteration: contains the tasks that begin, end, and review an iteration. In addition, the Project
Manager initiates the iteration and allocates the staff and nonpersonnel resources of the project to each of
the activities that will be completed in this iteration, as defined in the current Iteration Plan. The
Management Reviewer reviews the Iteration Evaluation Criteria. It is an important review because it
ensures that the project team and customer have consistent expectations for how success in the work of the
iteration will be measured. In assessing the iteration, the Project Manager produces an Iteration
Assessment artifact. This involves collecting metrics, assessing the results of the iteration relative to the
evaluation criteria that were established for the iteration plan, considering external change, examining the
evaluation criteria to determine whether they are realistic, and creating the change requests based on the
results of the assessment.
Reevaluate Project Scope and Risk: This activity reappraises the project's scope and risk and updates the
Business Case. It involves identifying and assessing risk and, if required, further refining the Business Case. If
risks have changed, the Project Manager updates the Risk List.
Close-Out Phase: In this activity, the Project Manager brings the phase to closure by ensuring that the phase
objectives have been achieved.
Plan for Next Iteration: This activity creates an Iteration Plan, which is a fine-grained plan to guide the next
iteration. The Project Manager and Software Architect decide which requirements to explore, refine, or
realize. They carry out detailed planning during this activity, which then leads into the next iteration.
Refine the Development Plan: This activity refines the SDP, as needed. This involves capturing lessons
learned and updating the overall Project Plan in the SDP for later iterations.
Monitor and Control Project: The routine daily, weekly, and monthly tasks of the project management are
performed in this activity: Monitor project status, Report status, Handle exceptions and problems.
Close-Out Project: The Project Manager prepares for project close-out after the final delivery of software in
the Transition Phase. The expectation is that there are no remaining problems that might impact formal
acceptance, and that any issues that do remain are documented and handed over for resolution to the
customer or other maintenance organization.
Key Artifacts
Business Case: provides the necessary information from a business standpoint to determine whether this
project is worth investing in. The Business Case should include a set of assumptions about the project and
the order of magnitude return on investment (ROI).
Software Development Plan: provides a project overview, describes the project team and a project plan (by
phases), and serves as a reference to iteration plans for each iteration (within a phase). This artifact,
therefore, is comprehensive and includes a number of artifacts developed during the Inception phase. SDP is
maintained throughout the project lifecycle. The main enclosures include these:
Measurement Plan: This plan requires the Project Manager to do the following: ecide which of the
project's requirements and constraints are important enough to require monitoring, validate the
goals, decompose complex goals and define the subgoals and the metrics required to satisfy these
subgoals, Identify the primitive metrics needed to compute the metrics and ensure that instructions,
procedures, tools, and repositories for metrics collection, computation, display, and reporting are in
place.
Risk Management Plan: plan the identification, analysis, and prioritization of risks and to identify the
risk management strategies for the most significant project risks.
63
Study Guide IBM Rational Unified Process and Certification Guide
Product Acceptance Plan: The final acceptance is often the source of some friction between the
customer and project teams. By jointly writing a Product Acceptance Plan during the Inception
Phase, the customer and the project team can avoid this situation. The Product Acceptance Plan also
specifies how problems identified by the customer during product acceptance will be addressed.
Problem Resolution Plan: describes how to develop a system to handle problems that occur during
the course of a project. The Problem Resolution Plan should describe the process for managing each
category of problem separately.
Quality Assurance Plan: successful development of the Quality Assurance Plan involves ensuring the
creation of quality goals for the project, agreement by the customer, and inclusion in the Software
Requirements Specification.
Iteration Plan: is a time-sequenced set of activities and tasks, with assigned resources and task
dependencies for the iteration; it is a fine-grained plan. SDP contains references to the Iteration Plan.
Iteration objectives, evaluation criteria, and target dates are normally included in the SDP.
Review Record: capture the results of a review activity in which one or more project artifacts are reviewed.
Risk List: is a sorted list of known and open risks to the project, sorted in decreasing order of importance and
associated with specific mitigation or contingency actions. Impact and probability are considered in
calculating risk.
Issues List: gives the Project Manager a way to record and track problems, exceptions, anomalies, or other
incomplete tasks requiring attention that relate to the management of the project.
Status Assessment: the periodic Status Assessment provides a mechanism for managing everyone's
expectations throughout the project lifecycle.
Work Order: is the Project Manager's means of communicating to the responsible staff what is to be done
and when. It becomes an internal contract between the Project Manager and those assigned responsibility
for completion.
Deployment Plan: includes a description of the set of tasks necessary to install and test the developed
product, a schedule of events, persons responsible, and event dependencies such that the new system can
be effectively transitioned to the user community.
64
Study Guide IBM Rational Unified Process and Certification Guide
Project Manager
This role plans, manages, and allocates resources; shapes priorities; coordinates interactions with customers
and users; and keeps the project team focused. The Project Manager also establishes a set of practices that
ensure the integrity and quality of project work products.
Study Guide IBM Rational Unified Process and Certification Guide
Management Reviewer
This role evaluates project planning and project assessment work products at major review points in the
project's lifecycle.
Review Coordinator
This role facilitates formal reviews and inspections, ensures that they occur when required, and verifies that
they are conducted to a satisfactory standard.
Important Concepts
The important Project Management concepts include the role of project management in the iterative
development projects, risk management, and risk management strategies.
Note that each iteration requires careful planning, as iteration objectives must be met before an iteration is
concluded and the deliverables delivered.
Risk Management
Risks keep evolving over the life of the project; unanticipated risks will be exposed, others that were
identified will retire, serious ones will be easily mitigated, and so on. The Inception and Elaboration phases
of RUP focus on confronting the top risks prior to entering the Construction phase. That is where RUP differs
from traditional software development; it advocates managing top risks early in the project lifecycle. The
goal of risk management is to identify and address those risks to which the project has the highest exposure
and for which it does not have a strategy in place to control.
67
Study Guide IBM Rational Unified Process and Certification Guide
The purpose of the Environment discipline is to provide the software development organization with the
software development environmentboth processes and toolsthat will support the development team.
Regarding the tools, the Environment discipline also aims to support tool selection, acquisition, setup, and
configuration.
Environment Workflow
Prepare Environment for Project: It ensures that an appropriate development environment, including both
process and tools, is prepared for the project. Its involves tailoring the development process, developing the
Development Case, preparing templates and guidelines for the project, and selecting and acquiring required
tools.
Prepare Environment for an Iteration: refinements are made to the Development Case leading to the actual
refinement of the development environment. This activity involves refining the Development Case, ensuring
that guidelines and templates meet iteration needs, developing necessary Manual Styleguides, and
confirming that appropriate tools are in place. Different roles engaged in performing the tasks within this
activity are Process Engineer, Technical Writer, and Tool Specialist. We will discuss these later in the
chapter.
Support Environment During an Iteration: might involve installing required software, ensuring that
hardware is functioning properly, and making sure that potential network issues are resolved without delays.
The System Administrator is the main role responsible for supporting the environment during an iteration.
Study Guide IBM Rational Unified Process and Certification Guide
Key Artifacts
The key artifacts for the Environment discipline include the development process, the development case,
project-specific guidelines, project-specific templates, the development infrastructure, the development
organization assessment, and the Manual Styleguide.
Development Process: It is a configuration of the RUP that meets the specific needs of the project. It
describes the process (what artifacts will be produced for each discipline, who will produce them, and in
what timeframe they will be produced) that a project must follow to produce the project's desired results.
Development Case: describes the development process that you have tailored for your organization or for a
specific project. It is recommended that you develop the Development Case in increments, covering more
and more of the disciplines in each iteration.
Project-Specific Guidelines: provides prescriptive guidance on how to perform a certain task or a set of tasks
in the context of the project.
Project-Specific Templates: These are the templates required for artifacts used in the project.
Development Infrastructure: includes the hardware and software, such as the computers and operating
systems, on which the tools run. The Development Infrastructure also includes the hardware and software
used to interconnect computers and users.
Development Organization Assessment: describes the current status of the software organization in terms
of current process, tools, team members' competencies and attitudes, customers, competitors, technical
trends, problems, and improvement areas. This artifact is used to guide the Process Engineer in tailoring the
process for an organization or for a particular project. Development Organization Assessment is an optional
artifact.
Manual Styleguide: helps to ensure consistency across the style and quality of user support material. A
Manual Styleguide is recommended for most projects with user support material.
Process Engineer
This is a support role in the RUP. The Process Engineer provides valuable services to ensure project success.
The main goal of the Process Engineer role is to equip the project team with an appropriate development
process and to make sure that the team members are not hindered in doing their jobs.
Study Guide IBM Rational Unified Process and Certification Guide
System Administrator
This role maintains the development infrastructure, both hardware and software. This includes installation,
configuration, backup, and more.
Tool Specialist
This role supports the tools used by the project. This includes selecting and acquiring tools, configuring and
setting them up, and verifying that they work.
Technical Writer
This role produces end user support material such as user guides, help texts, release notes, and so on.
Important Concepts
Important concepts for the Environment discipline include tailored process and tool support for process
tailoring,
Tailored Process
The RUP framework is built as a configurable process product so that it can be tailored to meet an
organization's or project's specific needs. In general, you can tailor RUP at two levels.
Study Guide IBM Rational Unified Process and Certification Guide
71
Study Guide IBM Rational Unified Process and Certification Guide
A lifecycle is a complete description of a process; in UMA terms, it is called a Delivery Process. This chapter
introduces how the method content elements are grouped resulting in Classic RUP and the Business
Modeling Lifecycle. These lifecycles provide the content for iterative projects, separating a project into four
major sequential phases: Inception, Elaboration, Construction, and Transition. Phases are UMA activities that
conclude with a milestone. Each phase, however, consists of iterations that are expressed as Capability
Patterns.
Each Capability Pattern can contain activities, including phases and iterations. Furthermore, a Capability
Pattern can include milestones and task descriptors. The structure of a Capability Pattern is the WBS, which
you can use to configure and align the elements in a hierarchy and order. By default, RUP provides three
views on the breakdown structure and its activities:
WBS listing all the activities and task descriptors
Team Allocation, which bundles work and artifacts to the responsible party or performer
Work Product Usage, which lists all the artifacts associated with the process element
The completion of a phase is evaluated at a milestone, and each milestone has completion criteria that
verifies the end of a phase. Milestones monitor the completion of work and the achievement of set goals.
Due to the emphasis on different types of tasks during each phase of the project, the phases vary by length
and resource intensity.
Inception
Let's assume we want to harvest oil and we initiate a new project to build a plant. First we need to locate
possible oil sources. For example, in the U.S., oil has been found in Texas and Alaska, so the surrounding
areas are promising but not necessarily the only source with which to start. During Inception, you investigate
maps, take soil samples, and investigate reports from other organizations. The overall goal of this relatively
short phase (compared to the other phases) is to provide recommendations for possible oil locations and to
get funding for the next phase, a sample drilling. At this point, the project team has located oil but does not
necessarily know the overall potential of the find or the amount of equipment it will require to bring it in.
This phase is characterized as less plan driven but more creative and innovative.
Study Guide IBM Rational Unified Process and Certification Guide
Objectives
The RUP Inception phase is brief and aims at gaining concurrence among the stakeholders as to the business
objectives of the system. As a result of such concurrence, it should be deemed worth proceeding with the
project to the next step.
The primary objectives include these:
- Establishing the project's software scope
- 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
- Estimating potential risks
- Preparing the supporting environment for the project
Workflows
Notice the focus on establishing the project environment, deriving a vision, and executing common project
planning activities.
Elaboration
During Elaboration, the members of the team working on our oil project example want to prove that there is
oil but also want to establish an estimate of how much oil will be available. Sample drilling will be executed,
facts about the depth and location of the oil will be gathered, the necessary equipment to reach the oil will
be obtained and put in place, and the architecture necessary to collect the oil will be established. Lessons
will be learned from unsuccessful drillings, and estimates and forecasts will be derived from the successful
ones. It is not the objective of the Elaboration phase to harvest the oil and establish a productive
environment, but rather estimate the funding necessary for doing so and build a case to implement the plan
and architecture on a large-scale plan. At the end of Elaboration, the oil project team should feel confident
about the feasibility of the project, have a good grasp of the risks, and have put an architecture for the plant
in place. Even though all milestones are considered go-kill decision points for a project, the milestone
following Elaboration is crucial for the final success of the project.
Objectives
With a relatively small but skilled staff, the Elaboration phase is characterized by strong focus on the
architecture of the system. Usually Elaboration is one or two iterations long, and the length of these
iterations could be longer than during the Construction phase. The team creates architectural prototypes
Study Guide IBM Rational Unified Process and Certification Guide
and compares them based on architecturally significant scenarios. They mitigate some high-priority technical
risks associated with important functionality. Besides the architectural work during Elaboration, the project
team continues to evolve the requirements.
The primary objectives include these:
- Ensuring 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.
- Addressing all architecturally significant risks of the project.
- Establishing a baselined architecture derived from addressing the architecturally significant
scenarios that typically expose the top technical risks of the project.
- Producing an evolutionary prototype of production-quality components, as well as possibly
one or more exploratory.
- Demonstrating that the baselined architecture will support the requirements of the system
at a reasonable cost and in a reasonable amount of time.
- Establishing the supporting environment. 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 and guidelines, and setting up tools.
Workflows
Construction
Construction is usually the most resource-intensive phase, which affects the financial and timely success of
the project. That means for our oil project that many workers will build the plant and implement the drills.
The project will build the overall plant step-wise to its completion. After a certain amount of progress, it is
not uncommon for a project to open some drills for production to increase productivity and gain early return
on investment (ROI).
Objectives
The iterations are commonly shortened to encourage more frequent user feedback, providing more
opportunity to find out if the feedback is validating the stated requirements. Therefore, project-external
stakeholders are more frequently involved due to the length of the iterations (2 to 4 weeks) and the nature
of the phase.
During the Construction phase, the Software Architect focuses on ensuring that the developers use and
follow the defined architecture. The testing strategy is executed by running the test and producing daily
builds with executables as output at the end of each iteration.
These are the primary objectives:
- Minimizing development costs by optimizing use of 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.
- Iteratively and incrementally developing 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.
- Deciding if the software, the sites, and the users are ready for the application to be
deployed.
- Achieving some degree of parallelism in the work of development teams.
77
Study Guide IBM Rational Unified Process and Certification Guide
Workflows
Each iteration provides context for requirements management, iteration management of the current
iteration, planning of the subsequent iteration(s), and component design. It is true that there is a bigger
emphasis on programming during construction than in the Inception or Elaboration phases, but that does
not diminish the need for ongoing, proper planning and management in the other disciplines. For example,
the Ongoing Management and Support activity is composed of requirements and change management.
Transition
During Transition, a project is rolled out into its planned environment. The training plan for the staff is
executed, final acceptance tests are executed, and paperwork is submitted.
Objectives
During Transition, the project team drives two major initiatives. The first is to receive official acceptance
from the customer, and the second is to prepare the user environment to work effectively with the system
according to the specification.
The primary objectives of the Transition phase include the following:
- Beta testing to validate the new system against user expectations
- Beta testing and parallel operation relative to a legacy system that it's replacing
- Converting operational databases
- Training of users and maintainers
- Rolling out to the marketing, distribution, and sales forces
- Deployment-specific engineering such as cutover, commercial packaging and production,
sales rollout, and field personnel training
- Tuning activities such as bug fixing, enhancement for performance, and usability
- Assessing the deployment baselines against the complete vision and acceptance criteria for
the product
79
Study Guide IBM Rational Unified Process and Certification Guide
Workflows
The following approaches are examples of how to bring RUP into an organization or project. These
approaches are in order from the easiest, least integrated model to the most sophisticated but integrated
process model.
- Using RUP as an "as-is" Web site and documenting the changes for a project in an
external document, such as the development process artifact in RUP.
- Using a combination of an external reference document with the personalization
feature of RUP, called MyRUP.
- Using the RMC to configure and assemble processes from a library of existing
method content and process elements.
- Authoring additional guidance elements, which are then added to existing content
using RMC.
- Developing a new delivery process using RMC by selecting and deselecting content
and process elements.
- Managing and extending the existing method framework with new method content
elements and process elements. Configuring and releasing the content as a specific
variant of the RUP using RMC.
Tailoring Approaches
The actual implementation of RUP in a project can take many different forms, depending on the adoption
style. Some organizations favor a step-wise RUP implementation, whereas others take the so-called big bang
approach in which the entire RUP is rolled out in one piece. Each of the adoption approaches requires a
different lifecycle planning process. Therefore, this section begins by examining different lifecycles.
82
Study Guide IBM Rational Unified Process and Certification Guide
Lifecycles
The incremental lifecycle: Is characterized by one short Inception iteration, followed by one Elaboration
iteration and then multiple Construction iterations. In an incremental scenario, you apply RUP in one project
before a second- and then a third-use RUP. Subsequently, in this step-wise approach, the organization is
transformed.
Evolutionary lifecycle: In contrast to the Incremental lifecycle, you use the Evolutionary lifecycle when the
requirements are not well established or are unknown, which would require multiple Elaboration iterations
to specify the requirements and establish an architecture.
The difference between the Evolutionary lifecycle and the Incremental Delivery lifecycle is the fact that the
project team actually deploys, iteratively, versions of the IT system while going through the development
process. The main advantage of this approach is that the team can make the implemented functionality
available to the user community much earlier than the complete system. This allows the user community to
utilize early pieces of the system early on, providing a great source of return of investment (ROI).
Grand Design lifecycle: is separated into four phases, with each phase having only one iteration in it. That
approach works if the requested functionality is well understood and the desired architecture is familiar
among the project team members. It is also a common strategy for short projects.
Study Guide IBM Rational Unified Process and Certification Guide
Adoption Styles
The approaches presented in this section discuss the RUP adoption alternatives and possible pros and cons.
In reality, a hybrid approach between two or more approaches is most common.
Big Bang
All disciplines and phases are adopted in one piece.
The time spent in adoption of the big bang approach often causes a problem. The long timeframe that the
big bang adoption style consumes commonly does not scale to the project waiting to use it. However, the big
bang approach does offer large organizations a chance to roll out a process on a large scale in one single
step, which is cost effective in terms of training and mentoring. This approach, of course, includes lots of
compromises because individual project concerns might not be heard and included, but it provides a
consistent communication platform for large enterprises. This adoption approach is recommended on an
organizational level, after a few projects have successfully implemented and used RUP. Based on these
experiences, the most common and successful pieces of RUP are then collected and rolled out as a big bang
on an organizational level.
Study Guide IBM Rational Unified Process and Certification Guide
Phases (Vertical)
In the vertical approach the entire RUP is "sliced up" into the four phasesInception, Elaboration,
Construction, and Transitionincluding their associated milestones. With this approach, a project can
quickly benefit from the advantages these four perspectives take on a project. The four phases would also
introduce the notion of iterative-incremental software engineering without compromising the existing
project artifacts, tasks, and roles.
A possible challenge with this approach is that the milestones require completion of certain artifacts that
might not exist in the current process of the project. Therefore, consistency checks between the milestones
and the existing artifacts in the project need to be made prior to the start of the project.
Because work products are continuously improved and refined throughout all four phases, the vertical
adoption approach does not work with a waterfall software engineering process.
Study Guide IBM Rational Unified Process and Certification Guide
Disciplines (Horizontal)
The emphasis of the implementation is put on the disciplines. In this case, the RUP content is used to deliver
the project work products without the phases and milestones. One advantage is that project team members
can familiarize themselves with the underlying content of RUP and its vocabulary and terminology. Other
benefits, such as the emphasis on architecture, can be introduced in subsequent projects. Consistent
templates and work products will ease the transition to a later complete deployment of RUP.
Study Guide IBM Rational Unified Process and Certification Guide
Content Filter
With a filter over the entire RUP content, you can separate relevant content from irrelevant content for a
particular project. For example, as a basic but not uncommon approach, project use the RUP work product
templates exclusively.
Study Guide IBM Rational Unified Process and Certification Guide
Extension
Adopting and instantiating RUP in a project most likely also means that you need to extend RUP in certain
areas. These areas are commonly the areas that have worked successfully in the past. No project member
wants to see his "way of work" going away, especially if it has proven successful. Therefore, organizations
can change the existing content or add to the disciplines. It is not uncommon for some organizations to need
to add entire disciplines to the RUP process framework, such as Marketing, Product Management, or
Operations and Support.
MyRUP
MyRUP or MyView is used for personalizing RUP content. As the name indicates, MyRUP helps project team
members fine-tune RUP to their own personal work environment. For example, a business analyst can
reduce the entire RUP content (see so that only content relevant to his role is presented).
The Save As option allows the user to create his own view, which is then used as a filter on the existing
content.
The business analysis can now use the new view to reduce the relevant content through the MyRUP menu.
He can remove entire element groups, such as the Test domain, with one command, or remove a single
element within a group.
Study Guide IBM Rational Unified Process and Certification Guide
RMC offers two important perspectives: browsing and authoring. Through these perspectives, the process
engineer can either author or test the process prior to the actual publication.
Study Guide IBM Rational Unified Process and Certification Guide
The Library window lists all the plug-ins in a single repository. The repository is a collection of so-called plug-
ins, which you can load and unload from the library.
The notion of plug-ins allows process engineers to create their own method plug-ins and add them to an
existing library. Instead of changing the content of RUP directly in the original RUP plug-in, the process
engineer can use an elegant approach to keep the tailored elements separate from the original RUP
elements.
Let's assume that you would like to create a plug-in that covers specialized content about how to acquire
RUP certification. But more importantly, you would like to connect the new content with the existing RUP
Study Guide IBM Rational Unified Process and Certification Guide
content, so that in future releases, the certification content is always at the fingertips of the RUP user. As
shown in Figure , you would begin by creating a new Guidance.
After we create the type of Guidance, RMC opens a content page for this element. This form-based page
allows the process engineer to enter the textual or graphical information for the element.
It is important to understand that RMC internally uses unique references for each element. Through this
reference mechanism, you can attach to or remove elements from each other, creating an interlinked
network of content you browse through the published websites.
In RMC, a configuration is a mechanism to filter and group information persistent in the library and make it
accessible to end users.
Study Guide IBM Rational Unified Process and Certification Guide
To be able to release a different flavor of RUP in an organization, we need to create a new configuration and
select the plug-ins from which to extract the content.
We can easily verify this step by switching to the browsing perspective and selecting the newly created
configuration.
Study Guide IBM Rational Unified Process and Certification Guide
The browsing perspective allows the process engineer to preview and verify that the content is appropriately
interlinked, correct, and ready for release. The release of the newly assembled process (a configuration) is
then released through the publication feature of RMC, which generates the HTML files that can then be
consumed by the project team as their customized version of RUP. Do you remember the Development Case
artifact from the Environment discipline in Chapter 13, "Environment"? A configuration presents an
automated version of this work product.
To alter existing RUP content, RMC provides three variability types (beside the default of "no variability") for
each content element:
- If one element extends another, the extended element will coexist in its original version
while the extending element carries the content of the original and the extended one. This
variability is useful if a process engineer likes to use original content but would like to have
the new content coexist with the original content.
- The replace variability type differs from the extends variability type in that you are actually
leaving only one content element behindthe replacing one. This variability is useful if a
process engineer is not interested in the RUP element and wants to replace the entire
element with a newly created content element.
- The contributes variability type allows the process engineer to add content to existing
(original) content, keeping the original content untouched and keeping the contributing
additions in a separate element. This is useful, for example, if a process engineer wants to
add a sentence or paragraph to an existing RUP element.
In terms of process elements, RMC offers process engineers the capability to assemble activities, capability
patterns, and delivery processes in work breakdown structures (WBS). For example, Figure above shows the
activities and task descriptors for the capability pattern Develop Initial Vision.