Rational Unified Process Software Engineering Lab. Summer 2006.

65
Rational Unified Rational Unified Process Process Software Engineering Lab. Summer 2006

Transcript of Rational Unified Process Software Engineering Lab. Summer 2006.

Rational Unified ProcessRational Unified Process

Software Engineering Lab.Summer 2006

Rational Unified Process (RUP)Rational Unified Process (RUP)

► IntroductionIntroduction►PhasesPhases►Core WorkflowsCore Workflows►Best PracticesBest Practices►ToolsTools

► Team-Unifying ApproachTeam-Unifying Approach The RUP unifies a software team by providing a common The RUP unifies a software team by providing a common

view of the development process and a shared vision of view of the development process and a shared vision of a common goala common goal

► Increased Team ProductivityIncreased Team Productivity knowledge base of all processesknowledge base of all processes view of how to develop softwareview of how to develop software modeling languagemodeling language Rational provides many toolsRational provides many tools

Designer Analyst Tester

Architect

Tool

Specialist

Developer

Project Management

Rational Unified Process Rational Unified Process (RUP)(RUP)

Project ManagementEnvironment

Supporting WorkflowsConfiguration & Change Mgmt

Business Modeling

Implementation

Test

Analysis & Design

Process Workflows

Deployment

Requirements

Preliminary Iteration(s)

Iter.#1

Phases

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Elaboration TransitionInception Construction

time

co

nte

nt

Rational Unified Process (RUP)Rational Unified Process (RUP)

► IntroductionIntroduction►PhasesPhases►Core WorkflowsCore Workflows►Best PracticesBest Practices►ToolsTools

Phases in the ProcessPhases in the Process

The Rational Unified Process has four The Rational Unified Process has four phases:phases: Inception - Define the scope of projectInception - Define the scope of project Elaboration - Plan project, specify features, Elaboration - Plan project, specify features,

baseline architecture baseline architecture Construction - Build the productConstruction - Build the product Transition - Transition the product into end Transition - Transition the product into end

user communityuser community

time

Inception Elaboration Construction Transition

Major Major MilestonesMilestones

Inception Goals Inception Goals ► Establishing the project's software scope and Establishing the project's software scope and

boundary conditions, including:boundary conditions, including: an operational visionan operational vision acceptance criteriaacceptance criteria what is intended to be in the product what is intended to be in the product what is not. what is not.

► Discriminating Discriminating the critical use cases of the systemthe critical use cases of the system the primary scenarios of operation that will drive the major the primary scenarios of operation that will drive the major

design trade-offs. design trade-offs. ► Exhibiting, and maybe demonstrating, at least one Exhibiting, and maybe demonstrating, at least one

candidate architecturecandidate architecture against some of the against some of the primary primary scenariosscenarios

Inception Goals (Cont.)Inception Goals (Cont.)

►Estimating Estimating the overall cost the overall cost and schedule for the entire project and schedule for the entire project and more detailed estimates for the and more detailed estimates for the

elaboration phase that will immediately elaboration phase that will immediately followfollow

►Estimating Estimating potential riskspotential risks (the sources (the sources of unpredictability) of unpredictability)

►Preparing the supporting Preparing the supporting environmentenvironment for the project.for the project.

Inception Essential Activities Inception Essential Activities

►Formulating the scope of the project. Formulating the scope of the project. ►Planning and preparing a business Planning and preparing a business

case. case. ►Synthesizing a candidate architecture.Synthesizing a candidate architecture.►Preparing the environment for the Preparing the environment for the

project.project.►……

Inception ArtifactsInception Artifacts

► Vision:Vision: The project's core requirements, key features, The project's core requirements, key features, and main constraints are documented. Stakeholders …and main constraints are documented. Stakeholders …

► Glossary:Glossary: defines important terms used by the defines important terms used by the project. project.

► Business Case:Business Case: provides the necessary information provides the necessary information from a business standpoint to determine whether or from a business standpoint to determine whether or not this project is worth investing in. not this project is worth investing in.

► Software Development PlanSoftware Development Plan: all information : all information required to manage the project. (Risk, time and required to manage the project. (Risk, time and durations, needed tools, changes, documentations)durations, needed tools, changes, documentations)

