A recorded intermediate or final result generated in a work process.
Stored electronically as files, databases, or RE tools.
Can be represented in:
Natural language
Template-based
Model-based
Drawings or prototypes
Will be discussed in subsequent topics.
Temporary
Created to support communication and shared understanding.
Evolving
Grow in several iterations.
Durable
Have been baselined or released.
Business requirements (high-level)
System requirements (medium-level)
Software components (detailed-level)
Factors to consider the level of detail:
The problem and development context.
The degree of shared understanding of the problem.
The degree of freedom left to designers and programmers.
Availability of rapid stakeholder feedback during design and implementation.
Cost vs value of a detailed specification.
Imposed standards and regulatory constraints.
Considering multiple aspects
Functional
Quality
Constraints
Functional requirements focus on different aspects of a system:
Function and flow
Structure and data
State and behavior
Requirements can only be understood in context:
System context
System boundary and external interfaces
Select a work product type that fits the intended purposes
Avoid redundancy by referencing content instead of repeating the same content
Ensure that there are no inconsistencies between work products
Use term consistently
Structure work products appropriately
In which work products shall the requirements be recorded and what purpose?
Which abstraction levels need to be considered?
Up to which level of detail must requirements be documented on each abstraction level?
How shall the requirements be represented in these documents?
Advantages of using natural language:
Extremely expressive and flexible
Used in everyday life, so no specific training is required to read and understand texts in natural language
Incomplete descriptions
All place holders of the verb used must be fulfilled
Unspecific nouns
āThe data shall be displayed for the user on the terminal.ā
Which data exactly?
Which user exactly?
On which terminal exactly?
Examples:
the user, the controller, the system, the message, the data, the function
Unspecified amounts like the lines, the automobiles
āThe system shall display the calculated data for the registered user, on the terminal on which he registered.ā
Incomplete conditions
In the description of a condition, often the action is missing that should be taken if the condition is not fulfilled.
āIn case of an error in the automated data transfer, the possibility must exist, to edit the individual fields of the x-picture.ā
What possibility must exist if there is no error?
Which fields must be editable, all editable fields, or individual editable fields?
Trigger words:
Ifā¦then, in case, whether, depending on
Incomplete comparisons
āThe new video app is much betterā
Compared to?
What aspect?
Passive voice
āThe status of the items repaired will be updatedā
Universal quantifiers
Universal quantifiers specify amounts of frequencies and define a set of objects. Danger, that not all objects should be treated in the same way.
āEach message must be provided for the record with a time stamp.ā
Really all messages?
Examples:
each, every, never, always, each time, in the evening
all, some, nothing, none
Nominalizations
āIn case of a system crash, a restart of the system shall be performedā
Who performs the system restart?
What exactly happens during a system restart?
The terms system crash and restart each describe a process that should be analysed more precisely.
Typical examples or nominalization: transmission, input, booking, acceptance.
Use nominalization only when the process behind it is fully defined (should be in the glossary)
Acceptable, adequate
Not verifiable
As much as, reasonable
Not verifiable; better: still to quantify, to be doneā
At least, at most, fairly
Minimum and maximum have to be specified
Between
The endpoints are including or excluding?
Efficient
Not verifiable, allowed only on abstract level
Quickly
Specify the speed
Flexible
Better: describe the reaction of change
Corrected, better
Need to quantify
Amongst others, similar to, not only
List of closed amount of possibilities
Maximize, minimize, optimize
Specify quantifiable values
Robust
Better: describe on how the system must react to errors
Transparent, seamless, pleasant
List measurable properties
Various
Specify measurable of quantifiable amounts
Should not
Better: specify a positive list of allowed possibilities
State-of-the-art
Does not exist, tomorrow there will be something else
Enough
Specify exact amount
Supports, facilitates
The individual activities have to be specified
User friendly, easy, uncomplicated
Usability must be described in detail ā UI Prototyping
Normal, ideally
Describe the normal developments and the deviations (alternatives)
Understandably, if necessary, when appropriate
Specify the exact conditions, when something is appropriate
Used to overcome shortcomings of language-based documentation
Provide pre-defined structures
Phrase-template: pre-defined syntactic structure for a phrase that expresses a requirement, i.e., individual requirement or user-story
Form template: pre-defined fields in a form to be filled e.g., writing a use case or measurable quality requirements
Document template: pre-defined structure for a requirements document
Indication | Auxiliary verb | Meaning |
---|---|---|
Mandatory | shall | |
Strongly desired | should | Not mandatory but strongly desired |
Factual statement | will | Factual statement that is not considered as a requirement |
Suggestion | may | Suggestion |
Ubiquitous requirements (must always hold):
The shall .
Event-driven requirements (triggered by an external event):
WHEN the shall .
Unwanted behavior (describing situations to be avoided):
IF , THEN the shall .
State-driven requirements (apply only in certain states):
WHILE the shall .
Optional features (applicable only if some feature is included in the system):
WHERE the shall .
A User Story is a one-sentence description of a work-related task done by a user to achieve some goal or result
Acceptance Criteria identify the features that must be present at the completion of the task
The template for a user story description is: āAs a I want to so that
Story ID:
Story Title:
Importance:
User Story:
As a:
I want:
So that:
Estimate:
Acceptance Criteria
And I know I am done when:
Type:
Search
Workflow
Manage Data
Payment
Report/View
Example: "As a line manager, I want to make ad hoc inquiries to the accounting system so that I can do financial planning for my department."
User Story
As a shipping clerk, I want to ship an order as accurately as possible as soon as the order details are available.
Acceptance Criteria:
Available order details must pop up on the screen when available.
Portable display and scan device would cut time in half.
Sort the items by bin location.
Indicate the number of items in stock for each item and mark backorder for those not available.
Recommend shipper based on weight, size, and location.
Print out shipping label for selected shipper.
Name
< A short active verb phrase>
Precondition
Success end condition
Failed end condition
Primary actor
Other actors
Trigger
Normal flow
<Description of the main success scenario in a sequence of steps:
Alternate flows
Extensions
Related information
Template | Description | Example |
---|---|---|
ID | <> | R137.2 |
Goal | <> | Confirm room reservations immediately |
Scale | <> | Elapsed time in seconds (ratio scale) |
Meter | <> | Timestamping the moments when the user hits the "Reserve" button and when the app has displayed the confirmation. Measuring the time difference. |
Minimum | <> | Less than 5 s in at least 95% of all cases |
OK range | <> | Between 0.5 and 3 s in more than 98% of all cases |
Desired | <> | Less than 0.5 s in 100% of all cases |
Part I: Introduction
System purpose
Scope of system development
Stakeholders
Part II: System overview
System vision and goals
System context and boundary
Overall system structure
User characteristics
Part III: System requirements
Organized hierarchically according to system structure, using a hierarchical numbering scheme for requirements
Per subsystem/component:
Functional requirements (structure and data, function and flow, state and behavior)
Quality requirements
Constraints
Interfaces
References
Appendices
Glossary (if not managed as a work product of its own)
Assumptions and dependencies
Advantages | Disadvantages |
---|---|
Provide a clear, re-usable structure | Focused on formal completion of the template rather than the content |
Help to capture the most relevant information | Aspects that are not included in the template are more likely to be omitted |
Make requirements and requirement specifications look uniform | |
Improve the overall quality of requirements and requirement specifications |