Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.

Slides:



Advertisements
Similar presentations
What colour is the house on the hill? Waterloo – Wellington IIBA Chapter presentation April 11, 2007 David Milne.
Advertisements

1 Presented By: Sonya Hawkins.  Discuss Scope  Discuss Requirements 2.
Characteristics of a good SRS
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Shiva Vafadar 1 آزمايشکاه سيستم های هوشمند ( Requirements Engineering : A Roadmap Software Requirements.
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Management.
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
1 Software Requirements Specification Lecture 14.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
The Software Development Life Cycle: An Overview
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
CC20O7N - Software Engineering 1 CC2007N Software Engineering 1 Requirements Engineering Practices with Techniques.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Requirements Development VIASYS Healthcare. What is a requirement? 1) A condition or a capability needed by a user to solve a problem or achieve an objective.
المحاضرة الثالثة. 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.
Software Inspections. Defect Removal Efficiency The number of defects found prior to releasing a product divided by The number of defects found prior.
ITEC 370 Lecture 8 Requirements. Review Requirements –What are some of the characteristics of a good requirement? –What are use cases?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Requirement-Related Risks Extracted from the book: Software Requirements By Karl E.Wiegers.
Requirement analyzing & understanding RA&UID
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Product Design Finalization; Inspections.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 7: Requirements Engineering
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Chapter 6+7 in textbook 1 Chapter 4 Software Requirements 1.
Chapter 4 Software Requirements
1 Quality Attributes of Requirements Documents Lecture # 25.
Requirements Validation
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Week 3: Requirement Analysis & specification
Requirements Engineering Process
Smart Home Technologies
Software Requirements Specification (SRS)
Lecture 4: Requirements Engineering COSI 120b, Principles of Software Engineering.
Evaluating Requirements
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement Engineering
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
1 Modern Systems Analysis and Design Hoffer, George & Valacich Chapter 13 Finalizing Design Specifications Course: Physical System Design and Implementation.
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.
 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.
Chapter 2 Object-Oriented Paradigm Overview
CMPE 280 Web UI Design and Development August 29 Class Meeting
Requirements Engineering (continued)
Chapter 4 Software Requirements
Software Requirements analysis & specifications
UNIT II.
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Software Reviews.
Presentation transcript:

Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos

The Problem Many Software Requirements Specifications (SRS) filled with badly written requirements Poor requirements cannot lead to excellent software Few software developers educated about writing quality requirements Not many examples of good requirements available to learn from Few projects have good ones to share Few companies willing to place their product specifications in public domain No formulaic way to write good requirements – largely a matter of experience More expensive to fix defective requirements in later stage of development or when customer calls

Quality Requirement Characteristics Correct Feasible Necessary Prioritized Unambiguous Verifiable

Correct Requirement Accurately describes functionality to be delivered Reference for correctness – source of requirement Actual customer Higher-level system requirements specification Need user representatives to determine correctness of user requirements Inspection of requirements Prevent developers from “guessing”

Feasible Requirement Implement within known capabilities and limitations of system environment Developer should work with requirements analysts or marketing personnel throughout elicitation Provides reality check on technical feasibility of requirement What can and cannot be done What can be done only at excessive cost What can be done only with other tradeoffs Example: “The product shall switch between displaying and hiding non-printing characters instantaneously.” Not feasible – computers cannot do anything instantaneously

Necessary Requirement Something customer really needs Something required for conformance to external requirement, external interface, or standard Should be traceable back to its source Source should be someone authorized to specify requirements Untraceable requirements may not really be necessary

Prioritized Requirement Assigns implementation priority for particular product release Value provided to customer Relative cost of implementation Relative technical risk associated with implementation Assigned by customers or their surrogates Gives project manager more control New requirements added during development Budget cuts Schedule overruns Team member departure Requirement priority levels example High priority – must be in next product release Medium priority – necessary, but can be deferred to later release Low priority – nice to have, but may be dropped if insufficient time or resources

Unambiguous Requirement Reader should be able to draw only one interpretation Multiple readers should arrive at same interpretation Should be void of subjective words (easy, simple, rapid, efficient, etc.) Should be written in simple, straightforward language of user domain Reveal ambiguity Formal inspections of requirements specification Write test cases from requirements Create user scenarios showing expected behavior Example: “The HTML Parser shall produce an HTML markup error report which allows quick resolution of errors when used by HTML novices.” Ambiguous – the word “quick”

Verifiable Requirement Determine if requirement properly implemented in product Devise tests Use inspection or demonstration Needs to be consistent, feasible, and unambiguous to be verifiable

Quality SRS Characteristics Complete Consistent Modifiable Traceable

Complete SRS No requirements or necessary information should be missing Hard to spot missing requirements Ways to achieve completeness Use case method – focus on user tasks rather than system functions during elicitation Graphical analysis models – represent different views of requirements Flagging missing requirements information TBD (“to be determined”) – resolved before product development Example: “The product shall provide status messages at regular intervals not less than every 60 seconds.” Incomplete – what are the status messages? how are they supposed to be displayed to the user?

Consistent SRS Different requirements should not conflict Disagreements among requirements must be resolved before development can proceed Ensure requirements modification does not introduce inconsistencies

Modifiable SRS Should be easy to revise Maintain history of changes to each requirement Uniquely label each requirement Group related requirements together Create table of contents, index, and cross- reference listing

Traceable SRS Link each requirement to its source Higher-level system requirement Use case Voice-of-the-customer statement Link each requirement to its development Design elements Source code Test cases Uniquely label each requirement Express each requirement in a structured, fine- grained way

Quality Requirements Guidelines Keep sentences and paragraphs short Use active voice Use proper grammar, spelling, and punctuation Use terms consistently and define in glossary or data dictionary Read requirements from developer’s perspective (to check if well-defined) Use right level of granularity Avoid long narrative paragraphs containing multiple requirements Write individually testable requirements Use consistent level of detail throughout document Avoid stating requirements redundantly Makes maintenance of document easier Less vulnerable to inconsistencies