Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad 2003 SJSU -- CmpE L9-S1 Object Identification-1 Lesson 9: Object Identification - 1 2 2003 SJSU – CmpE --- M.E. Fayad L9-S2 Object Identification-1 Lesson Objectives Understand object identification & class classification Objectives Learn how to identify: Objects and classes Textual Specification Analysis Data Analysis Behavior Analysis Use Case Analysis Associations and aggregations using Abbott's approach Understand how to use the following approaches: Data Analysis Use Case 2003 SJSU – CmpE --- M.E. Fayad L9-S3 3 Object Identification-1 Classification Involves Ordering Knowledge Finding Similarities – Common Attributes – Common Behaviors OO Classifies Software – Exposes existing commonalities – Invents stable abstractions Goal is a simple & natural design 4 2003 SJSU – CmpE --- M.E. Fayad L9-S4 Object Identification-1 No Single Best Classification Structure Depends upon – Domain – Application – Experience – Creativity Water Animals ? Air Animals 5 Land Animals 2003 SJSU – CmpE --- M.E. Fayad L9-S5 Object Identification-1 Same Object Can Be Perceived from Several Perspectives Data-Driven head, tail, body, leg Behavior-Driven walk, run, eat 2003 SJSU – CmpE --- Responsibility-Driven carry things, communicate, maintain its living system M.E. Fayad L9-S6 6 Object Identification-1 Object/Class Identification Techniques Textual 2003 Specification Analysis Data Analysis Behavior Analysis Use-Case Analysis Responsibility Analysis SJSU – CmpE --- M.E. Fayad 7 L9-S7 Object Identification-1 Textual Analysis Approach 2003 Abbott’s Noun Approach – Use noun, pronoun, and noun phrases to identify abstract objects and classes. – Use singular proper nouns (e.g., sensor number 5) and nouns of direct reference (e.g., the fifth sensor) to identify abstract objects. – Use plural and common (e.g., sensor) nouns to identify classes. – Use verbs and predicate phrases (e.g., are simultaneously activated) to identify the associated operations. Comments – This approach is the oldest approach SJSU – CmpE --- M.E. Fayad 8 L9-S8 Object Identification-1 Textual Analysis Approach Benefits: – Easy for beginners to use – Abbott’s mapping should usually work – Can be used with pre-existing textual requirements specifications – Does not require a complete paradigm shift Risks – Indirect – Many software engineers are weak in grammar – English is vague, Examples • Some nouns can be used as verbs and vis versa • Some words (e.g., purchase, record) can be used as both nouns and verbs – Assumes user’s requirements are coherent, complete and correct – No tool support 2003 SJSU – CmpE --- M.E. Fayad L9-S9 10 Object Identification-1 Selecting Good Classes 2003 Classes should make sense in the problem domain. Good classes classify the objects which need to be modeled in the system. Classes often correspond to NOUNS. Avoid redundant or irrelevant classes which add no value in the problem domain. Remove classes which have no attributes. SJSU – CmpE --- M.E. Fayad L9-S10 12 Object Identification-1 Elimination of Inappropriate Classes After initial pass, discard classes which are: Redundant Irrelevant to the problem domain Vague Attributes If class name has no attributes of its own, it is probably an attribute. 2003 SJSU – CmpE --- M.E. Fayad L9-S11 11 Object Identification-1 Example 1: Simple Cash Register The Problem Statement: A simple cash register has a display, an electronic wire with a plug, and a numeric keypad which has keys for subtotal, tax, and total. This cash storage device has a total key which triggers the release on the drawer. The numeric buttons simply place a number on the display screen, the subtotal displays the current total, the tax key computes the tax, and the total key adds the subtotal to the tax. • • 2003 Identify all the classes in this problem statement Use the class elimination rules to eliminate the unnecessary classes. SJSU – CmpE --- M.E. Fayad L9-S12 12 Object Identification-1 Classes in the initial pass We are going to use nouns to find classes Nouns (initial) Register Display Wire Plug Keypad Keys Devices Release Drawer Buttons Screen Number Total Tax Nouns (General Knowledge) 0-9 keys Money Subtotal Key Tax Key Total Key 2003 SJSU – CmpE --- 13 M.E. Fayad L9-S13 Object Identification-1 Eliminating Unnecessary Nouns Register • Screen ---> Redundant Display • Number ---> Attribute Wire ---> Irrelevant • Total ---> Attribute Plug ---> Irrelevant • Tax Keypad • 0-9 Key Keys • Value ---> Attribute Devices ---> Vague • Money Release ---> Irrelevant • Subtotal Key Drawer Buttons 2003 ---> Attribute • Tax Key ---> Redundant SJSU – CmpE --- 14 • Total Key M.E. Fayad L9-S14 Object Identification-1 Data Analysis Approach 1. Identify abstract objects as table 3. Identify relationships between objects Dog Name Happy Tasha King, Jr. Breed Owner Name Poodle Pit Bull Shepherd Joe Eric Carol Dog Owner Name 2. Identify instances as rows in table Address Carol 2601 Lake St. 15 But how do you find your abstract objects? 2003 SJSU – CmpE --- M.E. Fayad L9-S15 Object Identification-1 Analyzing the Domain for Abstract Objects 2003 Tangible things -- airplane, book, table Roles -- doctor, professor Incidents -- accident, flight Interactions -- purchase, marriage Specifications -- insurance policy People -- humans who carry out some function Places -- areas set aside for people or things Organizations -- formally organized collections of people, resources. and facilities SJSU – CmpE --- M.E. Fayad L9-S16 16 Object Identification-1 Identifying Associations/Aggregations 2003 Associations often refer to verbs of verb phrases – Examples: next to, contains, part of, works for, married to, downstream from, connected to, etc. These may be explicit in the problem statement or implicit in the knowledge of the problem domain Write down all candidates, then eliminate unnecessary ones and add others Aggregation is just a common type of association SJSU – CmpE --- M.E. Fayad L9-S17 17 Object Identification-1 Behavior Analysis Data Flow Diagrams (DFDs) State-Transition Diagrams (STDs) Semantic Nets or Object-Interaction Diagrams (OIDs) Message or communication Diagrams 18 2003 SJSU – CmpE --- M.E. Fayad L9-S18 Object Identification-1 Looking for Behavior Examine required Processing or behavior of system components Objectify common behavior – Use inheritance Swimmers DFDs may help identify processes Flyers Runners 2003 SJSU – CmpE --- M.E. Fayad L9-S19 19 Object Identification-1 Data Flow Diagrams (DFDs) DFD Approach – Use each data store on a DFD to identify an abstract object or class – Use (all or part of) the transforms associated with data store to identify associated operations Candidate Objects – external entities – data stores – control transformations 20 Candidate Classes – data flows 2003 SJSU – CmpE --- M.E. Fayad L9-S20 Object Identification-1 Data Flow Diagrams (DFDs) (cont’d) 2003 Benefits – Very well-known approach – Many requirements analysis methods are based on DFDs. – Tool support exists – Does not require paradigm shift Risks – Data abstraction – Indirect – Traditional DFDs have the wrong scope SJSU – CmpE --- M.E. Fayad L9-S21 21 Object Identification-1 State-Transition Diagrams (STDs) State Approach – Identify an object or a class for each entity that has a state Benefits – Can be used at any time that an object or a class has a finite number of obvious states Risks – The state can belong to the entire subsystem or an operation – An object or a class may have an infinite number of states. – An object or a class may have states that are not all obvious. – An object or a class may have only a small number of trivial states. 2003 SJSU – CmpE --- M.E. Fayad L9-S22 22 Object Identification-1 Use Case Analysis: Baseball System 1 Pitch a Ball Pitcher 1 Hit a Home Run 1 Batter Run the Bases 1 Scored a Run 2003 SJSU – CmpE --- M.E. Fayad Runner on First Base L9-S23 23 Object Identification-1 Some Use Cases in Baseball Game 2003 Base hit Single base hit • In field base hit • Outfield base hit Double base hit Triple base hit Home run • A home run • Two home runs • Three home runs • Grand Slam SJSU – CmpE --- M.E. Fayad 24 L9-S24 Object Identification-1 A Use Case Description Use Case: Hit a Home Run When a batter hits a home run, the runners run the bases and reach home plate and score When a batter hits a home run, the batter runs the bases until reaching the home plate and scores When the runners score, the score board updates the score board, the game announcer is going crazy and saying “ a big home run ... holy cow ... holy cow “ and the fans are going wild and screaming a lot. When .. 2003 SJSU – CmpE --- M.E. Fayad L9-S25 25 Object Identification-1 Discussion Questions 1. Define: use case model, use case, specification objects, incident objects, organization objects. 2. List all the object identification techniques 3. What are the benefits and risks of each of these techniques? 4. Describe how do you identify associations and aggregations 5. Explain: a. The same object can be perceived from several perspectives. b. No single best classification structure. c. Classification involves ordering knowledge. 26 d. How to select good classes e. How to eliminate inappropriate classes 2003 SJSU – CmpE --- M.E. Fayad L9-S26 Object Identification-1 Questions for the Next Lecture Learn how to identify the rest of OO artifacts. Describe the following Models: Use Case Model, DFD, STD, OID, OCD. 27 2003 SJSU – CmpE --- M.E. Fayad L9-S27 Object Identification-1