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

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Analysis Modeling
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Analysis Modeling.
Software Engineering OO Analysis (Object-Relationship and Object-Behaviour Models)
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.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Chapter 8 Analysis Modeling
Chapter 21 Object-Oriented Analysis
Chapter 6 Requirements Modeling: Scenarios, Information, and Analysis Classes Slide Set to accompany Software Engineering: A Practitioner’s Approach,
Object-Oriented Analysis
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Analysis Modeling (cont’d) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These slides.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Chapter 10 Architectural Design
Analysis Modeling (cont’d) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These slides.
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 courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
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.
Data Flow Diagrams.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Chapter 8 Analysis Engineering (分析工程) Software Engineering: A Practitioner’s Approach by Roger S. Pressman Software Engineering: A Practitioner’s Approach.
1 Chapter 7 Requirement Modeling flow, behavior, patterns and Webapps.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
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.
Analysis Modelling Approaches - Structured Analysis Considers data and the process that transforms the data into separate entities –Data objects Modelled.
CS /31 Illinois Institute of Technology CS487 Software Engineering OOA with UML David Lash.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
Software Engineering Object-Oriented Analysis (Class Diagrams) James Gain
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.
Class-based Modeling.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 24. Review ANALYSIS Level Class Diagram – Identifying Entities – Identifying Attributes – Identifying Operations.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
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.
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.
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.
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 Engineering Zhang Shuang
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Elements Of Modeling. 1.Data Modeling  Data modeling answers a set of specific questions that are relevant to any data processing application. e.g. ◦
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
Elaboration Process Lecture-16.
Cmpe 589 Spring 2006.
ATM OO Design and Implementation Case Study
Chapter 8 Building the Analysis Model (2) Analysis Modeling
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Object-Oriented Analysis
Overview of Software Requirements
CRC Modeling (class-relationship-collaborator)
Chapter 10 Requirements Modeling: Class-Based Methods
Software Engineering: A Practitioner’s Approach, 6/e Chapter 8 Analysis Modeling copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Use Case Analysis – continued
Presentation transcript:

Object Oriented Analysis Software Engineering Object Oriented Analysis

Objectives To explain Class-Responsibility-Collaborator Modelling. To provide an example of CRC modelling in action

Analysis = Process + Models Model Output 1. Elicit customer requirements and identify use-cases Use-Case Diagrams 2. Extract candidate classes, Identify attributes and methods, Define a class hierarchy Class Responsibility Collaborator (CRC) Cards 3. Build an object-relationship model Class Diagram 4. Build an object-behaviour model Interaction Diagram

Class-Responsibility-Collaborator Modelling A simple means of identifying and organizing classes Not an official part of UML A CRC model is a collection of index cards that represent classes Each CRC card contains: Class name, type, characteristic Responsibilities Collaborations Index cards because they can only hold a limited amount of information  enforces high-level analysis Steps in CRC modelling: Identify [1] Classes, [2] Responsibilities, [3] Collaborators, [4] Review the Model

CRC Benefits They are portable. No computers are required so they can be used anywhere. Even away from the office. They allow the participants to experience first hand how the system will work.

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

[1] Identifying Classes Classes and Objects are extracted from the Use-Cases by doing a grammatical parse Grammatical Parse: Underline nouns or noun clauses (these describe candidate objects) Enter the candidate objects (and their associated classes) into a table Remove synonyms Solution Space: objects required to implement the solution Problem Space: objects required to describe the problem “The really hard problem [in OO] is discovering what are the ‘right’ objects in the first place”

Accepting Classes Objects are accepted if they satisfy all (or almost all) of the following requirements: Retained Information: the system needs to remember data about the object Needed Services: the object must have an identifiable set of operations Multiple Attributes: during analysis we focus on major information only. Objects should have many attributes Common Attributes: A set of attributes apply to all occurrences of the object Common Operations: A set of operations apply to all occurrences of the object Essential Requirements: external entities that produce or consume essential information

