RPM Recommended Process and Models Applying UML and

  • Slides: 28
Download presentation
RPM Recommended Process and Models Applying UML and Patterns; Craig Larman CS 6359 RPM

RPM Recommended Process and Models Applying UML and Patterns; Craig Larman CS 6359 RPM

Iterative Development • Build phase consists of a series of development cycles. “…successive enlargement

Iterative Development • Build phase consists of a series of development cycles. “…successive enlargement and refinement of a system through multiple development cycles of analysis, design implementation, and testing”. • Iterative Advantages – “The complexity is never overwhelming. ” – “Early feedback is generated… implementation occurs rapidly for a small subset of the system. ” CS 6359 RPM 2

Macro-level Steps • Plan and Elaborate—planning, defining requirements, building prototypes, and so on. •

Macro-level Steps • Plan and Elaborate—planning, defining requirements, building prototypes, and so on. • Build—the construction of the system. • Deploy—the implementation of the system into use. CS 6359 RPM 3

Iterative Development Cycles Plan and Elaborate Development Cycle 1 Refine Plan CS 6359 Build

Iterative Development Cycles Plan and Elaborate Development Cycle 1 Refine Plan CS 6359 Build Development Cycle 1 Sync. Artifacts Deploy Development Cycle 1 Analyze Design RPM Construct Test 4

Plan and Elaborate Phase Plan and Elaborate Build Deploy 1. Define Draft Plan 2.

Plan and Elaborate Phase Plan and Elaborate Build Deploy 1. Define Draft Plan 2. Create Preliminary Investigation Report 3. Define Requirements 4. Record Terms In Glossary 5. Implement Prototype 6. Define Use Cases 7. Define Draft Conceptual Model 8. Define Draft System Architecture 9. Refine Plan CS 6359 RPM 5

Build Phase—Analyze Refine Plan Sync. Artifacts Analyze Design Construct Test 1. Define Essential Use

Build Phase—Analyze Refine Plan Sync. Artifacts Analyze Design Construct Test 1. Define Essential Use Cases 2. Refine Use Case Diagrams 3. Refine Conceptual Model 4. Refine Glossary 5. Define System Sequence Diagrams 6. Define Operation Contracts 7. Define State Diagrams CS 6359 RPM 6

Build Phase—Design Refine Plan Sync. Artifacts Analyze Design Construct Test 1. Define Real Use

Build Phase—Design Refine Plan Sync. Artifacts Analyze Design Construct Test 1. Define Real Use Cases 2. Define Reports, UI and Storyboards 3. Refine System Architecture 4. Define Interaction Diagrams 5. Define Design Class Diagrams 6. Define Database Schema CS 6359 RPM 7

Use Case • “A use case is a narrative document that describes the sequence

Use Case • “A use case is a narrative document that describes the sequence of events of an actor (an external agent) using a system to complete a process. ” [Jacobson 92] • “A use case is a relatively large end-toend process description that typically includes many steps or transactions; …” CS 6359 RPM 8

Use Case (cont’d) • “Essential use cases [Constantine 97] are expanded use cases that

Use Case (cont’d) • “Essential use cases [Constantine 97] are expanded use cases that are expressed in an ideal form that remains relatively free of technology and implementation details; …” • “In contrast, a real use case concretely describes the process in terms of its real current design, committed to specific input and output technologies; …” CS 6359 RPM 9

Use Case Diagram Use Case 1 <<uses>> Use Case 2 <<extends>> Use Case 3

Use Case Diagram Use Case 1 <<uses>> Use Case 2 <<extends>> Use Case 3 Actor CS 6359 RPM 10

Use Case Template Use Case Name: Actors: Purpose: Overview: Type: Cross-references: Typical Course of

Use Case Template Use Case Name: Actors: Purpose: Overview: Type: Cross-references: Typical Course of Events: Actor Actions 1… System Responses 2… Alternative Courses: CS 6359 RPM 11

Conceptual Model • “A conceptual model illustrates meaningful concepts in a problem domain; it

Conceptual Model • “A conceptual model illustrates meaningful concepts in a problem domain; it is the most import artifact to create during object-oriented analysis. ” • “A critical quality to appreciate about conceptual model is that it is a representation of real-world things, not of software components” CS 6359 RPM 12

Conceptual Model Example Sales Line Item Records sale of 0. . 1 quantity Concept

Conceptual Model Example Sales Line Item Records sale of 0. . 1 quantity Concept 1. . * * Contained in 1 Association Store Sale address name date time 1. . * Paid by Attributes CS 6359 Item Captured on Payment POST amount RPM 13

