Requirements Analysis

Slides:



Advertisements
Similar presentations
Requirements Elicitation Labs Discussion p2 T120B pavasario sem.
Advertisements

Presentation material is based on notes from Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 ECE.
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)
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 5, Analysis.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
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.
Requirements (recap)‏
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
The chapter will address the following questions:
The Software Development Life Cycle: An Overview
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Analysis Modeling.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Functional Modeling.
COP 3331 OBJECT-ORIENTED ANALYSIS AND DESIGN Bob Myers Department of Computer Science Week 6 Lecture.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Figure 5-2, Products of requirements elicitation.
ITEC 3220M Using and Designing Database Systems
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,
UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Approaching a Problem Where do we start? How do we proceed?
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Example: object diagram for Scheduler, v What is wrong with this diagram? Seems like a lot of similarity between Task and UnplannedTask Can use.
1 Object Oriented Analysis Lectures 12 & References Chapter 4: Requirements Elicitation from Object Oriented Software Engineering: Conquering Complex.
OOSE UNIT 2. REQUIREMENT ELICITATION CONCEPTS FUNCTIONAL REQUIREMENTS NONFUNCTIONAL REQUIREMENTS COMPLETENESS,CONSISTENCY,CLARITY AND CORRECTNESS REALISM,VERIFIABILITY.
CEN Sixth Lecture Requirements Analysis: Object Modeling Introduction to Software Engineering (CEN- 4010) Instructor: Masoud Sadjadi
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.
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.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
1 After the scenarios are formulated Find all the use cases in the scenario Describe each of these use cases in more detail Participating actors Describe.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
Use cases, tests classes, …
Chapter 5: Analysis Object Modeling.
Chapter 5: Analysis Object Modeling.
CISC/CMPE320 - Prof. McLeod
Object-Oriented Analysis
Advance Software Engineering (CEN-5011)
Chapter 4, Requirements Elicitation: Functional Modeling
CISC/CMPE320 - Prof. McLeod
CISC/CMPE320 - Prof. McLeod
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 5, Analysis: Object Modeling
COP 4009 Component-Based Software Engineering
Use Case Analysis – continued
Presentation transcript:

Requirements Analysis Chapter 5

Overview of Analysis Producing an analysis model of the system Correct Complete Consistent Verifiable Analysis functional model nonfunctional requirements analysis object Requirements elicitation dynamic model Analysis Model Specification System design Object design

Analysis Model class diagram:View statechart diagram:View sequence use case diagram:View object model:Model dynamic model:Model functional model:Model analysis model:Model

Analysis Classes Should represent user-level concepts, not actual software classes or components E.g. no Database, Network, Session classes Domain concepts that should be represented in the analysis object model. Software classes that should not be represented in the analysis object model. Refers to how time zones UniversalTime TimeZoneDatabase are stored (design decision). Denotes to how location is TimeZone GPSLocator measured (design decision). Refers to an internal Location UserId mechanism for identifying users (design decision)

Entity, Boundary, Control Objects Entity objects Represent persistent information tracked by the system Boundary objects Represent the interactions between actors and the system Control objects Represent the system that manages and controls a use case, tying information together Three object approach Leads to models resilient to change; the interface (boundary objects) is more likely to change than basic functionality (control and entity objects)

Analysis Classes for Two Button Watch <<Meta-Data>> - angle brackets store meta-data <<entity>> Year <<control>> ChangeDateControl <<boundary>> ButtonBoundary <<entity>> Month <<boundary>> LCDDisplayBoundary <<entity>> Day

Analysis Activities Identify entity objects Identify boundary objects Identify control objects Map use cases to objects with sequence diagrams Identify associations Identify aggregates Identify attributes Model state-dependent behavior Model inheritance relationships Review the analysis model

Identifying Entity Objects Challenge is to extract entity objects out of a use case Entity objects represent persistent information tracked by the system Heuristics Terms used to understand the use case Recurring nouns (e.g. Incident) Real-world entities (e.g. FieldOfficer) Real-world activities (e.g. EmergencyPlan) Data sources or sinks (e.g. Printer)

