Lecture 10b

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

FIT3SQA – Software Quality Assurance

Lecture 10

The Rational Unified Process

Faculty of Information Technology


Hanoi University
Rational Unified Process
• Created by Rational Software, an IBM’s branch.
• RUP is a methodology while Unified Process (UP) is the
general framework which RUP is based upon.
• RUP has 4 phases: inception, elaboration, construction,
transition.
• Before software is built, thorough Business Modeling
and Requirement Gathering should be done.
– Business Modeling: in order to build the model, the
Business Analyst (BA) has to know everything about the
organization from its processes/functions to its revenues
and expenses.
• Focuses on product quality.
RUP - Iterations
• Each of the 4 phases may be repeated. An
iteration is one time that a phase is repeated.
• A phase/iteration contains several workflows.
– E.g. requirements, analysis, design, test…
• Each phase may be done in one or more
iterations until a milestone is reached.
– A milestone is when the deliverables of a
particular phase are completed and have
acceptable quality.
RUP - Milestones
• The RUP methodology defines 4 milestones
and their evaluation criteria.
• At the end of an iteration, a milestone’s
criteria might be met or not.
– If yes: move on to next phase.
– If no: another iteration is needed.
• Evaluation of a milestone’s criteria involves
both developers and customers.
– An important factor is the planned cost versus
actual cost.
Inception Phase
• Initial project planning.
• Business modeling.
– The BA should first understand the customer’s business.
• Product architecture.
• Functional requirements (early work).
– The software product is usually the simulation of the real
business work.
– Gathering requirements can often be synonymous to
understanding customer’s business.
• Cost estimation.
• Milestone: Lifecycle Objectives.
Use-case driven
• Software projects may be complex.
• Requirements maybe:
– Missing
– Understood differently between customer and
developer.
• RUP gather requirements as use cases.
– The functional requirements from the users’ point of
view.
• The aim of designs and models is to realize use
cases.
• Testers verify that implementation follows
established use cases.
Inception Outcome
• A general vision of the core project's requirements, key
features, and main constraints.
• Initial use-case model (10% - 20% complete).
• An initial project glossary.
• An initial business case, which includes business context,
success criteria (revenue projection, market recognition…),
and financial forecast.
• An initial risk assessment.
• A project plan, showing phases and iterations.
• One or several prototypes.
Lifecycle Objectives Milestone
• Stakeholder agree on scope definition and
cost/schedule estimates.
• Developers understand requirements (well-written
use cases).
• Clearly identified cost/schedule estimates, priorities,
risks, and development process.
• A good architectural prototype was developed.
• Actual expenditure matches planned expenditures to
some extent.
Elaboration Phase
• Goals:
– Lay the foundations of the project works.
– Execute everything in the project on the surface (a
breath-first approach).
– Planning for estimated risks.
• Detailed use cases.
• Functional requirements (refined).
• Non-functional requirements.
• Milestone: Lifecycle Architecture.
Elaboration Outcome
• A use-case model (at least 80% complete)
– All use cases and actors have been identified
– Most use-case descriptions have been developed.
• Supplementary requirements
– Non functional requirements
– Any requirements that are not associated with a specific use case.
• A software architecture description.
• An executable prototype.
• A revised risk list and a revised business case.
• An overall development plan, showing iterations and
evaluation criteria for each iteration.
• The process to be used.
• A preliminary user manual (optional).
Lifecycle Architecture Milestone
• Is the vision of the product stable?
• Is the architecture stable?
• Have major risk elements been addressed?
• Is the construction phase plan detailed, accurate and
backed by a credible basis of estimates?
• Do all stakeholders agree that the current vision can
be achieved with the current plan?
• Does the actual expenditure still match planned
expenditure?
Construction Phase
• Implementation of agreed use cases.
• Components and application features are
developed and integrated into the product.
• Product features are thoroughly tested.
• Minimum outcomes:
– The software product integrated on the adequate
platforms (beta release).
– The user manuals.
– A description of the current release.
Initial Operational Milestone
Evaluation criteria
• Is this product release stable and mature enough to
be deployed in the user community?
• Are all stakeholders ready for the transition into the
user community?
• Are the actual resource expenditures versus planned
expenditures still acceptable?
Transition Phase
• Works done when delivering the software
product to the customer.
– Deployment & Beta testing.
– Parallel operation with the old system.
– Conversion to new database.
– Customer training & Maintenance staff training.
– Correcting defects.
– Customer support.
– Sales team establishment & operation.
Product Release Milestone
Evaluation criteria
• Is the user satisfied?
• Are the actual resources expenditures versus
planned expenditures still acceptable?
Failure action
• Start another development cycle.
RUP – Model Graph
Core Engineering Workflows
1. Business modeling workflow
– Problem: Software engineers and business engineers
do not communicate properly with each other.
– Solution: Use a common language and process for
both business and engineers.
2. Requirements workflow
– Identify actors, stakeholder needs, use cases.
– Develop use-case descriptions.
3. Analysis & Design workflow
– Goal: show how the system will be realized in the
implementation phase.
Core Engineering Workflows
4. Implementation workflow
– Define the organization of the code.
– Implement classes and objects.
– Test the developed components as units.
– Integrate components produced by individuals (or
teams), into an executable system.
5. Test workflow
– Verify the interaction between objects.
– Verify the integration of components.
– Verify that requirements are correctly implemented.
– Identify and repair defects before deployment.
Core Engineering Workflows
6. Deployment workflow
– Producing external releases of the software.
– Packaging the software.
– Distributing the software.
– Installing the software.
– Providing help and assistance to users.
– Planning and conduct of beta tests.
– Migration of existing software or data.
– Formal acceptance.
Core Supporting Workflows
1. Project Management workflow
– Balance competing objectives
– Manage risks
– Overcome constraints
2. Environment workflow
– Provide development team with processes and
tools.
– Apply processes in a project context.
Core Supporting Workflows
Configuration and Change Management workflow
• Challenges:
– Simultaneous updates: many persons working on update
the same component at the same time.
– Limited notification: not everybody is informed of the
change.
– Multiple releases: One release could be in customer use,
while another is in test, and the third is still in
development.
• Solution:
– Use tools to manage changes, notifications and releases.

You might also like