Object-Oriented Analysis

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Analysis Modeling.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 8 Analysis Engineering Software Engineering: A Practitioner’s Approach by Roger S. Pressman.
Software Requirements Engineering Elaboration Process Lecture-13.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
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.
1 Lecture 4 Behaviour Modelling Requirement Specification Object-Oriented Paradigm.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
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 8 Analysis Modeling
Chapter 21 Object-Oriented Analysis
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Chapter 6 Requirements Modeling: Scenarios, Information, and Analysis Classes Slide Set to accompany Software Engineering: A Practitioner’s Approach,
1 Lecture 3 Requirement Analysis System Analysis Concepts Modeling Techniques.
Unified Modeling Language
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Understanding Requirements. Requirements Engineering
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
CS 4850/01: CS Senior Project Fall 2014 Overview of Software Requirements and OO Analysis.
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
Chapter 8 Analysis Engineering (分析工程) Software Engineering: A Practitioner’s Approach by Roger S. Pressman Software Engineering: A Practitioner’s Approach.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
MIS541AUniversity of Arizona Lecture 13 Object-Oriented Analysis -II.
Software Engineering Object Oriented Analysis. Objectives 1.To outline an Object Oriented Analysis process and modelling language 2.To study the process.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
CS /31 Illinois Institute of Technology CS487 Software Engineering OOA with UML David Lash.
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 8: Analysis Modeling Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Chapter 8 Analysis & Modeling. Data Modeling examines data objects independently of processing focuses attention on the data domain creates a model at.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Object Oriented Analysis
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2 nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
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.
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.
1 Chapter 5 Lecture 5: Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
Software Engineering OO Analysis (Object-Behaviour Models)
CS 4850: Senior Project – Spring 2009 CS 4850: Senior Project Spring 2009 Overview of Software Requirements and OO 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.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Introduction to OOAD and the UML
Requirement Engineering. Recap Flow Based Modeling DFDs CFDs Processing narratives Class-based Model How to select classes? How to find attributes and.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Chapter 8 Class will start momentarily. Please Stand By … CS 8532: Advanced Software Engineering.
Chapter 10 요구사항 모델링 : 클래스 기반 방법론 Requirements Modeling: Class-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for.
Software Requirements Engineering Elaboration Process Lecture-14.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
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.
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.
Object Oriented Analysis Unified Modeling Language By Mary Biddle.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 8.1 Requirements Analysis Rules of Thumb Rules of Thumb Models should focus on requirements that are visible within the problem or business domain. The.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 8 Analysis Modeling Part II Elements and methods of analysis modeling.
Software Engineering Object-Oriented Analysis (CRC Cards) James Gain
Chapter 8 Analysis Engineering
Object-oriented and Structured System Models
SafeHome Product.
Object-Oriented Analysis
Chapter 24 Testing Object-Oriented Applications
Overview of Software Requirements
CRC Modeling (class-relationship-collaborator)
Chapter 10 Requirements Modeling: Class-Based Methods
Chapter 19 Testing Object-Oriented Applications
Copyright 2007 Oxford Consulting, Ltd
Software Engineering: A Practitioner’s Approach, 6/e Chapter 8 Analysis Modeling copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 19 Testing Object-Oriented Applications
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Object-Oriented Analysis Lecture 5 Object-Oriented Analysis

Disclaimer and Copyright Notice This work is subject to copyright. All rights are reserved. This course material is developed in conjunction with the courseware of Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001. The material provided is for reference only. It should not be redistributed with prior written consent. Proceeding beyond this notice implies willingness to comply with the terms.

Key OO Concepts classes and class hierarchies objects messages instances inheritance abstraction and hiding objects attributes methods encapsulation polymorphism messages

Polymorphism Class columnchart extends chart { Graphics draw (…) {} } Class chart { Graphics draw (…) {} } . charttype myChart; myChart.draw(); Class piechart extends chart { Graphics draw (…) {} } Class barchart extends chart { Graphics draw (…) {} }

SOURCE OF DOMAIN KNOWLEDGE Domain Analysis GOAL: to find or create, within the context of a specific application domain (i.e. current project), those classes that are broadly applicable, so that they may be reused. SOURCE OF DOMAIN KNOWLEDGE DOMAIN ANALYSIS DOMAIN ANALYSIS MODEL class taxonomies reuse standards functional models domain languages technical literature existing applications customer surveys expert advice current/future requirements

OOA- A Generic View define use cases extract candidate classes establish basic class relationships define a class hierarchy identify attributes for each class specify methods that service the attributes indicate how classes/objects are related build a behavioral model iterate on the first five steps

Use Cases a scenario that describes a “thread of usage” for a system actors represent roles people or devices play as the system functions users can play a number of different roles for a given scenario

Developing a Use Case What are the main tasks or functions that are performed by the actor? What system information will the the actor acquire, produce or change? Will the actor have to inform the system about changes in the external environment? What information does the actor desire from the system? Does the actor wish to be informed about unexpected changes?

