INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Analysis Modeling.

Slides:



Advertisements
Similar presentations
Page 1W5D1 Models. Help us: Understand the system Verify the system Communicate with / coordinate development teams.
Advertisements

Requirements Elicitation Labs Discussion p2 T120B pavasario sem.
Presentation material is based on notes from Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 ECE.
Chapter 5, Requirements Elicitation and Analysis
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Winter 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 2 due today. Assignment 3 is a GUI – posted soon. Due the end of next week. Project work.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Using UML, Patterns, and Java Object-Oriented Software Engineering Requirements Analysis (Part 1 – Object Modeling)
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Analysis: Dynamic Modeling.
Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.
Requirements Elicitation Chapter 4. Establishing Requirements Two questions –What is the purpose of the system –What is inside and what is outside the.
Use Cases Chapter 4. After Scenarios Find all the use cases in the scenario that specifies all possible instances of how to report a fire –Ex: “Report.
Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5, Object Modeling.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Use Case Analysis – continued
UML for Embedded Systems Development--Revisited. table_05_00 * * * * *
UML for Embedded Systems Development— Extensions; Hardware-Software CoDesign.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
The chapter will address the following questions:
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Functional Modeling.
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
Requirements Analysis
Introduction to Sequence Diagrams
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
CS 160: Software Engineering September 10 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
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. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
Approaching a Problem Where do we start? How do we proceed?
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
ANALYSIS - II REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Lecture 6: Structural Modeling
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
1 Object Oriented Analysis Lectures 12 & References Chapter 4: Requirements Elicitation from Object Oriented Software Engineering: Conquering Complex.
Use Case Textual Analysis
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Project Wikis are private again. Assignment 3 is posted. Due Nov. 6. SDD framework must be in place.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
UML - Development Process 1 Software Development Process Using UML.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Gerhard Dueck -- CS3013Analysis 1. Gerhard Dueck -- CS3013Analysis 2 Why analysis?  Yield a more precise specification of the requirements.  Introduce.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Chapter 5: Analysis Object Modeling.
Conceptual Modeling.
Chapter 5: Analysis Object Modeling.
CISC/CMPE320 - Prof. McLeod
Object-Oriented Analysis
Unified Modeling Language
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 5, Analysis: Object Modeling
Software Analysis.
Use Case Analysis – continued
Presentation transcript:

INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Analysis Modeling (continued)

The Use Case Approach to Requirements Development From (Wiegers, 2003)

Analysis vs. Design Models Analysis model  Contains primarily the application domain classes  Read by users, domain experts, analysts, designers Design model  Contains both application and solution domain classes  Used by designers and implementers (programmers)

Analysis Modeling Activities  Identify entity objects  Identify boundary objects  Identify control objects  Map use cases to objects with sequence diagrams  Identify associations  Identify attributes  Review and revise the analysis model

Basic Approaches to Identifying Objects and Associations Approaches:  Application domain approach Ask application domain expert to identify relevant abstractions  Syntactic approach Start with use cases, particularly the flows of events, from which the objects will be extracted. Use noun-verb analysis (Abbot’s technique) and other heuristics to identify components of the object model.

Abbot’s Heuristics Part of speechModel componentExample Proper nounobjectJim Smith Improper nounclassToy, doll Doing verbmethodBuy, recommend being verbinheritanceis-a (kind-of) having verbaggregationhas an modal verbconstraintmust be adjectiveattribute3 years old transitive verbmethodenter intransitive verbmethod (event)depends on

Identifying Entity Objects An entity object…  is an object in the application domain. Heuristics for identifying entity objects:  Terms that developers or users need to clarify in order to understand the use case  Recurring specific nouns in the use cases  Real-world entities that the system needs to track

Identifying Entity Objects  Real-world activities that the system needs to track  Data sources or sinks

Example Use Case Name: Report Emergency Entry condition: 1.The field officer activates the “Report Emergency” function of her terminal. Flow: 2.The system responds by presenting a form to the officer. The form includes an emergency type menu (general emergency, fire, transportation), a location, incident description, resource report, and hazardous material fields. 3.The field officer completes the form by specifying minimally the emergency type and description fields. The field officer may also describe possible responses to the emergency situation and request specific resources. Once the form is completed, the field officer submits the form, at which point the dispatcher is notified.

Example 4.The dispatcher reviews the information submitted to the system by the field officer and creates an Incident in the database by invoking the Open Incident use case. All the information contained in the field officer’s form is automatically included in this incident. The dispatcher selects a response by allocating resources to the incident (with the Allocate Resources use case) and acknowledges the emergency report by sending an acknowledgment notice to the field officer. Exit condition: 5.The field officer receives the acknowledgment and the selected response.

Example Use Case Name: Report Emergency Entry condition: 1.The field officer activates the “Report Emergency” function of her terminal. Flow: 2.The system responds by presenting a form to the field officer. The form includes an emergency type menu (general emergency, fire, transportation), a location, incident description, resource report, and hazardous material fields. 3.The field officer completes the form by specifying minimally the emergency type and description fields. The field officer may also describe possible responses to the emergency situation and request specific resources. Once the form is completed, the field officer submits the form, at which point the dispatcher is notified.

Example 4.The dispatcher reviews the information submitted to the system by the field officer and creates an incident in the database by invoking the Open Incident use case. All the information contained in the field officer’s form is automatically included in this incident. The dispatcher selects a response by allocating resources to the incident (with the Allocate Resources use case) and acknowledges the emergency report by sending an acknowledgment notice to the field officer. Exit condition: 5.The field officer receives the acknowledgment and the selected response.

