Writing Better Requirements

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

© 2014 Systems and Proposal Engineering Company. All Rights Reserved Using Natural Language Parsing (NLP) for Automated Requirements Quality Analysis Chris.
Writing Better Requirements DRAFT
Lecture 5: Requirements Specifications
Software Requirements
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
1 Software Requirements Specification Lecture 14.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Project Documentation and its use in Testing JTALKS.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Lecture 18: Specifications
ECE450 – Software Engineering II
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Software Requirements Engineering CSE 305 Lecture-2.
Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Writing requirements specifications. Why we need requirements specifications To give structure to your desires To avoid waste of resources To avoid slippage.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
Systems Development Life Cycle
1 Quality Attributes of Requirements Documents Lecture # 25.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Miguel Garzón - University of Ottawa Based on slides by Gunter Mussbacher with material from: Ian Zimmerman (Telelogic, 2001), Ivy Hooks (Compliance Automation,
Software Requirements Specification (SRS)
Software Requirements Specification Document (SRS)
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
 System Requirement Specification and System Planning.
SEG 3300 W RITING B ETTER R EQUIREMENTS Supplement to Chapter 4 Source: Ian Zimmerman, Daniel Amyot Telelogic, July 9, 2001.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
1 Requirements Management - II Lecture # Recap of Last Lecture We talked about requirements management and why is it necessary to manage requirements.
Daniel Amyot, University of Ottawa Based on slides by Gunter Mussbacher (2009) and Stéphane Somé (2008) with material from these standards: IEEE ,
Human Computer Interaction Lecture 21 User Support
Pepper modifying Sommerville's Book slides
Testability.
(Winter 2017) Instructor: Craig Duckett
Introduction To DBMS.
Writing Better Requirements
Project Management: Messages
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Cases Discuss the what and how of use cases: Basics Benefits
Chapter 4 – Requirements Engineering
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Requirements Validation – II
Human Computer Interaction Lecture 21,22 User Support
Writing Requirements Lecture # 23.
Requirements Engineering (continued)
Chapter 18 Maintaining Information Systems
Computer Aided Software Engineering (CASE)
By Dr. Abdulrahman H. Altalhi
CSC480 Software Engineering
Software Requirements analysis & specifications
Writing Better Requirements
Tools of Software Development
Use Cases CS/SWE 421 Introduction to Software Engineering Dan Fleck
Software Requirements Specification Document
Requirements Factoring Themes
Software Requirements Specification (SRS) Template.
The ultimate in data organization
Object-Oriented Software Engineering
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Writing Better Requirements SEG3101 Writing Better Requirements Daniel Amyot, University of Ottawa Based on slides by Gunter Mussbacher with material from: Ian Zimmerman (Telelogic, 2001), Ivy Hooks (Compliance Automation, 1998)

Table of Contents Anatomy of a Good / Bad Requirement Standard for Writing a Requirement Writing Pitfalls to Avoid A Few Simple Tests… The greatest challenge to any thinker is stating the problem in a way that will allow a solution.1 [1] Bertrand Russell, 1872-1970

Anatomy of a Good Requirement Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Anatomy of a Good Requirement The challenge is to seek out the system under discussion, end result, and success measure in every requirement Defines the system under discussion Verb with correct identifier (shall or may) The Online Banking System shall allow the Internet user to access her current account balance in less than 5 seconds. Defines a positive end result Quality criteria

Example of a Bad Requirement Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Example of a Bad Requirement Cannot write a requirement on the user No identifier for the verb X The Internet User quickly sees her current account balance on the laptop screen. Vague quality criteria What versus how

Standard for Writing a Requirement Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Standard for Writing a Requirement Each requirement must first form a complete sentence Not a bullet list of buzzwords, list of acronyms, or sound bites on a slide Each requirement contains a subject and predicate Subject: a user type (watch out!) or the system under discussion Predicate: a condition, action, or intended result Verb in predicate: “shall” / “will” / “must” to show mandatory nature; “may” / “should” to show optionality The whole requirement provides the specifics of a desired end goal or result Contains a success criterion or other measurable indication of the quality

