Requirements Elicitation. Requirements (1) _ What are requirements and why are they important? _ Problem frames _ Requirements elicitation _ Strategies.

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation - Continued.
Advertisements

CEN 4010 Fifth Lecture February 8, 2006 Introduction to Software Engineering (CEN- 4010) Spring 2006 Instructor: Masoud Sadjadi
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.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Chapter 4, Requirements Elicitation
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
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
SE 555 Software Requirements & Specification Requirements Validation.
Overview of Software Requirements
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Chapter 4 Requirements Engineering
S/W Project Management
Chapter 4, Requirements Elicitation
Presentation material is based on notes from Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 ECE.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
1 Phases in Software Development Lecture Software Development Lifecycle Let us review the main steps –Problem Definition –Feasibility Study –Analysis.
© Colin Potts C2-1 Goal-oriented approaches Colin Potts Georgia Tech.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Elicitation Labs Discussion p2 T120B pavasario sem.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
1 Requirements Elicitation Lectures 10 & References Chapter 4: Requirements Elicitation from Object Oriented Software Engineering: Conquering Complex.
Lecture 7: Requirements Engineering
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Systems Analysis and Design in a Changing World, 6th Edition
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
CEN th Lecture Advance Software Engineering (CEN-5011) Instructor: Masoud Sadjadi Requirements Elicitation.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Requirement Engineering
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Engineering Lecture 10: System Engineering.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
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.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
 System Requirement Specification and System Planning.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Chapter 4 – Requirements Engineering
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Requirements Elicitation and Elaboration
Chapter 4, Requirements Elicitation
Software Requirements analysis & specifications
Chapter 4, Requirements Elicitation
Chapter 4, Requirements Elicitation: Functional Modeling
Chapter 4, Requirements Elicitation: Functional Modeling
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Requirements Elicitation

Requirements (1) _ What are requirements and why are they important? _ Problem frames _ Requirements elicitation _ Strategies –System & actor identification –Use case & scenario analysis _ Requirements refinement and validation

What are requirements? _ Properties of a planned system or product that are desired by its customer – What kinds of properties? Functional / non-functional requirements – What is the scope of the system? System / environment; software / process – Are requirements absolute? What if they conflict? Requirements / preferences – Who are the customers? What if they disagree? Stakeholders / viewpoints. Trade-offs / negotiation

Engineering and human- oriented approaches _ Requirements occur at boundary between the human and the engineered –“Soft” and “hard” / “Wet” and “dry” _ Human-oriented issues –Understanding the system’s context, reaching consensus, tracking issues, etc. _ Engineering-oriented issues –Analytic methods, documentation quality, modeling, feasibility analysis, etc.

Cost of Delay in Fixing Requirements Errors Data: Boehm & Papaccio (1988) IEEE Trans. Software Eng. Nominal unit cost 20-fold increase during devt. 200-fold increase after delivery

Requirements and system fitness _ Well-understood requirements _ Poorly understood requirements

Requirements faults: (What we’re trying to avoid) _ Vagueness _ Incompleteness _ Gold-plating _ Inconsistency _ Unfeasibility _ Poor writing

Software Lifecycle Activities Application Domain Objects SubSystems class... Implementat ion Domain Objects Source Code Test Cases ? Expressed in Terms Of Structured By Implemented By Realized By Verified By System Design Object Design Implemen- tation Testing class.... ? Requirements Elicitation Use Case Model Requirements Analysis Or textual requirements

Figure 4-1. Products of requirements elicitation and analysis (UML activity diagram). Requirements Elicitation analysis model :Model system specification :Model Analysis

System Specification vs Requirements Analysis Model _ Both focus on the requirements from the user’s view of the system. _ System specification uses natural language (derived from problem statement) _ Requirements analysis model uses formal or semi-formal notation (e.g., UML)

Types of Requirements _ Functional requirements: Describe the interactions between the system and its environment independent from implementation – The watch system must display the time based on its location _ Nonfunctional requirements: User visible aspects of the system not directly related to functional behavior. –The response time must be less than 1 second –The accuracy must be within a second –The watch must be available 24 hours a day except from 2:00am-2:01am and 3:00am-3:01am _ Constraints (“Pseudo requirements”): Imposed by the client or the environment in which the system will operate –The implementation language must be COBOL. –Must interface to the dispatcher system written in 1956.

