Analysis, Actually, Object-Oriented Analysis

Slides:



Advertisements
Similar presentations
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Essentials of interaction diagrams Lecture Outline Collaborations Interaction on collaboration diagrams Sequence diagrams Messages from an object.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Overview Objective: refine information gathered
2Object-Oriented Analysis and Design with the Unified Process Events and Use Cases  Use case  Activity the system carries out  Entry point into the.
11/5/01OO Design1 Design Object-Oriented Design. 11/5/01OO Design2 Object-Oriented Design  The process of determining the architecture, and specifying.
Chapter 7: The Object-Oriented Approach to Requirements
Chapter 5: Modeling Systems Requirements: Events and Things
Systems Analysis and Design in a Changing World, Tuesday, Feb 27
Modeling System Requirements:
Systems Analysis and Design in a Changing World, Fifth Edition
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
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.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Systems Analysis and Design in a Changing World, Fifth Edition
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
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.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Objectives Explain how events can be used to identify use cases that define requirements Identify and analyze events and resulting use cases Explain.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Modeling System Requirements: Events and Things. Objectives Explain the many reasons for creating information system models Describe three types of models.
Use Cases, Part I Understanding the Business Dynamics  Understand the business workflow  Identify system support points the system 'use cases'
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Chapter 3: Introducing the UML
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
5 Chapter 5: Modeling Systems Requirements: Events and Things Systems Analysis and Design in a Changing World.
Elaboration popo.
Business Process and Functional Modeling
Identifying Object Relationships, Attributes and Methods
CHAPTER
Component and Deployment Diagrams
Chapter 5 System modeling
DATA REQIREMENT ANALYSIS
Chapter 5: Structural Modeling
Recall The Team Skills Analyzing the Problem (with 5 steps)
Object-Oriented Analysis and Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Analysis and Design with UML: Discovering Classes and Relationships
Class diagram Description
About the Presentations
OO Domain Modeling With UML Class Diagrams and CRC Cards
Object-Oriented Analysis Principles using UML
System Modeling Chapter 4
Process & Logic Modeling
Abstract descriptions of systems whose requirements are being analysed
OBJECT RELATIONSHIPS, ATTRIBUTES, AND METHODS
Analysis and Design with UML: Discovering Classes and Relationships
Object-Oriented Analysis
Analysis and Design with UML: Discovering Classes and Relationships
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Relating Use Cases popo.
Chapter 20 Object-Oriented Analysis and Design
Systems Analysis – ITEC 3155 Modeling System Requirements – Part 2
Analysis and Design with UML: Classes and Relationships
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Appendix A Object-Oriented Analysis and Design
Chapter 4 System Modeling.
Appendix 3 Object-Oriented Analysis and Design
From Class Diagram to Contract Diagram
Presentation transcript:

Analysis, Actually, Object-Oriented Analysis For Milestone #4 2/21/2019 Analysis

Analysis is the separation of a whole into its component parts; an examination of a problem, its elements, and its relationships (Book) Understand the problem from a modeling/logic point of view Preparing for design 2/21/2019 Analysis

Object-Oriented Analysis is the process of identifying objects that are relevant to the problem to be solved and their relationships. the process includes classifying the objects and finding relationships among the classes. 2/21/2019 Analysis

Object-Oriented Analysis Basically we need to answer the following questions: What are my objects What do they do How do they interact with each other? 2/21/2019 Analysis

Avoiding Analysis Paralysis Referring to situations when a team cannot determine if the process is completed Rules of Thumb of rescuing yourselves PP. 182 --- Read 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Analysis Guidelines The set of rules intended to document the way in which analysis is to be preformed on a particular project There are, in general, two kinds of Analysis Guidelines work product guidelines see the example on page 523, copy it if you really want to use it! process guidelines More useful, again, copy existing one to start 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Subject Area Description When dealing with a large system, you may want to break the system into a set of sub-systems For example, AAA membership subsystem material subsystem travel package subsystem … ... 2/21/2019 Analysis