System Sequence Diagrams • “A system sequence diagram shows, for a particular course of

System Sequence Diagrams • “A system sequence diagram shows, for a particular course of events within a use case, the external actors that interact directly with the system, …” • Time progresses vertically downward. • Ordering follows use-case. • System is treated as black-box. CS 6359 RPM 14

System Sequence Diagram Example : System Cashier enter. Item( UPC, quantity ) end. Sale()

System Sequence Diagram Example : System Cashier enter. Item( UPC, quantity ) end. Sale() make. Payment( amount ) response CS 6359 RPM 15

Operation Contracts • “A system operation contract describes changes in the state of the

Operation Contracts • “A system operation contract describes changes in the state of the overall system when a system operation is invoked. ” • Name, Responsibilities & Postconditions are most important elements. CS 6359 RPM 16

Operation Contract Template Name: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: Post-conditions: CS

Operation Contract Template Name: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: Post-conditions: CS 6359 RPM 17

Analysis Conclusion Analysis Artifact Use Cases Conceptual Model System Sequence Diagrams Contracts CS 6359

Analysis Conclusion Analysis Artifact Use Cases Conceptual Model System Sequence Diagrams Contracts CS 6359 Questions Answered What are the domain processes? What are the concepts? What are the system events and operations? What do the system operations do? RPM 18

Interaction Diagrams • “An interaction diagram illustrates the message interactions between instances (and classes)

Interaction Diagrams • “An interaction diagram illustrates the message interactions between instances (and classes) in the class model. ” • Satisfy Operation Contracts • Two Kinds – Collaboration Diagrams – Sequence Diagrams CS 6359 RPM 19

Collaboration Diagram sys. Op() obj 1 : Class. A 2: msg 2() 3: msg

Collaboration Diagram sys. Op() obj 1 : Class. A 2: msg 2() 3: msg 3() 1: msg 1() 2. 1: msg 4() obj 3 : Class. C CS 6359 obj 2 : Class. B obj 4 : Class. D RPM 20

Design Class Diagrams • “A design class diagram illustrates the specifications for software classes

Design Class Diagrams • “A design class diagram illustrates the specifications for software classes and interfaces…” • Classes, associations and attributes • Interfaces (operations & constants) • Methods • Attribute type information • Navigability • Dependencies CS 6359 RPM 21

Design Class Diagram (cont’d) Type Information Three section box for class definition. navigation Sale

Design Class Diagram (cont’d) Type Information Three section box for class definition. navigation Sale POST Captures enter. Item() date is. Complete : Bool time make. Line. Item() Methods CS 6359 RPM 22

Design Class Diagram “A How To” 1. Identify all classes participating in the software

Design Class Diagram “A How To” 1. Identify all classes participating in the software solution; refer to interactions. 2. Draw a resulting class diagram. 3. Duplicate attributes from associated conceptual model. 4. Add method names; refer to interactions. CS 6359 RPM 23

Design Class Diagram “A How To” (cont’d) 5. Add type information. 6. Add associations

Design Class Diagram “A How To” (cont’d) 5. Add type information. 6. Add associations needed to support visibility. 7. Add navigation arrows. 8. Add dependency relationship lines to indicate non-attribute visibility. CS 6359 RPM 24

GRASP Patterns General Responsibility Assignment Software Patterns • Expert—assign responsibility to the information expert.

GRASP Patterns General Responsibility Assignment Software Patterns • Expert—assign responsibility to the information expert. • Creator—who creates? • Controller—who handles a system event? • Emphasis on Low Coupling • Emphasis on High Cohesion CS 6359 RPM 25

GRASP Patterns (cont’d) • Polymorphism—when behavior varies by type. • Pure Fabrication—create a new

GRASP Patterns (cont’d) • Polymorphism—when behavior varies by type. • Pure Fabrication—create a new class to support high cohesion and low coupling. • Indirection—to avoid direct coupling. • Law of Demeter—Don’t talk to strangers. CS 6359 RPM 26

In Closing • Iterative Development Cycles Plan and Elaborate Development Cycle 1 Refine Plan

In Closing • Iterative Development Cycles Plan and Elaborate Development Cycle 1 Refine Plan CS 6359 Development Cycle 1 Sync. Artifacts Build Deploy Development Cycle 1 Analyze RPM Design Construct Test 27

In Closing • Analysis – – • Use Cases Conceptual Model System Sequence Diagrams

In Closing • Analysis – – • Use Cases Conceptual Model System Sequence Diagrams System Operation Contracts Design – Interaction Diagrams • • Collaboration Sequence – Design Class Diagram CS 6359 RPM 28