Class Types Accepted classes are assigned a type: External entities - other systems, devices, people Things - reports, displays, signals Occurrences or events - property transfer, completion of a series of robot movements Roles - manager, engineer, sales person Organizational Units - division, group, team Places - manufacturing floor, loading dock Devices - four-wheeled vehicles, computers Property - of the problem, e.g. credit rating Interaction - model interaction that occur among other objects, e.g. a purchase or a license

Class Characteristics Accepted classes are assigned a set of characteristics: Tangibility: does the class represent a tangible (physical) or abstract (information) entity? Inclusiveness: is the class atomic (includes no other classes) or aggregate (has at least one nested object)? Sequentiality: is the class concurrent (has its own thread of control) or sequential (scheduled by outside resources)? Persistence: is the class transient (created and removed during program operation), temporary (created during program operation and removed at termination) or permanent (stored in a database)? Integrity: is the class corruptible (does not protect its resources from outside influence) or guarded (the class enforces access control)?

Example: Identifying Classes Narrative: SafeHome software enables the homeowner to configure the security system when it is installed, monitors all sensors connected to the security system, and interacts with the homeowner through a keypad and function keys contained in the SafeHome control panel. During installation, the SafeHome control panel is used to “program” and configure the system. Each sensor is assigned a number and type, a master password is programmed for arming and disarming the system, and telephone number(s) are input for dialing when a sensor event occurs. … Potential Objects/Classes Homeowner, sensor, control panel, installation, system (alias security system), number, type, master password, telephone number, sensor event, …

Example: Accepting Classes Potential Object/Class Class requirements Homeowner Rejected: 1, 2 (retained information, needed service) fail Sensor Accepted: all apply Control Panel Installation rejected System Number and Type Rejected: 3 (multiple attributes) fails, attribute of sensor Master Password Rejected: 3 fails Telephone Number Sensor Event

Example: CRC Header class name: Sensor class type: external entity class characteristics: tangible, atomic, concurrent, guarded responsibilities: collaborators:

[2] Identifying Responsibilities Responsibilities (attributes and methods) are extracted from the Use-Cases descriptions Attributes: Describe the object Select those things that reasonably belong to an object Question: What data items fully define this object in the context of the particular use-case? Methods (Operations): Define the behaviour of the object and alter the object’s attributes Types of operations – data manipulation, computation, event monitoring Do a grammatical parse of the Use-Case description and isolate verbs

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.

Example: Identifying Responsibilities Narrative: SafeHome software enables the homeowner to configure the security system when it is installed, monitors all sensors connected to the security system, and interacts with the homeowner through a keypad and function keys contained in the SafeHome control panel. During installation, the SafeHome control panel is used to “program” and configure the system. Each sensor is assigned a number and type, a master password is programmed for arming and disarming the system, and telephone number(s) are input for dialing when a sensor event occurs. Example Operations: Assign (belongs to Sensor) Program (belongs to System) Arm/Disarm (belong to System)

Example: CRC Responsibilities Example Attributes: sensor information = sensor number + sensor type + alarm threshold class name: Sensor class type: external entity class characteristics: tangible, atomic, concurrent, guarded responsibilities: collaborators: keep sensor information assign sensor information signal sensor event

[3] Identifying Collaborators Collaborations represent requests from a client to a server in fulfillment of a client responsibility One object collaborates with another if it needs to send a message Relationships: is-part-of (classes that are contained within an aggregate class as attributes) has-knowledge-of (one class must acquire information from another) depends-upon (dependency not covered by part-of or knowledge-of)

[4] 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.

Example: CRC Review Use-Case Narrative: The homeowner observes the control panel to determine if the system is ready for input. If the system is not ready, the homeowner must physically close window/doors so that the ready indicator is present [a not ready indicator implies that a sensor is open]. When review leader comes to “control panel” token is passed to the person holding the control panel CRC card. Phrase “implies that a sensor is open” means a responsibility must validate this. The control panel CRC card has sensor as a collaborator The token is next passed to the sensor CRC card.

CRC Tips Don’t generate long lists of responsibilities. This is missing the point. The responsibilities should easily fit on a card. The review stage is crucial. Spend a lot of time here.