Subject Areas in Object-Oriented Analysis clusters of analysis classes that are closely related to each other by inheritance (“is-a”), aggregation (“has-a”), and other (“uses”) associations. 2/21/2019 Analysis

Subject Area Purpose permits a large system to be partitioned very early in its development cycle. encourages a separation of analysis concerns, provides a means of organizing work products. 2/21/2019 Analysis

Subject Area Notation A simple table is sufficient. For each Subject Area, the following is relevant Name of Subject Area Brief Description Key Classes Dependencies (Other subject areas used by this one) Workbook 2/21/2019 Analysis

Your Subject Area If you have more than three subject areas, something is wrong with your project Too large Un-necessarily detailed I can see you have one or two subject areas One: Everything – consider this first Two: Student and Professor Need to have two workbooks 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Analysis Object Model It is static. It consists of classes and relationships among classes. One of the most important work products, if not the most important work product!!! 2/21/2019 Analysis

Analysis Object Model Purpose The fundamental way to document the static aspects of objects in the problem domain What makes object-oriented development different from traditional development Basic idea is to decompose a system down into classes of objects that cooperate by passing messages to get the job done 2/21/2019 Analysis

How To Identify Classes Example, from the user cases 1. Customers rent tapes from the store. 2. Customers return tapes to the store. We can identify three objects Customer, Tape, and Store Which object needs to be implemented is project dependent Nouns represent Classes Verbs represent services/actions, etc. 2/21/2019 Analysis

Object-Oriented Notation Classes Relationships Generalization/specialization (Is A) Association (Knows About) Aggregation (Has A) Attributes (members) Behavior (methods) 2/21/2019 Analysis

Classes Always have three parts: Name Attributes Methods Drawn as a three part box (Fig 11-2, pp. 194) Name Tape Attributes Code Name Methods GetName GetPrice 2/21/2019 Analysis

Generalization/Specialization Shown as a hierarchy of super/subtype relationships where the sub types inherit the properties (both attributes and services) of the super-types. Figure 11-3 (pp... 195) shows class inheritance hierarchy: Car, Truck, and Van all are Vehicle 2/21/2019 Analysis

Generalization/Specialization Vehicle SUV Truck 2/21/2019 Analysis

Association Association is the simplest form of relationship It represents knowledge of the existence of other objects. The association can be thought of as a class in its own right. 2/21/2019 Analysis

Association Customer Tape Account Transaction Review 2/21/2019 Analysis

Associations have cardinality 0 or 1 hollow ball 1 no marker 0 or many solid ball 2/21/2019 Analysis

Aggregation Shows the part-whole hierarchy relating object classes in the model For example, a car is decomposed into body and engine. Thought to “contain” the components, i.e. body and engine; they are its parts. Most often means ownership. If uncertainty exists between association or aggregation, leave an association. 2/21/2019 Analysis

Aggregation Car Body Engine 2/21/2019 Analysis

Attributes represent the structural properties of a class. For a car, make model year 2/21/2019 Analysis

Behavior The behavior of a class, also documented as a service or operation, is a statement of the responsibilities of the class. 2/21/2019 Analysis

Advice and Guidance The simpler the better No design decisions Kiss rule – keep it simple, stupid! No design decisions Objects should relate to the end user. Your client should recognize them from their domain. 2/21/2019 Analysis

Naming Guidelines Name object classes with common noun phrases (for example, Customer) Name services that modify objects with active verbs (for example, rent or return) Name services that query objects with verbs indicating queries (for example, gettingPrice) 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Analysis Scenarios A Scenario is an elaboration of a Use Case Use Cases are statements of high-level functional requirements Scenarios add more detail and describe factors that may result in behavioral variations of a given Use Case. Scenario = Use Case + Assumptions (initial conditions) + Outcomes. 2/21/2019 Analysis

Analysis Scenario Purpose Scenarios are refinements of Use Cases and are used to develop Object Interaction diagrams. A single Use Case can generate multiple Scenarios, and Scenarios derived from the same Use Case can involve the interplay of different classes. 2/21/2019 Analysis