► Use-case model:Use-case model: a model of the system's intended a model of the system's intended functions and its environment, and serves as a functions and its environment, and serves as a contract between the customer and the developers. contract between the customer and the developers.

Elaboration GoalsElaboration Goals► To ensure stability of:To ensure stability of:

Architecture;Architecture; Requirements;Requirements; Plans.Plans.

► To be able to predictably determine:To be able to predictably determine: Cost;Cost; Schedule.Schedule.

► To address all significant risks of the To address all significant risks of the project, and to ensure all of them will be project, and to ensure all of them will be mitigated.mitigated.

► To establish a baseline architectureTo establish a baseline architecture Derived from addressing the architectural Derived from addressing the architectural

significant scenariossignificant scenarios

Elaboration Goals (Cont.)Elaboration Goals (Cont.)

►To produce an evolutionary prototypeTo produce an evolutionary prototype►Verify baseline architectureVerify baseline architecture

Demonstrate that the architecture will Demonstrate that the architecture will support requirements of the system at a support requirements of the system at a reasonable cost and time.reasonable cost and time.

►To establish a supporting environment. To establish a supporting environment.

Elaboration ActivitiesElaboration Activities► Defining, validating the baseline Defining, validating the baseline

architecture. architecture. ► Refining the Vision.Refining the Vision.► Creating detail of iteration plans for the Creating detail of iteration plans for the

construction phase. construction phase. ► Refining the development case and Refining the development case and

putting in place the development putting in place the development environmentenvironment

► Refining the architecture and selecting Refining the architecture and selecting components. components.

Elaboration ArtifactsElaboration Artifacts► Software Architecture DocumentSoftware Architecture Document: provides a : provides a

comprehensive architectural overview of the system, comprehensive architectural overview of the system, using a number of different architectural views to using a number of different architectural views to depict different aspects of the system. depict different aspects of the system.

► PrototypesPrototypes: One or more : One or more executable architecturalexecutable architectural prototypes have been created to explore critical prototypes have been created to explore critical functionality and architecturally significant scenarios. functionality and architecturally significant scenarios.

► Design model:Design model: an object model describing the an object model describing the realization of use casesrealization of use cases, and serves as an , and serves as an abstractionabstraction of the implementation model and its source code. of the implementation model and its source code.

► Data model:Data model: a subset of the implementation model a subset of the implementation model which describes the which describes the logical and physical logical and physical representation of persistent datarepresentation of persistent data in the system. in the system.

► Testing Mechanisms and Testing Mechanisms and refining previous Iteration’s refining previous Iteration’s artifactsartifacts..

Construction GoalsConstruction Goals

► Completing the analysis, design, development Completing the analysis, design, development and testing of all required functionality. and testing of all required functionality.

► Achieving useful versions (alpha, beta, and other Achieving useful versions (alpha, beta, and other test releases)test releases)

► Achieving adequate quality as rapidly as practical Achieving adequate quality as rapidly as practical ► To decide if the software, the sites, and the users To decide if the software, the sites, and the users

are all ready for the application to be deployed. are all ready for the application to be deployed. ► Minimizing development costs by optimizing Minimizing development costs by optimizing

resources and avoiding unnecessary scrap and resources and avoiding unnecessary scrap and rework. rework.

► To achieve some degree of parallelism in the work To achieve some degree of parallelism in the work of development teams. of development teams. 

Construction Activities Construction Activities

►Resource management, control and Resource management, control and process optimization process optimization

►Complete component development Complete component development and testing against the defined and testing against the defined evaluation criteria evaluation criteria

►Assessment of product releases Assessment of product releases against acceptance criteria for the against acceptance criteria for the vision. vision.

Construction Artifacts Construction Artifacts

►The SystemThe System: The executable system : The executable system itself, ready to begin "beta" testing. itself, ready to begin "beta" testing.

►Training materials:Training materials: the material that the material that is used in training programs or courses is used in training programs or courses to assist the end-users with product to assist the end-users with product use, operation and/or maintenance. use, operation and/or maintenance.

►Testing results and refining previous Testing results and refining previous Iteration’s artifacts.Iteration’s artifacts.

Transition GoalsTransition Goals

