Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Use-Case Design.

Slides:



Advertisements
Similar presentations
Deliverable #8: Detailed Design - Overview due: Wednesday, 7 March All Deliverable materials are to be posted into Team Concert. Your to.
Advertisements

Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Interaction Diagrams.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/20 Interaction Diagrams.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
J. Scott Hawker p. 1 Material © IBM Rational Software Use-Case Analysis Analyze the requirements to discover what the system objects are These.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Interaction Diagrams.
© Copyright Eliyahu Brutman Programming Techniques Course.
Sample Analysis Model. Example: Sequence Diagram –“Richer Sample.” : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student :
Detail Design: Use-Case Design
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
1 Detail Design Subsystem Design Static Part - VOPC.
Detail Design Subsystem Design Background and the Dynamic Part
Use Case Analysis – continued
SE 555 Software Requirements & Specification Requirements Analysis.
Class Design Another Look – Part 1. Note: there is so much more than below…  More facts regarding Class Design Re-look at Persistent Classes Re-look.
Object Oriented Analysis and Design Using the UML
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 6: Use-Case Analysis Module 6 - Use-Case Analysis.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Introduction to Object Technology.
Object Oriented Analysis and Design 1 Chapter 5 Object Oriented Design  OO Design Overview  Architectural Design  Use Case Design  Subsystem Design.
Chapter 10 Architectural Design
The Design Discipline.
Architectural Analysis These slides are derived from IBM/Rational slides from courses on UML and object-oriented design and analysis. Copyright to the.
UML - Development Process 1 Software Development Process Using UML (2)
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
1 Detail Design Subsystem Design Background and the Dynamic Part.
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Object Oriented Analysis and Design 1 Chapter 7 Database Design  UML Specification for Data Modeling  The Relational Data Model and Object Model  Persistence.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Class Diagrams.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 6: Use-Case Analysis.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Requirements Overview.
1 Detail Design: Use-Case Design Background on Use Case Design Have ‘done’ Architectural Design; You know the major (eleven) precepts of good design.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Database Design Some of these slides are derived from IBM/Rational slides from courses on UML and object-oriented design and analysis. Copyright to the.
Introduction to OOAD and the UML
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 9: Describe the Run-time Architecture.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Architectural Analysis.
1 IBM Software Group ® Essentials of Visual Modeling with UML 2.0 Module 5: Interaction Diagrams.
OOAD Using the UML - Subsystem Design, v 4.0 Copyright  Rational Software, all rights reserved 1 R Subsystem Design.
Object Oriented Analysis and Design using the UML Use-Case Analysis Adapted by Dr. Spiegel from Slides Provided by Rational Software.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Chapter 3: Introducing the UML
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
UML - Development Process 1 Software Development Process Using UML.
Use Case Model Use case description.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
351 Class Design - Part Note: there is so much more than below…  More facts regarding Class Design Re-look at Persistent Classes Re-look at Class.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
OOAD Using the UML - Describe Concurrency, v 4.0 Copyright  Rational Software, all rights reserved 1 R Thread Process X Thread Process ZProcess.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – continued Control Classes.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
GOVT. ENGINEERING COLLEGE, AJMER. A SEMINAR PRESENTATION ON UNIFIED MODELING LANGUAGE(UML) SUBMITTED TO:-PRESENTED BY:- Dr. REENA DADHICHPALLAVI VASHISTHA.
Unified Modeling Language
Mastering OOAD w/ UML 2.0 – Instructor Notes
Object Oriented Analysis and Design
Use Case Analysis – continued
Design Yaodong Bi.
Use-Case Design in Context
Use Case Analysis – continued
Design.
Introduction to OOAD and the UML
Software Development Process Using UML Recap
Presentation transcript:

Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Use-Case Design

Object Oriented Analysis and Design 2 Use-Case Design in Context [Early Elaboration Iteration] [Inception Iteration (Optional)] Define a Candidate Architecture Perform Architectural Synthesis Analyze Behavior Refine the Architecture Define Components Design the Database (Optional) Use-Case Design Designer

Object Oriented Analysis and Design 3 Use-Case Design Overview Supplementary Specifications Use-Case Design Use-Case Realization (Refined) Design Subsystems and Interfaces Design Classes use-case

Object Oriented Analysis and Design 4 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 5 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 6 Review: Use-Case Realization Class Diagrams Use Case Collaboration Diagrams Use-Case ModelDesign Model Use CaseUse-Case Realization Sequence Diagrams

Object Oriented Analysis and Design 7 Analysis ClassesDesign Elements Many-to-Many Mapping Review: From Analysis Classes to Design Elements >

Object Oriented Analysis and Design 8 Class Diagrams Use-Case Realization Refinement  Identify participating objects  Allocate responsibilities among objects  Model messages between objects  Describe processing resulting from messages  Model associated class relationships Sequence Diagrams

