rational unified process amir ranjbar by [email protected]
TRANSCRIPT
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 /Developer
Analyst Tester
Architect
Tool
Specialist
Release Engineer
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 phaseInception phase
Establishing the project's software scope and boundary Establishing the project's software scope and boundary conditions, including an operational vision, acceptance conditions, including an operational vision, acceptance criteria and what is intended to be in the product and what criteria and what is intended to be in the product and what is not. is not.
Discriminating the critical use cases of the system, the Discriminating the critical use cases of the system, the primary scenarios of operation that will drive the major primary scenarios of operation that will drive the major design tradeoffs. design tradeoffs.
Exhibiting, and maybe demonstrating, at least one Exhibiting, and maybe demonstrating, at least one candidate architecture against some of the primary candidate architecture against some of the primary scenarios.scenarios.
Estimating the overall cost and schedule for the entire Estimating the overall cost and schedule for the entire project (and more detailed estimates for the elaboration project (and more detailed estimates for the elaboration phase that will immediately follow).phase that will immediately follow).
Estimating potential risks (the sources of unpredictability) Estimating potential risks (the sources of unpredictability) Preparing the supporting environment for the project. Preparing the supporting environment for the project.
Elaboration phaseElaboration phase
Defining, validating and baselining the architecture as Defining, validating and baselining the architecture as rapidly as practical. rapidly as practical.
Refining the Vision, based on new information obtained Refining the Vision, based on new information obtained during the phase, establishing a solid understanding of the during the phase, establishing a solid understanding of the most critical use cases that drive the architectural and most critical use cases that drive the architectural and planning decisions. planning decisions.
Creating and baselining detailed iteration plans for the Creating and baselining detailed iteration plans for the construction phase. construction phase.
Refining the development case and putting in place the Refining the development case and putting in place the development environment, including the process, tools and development environment, including the process, tools and automation support required to support the construction automation support required to support the construction team. team.
Refining the architecture and selecting components. Refining the architecture and selecting components. Potential components are evaluated and the Potential components are evaluated and the make/buy/reuse decisions sufficiently understood to make/buy/reuse decisions sufficiently understood to determine the construction phase cost and schedule with determine the construction phase cost and schedule with confidence. The selected architectural components are confidence. The selected architectural components are integrated and assessed against the primary scenarios.integrated and assessed against the primary scenarios.
Construction phaseConstruction phase
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.
Transition phaseTransition phase
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 feedback. Fine-tuning the product based on feedback.
Making the product available to end users.Making the product available to end users.
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
Workflow Detail: Prepare Workflow Detail: Prepare Environment for Project Environment for Project
Workflows - 3 key elementsWorkflows - 3 key elements
Three key elements of each workflows:Three key elements of each workflows: ArtifactsArtifacts RolesRoles ActivitiesActivities
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
Analysis & DesignAnalysis & Design
Transform requirements into a Transform requirements into a design of the systemdesign of 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
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
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 Verify that all requirements have
been correctly implementedbeen correctly implemented Identify & ensure defects are Identify & ensure defects are
addressed prior to deploymentaddressed prior to deployment
DeploymentDeployment
Provide custom installationProvide custom installation Provide shrink wrap product offeringProvide shrink wrap product offering Provide software over internetProvide software over internet
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 to Provides stable environment within which to
develop productdevelop product Restricts changes to artifacts based on project Restricts changes to artifacts based on project
policiespolicies Provides an audit trail on why, when & by whom Provides an audit trail on why, when & by whom
any artifact was changedany artifact was changed
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
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
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
Design, implement and test your architecture up-front!Design, implement and test your architecture up-front!
A systematic approach to define a “good” architectureA systematic approach to define a “good” architecture
Resilient to change by using well-defined Resilient to change by using well-defined interfacesinterfaces
By using and reverse engineering By using and reverse engineering componentscomponents
Derived from top rank use casesDerived from top rank use cases
Design, implement and test your architecture up-front!Design, implement and test your architecture up-front!
A systematic approach to define a “good” architectureA systematic approach to define a “good” architecture
Resilient to change by using well-defined Resilient to change by using well-defined interfacesinterfaces
By using and reverse engineering By using and reverse engineering componentscomponents
Derived from top rank use casesDerived from top rank use cases
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 Unacceptable application performance hurts as Unacceptable application performance hurts as
much as unacceptable reliabilitymuch as unacceptable reliability Verify software reliability - memory leaks, bottle Verify software reliability - memory leaks, bottle
necksnecks Test every iteration - automate test!Test every iteration - automate test!
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