► Beta testing to validate the new system Beta testing to validate the new system against user expectations against user expectations

► Beta testing and parallel operation relative Beta testing and parallel operation relative to a legacy system that it's replacing to a legacy system that it's replacing

► Training of users and maintainers Training of users and maintainers ► Roll-out to the marketing, distribution and Roll-out to the marketing, distribution and

sales forces sales forces ► Tuning activities such as bug fixing, Tuning activities such as bug fixing,

enhancement for performance and usabilityenhancement for performance and usability

Transition Goals (Cont.)Transition Goals (Cont.)

►Achieving user self-supportability Achieving user self-supportability ►Achieving stakeholder concurrence Achieving stakeholder concurrence

that deployment baselines are that deployment baselines are completecomplete

Transition ActivitiesTransition Activities►Executing deployment plans Executing deployment plans ►Finalizing end-user support material Finalizing end-user support material ►Testing the deliverable product at the Testing the deliverable product at the

development site development site ►Creating a product release Creating a product release ►Getting user feedback Getting user feedback ►Fine-tuning the product based on Fine-tuning the product based on

feedback feedback ►Making the product available to end Making the product available to end

users users

Transition ArtifactsTransition Artifacts► ProductProduct..► Release Notes:Release Notes: identify changes and identify changes and

known bugs in a version of a build or known bugs in a version of a build or deployment unit that has been made deployment unit that has been made available for use. available for use.

► Installation Artifacts:Installation Artifacts: refer to the refer to the software and documented instructions software and documented instructions required to install the product. required to install the product.

► End-User Support Material: End-User Support Material: Materials Materials that assist the end-user in learning, using, that assist the end-user in learning, using, operating and maintaining the product. operating and maintaining the product.

► Testing results and refining previous Testing results and refining previous Iteration’s artifacts.Iteration’s artifacts.

Rational Unified Process (RUP)Rational Unified Process (RUP)

► IntroductionIntroduction►PhasesPhases►Core WorkflowsCore Workflows►Best PracticesBest Practices►ToolsTools

What is a workflow?What is a workflow?

► A set of activities that is performed by the A set of activities that is performed by the

various roles in a projectvarious roles in a project

► Describes a meaningful sequence of Describes a meaningful sequence of

activities that produce a useful result (an activities that produce a useful result (an

artifact)artifact)

► Shows interaction between rolesShows interaction between roles

Workflows - 3 key elementsWorkflows - 3 key elements► Three key elements of each workflows:Three key elements of each workflows:

ArtifactsArtifacts RolesRoles ActivitiesActivities

► Workflow Detail: Prepare Environment for ProjectWorkflow Detail: Prepare Environment for Project

ArtifactsArtifacts

►A piece of information that: A piece of information that: Is produced, modified, or used by a Is produced, modified, or used by a

processprocess Defines an area of responsibilityDefines an area of responsibility Is subject to version control. Is subject to version control.

►An artifact can be a An artifact can be a modelmodel, a , a model model elementelement, or a , or a documentdocument. A document . A document can enclose other documents. can enclose other documents.

RolesRoles

►Represent a role that an individual Represent a role that an individual may play on the projectmay play on the project

►Responsible for producing artifactsResponsible for producing artifacts►Distinct from actorsDistinct from actors

ActivitiesActivities

►Tasks performed by people Tasks performed by people representing particular roles in order representing particular roles in order to produce artifactsto produce artifacts

Brief summary of process Brief summary of process workflowsworkflows

Business ModellingBusiness Modelling RequirementsRequirements Analysis & DesignAnalysis & Design ImplementationImplementation TestTest DeploymentDeployment

Business ModellingBusiness Modelling

► Understand structure & dynamics of Understand structure & dynamics of organization in which system is to be deployedorganization in which system is to be deployed

► Understand current problems in the target Understand current problems in the target organization & identify improvement potentialorganization & identify improvement potential

► Ensure customers, end users & developers Ensure customers, end users & developers have common understanding of target have common understanding of target organisationorganisation

► Derive system requirements to support target Derive system requirements to support target organisationorganisation

Business Modelling ArtifactsBusiness Modelling Artifacts