Object Oriented Analysis and Design 9  Identify each object that participates in the flow of the use case  Represent each participating object in a sequence diagram  Incrementally incorporate applicable architectural mechanisms Use-Case Realization Refinement Steps

Object Oriented Analysis and Design 10 Representing Subsystems on a Sequence Diagram  Interfaces  Represent any model element that realizes the interface  No message should be drawn from the interface  Proxy class  Represents a specific subsystem  Messages can be drawn from the proxy Object AInterfaceObject B 1: Message 1 2: Message 2 Object A Proxy Object B 1: Message 1 2: Message 2 X Invalid messageValid message

Object Oriented Analysis and Design 11 Analysis classes are mapped directly to design classes. Analysis ClassesDesign Elements Example: Incorporating Subsystem Interfaces BillingSystem //submit bill() > Billing System > IBillingSystem submitBill(forTuition : Double, forStudent : Student) CourseCatalogSystem //get course offerings() > Course Catalog System > ICourseCatalogSystem getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList initialize()

Object Oriented Analysis and Design 12 Example: Incorporating Subsystem Interfaces (Before) Analysis class to be replaced with an interface : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student : CourseCatalogSystem Student wishes to create a new schedule 1. // create schedule( ) 1.2. // display course offerings( ) 1.1. // get course offerings( ) // get course offerings(forSemester) 1.3. // display blank schedule( ) 2. // select 4 primary and 2 alternate offerings( ) 2.1. // create schedule with offerings( ) // create with offerings( ) A blank schedule is displayed for the students to select offerings // add schedule(Schedule) At this point, the Submit Schedule subflow is executed A list of the available course offerings for this semester are displayed

Object Oriented Analysis and Design 13 Example: Incorporating Subsystem Interfaces (After) : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student : ICourseCatalogSystem Student wishes to create a new schedule 1. // create schedule( ) 1.2. // display course offerings( ) 1.1. // get course offerings( ) getCourseOfferings(Semester) 1.3. // display blank schedule( ) 2. // select 4 primary and 2 alternate offerings( ) 2.1. // create schedule with offerings( ) // create with offerings( ) A blank schedule is displayed for the Student to select offerings // add schedule(Schedule) At this point, the Submit Schedule subflow is executed A list of the available course offerings for this semester are displayed Replaced with subsystem interface

Object Oriented Analysis and Design 14 Example: Incorporating Subsystem Interfaces (VOPC) ICourseCatalogSystem getCourseOfferings() initialize() (from External System Interfaces) > RegisterForCoursesForm // submit schedule() // display course offerings() // display schedule() // save schedule() // create schedule() // select 4 primary and 2 alternate offerings() // display blank schedule() (from Registration) > Student. - name - address - studentID : int // addSchedule() // getSchedule() // hasPrerequisites() // passed() (from University Artifacts) > RegistrationController // submit schedule() // save schedule() // create schedule with offerings() // getCourseOfferings() (from Registration) > 0..1 registrant 11 Schedule semester // submit() // save() // any conflicts?() // new() (from University Artifacts) > 0..* currentSchedule CourseOffering number startTime endTime days // addStudent() // removeStudent() // new() // setData() (from University Artifacts) > 0..* 0..4 primaryCourses 0..* 0..2 alternateCourses 0..* 1 Subsystem interface

Object Oriented Analysis and Design 15 Analysis ClassAnalysis Mechanism(s) Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Distribution Incorporating Architectural Mechanisms: Security  Analysis-Class-to-Architectural-Mechanism Map from Use-Case Analysis SchedulePersistency, Security Details are in the appendix.

Object Oriented Analysis and Design 16 Analysis ClassAnalysis Mechanism(s) Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Distribution Incorporating Architectural Mechanisms: Distribution  Analysis-Class-to-Architectural-Mechanism Map from Use-Case Analysis SchedulePersistency, Security

Object Oriented Analysis and Design 17 Review: Incorporating RMI: Steps  Provide access to RMI support classes (e.g., Remote and Serializable interfaces, Naming Service)  Use java.rmi and java.io package in Middleware layer  For each class to be distributed:  Controllers to be distributed are in Application layer  Dependency from Application layer to Middleware layer is needed to access java packages  Define interface for class that realizes Remote  Have class inherit from UnicastRemoteObject   - Done  

Object Oriented Analysis and Design 18  Have classes for data passed to distributed objects realize the Serializable interface  Core data types are in Business Services layer  Dependency from Business Services layer to Middleware layer is needed to get access to java.rmi  Add the realization relationships  Run pre-processor – out of scope Review: Incorporating RMI: Steps (cont.)    - Done