Standard for Writing a Requirement Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Standard for Writing a Requirement Several standards define fairly precisely how to use key words (verbs and adjectives) in their documents. Example: IETF RFC 2119: Key words for use in RFCs to Indicate Requirement Levels MUST, REQUIRED or SHALL: mean that the definition is an absolute requirement of the spec. MUST NOT or SHALL NOT: absolute prohibition SHOULD or RECOMMENDED: think twice about not doing it! SHOULD NOT or NOT RECOMMENDED: think twice about doing it! MAY or OPTIONAL: truly optional

Standard for Writing a Requirement Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Standard for Writing a Requirement Look for the following characteristics in each requirement Feasible (not wishful thinking) Needed (provides the specifics of a desired end goal or result) Testable (contains a success criterion/other measurable indication of quality) Clear, unambiguous, precise, one thought Prioritized ID Note: several characteristics are mandatory (feasible, needed, testable) whereas others improve communication

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid Never describe prematurely how the system is going to achieve something (over-specification), always describe what the system is supposed to do Refrain from designing the system prematurely Danger signs: using names of components, materials, software objects, fields & records in the user or system requirements Designing the system too early may possibly increase system costs Do no mix different kinds of requirements (e.g., requirements for users, system, and how the system should be designed, tested, or installed) Do not mix different requirements levels (e.g., the system and subsystems) Danger signs: high level requirements mixed in with database design, software terms, or very technical terms Beware: may depend on the level of abstraction… Your what is my how!

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid “What versus how” test X The system shall use Microsoft Outlook to send an email to the customer with the purchase confirmation. The system shall inform the customer that the purchase is confirmed.

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid Never build in let-out or escape clauses Requirements with let-outs or escapes are dangerous because of problems that arise in testing Danger signs: if, but, when, except, unless, although These terms may however be useful when the description of a general case with exceptions is much clearer and complete that an enumeration of specific cases Avoid ambiguity Write as clearly and explicitly as possible Ambiguities can be caused by: The word or to create a compound requirement Poor definition (giving only examples or special cases) The words etc., …and so on (imprecise definition)

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid Do not use vague indefinable terms Many words used informally to indicate quality are too vague to be verified Danger signs: user-friendly, highly versatile, flexible, to the maximum extent, approximately, as much as possible, minimal impact X The EasyEntry System shall be easy to use and require a minimum of training except for the professional mode.

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid Do not make multiple requirements Keep each requirement as a single sentence Conjunctions (words that join sentences together) are danger signs: and, or, with, also Do not ramble Long sentences with arcane language References to unreachable documents X The Easy Entry Navigator module shall consist of order entry and communications, order processing, result processing, and reporting. The Order Entry module shall be integrated with the Organization Intranet System and results are stored in the group’s electronic customer record.

Writing Pitfalls to Avoid Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Writing Pitfalls to Avoid Do not speculate There is no room for “wish lists” – general terms about things that somebody probably wants Danger signs: vague subject type and generalization words such as usually, generally, often, normally, typically Do not express suggestions or possibilities Suggestions that are not explicitly stated as requirements are invariably ignored by developers Danger signs: may, might, should, ought, could, perhaps, probably Avoid wishful thinking Wishful thinking means asking for the impossible (e.g., 100% reliable, safe, handle all failures, fully upgradeable, run on all platforms) X The Easy Entry System may be fully adaptable to all situations and often require no reconfiguration by the user.

A Few Simple Tests…(1) “What versus how” test discussed earlier Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools A Few Simple Tests…(1) “What versus how” test discussed earlier Example: a requirement may specify an ordinary differential equation that must be solved, but it should not mention that a fourth order Runge-Kutta method should be employed “What is ruled out” test Does the requirement actually make a decision (if no alternatives are ruled out, then no decision has really been made) Example: a requirement may be already covered by a more general one Source: Spencer Smith, McMaster U.

The software shall be reliable. Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools A Few Simple Tests…(2) “Negation” test If the negation of a requirement represents a position that someone might argue for, then the original decision is likely to be meaningful Failing that test may indicate the presence of a goal that still needs to be refined into requirements X The software shall be reliable. Source: Spencer Smith, McMaster U.