►Business Vision Business Vision ►Business Architecture Document Business Architecture Document ►Supplementary Business Specification Supplementary Business Specification ►Business Rules (either as a document Business Rules (either as a document

and/or as elements in the Business and/or as elements in the Business Analysis Model) Analysis Model)

►Business Glossary Business Glossary

RequirementsRequirements

► To establish and maintain agreement with the To establish and maintain agreement with the customers and other stakeholders on what the customers and other stakeholders on what the system should do. system should do.

► To provide system developers with a better To provide system developers with a better understanding of the system requirements. understanding of the system requirements.

► To define the boundaries of (delimit) the system. To define the boundaries of (delimit) the system. ► To provide a basis for planning the technical To provide a basis for planning the technical

contents of iterations. contents of iterations. ► To provide a basis for estimating cost and time to To provide a basis for estimating cost and time to

develop the system. develop the system. ► To define a user-interface for the system, focusing To define a user-interface for the system, focusing

on the needs and goals of the users. on the needs and goals of the users.

Requirements ArtifactsRequirements Artifacts

► Glossary► Use-case model► Vision document► User-interface prototype

Analysis & DesignAnalysis & Design

►Transform requirements into a design Transform requirements into a design of the systemof the system

►Evolve a robust architecture for the Evolve a robust architecture for the systemsystem

►Adapt design to match the Adapt design to match the implementation environment, implementation environment, designing it for performancedesigning it for performance

Analysis & Design ArtifactsAnalysis & Design Artifacts

► Software architecture document► Design model► Data model

ImplementationImplementation

► Define organization of the code, in terms of Define organization of the code, in terms of

implementation subsystems organized in implementation subsystems organized in

layerslayers

► Implement classes & objects in terms of Implement classes & objects in terms of

componentscomponents

► Test developed components as unitsTest developed components as units

► Integrate results into an executable systemIntegrate results into an executable system

Implementation ArtifactsImplementation Artifacts

►Build►Implementation model

TestTest

►Verify interaction between objectsVerify interaction between objects►Verify proper integration of all Verify proper integration of all

components of the softwarecomponents of the software►Verify that all requirements have been Verify that all requirements have been

correctly implementedcorrectly implemented► Identify & ensure defects are Identify & ensure defects are

addressed prior to deploymentaddressed prior to deployment

Test ArtifactsTest Artifacts

► TTest Plan► Test Results ► Test_Ideas List► Test Evaluation Summary

DeploymentDeployment

►Provide custom installationProvide custom installation►Provide shrink wrap product offeringProvide shrink wrap product offering►Provide software over internetProvide software over internet

Deployment ArtifactsDeployment Artifacts

►Deployment Plan ►End-user support material

Brief summary of supporting Brief summary of supporting workflowsworkflows

Configuration & Change Configuration & Change ManagementManagement

Project ManagementProject Management EnvironmentEnvironment

Configuration & Change ManagementConfiguration & Change Management

► Supports development methodsSupports development methods► Maintains product integrityMaintains product integrity► Ensures completeness & correctness of Ensures completeness & correctness of

configured productconfigured product► Provides stable environment within which Provides stable environment within which

to develop productto develop product► Restricts changes to artifacts based on Restricts changes to artifacts based on

project policiesproject policies► Provides an audit trail on why, when & by Provides an audit trail on why, when & by

whom any artifact was changedwhom any artifact was changed

Configuration & Change ManagementConfiguration & Change Management ArtifactsArtifacts

►Change requests►Configuration Management Plan ►Workspace

Project ManagementProject Management

►A framework for managing software-A framework for managing software-intensive projectsintensive projects

►Practical guidelines for planning, Practical guidelines for planning, staffing, executing & monitoring staffing, executing & monitoring projectsprojects

►A framework for managing riskA framework for managing risk

Project Management ArtifactsProject Management Artifacts

►Business case►Iteration plan►Iteration assessment►Risk list►Software development plan

EnvironmentEnvironment

► Design, implement and manage the project’s Design, implement and manage the project’s

required technical environmentsrequired technical environments

► Define the technical architectures for the Define the technical architectures for the

development, system validation, testing & development, system validation, testing &

staging/release management environmentsstaging/release management environments

► When possible, standard architectural models for When possible, standard architectural models for