Analysis Scenario Technique Scenarios can be generated directly from Use Cases. Constructed by identifying possible different outcomes for a Use Case. Different conditions that might result in different kinds of collaborations. 2/21/2019 Analysis

Scenario Example User Case 1: Customer Rents a Video Scenario 1.1 Member rents a video (successfully) Assumption: Member is in good standing A video copy of requested movie is available Outcome: Member rents successfully Movie available count is decrease by 1 A rental record is created The rental count for the movie is incremented 2/21/2019 Analysis

Scenario Example User Case 1: Customer Rents a Video Scenario 1.2 Member rents a video (successfully) Assumption: Member is has fine outstanding Member pays the fine A video copy of requested movie is available Outcome: Member rents successfully Member is in good standing Movie available count is decrease by 1 A rental record is created The rental count for the movie is incremented 2/21/2019 Analysis

Format of Analysis Scenarios Use Case 1. Scenario 1.1 Assumption: Outcomes: Scenario 1.2 2/21/2019 Analysis

Iterative & Incremental You may need to Add new user cases Re-think your user cases for modification 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Object Interaction Diagrams An Object Interaction Diagram (OID) is a graphical representation of an Analysis Scenario. OID shows collaboration necessary to achieve the desired outcomes on one thread of action 2/21/2019 Analysis

Analysis Interaction Diagram Purpose Provides a high-level view of how objects interact Presents a trace of action, in the form of objects interaction, in a simple and graphical way. Can be used to discover responsibilities that are needed to carry out Scenarios, and to assign those responsibilities to classes. 2/21/2019 Analysis

Techniques for Object Interaction Diagrams Tracing the scenario on the classes it interacts to carried out the scenario Deciding which objects need to participate Deciding the participating class Asking the question, “what happens now?”, is asked repeatedly. 2/21/2019 Analysis

Notation Object and its class Time Line Message Message Parameter Synchronous message (sender wait) Asynchronous message (sender does not wait) Message Parameter Condition Loop Internal Activity 2/21/2019 Analysis

Object Interaction Diagrams Acustomer:Member aClerk:Clerk aRental:Rental aTape:Video getIDPhome(PhoneNo) return(userID) getFineAmount(userID) return(fineAmount) [fineAmount <> 0] zeroFine(userID, fineAmount) createRental(userID,dateTime) addTape(RentalID,tapeCode) return(RentalID, price, returnDate) 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Analysis State Models A state model describes the life cycle of an object in a class. It describes states that an object may attain and transitions that cause a change of states. The state transitions, representing external stimuli or events, showing an object that changes. It is represented by a state diagram or transition table. 2/21/2019 Analysis

Analysis State Model Purpose A state model represents an object’s life cycle in graphical notation or in tabular form. It gives an overview of how an object reacts to external events without getting into code detail 2/21/2019 Analysis

State Diagram Notation State are shown in circles/boxes Transitions are shown ad directed arcs The arcs need to be labeled 2/21/2019 Analysis

State Diagram Example Filed Clerk files Clerk shelves Customer rents Ready Rented Customer returns Clerk marks for sale ForSale Customer buys Sold 2/21/2019 Analysis

Analysis Work Products Guidelines Subject Areas Object Models Scenarios Object Interaction Diagrams State Models Class Descriptions 2/21/2019 Analysis

Analysis Class Descriptions Analysis Class Descriptions are summaries of all the information known about a class at the analysis level Class-related information exists in several places, in the analysis chapter of the project workbook, in scenarios in state models 2/21/2019 Analysis

Class Description Purpose Three reasons for Analysis Class Descriptions to provide a place to put class-specific information that might otherwise slip down cracks between the other analysis work products. to provide a single point of contact for analysis information regarding a particular class. a place to record information that won’t fit on other diagrams. 2/21/2019 Analysis

Notation of Class description 1. Name 2. Definition 3. Operations 4. Key attributes 5. Relations 6. States 7. Documentation 2/21/2019 Analysis

Analysis Class Description Example See book 232 2/21/2019 Analysis