UML RUP RUP consulting@kicco.com
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
Concept of Object Object-Oriented View What is a Object? Object Fundamental Benefit of Object-Oriented
Traditional View of Software Data a b c Function f1() f2() f3() Data(Structure) + Procedure(Algorithm) = Software
Object-Oriented View of Software Object Object Object a f1() b c f2() d e f3() Data(Structure) + Operation(Algorithm) = Object Object + Object = Software
What is a Object? ( ( ) ),
What is a Object? (2) State Behavior Identity
What is State? State. Behavior.
What is Behavior? Behavior State Interaction Message..
What is Identity? Identity.. identity.
What is Class? A class is Object is the instance of class. 1 2 3 4
Abstraction Class Object Object (ex) :,,, Real World Abstraction Object Abstraction Class
Class Object Object Class instance & Class Object Data structure behavior Object Class
Class Class..
Object Fundamental Encapsulation Information Hiding Inheritance Polymorphism Message
What is Encapsulation? Data Operation Class. Transaction actions commit() rollback()
What is Information Hiding?
What is Inheritance? )
What is Inheritance? (2)
What is Inheritance? (3)
What is Polymorphism? One interface, multiple implementation. It provides another dimension of separation of interface from implementation, to decouple what from how. Dynamic binding, late binding, run-time binding
What is Polymorphism? Shape Draw() Class Shape { Void draw() {} } Square Draw() Class Square extends Shape { Void draw() { // print( Square ); } } Triangle Draw() Class Triangle extends Shape { Void draw() { // print( Triangle ); } } Shape[] s = new Shape[2]; s[0] = new Square(); s[1] = new Triangle(); for (int I = 0; I < s.length; I++) s[i].draw(); // if I = 0, print( Square ); if I = 1, print( Triangle );
What is Message?
Benefit of Object-Oriented
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
Introduction of UML UML UML UML UML Common mechanism Building Blocks of UML UML Diagrams
UML (1) UML(Unified Modeling Language),,,
UML (2) Visualizing Constructing round-trip UML Specifying / Documenting,,
UML (1) James Rumbaugh : OMT Grady Booch : Booch Ivar Jacobson : OOSE Method War UML
UML (2) UML 1.3
UML Notation
UML Common mechanism (1) Specifications Textual statement of the syntax and semantics of each building block Adornments + : public - : private # : protected
UML Common mechanism (2) Extensibility Mechanism Stereotypes Tagged Values Constraints
UML Common mechanism (3) Extensibility Mechanism Example Stereotype <<exception>> Overflow EventQueue {version=3.2 Author = egb } add() remove() flush() Tagged Value {ordered } Constraint
Building Blocks of UML UML Building blocks Things Relationships Diagrams Structural things Behavioral things Grouping things Annotational things Dependency Association Static Structure Diagrams Dynamic Behavior Diagrams Class Interface Collaboration Use case Interaction State machine Packages Note Generalization Realization Class diagram Object diagram Component diagram Use case diagram Sequence diagram Collaboration diagram Active Classes Component Node Deployment diagram Statechart diagram Activity diagram
Diagrams Use Case Diagram Sequence Diagram Collaboration Diagram Class Diagram Object Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram
Use Case Diagram (Behavior)
Use Case Diagram Actor Use Case Association Extend Include Generalization
Use Case Diagram - Actor, Use Case User
Use Case Diagram Use Case Use Case, Actor Use Case Use Case Actor
Use Case Diagram Association Actor Use case Actor Use case Communication Association..
Use Case Diagram extend Use Case (Extension Point) Use Case Extension Point Use Case Extension points additional requests : after creation of the order <<extend>> The salesperson asks for the catalog Place Order Request Catalog
Use Case Diagram include Use case A Use case B include A B Supply Customer Data Order Product Arrange Payment <<include>> <<include>> <<include>> Place Order
Use Case Diagram generalization Child Elements Parent Element
Sequence Diagram (Use Case) Message Object Object Lifeline Focus of control Message
Sequence Diagram - Object Class Instance Object Name Class Name Object Name : Class Name Package :: Object1 : class1
Sequence Diagram Object Lifeline Object Create Destroy Object1 : class1
Sequence Diagram Focus of control Object Object Create Object1 : class1
Sequence Diagram - Message System Objects Message Object Message Object Object1 : class1 Object2 : class2 Do it
Sequence Diagram -
Collaboration Diagram Message Sequence Diagram Collaboration Diagram Path, Sequence Number Object Link Message
Collaboration Diagram Object Class Instance Name ObjectName / ClassfierRoleName : ClassfierName Attribute Value List Attribute Name : type = value Class Name Package :: Tutor / Teacher : Person queue : List of Call source : Object waitalarm : Alarm Capacity : Integer
Collaboration Diagram Link Object Object : Window color : Color location : Area :Observer:SlidingBarlcon color : Color range : Interval
Collaboration Diagram Message System Objects Message Message Object Tutor / Teacher : Person / Student : Person 1:namesOfTeachers()
Collaboration Diagram -
Class Diagram
Class Diagram - Class Attribute, Operation, Relationship, Attribute Operation
Class Diagram - Association has-a Class Association ( ) (Role name) (Multiplicity)
Class Diagram - Aggregation a part-of Destroy Destroy Whole Part
Class Diagram - Composition a part-of Whole Part
Class Diagram - Generalization is-a kind-of
Class Diagram - Realization Interface Implementation Class Realization <<interface>> DataStructure StackA
Class Diagram - Dependency Client/Server
Class Diagram
Statechart Diagram (1) Event : Action :
Statechart Diagram (2)
Statechart Diagram (3) event/action
Statechart Diagram (4) Conditions/Arguments/Do
Statechart Diagram (5) Chess Game
Activity Diagram Workflow Flow chart Activity Activity Decision Swimlane Synchronization Bar
Activity Diagram - Activity Workflow ( ) Drive to work
Activity Diagram - Decision boolean transitions Calculate Total cost [cost < $50 ] Charge customer s account [cost > $50 ] = Get authorization
Activity Diagram - Swimlane Activity Diagram Swimlane Activity
Activity Diagram - Synchronization Bar Activity Work Flow Put Filter in Machine Add Water To Reservoir Turn on Machine
Component Diagram Execute File, Library, Database Table, File, Document Component Interface Dependency
Component Diagram - Component Component
Component Diagram - Interface operation
Component Diagram - Dependency Software Component Component Component Component Dependency
Deployment Diagrams Node computer Memory Connection Components Dependencies
Deployment Diagrams
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
6 Best Practices Develop Iteratively Manage Requirements Use Component Architecture Model Visually Continuously Verify Quality Manage Change
Software Risk
Iterative software development
Manage requirements traceability. Positioning Needs Use case Test Design, User Documentation traceability
Use component-based architecture Component :. Architecture.. Componet based Architecture with layer
Visually Model software,
Continuously Verify Software Quality Software problems are 100 to 1000 times more costly to find and repair after deployment.
Manage Change
History Process Plug-in e-business Solutions SPC/PMI Project Management Performance testing Business Engineering Configuration & Change Mgmt Requirements College Rational Unified Process 2002 2002 Rational Unified Process 2000 1999 Rational Unified Process 5.5 1998 Rational Unified Process 5.0 1997 Rational Unified Process 4.1 1996 Rational Unified Process 4.0 Objectory UI design Data Engineering UML 1.1 SQA Process OMT Booch 1995 Rational Approach UML 0.8 Objectory Process 3.8
Process Architecture
Features in RUP Iterative and incremental Architecture Centric Use-Case Driven
Iterative and Incremental Inception Elaboration Construction Transition Phases U C 1 U C 2 U C 3 orkflows
Architecture Centric Software 4 + 1 View,.,,,, Software Architecture Multiple Views
4+1 View Logical View End User Implementation View Programmers Use Case View Process View System Integrators Deployment View System Engineering,,
Use Case Driven Process
Models in RUP Roles + Activities + Artifacts Workflow Process component
Disciplines in RUP Core Workflows Business modeling, Requirements, Analysis and Design, Implementation, Test, Deployment Support Workflows Project Management, Configuration and change management, Environment
Iterative lifecycle Water fall R D C T Iterative lifecycle R D C T R D C T R D C T R D C T R: Requirements Analysis D: Design C: Coding, Unit Testing T: Integration, Test Time
Benefit of Iterative Lifecycle Risk..
Phases & Milestones Inception Elaboration Construction Transition Time Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Relea Milestone
Inception 10%
Lifecycle Objective Milestone, Stakeholder. Requirements.,,..
Elaboration 30%
Lifecycle Architecture Milestone Vision? Architecture? Risk? Construction phase?
Construction Use Case - - 50% /
Initial Operational Capability Milestone Product release? stakeholder Transition?
Transition, (.) 10%
Product Release Milestone?.
Core Workflow - Business Modeling
Core Workflow - Requirements
Core Workflow - Analysis & Design,
Core Workflow - Implementation (layer) Component Component
Core Workflow - Test Component
Core Workflow - Deployment,
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
Business Modeling? Business Modeling. System Modeling.
..,,..
Workflow
Business Modeling Business Use Case Model - Business / - Business Actor - Business Use Case Business Object Model - Business Role Things - Business Worker - Business Entity - (Organization Unit)
Business Actor (Role) (External entities)
Business Use Case Business Actor Workflow
Business Worker Business Role Role Worker Realization Business Entity <<business worker>>
Business Entity Business Worker Things (ex),
Business Use Case Model
Business Object Model Business Use Case Realization.
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
What is a Requirement? : A condition or capability to which a system must perform Quality attributes of a software system Functionality Usability Reliability Performance Supportability
What is Requirements Management? Needs Problem Problem Space Features Use Cases and Software Requirements Traceability Solution Space The Product To Be Built Test Procedures Design User Docs
Analyze the problem
Develop Vision
Develop Vision Detail Steps
Fish born Diagram Trading price too high/not competitive Poor customer access Losing customers to competition We Need Online Stock Trading Customers want More services Brokers too costly Insufficient trading process
Exercise : Develop Vision....(Fish Born Diagram )
Find Actor and Use Cases
Find Actors & Use Cases Detail Steps. System
Actors, Actor
Actor,,,
Capture a Common Vocabulary
Develop Requirements Managements Plan
Requirements Types Requirement Type Document Type Document Name Actor TERM REP STRQ FEAT SUPL UC None *.GLS *.RMP *.STR *.VIS *.SUPL *.UCS Actors(in database only) Glossary Reqts. Mgmt. Plan Stakeholder Request Vision Supplementary Specification Use Case Specification
Develop Requirement Management Plan Detail Steps Traceability Requirements Attributes Plan.
: RequisitePro Requirement Type Attribute Word Traceability matrix
Understand Stakeholder Needs
Elicit Stakeholders Request
Techniques for Eliciting Stakeholder Needs Interviews Role playing Requirements workshop Brainstorming Storyboards Prototypes Business Models
Define the System
Define the System
Develop Vision Detail Step System features features
Find Actors and Use Cases
Find Actors and Use Cases Detail Steps Outline
Use Case Actor Modeling
Use Case Actor,,, Actor Use Case,,, Actor Actor Use Case Use Case
Use Case Diagram <<include>> <<include>> <<include>> <<extend>>
Use Case Model Use Case Diagram + Use Case Report Actors Use Cases Use Case Reports
Flows of Events - (1). Actor Use Case. UI. Use Case..
Flows of Events (2) Basic Flow. Alternative Flow (Error) Use Case size
Use Case Outline Use case name Brief description Basic Flow First step Second step Third step Alternative flow1 Alternative flow2 Alternative flow3
Use Case Outline - Example Basic flow Customer logs on Customer selects Get Quote function Customer selects stock trading symbol Get desired quote from Quote System Display quote Customer gets other quotes Customer logs off Alternative Flows A1.Unidentified Trading Customer A2. Quote System Unavailable A3. Quit
Manage Scope
Prioritize Use Cases
Prioritize Use Cases Detail Steps Prioritieze Use Cases Document Use Case View in SAD
Manage Dependencies
Manage Dependencies Detail Steps Assign Attributes Establish and Verify Traceability
Refine the system definition
Detail a Use Case & Detail the Software Requirements
Detail a Use Case Detail Steps Detail the Flow of Events of the Use Case Structure the Flow of Events of the Use Case Illustrate Relationships with Actors and Other Use Cases Describe the Special Requirements of the Use Case Describe Communication Protocals Describe Preconditions of the Use Case Describe Postconditions of the Use Case Describe Extension Points
Detail Step Detail the Software Requirements Detail the Software Requirements Generate Supporting Reports
SRS SRS Actors Use Cases Use Case Reports Use-Case Model Supplementary Specification
Detailing Use Case <Use Case Name> 1. Brief Description 2. Flow of Events 1. Basic Flow of Events 2. Alternative Flows of Events 3. Special Requiremnts 4. Pre-Conditioin 5. Post-Condition 6. Extension Points 7. Relationship 8. Use-Case Diagrams 9. Other Diagrams/Enclosures
Detail Use Case - Example Basic Flow Customer Logs on The use case starts when the Trading Customer logs on. The system validates the customer id and password Customer Selects Get Quote Function The Trading Customer chooses to Get Quote. The system displays the list of securities on which it has quotes Customer Gets Quote The Trading Customer selects from the list of securities or enters the trading symbol for a security. The system sends the trading symbol to the Quote System, and receives the Quote System Response. Customer Logs off The Trading Customer logs off the system. The use cases ends.
Detail Use Case - Example Alternative Flows A1 Unidentified Trading Customer In Step1, Customer Logs On, in the Basic flow, if the system determines that the customer id and/or password are not valid A1 Quote System Unavailable In Step3, Customer Gets Quote, in the Basic flow, if the system is unable to communicate with the Quote System, the system A3 Quit The System allows the Trading Customer to quit at any time during the use case. The use case ends Quote System Cannot Locate Information In Step3, Customer Gets Quote, in the Basic Flow, if the Quote System responds that it does not have the requested information
Supplementary Specification Non-functional Requirements Usability Reliability Performance Supportability
Concept of Object Introduction of UML Introduction of RUP Business Modeling Requirements Analysis & Design
. Architecture..
Analysis vs Design Analysis Problem Design Solution Operation Attribute Object Lifecycle
Architecture System Structure. Architecture,,,.
Define Candidate Architecture
Architectural Analysis
Architectural Analysis Detail Step Define the High-Level Organization of Subsystems Identify Analysis Mechanisms Identify Key Abstraction Create Use-Case Realization
Typical Layering Approach
Identify Analysis Mechanisms Persistency Communication(IPC and RPC) Message routing Distribution Transaction management Process control and synchronization Security Error detection/handling/reporting Redundancy Legacy Interface
Identify Key Abstraction Key Abstraction System handling. Key Abstraction Source Domain knowledge Requirements Glossary Domain Model
Describing Analysis Mechanisms
Use-Case Analysis =
Use-Case Analysis Detail Steps Supplement the Use-Case Description For each use-case realization Find Classes from Use-Case Behavior Distribute Use-Case Behavior to Classes For each resulting analysis classes Describe Attributes and Associations Describe Responsibilities Qualify Analysis Mechanisms Unify Analysis Classes
Analysis Class Responsibility Attribute Relation 3 Stereo type - Boundary Class, Control Class, Entity Class
System 3 Interface Part Control Part Control Part Store Part
Stereotype and Class Interface Part <<boundary>> Control Part Control Part <<Control>> Store Part <<Entity>>
Boundary Class <<Boundary>>
Control Class Use Case Event Use Case <<Control>>
Entity Class <<Entity>>
Use Case Report and Class <<boundary>> <<Control>> <<boundary>> <<Entity>> <<Entity>>
Use Case Realization Use Case Use Case object Use Case flow interaction
Use Case Realization Diagram Realization Traceability Use-Case Model Analysis & Design Model
Sequence Diagram - (1) Sequence Sequence Logical View Use Case
Sequence Diagram - (2) Sequence Diagram Object Class Object Name Object Name and Class Name : Object Name :
Sequence Diagram - (3) Object:Class Message Time Lifeline Focus of control
Sequence Diagram - (4) - Diagram Note, Script - Diagram
Collaboration Diagram Object Link
Interaction Diagram (1) Interaction Diagram Sequence Diagram Collaboration Diagram
Interaction Diagram (2) Sequence Diagram - - Collaboration Diagram - -
Class Diagram Class Class Method, Attribute Class Name2 -Attributes Class Name1 -Attributes +Methods -Methods Class Name3 -Attributes #Methods + : public - : private # : protected
Relationships (Association) (Aggregation) Composition (Dependency) (Inheritance) Reflexive
(Association) Class Multiplicity 1 0..n 0 1..n 0..1 0 5..8 4..7,9
(Aggregation) ( has-a ) Member Class
Multilevel aggregation
Association Class
- (Aggregation) Aggregation Association
(Dependency)
(Interaction Diagram). Interation Diagram Class Diagram
Reflexive
Inheritance (1) ( is-a-kind-of )
Inheritance (2) Generalization (Encapsulation) SuperClass Specialization Superclass Subclass
Inheritance (3)
Homogenize Class Class Class
Homogenize Use Case Class,,.
Class. Logic Control Class Control Class.
Class Class. Attribute.
Class Class Class Use case Control Class
Refine the Architecture
Identify Design Elements
Identify Design Elements Detail Steps Identify classes and subsystems Identify subsystem interfaces
Incorporate Existing Design Elements
Incorporate Existing Design Elements Detail Steps Identify Reuse Opportunities Update the organization of the design model
Identify Design Mechanisms
Identify Design Mechanisms Detail Steps Categorize Clients of Analysis Mechanisms Inventory the Implementation Mechanisms Map Design Mechanisms to Implementation Mechanisms Document Architectural Mechanisms
Describe Run-Time Architecture
Describe Run-Time Architecture Detail Steps Analyze concurrency requirements Identify processes and threads Identify process lifecycles Map processes onto the Implementation Distribute model elements among process
Describe Distribution
Describe Distributions Detail Steps Define the Network Configuration Allocate Processes to Nodes
Design Components
Use-Case Design
Use Case Design Detail Steps Describe interaction between design objects Simplify sequence diagrams using subsystems Describe persistence related behavior Refine the flow of events description Unify classes and subsystems
Subsystem Design
Subsystem Design Detail Steps Distribute subsystem behavior to subsystem elements Document subsystem elements Describe subsystem dependencies
Class Design
Class Design - Detail Steps Create Initial Design Classes Define operations Define Methods Define States Define Attributes Define Dependencies Define Associations Define Generalizations Resolve Use-Case Collisions Handle Non-Functional Requirements in General