given types of platforms should be utilized when given types of platforms should be utilized when

defining the production environmentdefining the production environment

Environment ArtifactsEnvironment Artifacts

► Development case► Development infrastructure

Bringing It All Together...Bringing It All Together...

Project ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Phases

Process Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration & Change Mgmt

Requirements

Elaboration TransitionInception Construction

In an iteration, you walk through all workflows

Rational Unified Process (RUP)Rational Unified Process (RUP)

► IntroductionIntroduction►PhasesPhases►Core WorkflowsCore Workflows►Best PracticesBest Practices►ToolsTools

Rational Unified ProcessRational Unified Process

Describes the effective implementation Describes the effective implementation of key “Best Practices” of key “Best Practices”

Control Changes

Manage Requirements

Use Component

Architectures

DevelopIteratively

Model Visually

VerifyQuality

1. Manage Your Requirements1. Manage Your Requirements► Elicit, organize, and document required Elicit, organize, and document required

functionality and constraintsfunctionality and constraints► Track and document tradeoffs and decisions Track and document tradeoffs and decisions ► Business requirements are easily captured Business requirements are easily captured

and communicated through use casesand communicated through use cases► Use cases are important planning instrumentsUse cases are important planning instruments

Design Model

Implementation Model Test Model

verifiesrealization influenced by

Use-Case Model

2. Develop Software Iteratively2. Develop Software Iteratively An initial design will likely be flawed with An initial design will likely be flawed with

respect to its key requirementsrespect to its key requirements Late-phase discovery of design defects Late-phase discovery of design defects

results in costly over-runs and/or project results in costly over-runs and/or project cancellation cancellation

InitialInitialPlanningPlanning

PlanningPlanning

RequirementsRequirements

Analysis & DesignAnalysis & Design

ImplementationImplementation

TestTest

DeploymentDeployment

EvaluationEvaluation

ManagementManagementEnvironmentEnvironment

Waterfall DevelopmentWaterfall Development

T I M E

Subsystem Testing

System Testing

Code & Unit Testing

Design

Requirements Analysis

Waterfall Development: Risk vs. Waterfall Development: Risk vs. TimeTime

RISK

T I M E

Subsystem Testing

System Testing

Code & Unit Testing

Design

Requirements Analysis

Risk Profile of an Iterative Risk Profile of an Iterative DevelopmentDevelopment

TransitionTransition

RiskRisk

InceptionInception

ElaborationElaboration

ConstructionConstruction

PreliminaryPreliminaryIterationIteration

Architect.Architect.IterationIteration

Architect.Architect.IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

TransitionTransitionIterationIteration

TransitionTransitionIterationIteration

Post-Post-deploymentdeployment

WaterfallWaterfall

TimeTime

Iterative Development Iterative Development CharacteristicsCharacteristics

Critical risks are resolved before making Critical risks are resolved before making large investments large investments

Initial iterations enable early user Initial iterations enable early user feedback feedback

Testing and integration are continuous Testing and integration are continuous Objective milestones provide short-term Objective milestones provide short-term

focusfocus Progress is measured by assessing Progress is measured by assessing

implementationsimplementations Partial implementations can be deployedPartial implementations can be deployed

3. Employ Component-based 3. Employ Component-based ArchitectureArchitecture

► Component Architectures are based on independent, Component Architectures are based on independent, replaceable, modular components, they help to manage replaceable, modular components, they help to manage complexity and encourage re-use.complexity and encourage re-use. The application is The application is built from discrete executable componentsbuilt from discrete executable components which which

areare developed relatively independently of one another developed relatively independently of one another, potentially , potentially by different teamsby different teams

Assembly components may be shared between applications, creating Assembly components may be shared between applications, creating opportunities for opportunities for reusereuse, but also creating , but also creating inter-project dependenciesinter-project dependencies. .

component-based applications tend to be component-based applications tend to be distributeddistributed. .

► Component Architectures are based on independent, Component Architectures are based on independent, replaceable, modular components, they help to manage replaceable, modular components, they help to manage complexity and encourage re-use.complexity and encourage re-use. The application is The application is built from discrete executable componentsbuilt from discrete executable components which which

