introduction to rational unified process. objectives: rational unified process l describe the...
TRANSCRIPT
Introduction to Rational Unified Process
Objectives: Rational Unified Process
Describe the Unified Modeling Language (UML) Define what a software development process is Describe the Rational Unified Process Explain the four phases of the Rational Unified Process
and their associated milestones Define iterations and their relation to phases Explain the relations between:
• Models and workflows • Phases, iterations, and workflows
Define artifact, worker, and activity State the importance of automated tool support
Team-Based Development
Modeling Language
Building a System - A Language Is Not Enough
Process
What Is the UML? The Unified Modeling Language (UML) is a
language for• Specifying
• Visualizing
• Constructing
• Documenting
the artifacts of a software-intensive system
UML History
Inputs to UML
Fusion
Operation descriptions,Message numbering
Meyer
Before and after conditions
Harel
State charts
Wirfs-Brock
Responsibilities
Embley
Singleton classes, High-level view
Odell
Classification
Shlaer - Mellor
Object Lifecycles
Gamma, et.al
Frameworks, patterns,notes
Booch
JacobsonRumbaugh
The UML Provides Standardized Diagrams
DeploymentDiagram
DeploymentDiagram
Use CaseDiagrams
Use CaseDiagramsUse Case
Diagrams
Use CaseDiagramsUse Case
Diagrams
Use CaseDiagrams
ScenarioDiagrams
ScenarioDiagramsScenario
Diagrams
ScenarioDiagramsSequence
Diagrams
SequenceDiagrams
StateDiagrams
StateDiagramsState
Diagrams
StateDiagramsState
Diagrams
StateDiagrams
ComponentDiagrams
ComponentDiagramsComponent
Diagrams
ComponentDiagramsComponentDiagrams
ComponentDiagrams
Model
StateDiagrams
StateDiagramsState
Diagrams
StateDiagramsObject
Diagrams
ObjectDiagrams
ScenarioDiagrams
ScenarioDiagramsScenario
Diagrams
ScenarioDiagramsCollaboration
Diagrams
CollaborationDiagrams
Use CaseDiagrams
Use CaseDiagramsUse Case
Diagrams
Use CaseDiagramsActivity
Diagrams
ActivityDiagrams
StateDiagrams
StateDiagramsState
Diagrams
StateDiagramsClass
Diagrams
ClassDiagrams
A Sample UML Diagram: Use CasesA University Course Registration System
Submit Grades
Professor
View Report Card
Select Courses to Teach
Student
Course Catalog
Register for Courses Maintain Student Information
Maintain Professor InformationRegistrar
Billing SystemClose Registration
Login
A Sample UML Diagram: ClassesA University Course Registration System
MainForm
// select maintain schedule()
<<boundary>> MaintainScheduleForm
+ // open()+ // select 4 primary and 2 alternate offerings()
<<boundary>>
1 0..11
CourseCatalogSystem
// get course offerings()
<<boundary>>1 0..*
RegistrationController
// add courses to schedule()// get course offerings ()
<<control>>
1
1
Schedule
// create with offerings()
<<entity>>
1
0..1
UML Diagrams Are Key System Artifacts
Actor A
Use Case 1
Use Case 2
Actor B
user : »ç¿ëÀÚ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repositorydocument : Document
gFile : GrpFile
9: sortByName ( )
L1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
GrpFile
read( )open( )create( )fillFile( )
rep
Repository
name : char * = 0
readDoc( )readFile( )
(from Persistence)
FileMgr
fetchDoc( )sortByName( )
DocumentList
add( )delete( )
Document
name : intdocid : intnumField : int
get( )open( )close( )read( )sortFileList( )create( )fillDocument( )
fList
1
FileList
add( )delete( )
1
File
read( )
read() fill the code..
UI
MFC
RogueWave
global
DocumentApp
Persistence Window95
¹®¼ °ü¸® Ŭ¶óÀ̾ðÆ®.EXE
WindowsNT
¹®¼ °ü¸® ¿£Áø.EXE
WindowsNT
Windows95
Solaris
ÀÀ¿ë¼ ¹ö.EXE
AlphaUNIX
IBM Mainframe
µ¥ÀÌŸº£À̽º¼ ¹ö
Windows95
¹®¼ °ü¸® ¾ÖÇø´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼ ¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö
Document
FileManager
GraphicFileFile
Repository DocumentList
FileList
user
mainWnd fileMgr : FileMgr
repositorydocument : Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: f illDocument ( )
7: readFile ( )
8: f illFile ( )
9: sortByName ( )
ƯÁ¤¹®¼ ¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
È ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È ̧é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È ̧é¿¡ º¸¿©ÁØ´Ù.
Customernameaddr
withdraw()fetch()send()
receive()
<<entity>>
Forward Engineering(Code Generation)and
Reverse Engineering
Executable System
User InterfaceDefinition
Domain Expert
Openning
Writing
ReadingClosing
add file [ numberOffile==MAX ] / flag OFF
add file
close file
close file
Use Case 3
Source Code edit, compile, debug, link
Use-Case Diagram
Class Diagram
Collaboration Diagram
Sequence Diagram
Component Diagram
State Diagram
Package Diagram
Deployment DiagramClass
New or changed
requirements
New or changed
system
Software EngineeringProcess
What Is a Process?
A process defines Who is doing What, When and How to reach a certain goal. In software engineering the goal is to build a software product or to enhance an existing one
An Effective Process ... Provides guidelines for efficient development of quality
software Reduces risk and increases predictability Captures and presents best practices
• Learn from other’s experiences
• Mentor on your desktop
• Extension of training material
Promotes common vision and culture Provides roadmap for applying tools Delivers information on-line, at your finger tips
Rational Unified Process Delivers Best Practices
Rational Unified Process describes how to effectively implement the six best practices for software
development
Control ChangesControl Changes
Manage RequirementsManage Requirements
Use Use ComponentComponent
ArchitecturesArchitectures
DevelopDevelopIterativelyIteratively
Model Model VisuallyVisually
VerifyVerifyQualityQuality
Rational Unified Process Is Use-Case Driven
Withdraw Money
Client
An An actoractor is someone or is someone or something outside the something outside the system that interacts system that interacts with the systemwith the system
A A use caseuse case is a sequence is a sequence of actions a system of actions a system performs that yields an performs that yields an observable result of observable result of value to a particular value to a particular actoractor
Check Balance
Use Cases for a Cash Machine
Use Cases Include a Flow of Events
Flow of events for the Withdraw Money Use Case1. The use case begins when the client inserts her ATM card.
The system reads and validates information on the card.
2. The system prompts for the PIN. The system validates the PIN.
3. The system asks which operation the client wishes to perform. The client selects “Cash withdrawal.”
4. The system requests the amount. The client enters the amount.
5. The system requests the account type. The client selects checking or savings.
6. The system communicates with the ATM network . . .
Benefits of a Use-Case Driven Process
Use cases are concise, simple, and understandable by a wide range of stakeholders
• End users, developers and acquirers understand functional requirements of the system
Use cases drive numerous activities in the process:• Creation and validation of the design model• Definition of test cases and procedures of the test model• Planning of iterations• Creation of user documentation• System deployment
Use cases help synchronize the content of different models
Rational Unified Process Is Architecture-Centric
Architecture is the focus of the elaboration phase• Building, validating, and baselining the architecture constitute the
primary objective of elaboration
The Architectural Prototype validates the architecture and serves as the baseline for the rest of development
The Software Architecture Description is the primary artifact that documents the architecture chosen
Other artifacts derive from architecture:• Design guidelines including use of patterns and idioms
• Product structure
• Team structure
Representing Architecture: The 4+1
View Model
Process View
Deployment View
Logical View
Implementation View
Programmers Software management
PerformanceScalabilityThroughput
System IntegratorsSystem topology
Delivery, installationcommunication
System Engineering
Use-Case View
Structure
Analysts/Designers End-user
Functionality
Benefits of an Architecture-Centric Process
Architecture lets you gain and retain intellectual control over a project, to manage its complexity, and to maintain system integrity
Architecture provides an effective basis for large-scale reuse
Architecture provides a basis for project management Architecture facilitates component-based development
• A component fulfills a clear function in the context of a well-defined architecture
• A component conforms to and provides the physical realization of a set of interfaces
• Components exist relative to a given architecture
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Process Architecture - Lifecycle Phases
The Rational Unified Process has four phases:• Inception - Define the scope of project
• Elaboration - Plan project, specify features, baseline architecture
• Construction - Build the product
• Transition - Transition the product into end user community
time
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Phase Boundaries Mark Major Milestones
Lifecycle Objective Milestone
Lifecycle Architecture
Milestone
Initial Operational Capability Milestone
Product Release
time
Iterations and Phases
An An iterationiteration is a distinct sequence of activities with an is a distinct sequence of activities with an established plan and evaluation criteria, resulting in established plan and evaluation criteria, resulting in an executable release (internal or external)an executable release (internal or external)
PreliminaryPreliminaryIterationIteration
Architect.Architect.IterationIteration
Architect.Architect.IterationIteration
Devel. Devel. IterationIteration
Devel. Devel. IterationIteration
Devel. Devel. IterationIteration
TransitionTransitionIterationIteration
TransitionTransitionIterationIteration
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Minor Milestones: Releases
Major Workflows Produce Models
Analysis & Analysis & DesignDesign
DesignModel
ImplementationModel
TestModel
realized by
implemented by
verified by
RequirementsRequirements
ImplementationImplementation
TestTest
Use-CaseModel
BusinessBusinessModelingModeling
Business Model
supported by
Bringing It All Together: The Iterative Model
Management
Environment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
PhasesProcess Workflows
Iterations
Supporting Workflows
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
Workflows group activities logically
In an iteration, you walk through all workflows
Requirements Workflow
U se-C ase Specifier
R equirem entsR eview er
U ser-In terfaceD esigner
C apture a C om m on
Vocabulary
F ind Actors and U se C ases
R eviewR equirem ents
S tructure the U se-C ase M odel
U ser-In terfacePrototyp ing
D eta il a U se C ase
E lic it S takeholder N eeds
M anage D ependencies
Arch itectP rioritize
U se C ases
D evelopVision
U ser-In terfaceM odeling
Analysis & Design Workflow
Architect
D esigner
Architectura lAnalysis
A rchitectureR eview er
R eview theD esign
R eview theArchitecture
U se-C aseAnalysis
A rchitectura lD esign
D escribeC oncurrency
D escribeD istribution
D atabaseD esigner
C lassD esign
Subsystem D esign
U se-C ase D esign
D atabaseD esign
D esignR eview er
Implementation Workflow
In tegrateSystem
Architect
System In tegrator
Im plem enter
Code R eviewer
Im plem ent C lasses
Perform Unit Test
S tructure theIm plem entation M odel
In tegrateSubsystem
Review C ode
Fix a Defect
P lan System Integration
P lan Subsystem Integration
Test Workflow
D esign Test
Im plem entTest
Test D esigner
Integration Tester
System Tester
Evaluate Test
Execute IntegrationTest
Execute System Test
D esigner
D esign Test C lasses and Packages
Im plem enterIm plem ent Test C om ponents
and Subsystem s
PlanTest
Perform anceTester
Execute Perform ance Test
The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of a software-intensive system
A software development process defines Who is doing What, When and How in building a software product
The Rational Unified Process has four phases: Inception, Elaboration, Construction and Transition
Each phase ends at a major milestone and contains one or more iterations
An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release
Summary: Rational Unified Process