Requirements Engineering How do we keep straight what we are supposed to be building?

Slides:



Advertisements
Similar presentations
Understanding Requirements Unit II
Advertisements

1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
7.1 A Bridge to Design & Construction
1 R&D SDM 1 Software Project Management Requirements Analysis 2010 Theo Schouten.
Chapter 5 Understanding Requirements
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Concepts and Principles
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.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
SE 555 – Software Requirements & Specifications Introduction
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
1 Requirements Analysis and Specification Requirements analysis.
S R S S ystem R equirements S pecification Specifying the Specifications.
Requirements Engineering
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
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 Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
Understanding Requirements. Requirements Engineering
S/W Project Management
Typical Software Documents with an emphasis on writing proposals.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. 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.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Standard SRS Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
IT Requirements Management Balancing Needs and Expectations.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
Lecture 7: Requirements Engineering
Requirements Gathering How do we find out what we are supposed to be building?
Lecture-3.
1 Chapter 5 Lecture 5: Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Systems Development Life Cycle
1 Quality Attributes of Requirements Documents Lecture # 25.
By Germaine Cheung Hong Kong Computer Institute
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements Engineering Requirements Elicitation Overview of Requirements Analysis.
Smart Home Technologies
Module 4: Systems Development Chapter 13: Investigation and Analysis.
System Requirements Specification
Requirement Engineering
Software Requirements Specification Document (SRS)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Requirements Gathering
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Lecture 10: System Engineering.
Requirements in the product life cycle Chapter 7.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
 System Requirement Specification and System Planning.
Requirements Elicitation and Elaboration
System Requirements Specification
Software Requirements analysis & specifications
Chapter 5 Understanding Requirements
Requirement Analysis.
Requirements Engineering Lecture 6
Presentation transcript:

Requirements Engineering How do we keep straight what we are supposed to be building?

Starter Questions  What is a "requirement"?  How do we determine the requirements?  Why is requirements engineering difficult? 2

Why good Specs are Essential: $  It is VERY expensive to fix problems late in the process. It is very cheap to rewrite or clarify a written spec.  What costs $1 to fix at ReqGathering $5 in the design stage $10 in the coding stage $20 in the unit testing phase $200 after delivery 3

Types of Requirements  Functional ex - it must the sales manager when an inventory item is "low"  Non-Functional ex - it must require less than one hour to run report #5  Explicit ex – required features  Implied ex – software quality  Forgotten ex – exists in current process  Unimagined 4

Requirements of Requirements  Clear  Measurable  Feasible  Necessary  Prioritized  Concise 5

Ambiguousness – example one The control total is taken from the last record. 1. The total is taken from the record at the end of the file. 2. The total is taken from the latest record. 3. The total is taken from the previous record. IEEE

Ambiguousness – example two All customers have the same control field. 1. All customers have the same value in their control field. 2. All control fields have the same format. 3. One control field is issued for all customers. IEEE

Why Req Eng is Difficult 8

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management Software Engineering: A Practitioner’s Approach by Roger Pressman 9

Inception  Project starts due to a business decision  Software Engineer Asks: Why do you want this What is the basic problem Who wants a solution  who wants this  who will use this Nature of solution  economic benefit of success? 10

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management 11/32

Elicitation via Interviews Difficulties  Ill-defined project scope  Unnecessary details that confuse  Not sure what they need  Poor understanding of capabilities  Omitting the “obvious”  Requirements that conflict with other people’s requirements  Requirements Change!!! 12

Elicitation via Interviews Recommendations 1. The list of involved stakeholders must be broad include end-users, managers, etc include the software developers 2. Use agendas that cover the important points yet encourage flow of ideas 3. Ahead of time, the participants should build a partial list of the functions, performance criteria, environment factors, … 4. Start with scope and context, move to functions 5. Use visuals such as wall-stickers, flip-charts, … 13

Elicitation via Use Cases

Elicitation via QFD Since 1966, Quality Function Deployment (QFD) has been used world wide in nearly every industry and sector to: 1. Prioritize spoken and unspoken customer wows, wants, and needs; 2. Translate these needs into actions and designs such as technical characteristics and specifications; and 3. Build and deliver a quality product or service by focusing various business functions toward achieving a common goal and customer satisfaction.  QFD uses interviews, surveys, and data (problem reports) to build a table of requirements called the Customer Voice Table.  Functional Deployment – value of each function  Information Deployment – identify the input and output  Task Deployment – examine system behavior  Value Analysis – prioritize the requirements 15

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management 16/32

Elaboration model  Goal is to create a model that defines: 1. information 2. functions  Models could be ER Diagrams Use Cases Data Flow Diagrams all of the above 17

System Modeling  Function & Information Flow Model what we will do with the data  Data Model structure of the information  Behavior Model how we interact with the system

Data Modeling  Data Objects, Attributes, Relationships Formatted as Lists or Tables  Entity Relationship Diagrams security system sensor monitors enables/disables tests programs is programmed by

Behavior Modeling State Transition Diagram start read msg save msg file name done compose send

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management 21/32

Negotiation  Goal is to resolve requirements that are Conflicting Costly Unrealistic 1.Identify the subsystem’s stakeholders 2.Determine their win conditions 3.Negotiate their win conditions into win- win conditions for everyone 22

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management 23/32

Technically Speaking, "requirement" ≠ "specification"  Requirement – understanding between customer and supplier  Specification – what the software must do  Requirements that are not in the SRS Costs Delivery dates Acceptance procedures etc 24

IEEE 830 Characteristics of a Good SRS 1.Unambiguous 2.Complete 3.Verifiable 4.Consistent 5.Modifiable 6.Traceable 7.Usable during the Operation and Maintenance Phase 25

IEEE 830 Role of SRS 1. “The SRS must correctly define all of the software requirements, but no more.” 2. “The SRS should not describe design, verification, or project management details, except for required design constraints.” 26

SRS Table of Contents 1.Introduction 1.Purpose 2.Scope 3.Definitions 4.References 5.Overview 2.General Description 1.Product Perspective 2.Product Functions 3.User Characteristics 4.General Constraints 5.Assumptions and Dependencies 3.Specific Requirements IEEE

3. Specific Requirements 3.1 Functional Requirements Func Req Introduction Inputs Processing Outputs Func Req 2 … 3.2 External Interface Requirements User Interface Hardware Interfaces Software Interfaces Communication Interfaces 3.3 Performance Requirements 3.4 Design Constraints Standards Compliance Hardware Limitations 3.5 Attributes Security Maintainability 3.6 Other Requirements Database IEEE

Non-830-Style Requirements User stories encourage the team to defer collecting details. An initial place-holding goal-level story ("A Recruiter can post a new job opening") can be written and then replaced with more detailed stories once it becomes important to have the details. This technique makes user stories perfect for time-constrained projects. A team can very quickly write a few dozen stories to give them an overall feel for the system. They can then plunge into the details on a few of the stories and can be coding much sooner than a team that feels compelled to complete an IEEE 830–style software requirements specification. Quote from "Advantages of User Stories for Requirements" By Mike Cohn

Other Specification Techniques  Use Cases  Formal Specification Languages e.g. Petri Nets

Requirements Engineering Tasks 1.Inception 2.Elicitation 3.Elaboration 4.Negotiation 5.Specification 6.Validation 7.Management 31

Next Classes  Risk Analysis and Management  Metrics  Managing the Testing Process