What is usually not in the Requirements? _ System structure, implementation technology _ Development methodology _ Development environment _ Implementation language _ Reusability _ But descriptions of the real-world domains are in the requirements (even though they are not required)

Figure 4-2. A System is a collection of real world Phenomena. A Model is a collection of Concepts that represent the System ’s Phenomena. Many Models can represent different aspects of the same System. An unambiguous Model corresponds to only one System. describes * 1 * * Model System ConceptPhenomenon

Key concepts: “is” vs. “ought” DomainEnvt. Sys. Now Future Development & delivery The way things are now The way we’re assuming things will be What we’ll make the system do

Case Example: Scheduling and Scheduler DomainEnvt. Sys. Now Future Development & delivery How people schedule What meetings are How people will schedule What meetings will now be Spec. of scheduler software

The system and the world (Jackson, 2000) This is the “system” (a.k.a. a machine) This is the “real world” How the RW should be Customer Interface phenomena Required phenomena

Example of information display problem frame “Know about appts.” feature What they say about appts. Appt. model is “correct” Appt. model Calendar display Time frame Calendar is correct w.r.t. queries “Display a calendar” feature Lexical domains Constructed domain

Example of controlled behavior problem frame Appts. with alarms Phone svc. Passage of time Correct & timely call “Wake-up call” feature Controlled domain

Requirements Elicitation Activities _ Identify actors _ Identify scenarios _ Identify use cases _ Identify relationships among use cases _ Refine use cases _ Identify nonfunctional requirements _ Identify participating objects

Requirements Elicitation _ Challenging activity _ Requires collaboration of people with different backgrounds –User with application domain knowledge –Developer with implementation domain knowledge _ Bridging the gap between user and developer: –Scenarios: Example of the use of the system in terms of a series of interactions with between the user and the system –Use cases: Abstraction that describes a class of scenarios

Types of Requirements Elicitation _ Greenfield Engineering –Development starts from scratch, no prior system exists, the requirements are extracted from the end users and the client –Triggered by user needs _ Re-engineering –Re-design and/or re-implementation of an existing system using newer technology –Triggered by technology enabler _ Interface Engineering –Provide the services of an existing system in a new environment –Triggered by technology enabler or new market needs

Key concepts: Use cases and scenarios I’d like it to blah When PQR, the system shall XYZ abstract / general descriptions Blah’ing Suppose a user called a mtg for next week. The system queries everyone’s online calendar and finds that there.... concrete / specific descriptions

Case Example: Scheduling scenarios _ Scheduling a meeting without problems _ Someone remembers an appointment and can’t attend _ There’s no convenient time _ There’s no venue available _ The notification mechanism breaks down _ Meeting bumped by CEO

Figure Activities of JAD (UML activity diagram). The heart of JAD is the Session activity during which all stakeholders design and agree to a system specification. The activities prior to the Session maximizes its efficiency. The production of the Final document ensures that the decisions made during the Session are captured. Management definition guide Project definition Research Preparation Session Session agenda Preliminary specification Working document Session script Scribe forms Final document preparation Final document

System Identification _ Development of a system is not just done by taking a snapshot of a scene (domain) _ Definition of the system boundary What is inside, what is outside? _ How can we identify the purpose of a system? _ Requirements Process: –Requirements Elicitation: Definition of the system in terms understood by the customer –Analysis: Technical specification of the system in terms understood by the developer.

Use cases _ Most systems have several major input events to which they’re supposed to respond –Ignore the subsidiary directives & additional inputs for now –“Major” does not mean “frequent” _ E.g. calling a meeting, canceling a meeting, becoming a new user of the system, remodeling rooms,... –don’t forget these administrative/configuration use cases

Actors _ Actors are – Things that perform actions – Either actors in the world – Or actors in the machine _ For example – Actors in the world User roles Organizations Physical devices External systems Nature – Actors in the machine The system as a whole Architectural components

