OBJECT-ORIENTED ANALYSIS PHASE

Slides:



Advertisements
Similar presentations
Slide 12.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Object-Oriented Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Slide 10B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 8B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
Chapter 21 Object-Oriented Analysis
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Slide 7A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 6A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
Case Study: Class Extraction.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Chapter 7: The Object-Oriented Approach to Requirements
*Object-Oriented Design (Schach Chap 14)
Objects What are Objects Observations
Slide 11.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Chapter 1: Introduction to Systems Analysis and Design
Slide 16B.51 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
CS3320::CH111 OBJECT-ORIENTED ANALYSIS Chapter 11.
1 Analysis Extracting from Use Cases to Create Diagrams.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Lecture 14 & 15: Object- Oriented Analysis Anita S. Malik Adapted from Schach (2004) Chapter 12.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2 nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Slide 12.1 Object-Oriented and Classical Software Engineering Chapter 12 Object Oriented Analysis.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Slide 11.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 11 THE ANALYSIS WORKFLOW (Derived from Stephen R. Schach’s.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Petri Nets Invented by Carl Adam Petri in 1962 Concurrent systems with timing problems  Synchronization, race problem, deadlock A petri net consists of.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
THE ANALYSIS WORKFLOW  The specification document  Informal specifications  The analysis workflow  Extracting the entity classes  Functional modeling:
Slide 12.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
CHAPTER 13 OBJECT-ORIENTED ANALYSIS. Overview l The analysis workflow l Extracting the entity classes l The elevator problem case study l The test workflow:
Software Engineering Zhang Shuang
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Unit-3 Identifying use cases Object Analysis Classification
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
CHAPTER 12 OBJECT-ORIENTED ANALYSIS. Overview Extracting the entity classes Object-oriented analysis: The elevator problem case study Functional modeling.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Slide 11.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Cmpe 589 Spring 2006.
The Movement To Objects
Object-Oriented Analysis (OOA)
Object-Oriented Analysis
Chapter 20 Object-Oriented Analysis and Design
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Copyright 2007 Oxford Consulting, Ltd
Presentation transcript:

OBJECT-ORIENTED ANALYSIS PHASE CHAPTER 12 OBJECT-ORIENTED ANALYSIS PHASE

Overview Object-oriented analysis Use-case modeling Class modeling Dynamic modeling Testing during the object-oriented analysis phase CASE tools for the object-oriented analysis phase Air Gourmet case study: Object-oriented analysis Challenges of the object-oriented analysis phase

Object-Oriented Analysis Phase Object-oriented paradigm Reaction to perceived shortcomings in structured paradigm Problem of larger products Data and action treated as equal partners

Object-Oriented Paradigm Object consists of Data Actions Objects are independent units Conceptual independence Physical independence

Object-Oriented Analysis (OOA) Semi-formal specification technique Many methods exist Booch OMT Objectory Shlaer-Mellor Coad-Yourdon All essentially equivalent Most of OOA is done these days using UML (Unified Modeling Language) Just In Case You Wanted to Know on pg. 367

The Three Steps of OOA 1. Use-case modeling Determine how the various results are computed by the product (without regard to sequencing) Also referred to as functional modeling Generate use-case diagram and associated scenarios action oriented 2. Class modeling (“object modeling”) Determine the classes and their attributes Determine the interrelationships and interactions among the classes Generate class diagram - similar to ER diagram data oriented 3. Dynamic modeling Determine the actions performed by or to each class or subclass Generate state diagram action-oriented Iterative process

Elevator Problem: OOA 1. Use-Case Modeling Use case: Generic description of overall functionality Scenario: Instance of a use case

Normal Scenario

Exception Scenario

More on Scenarios Sufficient scenarios should be generated to give the OOA team a comprehensive insight in the behavior of the system to be modeled Scenarios are used in the class modeling step to determine the classes (objects) Scenarios are also used in the OO design

2. Class Modeling Extract classes and their attributes Represent them using an entity-relationship diagram (ERD) Deduce the classes from use cases and their scenarios Only the attributes of a class are determined (the methods are determined in the OO design) Often there are many scenarios Possible danger: too many candidate classes

Two Approaches to Class Modeling Noun Extraction Three-stage process to extract candidate classes Always works CRC cards Class-responsibility-collaboration (CRD) cards Need to have domain expertise

Stage 1. Concise Problem Definition Noun Extraction Stage 1. Concise Problem Definition Define the product as briefly and concisely as possible, preferably in a single sentence Elevator problem example Buttons in elevators and on the floors control the motion of n elevators in a building with m floors.

Noun Extraction (contd) Stage 2. Informal Strategy Incorporate constraints, express result in a single paragraph Buttons in elevators and on the floors control movement of n elevators in a building with m floors. Buttons illuminate when pressed to request the elevator to stop at a specific floor; illumination is canceled when the request has been satisfied. When an elevator has no requests, it remains at its current floor with its doors closed.

Noun Extraction (contd) Stage 3. Formalize the Strategy Identify nouns in informal strategy (excluding those that lie outside of the problem boundary). Use nouns as candidate classes Nouns button, elevator, floor, movement, building, illumination, illumination, door floor, building, door are outside problem boundary — exclude movement, illumination, illumination are abstract nouns — exclude (may become attributes) Candidate classes: Elevator and Button Subclasses: Elevator Button and Floor Button

First Iteration of Class Diagram Problem Buttons do not communicate directly with elevators We need an additional class: Elevator Controller

Second Iteration of Class Diagram All relationships are now 1-to-many Makes design and implementation easier

CRC Cards Used since 1989 for OOA For each class, fill in card showing Name of Class Functionality (Responsibility) List of classes it invokes (Collaboration) Now automated (CASE tool component) Strength When acted out by team members, powerful tool for highlighting missing or incorrect items Weakness Domain expertise is needed

3. Dynamic Modeling Produce UML state diagram State, event, predicate distributed over state diagram UML “guards” are in brackets

Testing during the OOA Phase CRC cards are an excellent testing technique

CRC Cards Consider responsibility 1. Turn on elevator button Totally unacceptable for object-oriented paradigm Responsibility-driven design ignored Information hiding ignored Responsibility should be 1. Send message to Elevator Button to turn itself on

CRC Cards (contd) A class has been overlooked Reconsider class model Elevator doors have a state that changes during execution (class characteristic) Add class Elevator Doors Safety considerations Reconsider class model Then reconsider dynamic model, use-case model

Second Iteration of CRC Card

Third Iteration of Class Diagram

Second Iteration of Normal Scenario

Elevator Problem: OOA (contd) All three models are now fine We should rather say: All three models are fine for now We may need to return to the object-oriented analysis phase during the object-oriented design phase

Why Is All This Iteration Needed? Perhaps the method is not yet mature? Waterfall model (explicit feedback loops) Rapid prototyping model (aim: to reduce iteration) Incremental model Spiral model Latter two explicitly reflect iterative approach Iteration is an intrinsic property of all software production Especially for medium- and large-scale products Expect iteration in the object-oriented paradigm

CASE tools for OOA phase Diagrams play a major role Diagrams often change Need a diagramming tool Many tools go further All modern tools support UML Example Rational Rose Smart Draw

Air Gourmet Case Study: OOA Use-case model for making a reservation

Making a Reservation: Extended Scenario

Air Gourmet Case Study: OOA Use-case for returning and scanning a postcard

Postcards: Extended Scenario

Air Gourmet Case Study: Class Modeling Stage 1. Concise Problem Definition Define product in single sentence A computerized system is needed to provide information regarding the efficacy of a special meals program.

Air Gourmet Case Study: Noun Extraction (contd) Stage 2. Informal Strategy Incorporate constraints, express result in a single paragraph Reports are to be generated to document the efficacy of the special meals program. The reports concern meals loaded on flights, flights boarded by passengers, names and addresses of passengers, meal quality, and low-sodium meals.

Air Gourmet Case Study: Noun Extraction (contd) Stage 3. Formalize the Strategy Identify nouns in informal strategy. Use nouns as candidate classes Nouns report, efficacy, program, percentage, meal, flight, boarding, passenger, name, address, quality efficacy, program, percentage, boarding, quality are abstract nouns — exclude (may become attributes) name, address are attributes of passenger Question: Should meal and flight be classes? It is easier to add classes than to remove them Candidate classes: Report and Passenger

First Iteration of Class Diagram Problems with this class diagram Data for reports are needed on a per-flight basis Each report has to access multiple flights Each flight has multiple passengers Six reports (not four) are needed

Second Iteration of Class Diagram Cause of our problem Flight should have been a candidate class

Air Gourmet Case Study: Dynamic Model State diagram

Challenges of the OOA Phase Do not cross the boundary into object-oriented design Do not allocate methods to classes yet