Towards Good Requirements Specifications (1) Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Towards Good Requirements Specifications (1) Valid (or “correct”) Expresses actual requirements Complete Specifies all the things the system must do (including contingencies) ...and all the things it must not do! Conceptual Completeness (e.g., responses to all classes of input) Structural Completeness (e.g., no TBDs!!!) Consistent Does not contradict itself (satisfiable) Uses all terms consistently Note: inconsistency can be hard to detect, especially in concurrency/timing aspects and condition logic Formal modeling can help Beneficial Has benefits that outweigh the costs of development Source: Adapted from Blum 1992, pp164-5 and the IEEE-STD-830-1993

Towards Good Requirements Specifications (2) Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Towards Good Requirements Specifications (2) Necessary Doesn’t contain anything that isn’t “required” Unambiguous Every statement can be read in exactly one way Clearly defines confusing terms (e.g., in a glossary) Uniquely identifiable For traceability and version control Verifiable A process exists to test satisfaction of each requirement “every requirement is specified behaviorally” Understandable (clear) E.g., by non-computer specialists Modifiable Must be kept up to date! Source: Adapted from Blum 1992, pp164-5 and the IEEE-STD-830-1993

Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Typical Mistakes Noise = the presence of text that carries no relevant information to any feature of the problem Silence = a feature that is not covered by any text Over-specification = text that describes a feature of the solution, rather than the problem Contradiction = text that defines a single feature in a number of incompatible ways Ambiguity = text that can be interpreted in >=2 different ways Forward reference = text that refers to a feature yet to be defined Wishful thinking = text that defines a feature that cannot possibly be validated Jigsaw puzzles = e.g., distributing requirements across a document and then cross-referencing Inconsistent terminology = inventing and then changing terminology Putting the onus on the development staff = i.e. making the reader work hard to decipher the intent Writing for the hostile reader (fewer of these exist than friendly ones) Source: Steve Easterbrook, U. of Toronto

Patterns for Functional Requirements: Easy Approach to Requirements Syntax (EARS) A Ubiquitous requirement is continually active and takes the form The <system name> shall <system response> A State-driven requirement is active while some precondition remains true and takes the form WHILE <precondition> the <system name> shall <system response> An Event-driven requirement is activated when a triggering event is detected at the system boundary and takes the form WHEN <trigger> the <system name> shall <system response> An Option requirement is used for systems that include a particular feature and take the form WHERE <feature is included> the <system name> shall <system response> An Unwanted Behavior requirement defines the required system response to an unwanted external event and takes the form IF <trigger> THEN the <system name> shall <system response> The basic EARS patterns can be combined to build Complex requirements, for example WHILE <precondition> WHEN <trigger> the <system name> shall <system response>. A. Mavin et al., Listens Learned (8 Lessons Learned Applying EARS). RE’16, 276-282, IEEE CS, 2016

Rate these Requirements Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Rate these Requirements X The Order Entry system provides for quick, user- friendly and efficient entry and processing of all orders. X Invoices, acknowledgments, and shipping notices shall be automatically faxed during the night, so customers can get them first thing in the morning. X Changing report layouts, invoices, labels, and form letters shall be accomplished. X The system shall be upgraded in one whack. X The system has a goal that as much of the IS data as possible be pulled directly from the T&M estimate.

Sample Tool: Respecify Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Sample Tool: Respecify Respecify: Web-based requirements authoring tool Uses constrained natural language (CNL) to guide the requirements and specification authoring process Completions, glossary, Wordnet synonyms/semantics, relationships… Improved consistency! M. Ledger: A demonstration of Respecify: a requirements authoring tool harnessing CNL. RE 2017. IEEE CS, 472-473

Other Commercial Tool: RAT Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Other Commercial Tool: RAT Requirements Authoring Tool (RAT) https://www.reusecompany.com/authoring-tools Claims: Tools and plug-ins to assist you in the activity of writing requirements and other natural language texts. Performs Correctness and Consistency analysis on the fly Suggests controlled-vocabulary items based on a central knowledge base Fully integrated into your Requirements Management Tool and Modelling Tool

Key Questions and Characteristics Martha can’t … Good & Bad Standard Pitfalls to Avoid A Few Simple Tests Summary & Tools Key Questions and Characteristics Remember the key questions “Why?” or “What is the purpose of this?” Feasible Needed Testable