Object Oriented Analysis and Design using the UML Use-Case Analysis Adapted by Dr. Spiegel from Slides Provided by Rational Software.

Slides:



Advertisements
Similar presentations
Writing Good Use Cases - Instructor Notes
Advertisements

OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
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.
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Object Oriented Analysis and Design Using the UML
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
Uml and Use Cases CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute January 9, 2003.
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.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Object Oriented Analysis and Design Using.
© Copyright Eliyahu Brutman Programming Techniques Course.
Sample Analysis Model. Example: Sequence Diagram –“Richer Sample.” : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student :
Detail Design: Use-Case Design
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
Detail Design Subsystem Design Background and the Dynamic Part
Use Case Analysis – continued
SE 555 Software Requirements & Specification Requirements Analysis.
1 Business Models Modeling. 2 Why Model the Business Business modeling is a technique to help answer critical questions, such as: What do the workers.
Page 1 R Copyright © 1997 by Rational Software Corporation Analysis and Design with UML.
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 6: Use-Case Analysis Module 6 - Use-Case Analysis.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/29 Object Oriented Analysis and Design Using.
USE Case Model.
Object Oriented Analysis and Design Using the UML
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
1 CSc 131 Computer Software Engineering Fall 2012 Lecture # 7 Object-Oriented Design & UML Class Models.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Page 1 What is the UML? UML stands for Unified Modeling Language The UML combines the best of the best from – Data Modeling concepts (Entity Relationship.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Use-Case Design.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 7 Use Case Analysis.
Solid Palette Gradient Palette I Gradient Palette II APPLYING THESE COLORS Click on the desired color Click on the paintbrush tool located.
Page 1  Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling captures essential parts of.
Page 1 R Copyright © 1998 by Rational Software Corporation Visual Modeling and the UML.
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.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Building Analysis Classes.
Copyright © Hsiao-Lan Wei All Rights Reserved Design Model Interaction diagram.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 02. Objects,
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
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.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
1 Detail Design: Use-Case Design Background on Use Case Design Have ‘done’ Architectural Design; You know the major (eleven) precepts of good design.
Object Oriented Analysis & Design Using UML (CS-512) M-Tech CSE (Ist & 3rd Sem) Part Time Mr. Pawan Luthra Assistant Professor (CSE Deptt.) SBSSTC, Ferozepur.
What is a Structural Model?
1 The Unified Modeling Language. 2 The Unified Modeling Language (UML) is a standard language for writing software blueprints. The UML may be used to.
Design Model Lecture p6 T120B pavasario sem.
Page 1 R Copyright © 1997 by Rational Software Corporation Analysis and Design with UML Presentation was downloaded (and is available for free) from Rational.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Object Oriented Analysis and Design Using.
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.
Page 1  Copyright © 1997 by Rational Software Corporation Putting the UML to Work The ESU University wants to computerize their registration system –
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
UML - Development Process 1 Software Development Process Using UML.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – continued Control Classes.
Page 1  Copyright © 1997 by Rational Software Corporation Putting the UML to Work The ESU University wants to computerize their registration system –
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
UML SEQUENCE AND CLASS DIAGRAMS
UML Class Diagram.
Use Case Analysis – continued
Design Yaodong Bi.
Use Case Analysis – continued
Software Development Process Using UML Recap
Presentation transcript:

Object Oriented Analysis and Design using the UML Use-Case Analysis Adapted by Dr. Spiegel from Slides Provided by Rational Software

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 2 Objectives: Use-Case Analysis  Understand the purpose of Use- Case Analysis and where in the lifecycle it is performed  Identify the classes which perform a use-case flow of events  Distribute the use-case behavior to those classes, identifying responsibilities of the classes  Develop use-case realizations that model the collaborations between instances of the identified classes

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 3 Use-Case Analysis in Context Use-Case Analysis Designer

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 4 Use-Case Analysis Overview Supplementary Specifications Glossary Use-Case Model Use-Case Analysis Use-Case Modeling Guidelines Use-Case Realization (identified) Use-Case Realization (developed) Design Model Analysis Classes Analysis Model (optional) Software Architecture Document

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 5 Use-Case Analysis 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 class  Describe Attributes and Associations  Describe Responsibilities  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 6 Use-Case Analysis 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 class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 7 The system displays a list of course offerings. The system retrieves and displays a list of current course offerings from the course catalog legacy database. Supplement the Use-Case Description

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 8 Use-Case Analysis 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 class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 9  An abstraction  Describes a group of objects with common:  Properties (attributes)  Behavior (operations)  Relationships  Semantics Class Name Attributes Operations Review: Class

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 10 Review: Use-Case Realization Class Diagrams Sequence Diagrams Use Case Collaboration Diagrams Use-Case ModelDesign Model Use CaseUse-Case Realization

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 11 Find Classes From Use-Case Behavior  The complete behavior of a use case has to be distributed to analysis classes

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 12 System boundary Use-case behavior coordination System information What is an Analysis Class? >

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 13 Use CasesAnalysis Classes Source Code ExecDesign Elements Use-Case Analysis Analysis Classes: A First Step Towards Executables

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 14 Environment Dependent Analysis class stereotype What is a Boundary Class?  Intermediates between the interface and something outside the system  Several Types  User interface classes  System interface classes  Device interface classes  One boundary class per actor/use case pair

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 15 Model interaction between the system and its environment Customer > The Role of a Boundary Class

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 16 StudentCourse Catalog SystemRegister for Courses Example: Finding Boundary Classes  One boundary class per actor/use case pair RegisterForCoursesForm CourseCatalogSystem

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 17 Concentrate on the responsibilities, not the details! Guidelines: Boundary Class  User Interface Classes  Concentrate on what information is presented to the user  Do NOT concentrate on the UI details  System and Device Interface Classes  Concentrate on what protocols must be defined  Do NOT concentrate on how the protocols will be implemented

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 18 Glossary Business-Domain Model Environment Independent Analysis class stereotype Use Case Architectural Analysis Abstractions What is an Entity Class?  Key abstractions of the system

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 19 Store and manage information in the system Customer > The Role of an Entity Class

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 20 Example: Finding Entity Classes  Use use-case flow of events as input  Key abstractions of the use case  Traditional, filtering nouns approach  Underline noun clauses in the use-case flow of events  Remove redundant candidates  Remove vague candidates  Remove actors (out of scope)  Remove implementation constructs  Remove attributes (save for later)  Remove operations

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 21 Example: Candidate Entity Classes  Register for Courses (Create Schedule) Student Schedule CourseOffering

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 22 Use Case Use-case dependent, Environment independent Analysis class stereotype What is a Control Class?  Use-case behavior coordinator  One control class per use case

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 23 The Role of a Control Class Coordinate the use-case behavior Customer >

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 24 Course Catalog SystemRegister for Courses Student Example: Finding Control Classes  One control class per use case RegistrationController

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 25 Student Course Catalog System Register for Courses Use-Case Model Design Model Example: Summary: Analysis Classes RegisterForCoursesForm CourseCatalogSystem StudentSchedule CourseOffering RegistrationController

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 26 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 27 Use CaseUse-Case Realization Sequence Diagrams Collaboration Diagrams Distribute Use-Case Behavior to Classes  For each use-case flow of events:  Identify analysis classes  Allocate use-case responsibilities to analysis classes  Model analysis class interactions in interaction diagrams

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 28 Guidelines: Allocating Responsibilities to Classes  Use analysis class stereotypes as a guide  Boundary Classes Behavior that involves communication with an actor  Entity Classes Behavior that involves the data encapsulated within the abstraction  Control Classes Behavior specific to a use case or part of a very important flow of events (continued)

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 29 Guidelines: Allocating Responsibilities to Classes (cont.)  Who has the data needed to perform the responsibility?  One class has the data, put the responsibility with the data  Multiple classes have the data: Put the responsibility with one class and add a relationship to the other Create a new class, put the responsibility in the new class, and add relationships to classes needed to perform the responsibility Put the responsibility in the control class, and add relationships to classes needed to perform the responsibility

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 30 The Anatomy of Sequence Diagrams 1: PerformResponsibility Client Object Supplier Object Message :Client:Supplier Focus of Control This is a sample script. Reflexive Message Object Lifeline 1.1: PerformAnother Responsibility Hierarchical Message Numbering

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 31 Example: Sequence Diagram : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student : Course Catalog : CourseCatalogSystem A list of the available course offerings for this semester are displayed create a new schedule 1: // create schedule( ) 5: // display course offerings( ) 2: // get course offerings( ) 3: // get course offerings(forSemester) 6: // display blank schedule( ) At this, point the Submit Schedule sub-flow is executed. Sequence Diagram: Register for Courses / Register for Courses - Basic Flow (Submit Schedule) 7: // select 4 primary and 2 alternate offerings( ) 8: // create schedule with offerings( ) 9: // create with offerings( ) A blank schedule is displayed for the students to select offerings 10: // add schedule(Schedule) 4: // get course offerings( )

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 32 1: PerformResponsibility Client Object Supplier Object Message Link :Client:Supplier The Anatomy of Collaboration Diagrams

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 33 Example: Collaboration Diagram : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student : CourseCatalogSystem 5: // display course offerings( ) 6: // display blank schedule( ) : Course Catalog 1: // create schedule( ) 7: // select 4 primary and 2 alternate offerings( ) 2: // get course offerings( ) 8: // create schedule with offerings( ) 9: // create with offerings( ) 3: // get course offerings(forSemester) 10: // add schedule(Schedule) 4: // get course offerings( )

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 34 Alternate Flow 4Alternate Flow 5Alternate Flow n Alternate Flow 1Alternate Flow 2Alternate Flow 3 AF1 AF2 AF3 Basic Flow One Interaction Diagram Is Not Good Enough

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 35 Collaboration Diagrams Vs Sequence Diagrams  Collaboration Diagrams  Show relationships in addition to interactions  Better for visualizing patterns of collaboration  Better for visualizing all of the effects on a given object  Easier to use for brainstorming sessions  Sequence Diagrams  Show the explicit sequence of messages  Better for visualizing overall flow  Better for real-time specifications and for complex scenarios

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 36 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 37 // PerformResponsibility :Client:Supplier Supplier // PerformResponsibility Interaction Diagram Class Diagram Describe Responsibilities  What are responsibilities?  How do I find them?

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 38 Example: View of Participating Classes (VOPC) Class Diagram Student // get tuition() // add schedule() // get schedule() // delete schedule() // has pre-requisites() > RegistrationController // get course offerings() // get current schedule() // delete current schedule() // submit schedule() // is registration open?() // save schedule() // create schedule with offerings() // update schedule with new selections() > CourseCatalogSystem // get course offerings() > RegisterForCoursesForm // display course offerings() // display blank schedule() // update offering selections() > Schedule // commit() // select alternate() // remove offering() // level() // cancel() // get cost() // delete() // submit() // save() // any conflicts?() // create with offerings() // update with new selections() >

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 39 Maintaining Consistency: What to Look For  In order of criticality  Redundant responsibilities across classes  Disjoint responsibilities within classes  Class with one responsibility  Class with no responsibilities  Better distribution of behavior  Class that interacts with many other classes

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 40 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 41 ClassName > Attribute : Type = InitValue attribute In analysis, do not spend time on attribute signatures Review: What is an Attribute?

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 42 Finding Attributes  Properties/characteristics of identified classes  Information retained by identified classes  “Nouns” that did not become classes  Information whose value is the important thing  Information that is uniquely "owned” by an object  Information that has no behavior

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 43 Review: What Is an Association?  The semantic relationship between two or more classifiers that specifies connections among their instances  A structural relationship, specifying that objects of one thing are connected to objects of another Course > Student > Schedule >

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 44 1: PerformResponsibility Link Association Collaboration Diagram Class Diagram 0.. * Prime suppliers 0.. * Client Supplier :Client:Supplier Client Supplier PerformResponsibility() Relationship for every link! Finding Relationships

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 45 Review: What is Aggregation?  A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts Whole/aggregate part * CourseOffering > Schedule > Student > 1 0..* 1

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 46 When in doubt use association  If two objects are tightly bound by a whole-part relationship  The relationship is an aggregation.  If two objects are usually considered as independent, although they are often linked  The relationship is an association. Association or Aggregation? CarDoor 0..2,4 11 CarDoor 0..2,4 1

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 47 What are Roles?  The “face” that a class plays in the association Role Name CourseOffering > Professor > instructor Department > Department Head Course > preRequisites

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 48 Review: Multiplicity * 0..* 1 *  Unspecified  Exactly one  Zero or more (many, unlimited)  One or more  Zero or one (optional scalar role)  Specified range  Multiple, disjoint ranges 2, 4..6

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 49 What Does Multiplicity Mean?  Multiplicity answers two questions.  Is the association mandatory or optional?  What is the minimum and maximum number of instances that can be linked to one instance? Course > * preRequisites * CourseOffering > 0..*1 1

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 50 CourseOffering > Schedule > primaryCourses alternateCourses CourseOffering > Schedule > add student to remove student from Multiple associations must reflect multiple roles Example: Multiple Associations

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 51 Example: VOPC: Finding Relationships RegisterForCoursesForm > CourseOffering > Schedule > 0.. * primaryCourses 0..4 Student > 0.. * 1 RegistrationController > currentSchedule 0..1

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 52 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 53 Review: Why Use Analysis Mechanisms? Oh no! I found a group of classes that has persistent data. How am I supposed to design these things if I don’t even know what database we are going to be using? That is why we have a persistence analysis mechanism. We don’t know enough yet, so we can bookmark it and come back to it later. Analysis mechanisms are used during analysis to reduce the complexity of analysis, and to improve its consistency by providing designers with a short- hand representation for complex behavior.

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 54 Analysis ClassAnalysis Mechanism(s) Describing Analysis Mechanisms  Collect all analysis mechanisms in a list  Draw a map of the client classes to the analysis mechanisms  Identify characteristics of the Analysis Mechanisms

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 55 Analysis ClassAnalysis Mechanism(s) Student Schedule CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Distribution Persistency, Security Example: Describing Analysis Mechanisms  Analysis class to analysis mechanism map

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 56 Example: Describing Analysis Mechanisms (cont.)  Analysis mechanism characteristics  Persistency for Schedule class:  Granularity: 1 to 10 Kbytes per product  Volume: up to 2,000 schedules  Access frequency Create: 500 per day Read: 2,000 access per hour Update: 1,000 per day Delete: 50 per day  Etc.

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 57 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 58 Unify Analysis Classes

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 59 Supplementary Specification Glossary Use-Case Model Design Model Analysis Classes Evaluate Your Results

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 60 Use-Case Analysis Steps  Supplement the Use-Case Descriptions  For each use-case realization  Find Classes from Use-Case Behavior  Distribute Use-Case Behavior to Classes  For each resulting analysis class  Describe Responsibilities  Describe Attributes and Associations  Qualify Analysis Mechanisms  Unify Analysis Classes  Checkpoints

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 61 (continued) Checkpoints: Analysis Classes  Are the classes reasonable?  Does the name of each class clearly reflect the role it plays?  Does the class represent a single well-defined abstraction?  Are all attributes and responsibilities functionally coupled?  Does the class offer the required behavior?  Are all specific requirements on the class addressed?

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 62 Checkpoints: Use-Case Realizations  Have all the main and/or sub-flows been handled, including exceptional cases?  Have all the required objects been found?  Has all behavior been unambiguously distributed to the participating objects?  Has behavior been distributed to the right objects?  Where there are several interaction diagrams, are their relationships clear and consistent?

Object Oriented Analysis and Design Using the UML v2000 Copyright © 2000 Rational Software, all rights reserved 63 Review: Use-Case Analysis  What is the purpose of Use-Case Analysis?  What is an analysis class? Name and describe the three analysis stereotypes.  What is a use-case realization?  Describe some considerations when allocating responsibilities to analysis classes.  How many interaction diagrams should be produced during Use-Case Analysis?