Chapter 2 Text
Introduction to Rational Unified Process
Modified in many cases to support instructional needs. Original developed by Rational
Unified Software Practices v 5.0-D
Copyright 1998 Rational Software, all rights reserved 2
Objectives: Rational Unified Process
We have talked about these in general. Now, We have talked about these in general. Now,
for a more formal discussion:
for a more formal discussion:
Describe the Describe the Unified Modeling Unified Modeling Language (UML)
Language (UML)
Define what a Define what a Software Development Software Development Process
Process is is
Describe the Describe the Rational Unified Process Rational Unified Process
Explain the four Explain the four phases phases of the Rational of the Rational Unified Process and their associated
Unified Process and their associated milestones
milestones
Define Define iterations iterations and their relation to and their relation to phases
phases
The RUP
Software Development is a Software Development is a process of developing a process of developing a software system from requirements.\
software system from requirements.\
A A software process software process provides a provides a disciplined approach disciplined approach to assigning tasks and responsibilities to ensure the
to assigning tasks and responsibilities to ensure the production of
production of high-quality software high-quality software within a within a predictable schedule / budget.
predictable schedule / budget.
The The RUP is a software process RUP is a software process that incorporates the that incorporates the six best practices we’ve discussed.
six best practices we’ve discussed.
The RUP formalizes these best practices into a written set The RUP formalizes these best practices into a written set of procedures/practices that are complete and self-
of procedures/practices that are complete and self- consistent.
consistent.
Unified Software Practices v 5.0-D
Copyright 1998 Rational Software, all rights reserved 4
In Building a System, a Language (like English) is Not Enough
Modeling Language
Unified Process Team-Based
Development
We need a Modeling Language! Some kind of ‘universal notation.’
We will use the Unified Modeling Language, UML)
Provides a standard for artifacts produced by workers in roles undertaking activities during development – (semantic models, syntactic notation, and diagrams.
things that must understood, controlled, and exchanged.) We need a development Process
It is ALL ABOUT PROCESS (and object culture).
While UML has a very high value as a common modeling language, successful software
development requires a development process!
.
What Is the UML?
Have seen parts of this slide before…. Have seen parts of this slide before….
The Unified Modeling Language (UML) is a The Unified Modeling Language (UML) is a language for
language for
• Specifying
• Visualizing
• Constructing
• Documenting
the the artifacts artifacts of a software-intensive system of a software-intensive system
• UML is now the industry standard modeling language.
• We will use UML 2.0
• Important to note that UML does not dictate an OO approach – but greatly
supports it!
Unified Software Practices v 5.0-D
Copyright 1998 Rational Software, all rights reserved 6
The UML Provides Standardized Diagrams
Deployment Diagrams Deployment
Diagrams Use-Case
Diagrams Use-Case Diagrams Use-Case
Diagrams Use-Case Diagrams Use-Case
Diagrams Use-Case Diagrams
Scenario Diagrams Scenario Diagrams Scenario
Diagrams Scenario Diagrams Sequence
Diagrams Sequence
Diagrams
State Diagrams
State Diagrams State
Diagrams State Diagrams State
Diagrams State Diagrams
Component Diagrams Component
Diagrams Component Diagrams Component Diagrams
Component Diagrams Component
Diagrams Models
State Diagrams
State Diagrams State
Diagrams State Diagrams Object
Diagrams Object Diagrams
Scenario Diagrams Scenario Diagrams Scenario
Diagrams Scenario
Diagrams Collaboration Diagrams Collaboration
Diagrams Use-Case
Diagrams Use-Case Diagrams Use-Case
Diagrams Use-Case Diagrams Activity
Diagrams Activity Diagrams
State Diagrams
State Diagrams State
Diagrams State Diagrams Class
Diagrams Class Diagrams
• In building visual models, many different diagrams are needed to represent different views of the system. (different views to different stakeholders).
• Use Case Diagrams (ahead) – illustrate user interactions with the application.
• Activity Diagrams illustrate the flow of events in a Use Case (all scenarios).
• Class diagrams represent logical structure , while Interaction Diagrams
• illustrate behavior (show how objects collaborate via message passing to
• provide features (responsibilities) of the objects..
• Other diagrams are used to illustrate other viewpoints necessary in some (but not
all) circumstances, such as the State Diagrams, Deployment diagrams, …
A Sample: Use-Case Diagram
A University Course Registration
A University Course Registration System System
Professor
Select Courses to Teach Student
Course Catalog Register for Courses
Maintain Student Information Maintain Professor Information
Registrar
Billing System Close Registration
Use Case diagrams are used to show the existence of Use Cases and their
relationships both to other Use Cases and to Actors.
An Actor is something/one external to the system that interfaces with the system and receives ‘value,’
from it, such as a user.
Use Cases model dialogue (interchange) between actors and system.
A Use Case is initiated by an Actor to invoke certain functionality – like Register for Courses (see Use Case).
Arrow indicates direction of initiation of the interaction.
A Use Case Narrative (Specification) is a complete, meaningful flow of events!
A Use Case
Unified Software Practices v 5.0-D
Copyright 1998 Rational Software, all rights reserved 8
A Sample UML Diagram: Classes
A University Course Registration System A University Course Registration System
MainForm
// select maintain schedule()
<<boundary>> MaintainScheduleForm
+ // open()
+ // select four primary and two alternate offerings()
<<boundary>>
1 0..1
1
CourseCatalogSystem
// get course offerings()
<<boundary>>
1 0..*
RegistrationController // add courses to schedule() // get course offerings ()
<<control>>
1
1
Schedule
// create with offerings()
<<entity>>
1
Classes – different kinds 0..1
(here, boundary, control, entity classes) Note: multiplicity; association
Be sure to understand notation…..
multiplicity; aggregation; stereotypes…
MUCH MORE ABOUT THESE CLASSES LATER!
UML Diagrams Are Key Artifacts Produced
Actor A
Use-Case 1
Use-Case 2
Actor B
user : »ç¿ëÀÚ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repository document : 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 : int docid : int numField : 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
¹®¼ °ü¸®
Ŭ¶óÀ̾ðÆ®.EX E WindowsNT
¹®¼ °ü¸® ¿£Áø.EX E
Windows NT
Windows95
S olaris
ÀÀ¿ë¼ ¹ö. EXE Alpha UNIX
I BM Mainf rame
µ¥ÀÌŸº£À ̽º¼ ¹ö Windows95
¹®¼ °ü¸® ¾Ö Çø´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³× Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã ½º ÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀÌ ¾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼ ¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼ ¹ö ¹× µ¥À ÌŸ ¼ ¹ö, Åë½Å ¼ ¹ö - IBM ¸ÞÀÎ ÇÁ·¹ÀÓ: µ¥ÀÌ Å¸ ¼ ¹ö, Åë½Å ¼ ¹ö
Document FileManager
GraphicFile File
Repository DocumentList
FileList
user mainWnd fileMgr :
FileMgr document : repository Document gFile 1: D oc v iew reques t ( )
2: fetc hDoc ( )
3 : c reate ( )
4: c reate ( )
5: readDoc ( )
6 : fillDoc ument ( )
7: rea dFile ( )
8: fil lFile ( )
9: s ortBy Name ( ) Æ ¯Á¤¹® ¼ ¿¡ ´ëÇÑ º¸±â ¸¦
» ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
È Àϰü¸® ÀÚ´Â Àоî¿Â
¹ ®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹® ¼
° ´Ã¼¿¡ ¼³Á¤À » ¿äÃ»Ç Ñ´Ù.
È ¸é ° ´Ã¼´Â Àоîµé ÀÎ
°´Ã¼ µé¿¡ ´ë ÇØ À̸§ º°·Î Á¤·Ä À» ½ ÃÄ Ñ È ¸é¿¡
º¸¿©ÁØ´Ù.
Customer name addr withdraw()
fetch() send() receive()
<<entity>>
Forward Engineering(Code Generation) and
Reverse Engineering
Executable System User Interface
Definition
Domain Expert
Openning
Writing
Reading Closing
add file [ numberO ffile==MAX ] / flag OFF add file
close file
close file