Figure 4-4. Actors of the FRIEND system. FieldOfficers not only have access to different functionality, they use different computers to access the system. FieldOfficerDispatcher FRIEND Q: What is the context diagram for the PA system? Q1: How much is “in” the PA -v- its environment? Q2: Given that, what are the actors?

SetTime use case

Figure 4-8. Example of communication relationships among actors and use cases in FRIEND (UML use case diagram). The FieldOfficer initiates the ReportEmergency use case and the Dispatcher initiates the OpenIncident and AllocateResources use cases. FieldOfficers cannot directly open an incident or allocate resources on their own. ReportEmergency FieldOfficer Dispatcher OpenIncident AllocateResources >

Figure 4-9. Example of use of extend relationship (UML use case diagram). ConnectionDown extends the ReportEmergency use case. The ReportEmergency use case becomes shorter and solely focused on emergency reporting. ReportEmergency FieldOfficer ConnectionDown >

Figure Example of include relationships among use cases. ViewMap describes the flow of events for viewing a city map (e.g., scrolling, zooming, query by street name) and is used by both OpenIncident and AllocateResources use cases. ViewMap OpenIncident AllocateResources >

Scenarios _ “A narrative description of what people do and experience as they try to make use of computer systems and applications” [M. Carrol, Scenario-based Design, Wiley, 1995] _ A concrete, focused, informal description of a single feature of the system used by a single actor. _ Scenarios can have many different uses during the software lifecycle

Types of Scenarios _ As-is scenario –Used in describing a current situation. Usually used during re- engineering. The user describes the system. _ Visionary scenario –Used to describe a future system. Usually described in greenfield engineering or reengineering. –Can often not be done by the user or developer alone _ Evaluation scenario –User tasks against which the system is to be evaluated _ Training scenario –Step by step instructions designed to guide a novice user through a system

Why Scenarios? _ Requirements analysis is a form of learning –Examples reinforce principles & help you learn them and their limits _ Providing requirements involves explaining tacit knowledge –Examples are invaluable in articulating processes and problems customers don’t often think about _ Requirements analysis is often a form of design –“How would this work?” is a standard design question

Scenario Exploration _ Scenario exploration is the process of understanding planned system behavior by walking through possibilities. – The goal may be just to get an idea of what the system will do and whether it is really needed. – Or it may be a more structured process: to evaluate alternative allocations by considering concrete behaviors that illustrate the interactions in each case. – Or considering the consequences of obstacles, and whether they are severe. – Or considering the consequences of defending against or mitigating obstacles, and whether the costs are worth it.

Envisionment through scenarios _ Scenarios are descriptions of actual or imagined sequences of events –esp. good for examining exceptions/graceful degradation Specifications are Abstract General Exhaustive in coverage of situations Authoritative Boring Scenarios are Concrete Particular / Specific Selective with respect to salient situations Illustrative Compelling

Case Example: Spec. & scenario fragments When the initiator indicates completion of the definition of the meeting constraints, the system shall complete undefined constraints with default values and shall query the external calendar as follows.... Pointy-haired manager (PHM) wants to organize a meeting to discuss the drone-to-cube ratio and enters the names “Dilbert” and “Wally” as invitees and “tomorrow by 5pm” as latest time. The system queries the...

Issues with Scenarios _ What is the appropriate level of detail for scenarios? _ How should scenarios be described and related to other software descriptions? – esp. existing architecture _ Which are the “right” scenarios to explore?

Instantiating Actors and Actions _ Many design teams find it useful to give instances of actors, actions and data –“Pointy-haired manager”, not “initiator” –“Dilbert, Wally & PHM”, not “invitees” –“Tomorrow’s cube mtg”, not “the meeting” _ Useful when –Communicating with non-technical customers –Design team has dangerously little domain knowledge –Scenarios are well-chosen, not just cute

How do we find scenarios? _ Don’t expect the client to be verbal if the system does not exist (greenfield engineering) _ Don’t wait for information even if the system exists _ Engage in a dialectic approach (evolutionary, incremental) –You help the client to formulate the requirements –The client helps you to understand the requirements –The requirements evolve while the scenarios are being developed