areare developed relatively independently of one another developed relatively independently of one another, potentially , potentially by different teamsby different teams

Assembly components may be shared between applications, creating Assembly components may be shared between applications, creating opportunities for opportunities for reusereuse, but also creating , but also creating inter-project dependenciesinter-project dependencies. .

component-based applications tend to be component-based applications tend to be distributeddistributed. .

System-System-softwaresoftware

MiddlewareMiddleware

Business-Business-specificspecific

Application-Application-specificspecific

Component-based Architecture with layers

4. Model Software Visually4. Model Software Visually► Aiding understanding of complex Aiding understanding of complex

systems systems ► Exploring and comparing design Exploring and comparing design

alternatives at a low cost alternatives at a low cost ► Forming a foundation for Forming a foundation for

implementation implementation ► Capturing requirements precisely Capturing requirements precisely ► Communicating decisions Communicating decisions

unambiguously unambiguously Code

Classes

Sub Systems

Visual Modelingraises the levelof abstraction

5. Verify Software Quality5. Verify Software Quality► Create tests for each key scenario to ensure that Create tests for each key scenario to ensure that

all requirements are properly implementedall requirements are properly implemented► Verify software performance Verify software performance ► Verify software reliability Verify software reliability ► Test every iterationTest every iteration

Development Deployment

Cost

Software problemsare 100 to 1000 timesmore costly to findand repair after deployment

6. Control Changes to Software6. Control Changes to Software► Control, track and monitor changes to enable Control, track and monitor changes to enable

iterative development iterative development ► Establish secure workspaces for each developerEstablish secure workspaces for each developer

Provide isolation from changes made in other Provide isolation from changes made in other workspaces workspaces

Control all software artifacts - models, code, Control all software artifacts - models, code, docs, etc.docs, etc.

► Automate integration and build managementAutomate integration and build management

ALERTREPORT

WorkspaceManagement

Process Integration

Parallel Development

Build Management

CM is more than just check-in and check-out

Summary: Best Practices of Software Summary: Best Practices of Software EngineeringEngineering

► The result is software that isThe result is software that is On TimeOn Time On Budget On Budget Meets Users NeedsMeets Users Needs

ProjectManager

PerformanceEngineer

ReleaseEngineer

Analyst

DeveloperTester

BestPractices

BestPractices

Develop IterativelyDevelop Iteratively

Manage Manage RequirementsRequirements

Model VisuallyModel Visually

Use Component Use Component ArchitecturesArchitectures

Verify QualityVerify Quality

Control Control ChangeChange

Rational Unified Process (RUP)Rational Unified Process (RUP)

► IntroductionIntroduction►PhasesPhases►Core WorkflowsCore Workflows►Best PracticesBest Practices►ToolsTools

ToolsTools

►The success of process adoption is The success of process adoption is significantly improved by the use of significantly improved by the use of appropriate supporting tools. appropriate supporting tools.

►Tool MentorsTool Mentors provide detailed provide detailed descriptions of how to perform descriptions of how to perform specific process activities or steps, or specific process activities or steps, or produce a particular artifact or produce a particular artifact or report, using one or more tools.report, using one or more tools.

ToolsTools

► Rational Unified Process Rational Unified Process ► RUP Builder RUP Builder ► Rational Process Workbench Rational Process Workbench ► Rational Administrator Rational Administrator ► Rational Suite AnalystStudio Rational Suite AnalystStudio ► Rational ClearCase Rational ClearCase ► Rational ClearQuest Rational ClearQuest ► Rational ProjectConsole Rational ProjectConsole ► Rational PurifyPlus Rational PurifyPlus ► Rational QualityArchitect Rational QualityArchitect

ToolsTools

► Rational RequisitePro Rational RequisitePro ► Rational Robot Rational Robot ► Rational Rose Rational Rose ► Rational Rose RealTime Rational Rose RealTime ► Rational SoDA Rational SoDA ► Rational TestManager Rational TestManager ► Rational Test RealTime Rational Test RealTime ► Rational TestFactory Rational TestFactory ► Rational XDE Developer - Java Platform Edition Rational XDE Developer - Java Platform Edition ► Rational XDE Developer - .NET Edition Rational XDE Developer - .NET Edition