Object Oriented Analysis and Design 19 Review: Incorporating RMI: Steps (cont.)  Have distributed class clients look up the remote objects using the Naming service  Most Distributed Class Clients are forms  Forms are in Application layer  Dependency from Application layer to Middleware layer is needed to get access to java.rmi  Add relationship from Distributed Class Clients to Naming Service  Create/update interaction diagrams with distribution processing (optional)     - Done

Object Oriented Analysis and Design 20 Example: Incorporating RMI currentSchedule registrant CourseOfferingList (from University Artifacts) Naming + lookup() (from rmi) RegisterForCoursesForm (from Registration ) > Remote (from rmi) > RegistrationController (from Registration) > Student (from University Artifacts) > UnicastRemoteObject (from server) Serializable (from io) > Schedule (from University Artifacts) > Distributed Class Client Distributed Class Passed Class IRegistrationController + getCurrentSchedule(forStudent : Student, forSemester : Semester) : Schedule + deleteCurrentSchedule() + submitSchedule() + saveSchedule() + getCourseOfferings() : CourseOfferingList (from Registration) > n

Object Oriented Analysis and Design 21 Example: Incorporating RMI (cont.) > Business Services > Middleware > Application Middleware > Application > Business Services > java.rmi > remote (from java.rmi) Naming (from java.rmi) UnicastRemote Object (from Server) Server > Serializable (from java.io) Java.io Registration Package (from Application) University Artifacts (from Business Services)

Object Oriented Analysis and Design 22 Example: Incorporating RMI (cont.) Added to support distribution All calls to the distributed class interface are forwarded to the remote instance. RegisterForCoursesForm : Naming. :IRegistrationController Lookup remote object by specifying it's URL 1: lookup(string) 2: doSomething

Object Oriented Analysis and Design 23 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 24 Raises the level of abstraction Encapsulating Subsystem Interactions  Interactions can be described at several levels  Subsystem interactions can be described in their own interaction diagrams

Object Oriented Analysis and Design 25 When to Encapsulate Subflows in a Subsystem Encapsulate a Subflow when it:  Occurs in multiple use-case realizations  Has reuse potential  Is complex and easily encapsulated  Is responsibility of one person or team  Produces a well-defined result  Is encapsulated within a single Implementation Model component

Object Oriented Analysis and Design 26 InterfaceA op1() > MySubsystem op1() Guidelines: Encapsulating Subsystem Interactions  Subsystems should be represented by their interfaces on interaction diagrams  Messages to subsystems are modeled as messages to the subsystem interface  Messages to subsystems correspond to operations of the subsystem interface  Interactions within subsystems are modeled in Subsystem Design > :InterfaceA

Object Oriented Analysis and Design 27 Advantages of Encapsulating Subsystem Interactions Use-case realizations:  Are less cluttered  Can be created before the internal designs of subsystems are created (parallel development)  Are more generic and easier to change (Subsystems can be substituted.)

Object Oriented Analysis and Design 28 Use subsystem interfaces as synchronization points Parallel Subsystem Development  Concentrate on requirements that affect subsystem interfaces  Outline required interfaces  Model messages that cross subsystem boundaries  Draw interaction diagrams in terms of subsystem interfaces for each use case  Refine the interfaces needed to provide messages  Develop each subsystem in parallel

Object Oriented Analysis and Design 29 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 30 Outline: Describe Persistence-Related Behavior  Describe Persistence-Related Behavior  Modeling Transactions  Writing Persistent Objects  Reading Persistent Objects  Deleting Persistent Objects

Object Oriented Analysis and Design 31 Modeling Transactions  What is a transaction?  Atomic operation invocations  “All or nothing”  Provide consistency  Modeling options  Textually (scripts)  Explicit messages  Error conditions  Rollback  Failure modes  May require separate interaction diagrams

Object Oriented Analysis and Design 32 Analysis ClassAnalysis Mechanism(s) Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Distribution Incorporating the Architectural Mechanisms: Persistency  Analysis-Class-to-Architectural-Mechanism Map from Use-Case Analysis SchedulePersistency, Security Legacy persistency (RDBMS ) is deferred to Subsystem Design. OODBMS Persistency RDBMS Persistency Details in Appendix

Object Oriented Analysis and Design 33 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 34 Detailed Flow of Events Description Options  Annotate the interaction diagrams : Actor1 : ClassA : ClassB 1: Do Something 2: Do Something More Scripts can be used to describe the details surrounding these messages. Notes can include more information about a particular diagram element Script Note

Object Oriented Analysis and Design 35 Outline  Describe interaction among design objects  Simplify sequence diagrams using subsystems  Describe persistence-related behavior  Refine the flow of events description  Unify classes and subsystems

Object Oriented Analysis and Design 36  Model element names should describe their function  Merge similar model elements  Use inheritance to abstract model elements  Keep model elements and flows of events consistent Design Model Unification Considerations