Heuristics for finding Scenarios _ Ask yourself or the client the following questions: –What are the primary tasks that the system needs to perform? –What data will the actor create, store, change, remove or add in the system? –What external changes does the system need to know about? –What changes or events will the actor of the system need to be informed about? _ Insist on task observation if the system already exists (interface engineering or reengineering) –Ask to speak to the end user, not just to the software contractor –Expect resistance and try to overcome it

Key concept: Requirements refinement Vague, ambiguous Clear, precise I’d like it to blah When PQR, the system shall XYZ refinement (possibly incremental) _ What kinds of refinement are there? – Making a vague statement more precise – Saying what the system should do vs. its users – Dealing with not-yet considered situations

Objectives & requirements _ Systems exist to meet goals or objectives – Goals are not final requirements may be ambiguous and inconsistent not absolute (some take priority) idealized rather than implementable not allocated to product – Goals are not business processes processes are implementations of goals

Pre-requirements traceability _ Pre-reqts. traceability shows where reqt. traces from thus, objectives are rationale for reqts. 1.1 The system shall blah, blah If the co-worker is blah, blah, the system shall inform the user Reqts. IMPROVE blah blah MAINTAIN user awareness of blah Objectives

Case Example: Refining a fuzzy requirement The system shall improve the responsiveness to customer complaints The system shall improve the responsiveness to customer complaints The system shall improve the responsiveness to customer complaints …. When the customer-service clerk enters the customer code, the system shall recommend the next customer- service action The system shall improve the responsiveness to customer complaints …. When the customer-service clerk enters the customer code, the system shall recommend the next customer- service action

Key concept: Inquiry cycles _ Requirements criticism (challenging documented requirements) is about asking the right questions at the right times Reqts. documentation raise questions analyze, research & decide Annotated reqts. refine reqts. Refined reqts.

Case Illustration: Inquiry-driven refinements Project outline Questions of clarification Questions about exceptional cases...etc idealized functional spec. robust functional spec.

Requirements Validation _ Critical step in the development process, –Usually after requirements engineering or requirements analysis. Also at delivery _ Requirements validation criteria: –Correctness: The requirements represent the client’s view. –Completeness: All possible scenarios through the system are described, including exceptional behavior by the user or the system –Consistency: There are functional or nonfunctional requirements that contradict each other –Clarity: There are no ambiguities in the requirements.

Requirements Validation Criteria (continued) _ Realism: –Requirements can be implemented and delivered _ Traceability: –Each system function can be traced to a corresponding set of functional requirements

Testable performance requirements _ Objectives to accelerate process or minimize delay – Specify in terms of average duration or wait time but convenience (the real objective) often depends on eradicating excessive wait times – Or by specifying ceiling on duration or wait time but often not technically feasible to guarantee – So usually by putting ceiling on 95/99% cases _ Absolute deadlines are functional reqts. – Hard real-time reqts. are substitutes for a response being required before an envt. event

Testable usability requirements _ Convenience / usability / familiarity / “friendliness” objectives _ Specification of expected user performance – Ability to do a task without help within X minutes of using system for 1st time – Average performance time for error-free task

Case example: Testable quality requirements _ Performance – If there are feasible meeting times, the system should in 95% cases schedule a meeting within 5 seconds of meeting constraints having been entered – Usability – A person should be able to fill in the scheduling constraints for an N-person meeting in fewer than 5*N keystrokes/mouse-clicks

Summary _ Requirements Elicitation: –Greenfield Engineering, Reengineering, Interface Engineering _ Scenarios: – Great way to establish communication with client –As-Is Scenarios, Visionary scenarios, Evaluation scenarios Training scenarios –Use cases: Abstraction of scenarios _ Pure functional decomposition is bad: –Leads to unmaintainable code _ Pure object identification is bad: –May lead to wrong objects, wrong attributes, wrong methods _ The key to successful analysis: –Start with use cases and then find the participating objects –If somebody asks “What is this?”, do not answer right away. Return the question or observe: “What is it used for?”