3. Work products and documentation practices Flashcards
Work product (Artifact)
a recorded intermediate or final result generated in a work process
Characteristics of work products
- purpose
- size
- representation
- lifespan
- storage
Representation of requirements
- natural language
- templates
- models
Overview of RE work products
Single requirements
1. Individual requirement
2. User story
Coherent sets of requirements
1. Use case
2. Graphic model
3. Task description
4. External interface description
5. Epic
6. Feature
Documents of documentation structures
1. System requirement specification
2. Product and sprint backlog
3. Story map
4. Vision
Other WP
1. Vision
2. Textual note or graphic sketch
3. Prototype
Categories of Work Products w.r.t. lifespan
- temporary
- evolving
- durable
Temporary requirements
created to support communication and create shared understanding.
discarded after use, no metadata is kept
Evolving work products
emerge in several iterations
metadata shell be kept
change control might be needed
Durable work products
baselined or released
full set of metadata should be kept
strickt change procedure
Typical levels of abstraction for requirements
- business
- system
- component
may co-evolve
Typical levels of abstraction for requirements depends on
- subject to be specified
- purpose of the specification
do not mix the levels!
The level of details of the requirements depends on
- problem and project context
- degree of shared understanding of the problem
- degree of freedom left to designers and programmers
- ability of rapid stakeholder feedback
- cost vs value of a detailed specification
- Standards and regulations
General RE documentation guidelines
- Select a wp type that fits the intended purpose
- Avoid redundancy by referencing content instead of repeating the same content again
- Avoid inconsistencies between wp, particularly when they cover different aspects
- use terms consistently
- structure was appropriately
Work product planning
- in which wp shall the requirements be recorded and for what purpose
- which abstraction level to take
- up to which level of detail to document at each level
- how shall the requirements be represented in these was
Why define RE work products at an early stage
- Help in the planning of efforts and resources
- ensures that appropriate notations are used
- ensures that all results are recorded in the right wps
- ensures that no major reshuffling of information and final editing is needed
- helps to avoid redundancy
Aspects to be considered
- aspects within functional requirements
- quality requirements (usability, reliability, security, performance)
- constraints
- context and boundary / domain assumptionsG
Aspects within functional requirements
- Structure and data (requirements concerning static structure of the system and data the system must know)
- Function and flow (functions that a system shall provide and flow of control)
- State and behavior (state dependent behavior of a system - how react to external events, depending on the current state)
Performance requirements deal with
- Time
- Volume
- Frequency
- Throughput
- Resource consumption
Documenting quality requirements
Very difficult
- qualitative representation - hard to validate, ambiguous
- quantitative representation - measurable, but can be expensive to specify
- operationalised representations - quality requirement in terms of functional requirements for achieving the desired quality (i.e. no login possible)
Quantitative representation of quality requirements suffice in the following situations
- there is sufficient implicit shared understanding
- stakeholders, RE and developers agree on a known solution that satisfies the requirements
- stakeholders only want to give general quality directions and trust the developers to get the detail right
- short feedback loops are in place and can be detected early
- able to generalise from examples
- requirements are not safety critical
Categories of constraints
- technical
- legal
- organisational
- cultural
- environmental
- physical
- particular solutions required by stakeholders
Glossary content
- definitions for all terms that are relevant for the system
- all abbreviations and acronyms
- homonyms shell be avoided
helps to establish shared understanding
Glossary rules
- creation and maintenance (centrally over the entire project, one person responsible, stakeholders must agree on terminology)
- usage: must be mandatory
Standard best practice in RE
Frequently used requirements documents
- stakeholder requirements specification
- user requirements specification
- system requirements
- business requirements
- vision documents (conceptual imagination of a future system describing its key characteristics and how it creates value to the user)
Frequently used documentation structures
- product backlog
- sprint backlog
- story map (time & content)
The choice of documentation structure depends on
- development process chosen
- project type and domain
- contract
- size of the document
Prototype
A preliminary partial realisation of certain characteristic of a system
Usage of prototypes
- exploratory prototypes
- experimental prototypes
- evolutionary prototypes
exploratory prototypes
used to create shared understanding, clarify requirements, validate requirements at different levels of fidelity.
temporary work products discarded after use
specification by example
Evolutionary prototype
pilot systems that form the core of a system to be developed.
Types of exploratory prototypes (by degree of fidelity)
- wireframes
- mock-ups
- native prototype
Quality criteria for single requirements
- adequate !(true and agreed stakeholder needs)
- necessary
- unambiguous
- complete (self contained)
- understandable !
- verifiable
Quality criteria for RE work products
- consistent
- non-redundant
- complete (all relevant requirement at this point in time)
- modifiable (without degrading its quality)
- traceable
- conformant
Kano model
classifies features of a system into categories. looks at requirements from the perspective of the customers
- Delighters
- Satisfiers
- Dissatisfies
- (old) indifferent
- (old) hate
Q1. What would you feel if the feature was present in the system
Q2. What would you feel if the feature was absent?
NB all categories can be linked to distinct elicitation techniques
Delighters
- excitement factors / unconscious
feature the customer is unaware of
if absent, no-one complains, if present - can fe a differentiating feature
Satisfiers
something a customer specifically asks for
the more you put, the more people are happy
Dissatisfies
feature is so obvious, customer can’t imagine it not being part of the system
tacitly considered as must-haves
Elicitation techniques
- Gathering techniques
- Design and idea generation techniques
Careful: functional requirements are overrated and quality and constraints get less attention
Selecting the right elicitation technique
- type of system
- software development life cycle model
- people involved
- organisation setup
Gathering techniques an be subdivided
- questioning techniques
- collaboration techniques
- observation techniques
- artefact based techniques
Questioning techniques
- interviews
- quetionnairs
Interviews
- can be used to elicit high level requirements as well as specific ones
- typically requirements are satisfiers
- need clear goals and good preparation
Questionnaires
- larger group of stakeholders
- Quantitative questionnaires - confirm hypothesis or previously elicited requirements
- Qualitative quetionnaires - open ended questions - find new requirements
- Often a next step after obtaining a preliminary idea based on a series of interviews in order to validate these ideas with a large group
Collaboration techniques
- Workshops
- Crowd-based requirements engineering