Unified Modeling Language User model view This view represents the system (product) from the user’s (called “actors” in UML) perspective. Structural model view Data and functionality is viewed from inside the system. That is, static structure (classes, objects, and relationships) is modeled. Behavioral model view This part of the analysis model represents the dynamic or behavioral aspects of the system. Implementation model view The structural and behavioral aspects of the system are represented as they are to be built. Environment model view The structural and behavioral aspects of the environment in which the system is to be implemented are represented.

Use-Case Diagram

Use Case Example Activate System The homeowner observes the SafeHome control panel to determine if the system is ready for input. If the system is not ready, the homeowner must physically close windows/doors so that the ready indicator is present. [A not ready indicator implies that a sensor is open; i.e., that a door or window is open.] The homeowner uses the keypad to key in a four-digit password. The password is compared with the valid password stored in the system. If the password is incorrect, the control panel will beep once and reset itself for additional input. If the password is correct, the control panel awaits further action. The homeowner selects and keys in stay or away to activate the system. Stay activates only perimeter sensors (inside motion detecting sensors are deactivated). Away activates all sensors. When activation occurs, a red alarm light can be observed by the homeowner.

CRC Modeling class name: class type: (e.g., device, property, role, event, ...) class characteristics: (e.g., tangible, atomic, concurrent, ...) responsibilities: collaborators:

Selecting Classes retained information needed services multiple attributes common attributes common operations essential requirements

Class Types and Characteristics External entities, things, occurrences, events Roles Organisational units Places Structures Devices Properties Interactions Characteristics Tangibility: real or abstract Inclusiveness: atomic or aggregate Sequentiality: concurrent or sequential Persistence: transient, temporary or permanent Integrity: corruptible or guarded

Guidelines for Allocating Responsibilities to Classes System intelligence should be evenly distributed. Each responsibility should be stated as generally as possible. Information and the behavior that is related to it should reside within the same class. Information about one thing should be localized with a single class, not distributed across multiple classes. Responsibilities should be shared among related classes, when appropriate.

Reviewing the CRC Model All participants in the review (of the CRC model) are given a subset of the CRC model index cards. All use-case scenarios (and corresponding use-case diagrams) should be organized into categories. The review leader reads the use-case deliberately. As the review leader comes to a named object, she passes the token to the person holding the corresponding class index card. When the token is passed, the holder of the class card is asked to describe the responsibilities noted on the card. The group determines whether one (or more) of the responsibilities satisfies the use-case requirement. If the responsibilities and collaborations noted on the index cards cannot accommodate the use-case, modifications are made to the cards.

CRC Example class name: Control Panel class type: Device class characteristics: Tangible responsibilities: collaborators: Determine-sensor-status: set sensor status to “not ready” if sensors are open Sensor

Generalization-specialization Class Diagrams Generalization-specialization Composite aggregates

Package Reference dependency composition SafeHome 6. control panel keys Display area lite keypad PKs LCD display Graphics Messages subsystem (package) reference composition SafeHome 6. Control Panel 2. System 5. Audible alarm 3. Sensor event 4. Sensor

Relationships Between Objects contains system control panel sensor sensor event audible alarm produces polls recognises 1:1 1:m 0:k 0:n

Object-Behavior Model Evaluate all use-cases to fully understand the sequence of interaction within the system. Identify events that drive the interaction sequence and understand how these events relate to specific objects. Create an event trace for each use-case. Build a state transition diagram for the system Review the object-behavior model to verify accuracy and consistency.

Use Case Example Activate System The homeowner observes the SafeHome control panel to determine if the system is ready for input. If the system is not ready, the homeowner must physically close windows/doors so that the ready indicator is present. [A not ready indicator implies that a sensor is open; i.e., that a door or window is open.] The homeowner uses the keypad to key in a four-digit password. The password is compared with the valid password stored in the system. If the password is incorrect, the control panel will beep once and reset itself for additional input. If the password is correct, the control panel awaits further action. The homeowner selects and keys in stay or away to activate the system. Stay activates only perimeter sensors (inside motion detecting sensors are deactivated). Away activates all sensors. When activation occurs, a red alarm light can be observed by the homeowner.

State Transition control panel compare password = incorrect “reenter” “at rest” “comparing” “selecting” “reenter” compare password = incorrect password entered compare password = correct activation successful

Event Trace Homeowner Control Panel System system ready enters password ready for activation/deactivation selects stay/away ready for next action initiates beep beep sounded activate/deactivate sensors sensors activated/deactivated red light on request red light on system ready Homeowner Control Panel System

Ready for activation/deactivation Event Flow Diagram Selects stay/away Enters password Homeowner Control Panel System ready Ready for next action Ready for activation/deactivation Beep sounded Sensors activated/ deactivated Red light on Initiates beep Activate/deactivate sensors Red light on request System

Collaboration Diagram [condition] 2.1: message2 1: message1 object1 object2 object3 return value 2 [condition] 2.2: message3 return value 1 object4

Sequence Diagram object1 object2 object3 object4 message 1 [condition] return value 1 return value 2

Activity Diagram A B C F Object [state] D E

UML Summary Static Behaviour: Use Case/Use Case Diagram Class-Responsibility-Collaborator Modelling Class Diagram Dynamic Behaviour: State diagram Event trace Sequence diagram Collaboration diagram Activity diagram