ReportEmergency Use Case Entry condition 1. The FieldOfficer activates the “Report Emergency” function of her terminal. Flow of Events 2. FRIEND responds by presenting a form that includes the emergency type menu, location, incident description, resource request. 3. The FieldOfficer completes the form and submits the form by pressing the “Send Report” button, at which point the Dispatcher is notified. 4. The Dispatcher reviews the information submitted by the FieldOfficer and creates an Incident in the database by invoking the OpenIncident use case. The Dispatcher selects a response which may include allocating resources with the AllocateResources use case and acknowledges the report by sending an acknowledgement to the FieldOfficer. Exit Condition 5. The FieldOfficer receives the acknowledgment.

Entity Objects for the ReportEmergency Use Case Dispatcher Police officer who manages incidents. A dispatcher opens, documents, and closes incidents in response to EmergencyReports with FieldOfficers. Dispatchers are identified by batch numbers. EmergencyReport Initial report about an Incident from a FieldOfficer to a Dispatcher. An EmergencyReport is composed of an emergency level, a type, a location, description, and resource request. FieldOfficer Police or fire officer on duty. FieldOfficers are identified by badge numbers. Incident Situation requiring attention from a FieldOfficer. An Incident may be reported in the system by a FieldOfficer or anybody else external to the system. An Incident is composed of a description, response, status, location, and a number of FieldOfficers.

Identifying Boundary Objects Boundary objects represent the system interface with the actors. Heuristics User interface controls that the user uses to initiate the use case (e.g. Buttons) Identify forms the users need to enter data Identify notices and messages the system uses to respond to the user When multiple actors are involved, identify actor terminals to refer to the user interface under consideration Do not model the visual aspects of the interface with boundary objects (user mock-ups better) Always use the end user’s terms for describing interfaces

Boundary Objects for the ReportEmergency Use Case AcknowledgmentNotice Notice used for displaying the Dispatcher’s ack to the FieldOfficer DispatcherStation Computer used by the Dispatcher ReportEmergencyButton Button used by a FieldOfficer to initiate the ReportEmergency use case EmergencyReportForm Form used for the input of the ReportEmergency. The form contains fields for specifying all attributes of an emergency report and has a button for submitting the form. FieldOfficerStation Mobile computer used by the FieldOfficer IncidentForm Form used for the creation of Incidents. Presented to the Dispatcher and used to allocate resources and acknowledge the FieldOfficer’s report. Note that this form is not explicitly mentioned in the use case

Identifying Control Objects Responsible for coordinating boundary and entity objects Sequencing of forms or dispatching information Heuristics Identify one control object per actor in the use case Lifespan of a control object should cover the extent of the use case or the extent of a user session

Control Objects for the ReportEmergency Use Case ReportEmergencyControl Manages the ReportEmergency reporting function on the FieldOfficerStation. This object is created when the FieldOfficer selects the “Report Emergency” button. It then creates an EmergencyReportForm and presents it to the FieldOfficer, collects the information, sends it to the Dispatcher, and displays the acknowledgment. ManageEmergencyControl Manages the ReportEmergency reporting function on the DispatcherStation. Created when an EmergencyReport is received. It creates an IncidentForm, displays it to the Dispatcher, and forwards the acknowledgment to the FieldOfficerStation.

Mapping Use Cases to Objects with Sequence Diagram Sequence diagram shows how the behavior of a use case is distributed among its participating objects. Basic components of sequence diagrams already covered

Sequence diagram for the ReportEmergency use case. EmergencyButton Manage EmergencyControl FieldOfficer press() «create» ReportEmergency Control ReportEmergency Form «create» fillContents() submit() submitReport() «create» Emergency Report submitReportToDispatcher() «destroy»

Sequence diagram for the ReportEmergency use case (continued from previous) Dispatcher Manage EmergencyControl submitReportToDispatcher() «create» IncidentForm createIncident() «create» Incident submit() «create» Acknowledgment «destroy»

