Introduction to RUP and Visual Modeling Month Day, Year RUP is Use Case-Driven Discipline Use Case Usage Project Management Basis for iteration planning Business Modeling Business use cases used to define and structure the business processes Requirements Where system use cases are formally defined and structured Analysis & Design Use cases are “realized” – define how use cases are performed by interacting objects in design model Implementation Use cases implemented by design classes Test Basis for Test Cases and Test Procedures – system verified by performing each use case Deployment Foundation for Users Guide Use Cases Assigned to Iterations Iteration 1 Iteration 2 Iteration 3 Product A Use Case 1 All scenarios Use Case 2 Use Case 3 All scenarios “Happy Day” scenario Alternative Flow 1 Alternative Flow 2 “Happy Day” scenario All Alternative Flows Product B Use Case 4 Use Case 5 Use Case 6 All scenarios All scenarios Use Case 3 Implementation Iteration 1 Iteration 2 Iteration 3 Iteration 4 Business Modeling Requirements Analysis & Design Implementation Test Deployment Configuration & Change Management Iteration 5 RUP – Model Overview Business Modeling System Use Case Modeling Design Modeling Who? Business Process Analyst System Analyst Designer/Developer What? Business Model System Use Case Model Design Model Where? Rose and ReqPro Rose and ReqPro Rose/XDE When? First 4 iterations All iterations Why? First 3 iterations Define business processes Identify points of automation Define functional requirements Start transition to design Define Components Integrate With Code RUP – Basic Steps Create Software Development Plan Create Project Model • Create visual sub-models – – – – Business Use-Case Model System Use-Case Model Design Model Implementation Model • Create requirements sub-model Knowledge Acquisition Model Develop Code Test Software Development Plan Create Vision and Features Identify Business/System Use-Cases Prioritize Business/System Use-Cases Create Iteration Plan and Schedule Create Supporting Process Plans and Guidelines Create Business Use-Case Model Identify Business Use-Cases Brainstorming major business processes Decompose using activity diagrams For each Business Use-Case create: Business Business Business Business Business Activity Diagrams Use-Case Diagrams Sequence/Collaboration Diagrams Statechart Diagrams Class Diagrams Create Business Use-Case Requirements Create System Use-Case Model Identify points of automation For each System Use-Case create: System Use-Case Diagrams System Activity Diagrams System Sequence/Collaboration Diagrams System State Transition Diagram System Statechart Diagrams Analysis Class Diagrams UI Design Diagrams/Mockups/Prototype Create Use-Case Requirements Create Design Model Import Rose Requirements Model into XDE Create Sequence/Collaboration Diagrams Transform Objects into Classes Create Action-level Activity Diagrams Create Design Class Diagrams Create Data Model/Database Create Implementation Model Integrate Code with XDE Model Forward engineer Implementation Classes Reverse engineer existing code and frameworks Write Code Unit Test Test Define Evaluation Mission Test Ideas Verify Test Approach Test & Evaluate Achieve Acceptable Mission Improve Test Assets Artifact Review Development Case Software Development Plan • Iteration 1 Plan – Plan – Schedule Business Modeling Guidelines Knowledge Acquisition Worksheet The Models Business Use-Case Model Identify the tasks, activities, roles and entities that accomplish business goals Identify Automation Points • Use-Cases (Automatable/ed Business Use-Cases) – Actors (Business Workers) – Entities (Business Entity) Use-Case Model Models User – System Interaction Clear, concise overview of the purpose and functionality of the system • All functional and non-functional requirements are mapped to at least one use-case and visa-versa The Model Design Model Use-Case Analysis • Objects Design Classes • Object Evolution • Identify Mechanisms and Elements Architectural Analysis • Assess Viability of Architectural Proof-of-Concepts Implementation Model Construct Architectural Proof of Concepts Prototype User-Interface Implement Classes The Models Deployment Model What where Test Model Test Cases • • • • Test Test Test Test Classes Scripts Data Results Model Evolution A process of working out or developing A process of change in a certain direction A process of continuous change from a lower, simpler, or worse to a higher, more complex, or better state Model Evolution Modeling Diagrams • • • • • Activity Sequence Collaboration Statechart Class – Use-Case – Object – Class Requirements • Multimedia Model Evolution Model Lineage Business Use-Case (BUCM) • Use-Case (UCm) – Design (DM) – Implementation (IM) – Deployment (DM) – Test ™ Activity Diagram – BUCM Primary Diagram for Requirements Specification Elements Activities • Actions Transitions Decisions Synchronizations States Activity Diagram – BUCM Activity Diagrams – BUCM Activity Diagrams – BUCM Swimlanes Integration of the division of activity between business actors / actors into the Business UseCase / Use-case activity Recognition of collaborating objects Activity Diagrams – BUCM Activity Diagrams – BUCM Activity Diagrams – BUCM Object Flows Integration of Business Entities / Entities into the Business Use-Case / Use-case activity Recognition of collaborating objects Sequence Diagrams - BUCM Show object interaction in a timebased sequence Establish the roles of objects Provide essential information to determine class responsibilities and interfaces Sequence Diagrams - BUCM Simplicity • Plain English Shows interaction between • Business Actors – Workers • Business Entities Sequence Diagrams - BUCM Collaboration Diagrams - BUCM Used to show how objects interact to perform a particular behavior Used to define and clarify the roles of the objects that perform a particular flow of events Better suited to depicting simpler interactions of smaller numbers of objects. Collaboration Diagrams - BUCM Collaboration Diagrams - BUCM Statechart Diagrams - BUCM Used To Model Dynamic Behavior Event-driven behavior • Are required for objects who call events and signal events to implement their operations State-dependent behavior • Are required for active objects whose behavior varies base on their state • Are not required for passive objects whose behavior does not vary with their state Statechart Diagrams - BUCM Statechart Diagrams - BUCM Class Diagrams – BUCM Models the static structure of the model Objects / Classes • Internal structure – Attributes – Operations Relationships to other classes Class Diagrams – BUCM Use–Case Diagram Class Diagrams – BUCM Object Diagram Class Diagrams – BUCM Activity Diagrams - UCM Simple Plain English Details interaction activity between Actors (Business Workers) System (Computer) Sequence Diagrams - UCM Simple Plain English Shows interaction between Actors (Business Workers) System (Computer) Other Diagrams - UCM Collaboration Statechart Class Use-Case Object Simple Plain English Activity Diagram – DM - Analysis Defining division of actions between objects for obtaining a particular result from the system Detailed • Actions • Requirements – Preconditions – Postconditions Sequence Diagram - DM - Analysis Defining interaction of objects for obtaining a particular result from the system Simple messages • Synchronization • Period Collaboration Diagrams - DM - Analysis Shows collaboration of objects for obtaining a particular result from the system Simple Messages Easy to Create F6 Layout Statechart Diagrams - DM - Analysis Shows achievable states of the objects within the system Simple Class Diagrams - DM - Analysis Show the static state of objects Structure • Simple attributes • Simple operations Relationships Activity Diagram – DM - Design Defining internal actions of an object to produce a particular result Sequence Diagram - DM - Design Defining interaction of objects for obtaining a particular result from the system Assignment • Simple messages become detailed messages / procedure calls to specific object operations • Programming Notation Collaboration Diagrams – DM - Design Shows collaboration of objects for obtaining a particular result from the system Detailed Messages / Procedure Calls to specific object operations Statechart Diagrams – DM - Design Shows achievable states of the objects within the system Detailed Internal Sub-States Class Diagrams - DM - Design Show the static state of classes Structure • Detailed attributes • Detailed operations Relationships • Detailed Traceability The ability to trace a project element to other related project elements, especially those related to requirements