Example Entity objects for the Report Emergency use case:  Field officer  Emergency report  Dispatcher  Incident

Identifying Boundary Objects A boundary object…  represents the system’s interface with the actors In each use case, each actor interacts with at least one boundary object.  collects information from the actors and translates it into a form that can be used by both entity and control objects  models the GUI at a coarse level They do not describe in detail the visual aspects of the user interface.

Identifying Boundary Objects Heuristics for identifying boundary objects:  Identify user interface controls that the use needs to initiate the use case (e.g., Report Emergency button)  Identify forms that users need to enter data into the system  Identify notices and messages the system uses to respond to the user  When multiple actors are involved in a use case, identify actor terminals to refer to the user interface under consideration.

Identifying Boundary Objects  Do not model the visual aspects of the interface with boundary objects (user mock-ups are better suited for that).  Always use the end user’s terms for describing interfaces; do not use terms from the solution or implementation domains.

Example Use Case Name: Report Emergency Entry condition: 1.The field officer activates the “Report Emergency” function of her terminal. Flow: 2.The system responds by presenting a form to the officer. The form includes an emergency type menu (general emergency, fire, transportation), a location, incident description, resource report, and hazardous material fields. 3.The field officer completes the form by specifying minimally the emergency type and description fields. The field officer may also describe possible responses to the emergency situation and request specific resources. Once the form is completed, the field officer submits the form, at which point the dispatcher is notified.

Example 4.The dispatcher reviews the information submitted to the system by the field officer and creates an Incident in the database by invoking the Open Incident use case. All the information contained in the field officer’s form is automatically included in this incident. The dispatcher selects a response by allocating resources to the incident (with the Allocate Resources use case) and acknowledges the emergency report by sending an acknowledgment notice to the field officer. Exit condition: 5.The field officer receives the acknowledgment and the selected response.

Example Boundary objects for the Report Emergency use case:  Field officer terminal  Emergency form  Incident form  Acknowledgment notice

Identifying Control Objects A control object…  is responsible for: coordinating boundary and entity objects collecting data from the boundary object and dispatching it to entity objects  does not usually have a concrete counterpart in the real world  usually has a close relationship with a use case A control object is usually created at the beginning of a use case and ceases to exist at its end.

Identifying Control Objects Heuristics for identifying control objects:  Identify one control object per actor per use case.  The life span of a control object should cover the extent of the use case or the extent of a user session. If it is difficult to identify the beginning and end of a control object activation, the corresponding use case probably does not have well-defined entry and exit conditions.

Example Use Case Name: Report Emergency Entry condition: 1.The field officer activates the “Report Emergency” function of her terminal. Flow: 2.The system responds by presenting a form to the officer. The form includes an emergency type menu (general emergency, fire, transportation), a location, incident description, resource report, and hazardous material fields. 3.The field officer completes the form by specifying minimally the emergency type and description fields. The field officer may also describe possible responses to the emergency situation and request specific resources. Once the form is completed, the field officer submits the form, at which point the dispatcher is notified.

Example 4.The dispatcher reviews the information submitted to the system by the field officer and creates an Incident in the database by invoking the Open Incident use case. All the information contained in the field officer’s form is automatically included in this incident. The dispatcher selects a response by allocating resources to the incident (with the Allocate Resources use case) and acknowledges the emergency report by sending an acknowledgment notice to the field officer. Exit condition: 5.The field officer receives the acknowledgment and the selected response.

Example Control objects for the Report Emergency use case:  Report Emergency control  Manage Emergency control

Mapping Use Cases to Objects with Sequence Diagrams A sequence diagram…  ties use cases with objects.  shows how the behavior of a use case (or scenario) is distributed among its participating objects  is usually not as good a medium for communication with the user as a use case is  represents a shift in perspective and allows the analyst/developer to find missing objects or gray areas in the requirements specification

Mapping Use Cases to Objects with Sequence Diagrams Heuristics for drawing sequence diagrams:  The first column corresponds to the actor initiating the use case.  The second column is a boundary object (that the actor used to initiate the use case).  The third column is a control object that manages the rest of the use case.  Control objects are created by boundary objects initiating use cases.

Mapping Use Cases to Objects with Sequence Diagrams  Boundary objects are created by control objects.  Entity objects are accessed by control and boundary objects.  Entity objects never access boundary or control objects; this makes it easier to share entity objects across use cases.

Example

Identifying Associations An association…  shows a relationship between two or more classes.  has several properties: Name Role at each end Multiplicity at each end

Identifying Associations Heuristics for identifying associations:  Examine verb phrases.  Name associations and roles precisely.  Use qualifiers as often as possible to identify namespaces and key attributes.  Eliminate any association that can be derived from other associations.  Do not worry about multiplicity until the set of associations is stable.  Too many associations make a model unreadable.

Identifying Attributes Attributes…  are properties of an object  represent the least stable part of the object model They can therefore be added later when the analysis model or the user interface sketches are validated.

Identifying Attributes Heuristics for identifying attributes:  Examine possessive phrases.  Represent stored state as an attribute of the entity object.  Describe each attribute.  Do not represent an attribute as an object; use an association instead.  Do not waste time describing fine details before the object model is stable.