Sequence diagram for the ReportEmergency use case (continued from previous). Control Manage FieldOfficer EmergencyControl acknowledgeReport() Acknowledgment Notice «create» dismiss() endReportTransaction() «destroy» «destroy»

What’s in an Acknowledgment Notice? By completing the analysis, we can find weaknesses in the use case. In this example, it is not complete in terms of what is inside an acknowledgment 4. The Dispatcher reviews the information submitted by the FieldOfficer and creates an Incident in the database by invoking the OpenIncident use case. The Dispatcher selects a response which may include allocating resources with the AllocateResources use case and acknowledges the report by sending an acknowledgement to the FieldOfficer. The acknowledgment indicates that the EmergencyReport was received, an Incident created, and what resources were allocated along with their estimated arrival time.

Identifying Associations Associations show the relationship among classes Heuristics Examine verb phrases Name associations and roles precisely Use qualifiers 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

Associations for FieldOfficer, EmergencyReport, Incident Are these good associations? * 1 writes author document triggers reports FieldOfficer EmergencyReport Incident

Identifying Aggregates Whole-part relationships Heuristics Look for whole-part relationships  If you’re not sure that the association is whole-part, it is better to model it as a one-to-many association and revisit it later when you have a better understanding of the domain

Sample Aggregates State County Township FireStation FireFighter FireEngine LeadCar Ambulance

Identifying Attributes Attributes are properties of individual objects Heuristics 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 until the object structure is stable

Attributes of the EmergencyReport class emergencyType:{fire,traffic,other} location:String description:String

Modeling State-Dependent Behavior of Objects Sequence diagrams are used to identify operations from the perspective of a use case Statechart diagrams represent behavior better from the perspective of a single object Basic components of statecharts previously discussed

UML Statechart for Incident Active Inactive Closed Archived all when d ate > 1yr. resources submitted reports Reported Assessment Disengagement Response field officer arrives on site releases resources dispatcher allocates resources field officer requests additional resources all resources deallocated

Modeling Inheritance Relationships Generalization helps eliminate redundancy Introduce a base or abstract class Heuristics Look for similarities among classes Look for classes that share the same attributes FieldOfficer Dispatcher PoliceOfficer badgeNumber:Integer

Reviewing the Analysis Model The analysis model is seldom correct or complete on the first pass! Several iterations with the client and user likely necessary The model is stable when the number of changes to the model are minimal Reviewed by developers first, then jointly by developers and the client Goal is to ensure specification is correct, complete, consistent, and unambiguous

Sample Questions from 5.4.11 Correctness Complete Consistent Realistic Is the glossary of entity objects understandable by the user? Are all error cases described and handled? Complete For each object: In which case is it created? Modified? Destroyed? Can it be accessed from a boundary object? For each attribute: What is its type? Qualifier? Consistent Are there multiple classes or use cases with the same name? Are there objects with similar attributes that are not in the same generalization hierarchy? Realistic Any novel features in the system? Studies to ensure feasibility? Can performance and reliability requirements be met?

Define use cases Define participating objects Define entity objects Define boundary objects Define control objects Define interactions Define nontrivial behavior Define attributes Define associations Consolidate model Review model

Managing Analysis Elicitation and analysis activities should be documented in the Requirements Analysis Document This includes the object models and dynamic models Assign responsibilities Analyst Application domain experts; may have individuals for different use cases Architect Unifies use case and object models from a system perspective Document editor Low-level integration of the document and formatting Configuration manager Maintain revision history of document; use computer tools Reviewer Validates the RAD for correctness, completeness, consistency, clarity

Managing Analysis Communicating Analysis Define clear territories Define clear objectives and success criteria Brainstorm Iterating over the Analysis Model Brainstorming Solidification Maturity Client Sign-Off Represents acceptance of the analysis model by the client Also agree on List of priorities, revision process, list of criteria that will be used to accept or reject the system, schedule and budget Prioritization of functions