ser_ch5
TRANSCRIPT
© 2005 IAS, Universität Stuttgart 1
SER
5 Requirements Engineering
Software Engineering for Real-Time Systems
5.1 What are requirements?
5.2 Requirements Engineering
5.3 Specifying Requirements
5.4 Requirements Tracing
5.5 Summary
© 2005 IAS, Universität Stuttgart 2
SER5.1 What are requirements?
Poor Requirements Management Puts Projects at Risk for Failure
Source: Standish Group 2000
success26%
late or over budget
46%
cancelled28%
© 2005 IAS, Universität Stuttgart 3
SER
– Out of control• unclear requirements
• changing requirements
• unstable baselines
• ad hoc requirements management
• big gaps between customer expectations and actual product contents
– Poor estimates
• planning out of reach
• insufficient resources
5.1 What are requirements?
Why Improving on Requirements Management?
– Inadequate management
• no commitments
• volatile or missing decisions
• plans not followed through
• subcontracting just happens
40..60% of all faults start out from requirements
© 2005 IAS, Universität Stuttgart 4
SER
What are Requirements ?
– ambiguous
– not accomplishable
– over-determined
– incomplete
– inconsistent
5.1 What are requirements?
List of wishes:
a bicycle like ‘Joe‘ a round ball a fast car watching the Simpsons a veteran car
List of wishes:
a bicycle like ‘Joe‘ a round ball a fast car watching the Simpsons a veteran car
Requirements typically are:
© 2005 IAS, Universität Stuttgart 5
SER5.1 What are requirements?
Terminology
A requirement is
– A condition or capability needed by a user to solve a problem or achieve an objective.
– A condition or capability that must be met or possessed by a product or product component to satisfy a contract, standard, specification, or other formally imposed documents.
Requirements management is a systematic approach to
– Eliciting, organizing, and documenting all the requirements (functional, non-functional, non-technical) of the system, and
– Establishing and maintaining agreement between the customer/user and the project team on the changing requirements of the system
Source: IEEE 610.12-1990
© 2005 IAS, Universität Stuttgart 6
SER5.1 What are requirements?
Viewpoints on Requirements
– Description of an attribute
– Description of a functionality
– Description of a constraint
– The sum of all requirements defines the scope of the product
– Described in a way to allow validating whether the requirement is actually realized.
functional requirement
Test cases
The requirements description determines, what a product “should be able to do” and “what it looks like”,
NOT : how it is realized.
nonfunctional requirement
© 2005 IAS, Universität Stuttgart 7
SER5.1 What are requirements?
Characteristics of requirements (1)
– Unambiguous -- Every statement has one interpretation. Terms are clear and well defined.
– Complete -- All significant requirements are included. No items have been left for future definition.
– Verifiable -- All features specified as part of the project have a corresponding test to determine whether they have been successfully delivered.
– Consistent -- Conflicting terminology, contradictory required actions, and impossible combinations are notably absent.
– Modifiable -- Redundancy is absent; index and contents are correct.
– Traceable -- Each referenced requirement is uniquely identified.
– Correct -- Every stated requirement represents something required of the system to be built.
Potential conflict: comprehensible requirements in natural language might not fit into this list of characteristics.
© 2005 IAS, Universität Stuttgart 8
SER
Characteristics of requirements (2)
5.1 What are requirements?
– Reference book for developers, testers, customers, users, marketing, etc
• determining of project relevant contents and terminology
• classification
• keywords
When describing technical requirements you can distinguish between:
– functional requirements(What is the software system that is being developed supposed to do?) classification
– non functional requirements(Which attributes apply to the functional requirements?)
© 2005 IAS, Universität Stuttgart 9
SER
Functional requirements
– definition: input
– definition: output
– data models
– definition: functions, processes, events
– definition: interfaces
5.1 What are requirements?
© 2005 IAS, Universität Stuttgart 10
SER
Nonfunctional requirements
– performance requirements• amount of users
• extent of data
• response times
• process frequency
– quality requirements• dependability
• Safety
• security
– implementation requirements• methods
• guidelines
• acceptance
• documentation
• Resources (skills, certification)
5.1 What are requirements?
© 2005 IAS, Universität Stuttgart 11
SER
Example: RTOS
– Embedded systems often ask for soft or hard real-time requirements. During requirements engineering, it’s the task of the systems engineer to determine how this translates into system specs (cost, effort, skills!)
– On top of ensuring these requirements is a real-time OS (RTOS). RTOS form the foundation of an embedded system.
– To be considered real-time, the RTOS must provide dependability, predictability, simultaneity, and timeliness.
– Precision timing in a RTOS is achieved by (selection criteria)• Utilizing asynchronous threads (I.e., Multiple threads of execution
(multi-threaded); Priority scheduling to meet critical thread deadlines; Low/deterministic context switching time; Low/deterministic inter-thread communication time)
• High resolution deterministic timers (I.e., Needed to support periodic threads; Needed for system timeout)
• Configurability (I.e., Many real-time systems are also embedded, which places limitations on the amount of memory, type of processor etc.)
5.1 What are requirements?
© 2005 IAS, Universität Stuttgart 12
SER
Classification of Requirements
5.1 What are requirements?
Requirements
Non-Technical
Technical
Functional Non-Functional
external- User interface- Interworking
internal- Load balancing- Power supply
external- Performance- Reliability- Usability
internal- Testability- Maintain-ability
Cons-traints
- Standards- Environmental- Organization
Proper-ties
- Cost- Marketing
Source: Ebert, 1998
© 2005 IAS, Universität Stuttgart 13
SER5.1 What are requirements?
Functional requirements are accompanied with nonfunctional and nontechnical requirements
Z 1
Z 2
Z 3
Z 4
D
IN
§
functional requirements
non functional requirements, regulations, standards
what ? what has to be considered ?
user requirement specification/system requirement specification
Constraints,attributes
VED
TÜV
© 2005 IAS, Universität Stuttgart 14
SER
Difference between functional and non functionalrequirementsillustrated by the example of a heating regulator
Functional requirements:
In dependence of the measured external temperature TA and the adjusted desired temperature TS a regulation of the boiler temperature TK should be realized. The regulation is realized by turning the burner fan on or off :
State of the burner = function (TA, TS, TK )
The deviation may not exceed 2° C
5.1 What are requirements?
© 2005 IAS, Universität Stuttgart 15
SER
a) The realization of the regulator has to be achieved with a micro computer using the programming language Ada.
b) The heating regulator has to run with a failure probability of maximal 0,01; given a maintenance interval of one year.
c) During the adjustment of the heating regulator the relevant rules taken from the “Regulation for Heating Systems“ (HeizAnIV - 22.09.1978) have to be taken into account.
d) Due to the related costs only analog-digital converter with low resolutions (10 bits) can be used.
5.1 What are requirements?
Further Attributes:non functional requirements
© 2005 IAS, Universität Stuttgart 16
SER
5 Requirements Engineering
Software Engineering for Real-Time Systems
5.1 What are requirements?
5.2 Requirements Engineering
5.3 Specifying Requirements
5.4 Requirements Tracing
5.5 Summary
© 2005 IAS, Universität Stuttgart 17
SER
Goals of requirements engineering
– support determining the requirements
– support the software / systems engineers in editing the requirements
• specify
• classify
• put in a hierarchical order
• trace
– support validating the system (quality assurance)
5.2 Requirements Engineering
interface
Test starts already in early stages
© 2005 IAS, Universität Stuttgart 18
SER
Agreement on What the System Should Do
5.2 Requirements Engineering
The Goal
ValidationRequirementsVerification
CustomerUser Community
Requirements
System To Be Built
© 2005 IAS, Universität Stuttgart 19
SER
Conceptual formulation versus conception = WHAT versus HOW
5.2 Requirements Engineering
professor student
requirements specification
“That‘s what I want..."
Concept (design specification)
“That‘s how I want to do this"
customer supplier
© 2005 IAS, Universität Stuttgart 20
SER
Viewpoint-oriented elicitation
Stakeholders represent different ways of looking at a
problem or problem viewpoints
This multi-perspective analysis is important as there is
no single correct way to analyse system requirements
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 21
SER
Example: ATM viewpoints
– Bank customers
– Representatives of other banks
– Hardware and software maintenance engineers
– Marketing department
– Bank managers and counter staff
– Database administrators and security staff
– Communications engineers
– Personnel department
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 22
SER
Typical problems for system analysts
– vague formulations
– vague terms
– incomplete descriptions
5.2 Requirements Engineering
First of all the system analyst has to understand the conceptual formulation as described by the customer
© 2005 IAS, Universität Stuttgart 23
SER
Activities during the initial phases of a project:
– Analysis of the present state of the technical process, of already available devices or software as well as of organizational circumstances
5.2 Requirements Engineering
Req
uire
men
tsE
ngin
eerin
g – Determination and description of the conceptual formulation and of the user requirements for the automation system
– Analysis of the conceptual formulation, composition (design) of a technical solution, validation of this solution with CASE systems
– project planning (incl. estimation of efforts)
© 2005 IAS, Universität Stuttgart 24
SER
Requirements Engineering
5.2 Requirements Engineering
proj
ect
plan
ning
technical process
SW/ HW system design
definition of requirements
(what?)
technical Solution(how?)
may be analysis of present state
© 2005 IAS, Universität Stuttgart 25
SER
Requirements Engineering Activities
5.2 Requirements Engineering
RequirementsEngineering
collection analysis allocation
tracing / change management
specification / verification
© 2005 IAS, Universität Stuttgart 26
SER
Top Risks of Requirements
– Overlooking a crucial requirement
– Inadequate customer representation
– Modeling only functional requirements
– Not inspecting requirements
– Attempting to perfect requirements before beginning construction
– Representing requirements in the form of designs
5.2 Requirements Engineering
Source: Lawrence, Wiegers, Ebert, 2001
© 2005 IAS, Universität Stuttgart 27
SER
Manage Risks
– Categorize• Group requirements, permitting a higher-level understanding of
relationships and dependencies.
• Consistently apply a specification template (e.g. use cases, IEEE 830, IEEE 1233).
– Organize
• Use automated tools to assist in understanding and tracing of requirements from inception to allocation to delivery.
• Apply strict change management.
– Prioritize
• Determine the order of consideration based on criticality of need and level of associated risk.
• Implement in increments following the priorities. Descope lowest priority features.
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 28
SER
Requirements Engineering Process
5.2 Requirements Engineering
Analyze: formulate, classify,put requirements in hierarchical order
Trace requirementsand validate the system versus requirements
Collect and specify requirements
Allocate requirements
© 2005 IAS, Universität Stuttgart 29
SER
Scenarios
– Scenarios are descriptions of how a system is used in practice
– They are helpful in requirements elicitation as people can relate to these more readily than abstract statement of what they require from a system
– Scenarios are particularly useful for adding detail to an outline requirements description
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 30
SER
Scenario descriptions
– System state at the beginning of the scenario
– Normal flow of events in the scenario
– What can go wrong and how this is handled
– Other concurrent activities
– System state on completion of the scenario
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 31
SER
Use cases
– Use-cases is a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself
– A set of use cases should describe all possible interactions with the system
– Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 32
SER
Library use-cases
5.2 Requirements Engineering
LibraryUser
Lending services
User administration
Catalogue servicesSupplier
LibraryStaff
© 2005 IAS, Universität Stuttgart 33
SER
Successful Negotiation Means Win-Win
– To protect the supplier:• Express disagreement and unrealistic conditions openly.
• Offer compromise approaches, once needs are understood.
• Have a signed contract with requirements. Agree on clear and reasonable acceptance criteria.
• Include a software key that will operate after the date of contracted software acceptance.
• State in the contract that the supplier owns the code until final payment.
• Clearly agree on liabilities and support after handover.
– To protect the client:
• Clearly state that payment will be provided only for systems that meet the agreed upon functionality.
• Require milestone presentations of progress for continued funding.
• Provide a realistic and precise expectation of functional and nonfunctional requirements (e.g. reliability).
5.2 Requirements Engineering
© 2005 IAS, Universität Stuttgart 34
SER
5 Requirements Engineering
Software Engineering for Real-Time Systems
5.1 What are requirements?
5.2 Requirements Engineering
5.3 Specifying Requirements
5.4 Requirements Tracing
5.5 Summary
© 2005 IAS, Universität Stuttgart 35
SER
Specifying Requirements
The definition of a requirement specification following international standards (see ch. 5.5):
In a user requirements specification the user orientated requirements incl. the attributes, constraints, etc are described. This data must be quantifiable and testable.
The requirements specification defines WHAT KIND OF task is solved.
The requirements specification is created by the client or on his behalf. It serves as bidding, offer and/ or basis.
5.3 Specifying Requirements
© 2005 IAS, Universität Stuttgart 36
SER
Create the requirements specification
1. Determine the requirements specification
– user / stakeholder requirements
– system requirements
– External / environmental inputs
2. Writing the requirements
– communication and decision between clients and contractors
5.3 Specifying Requirements
3. Classification (and prioritization) of the requirements
– functional requirements
– data requirements
– quality requirements
– performance requirements
– implementation requirements
– organization requirements
regulations, norms
safety requirements
nice-to-have-requirements
© 2005 IAS, Universität Stuttgart 37
SER
4. Putting requirements in a hierarchical order
5.3 Specifying Requirements
5. Check requirements
– unambiguousness
– completeness
– verifiability
– consistency
– modifiability
– comprehensibility
– reliability / practicability
© 2005 IAS, Universität Stuttgart 38
SER
Structuring requirements
Advantages:
– better manageability
– better understandability
– identifiable requirement
– comprehensibility
– basis of a contract
5.3 Specifying Requirements
descriptive text
abcdefg 8427983443 5923850 934534 464 756lkjklj jk jk lklk lököklökölgkd
fgj gjfk glfl jgk jjfgk ghg jkj df g#3423 345 67 79345 67428934534 6867 2468 23423 57 6862342 575 789345 67 89hjdcbcdsfsd sdf fghghjh gg ggj hgjgfgh gfhf fghfgfghgf
fhfghf gfhf fz423 /T/( &/
$% /&( /%(/%&/9234 &/( /()2342 23423 45643453546749876 46 46
wkrlw35348 34593 4746
34534 35 4656 55675 57575 575 57567 576577575 57 5757 568685756756 5765 567567575675
user requirements
user constraints
capabilities
attributes
boundary conditionsconstraints
© 2005 IAS, Universität Stuttgart 39
SER
Structuring requirements
Introduction
General description
Specific requirements
Appendices
Index
5.3 Specifying Requirements
This is a generic structure that must be instantiated for specific systems. See Standards (ch. 5.5) for further extensions.
© 2005 IAS, Universität Stuttgart 40
SER
Requirements Specification structure
Introduction
Glossary
User requirements definition
System architecture
System requirements specification
System models
System evolution
Appendices
Index
5.3 Specifying Requirements
© 2005 IAS, Universität Stuttgart 41
SER
5 Requirements Engineering
Software Engineering for Real-Time Systems
5.1 What are requirements?
5.2 Requirements Engineering
5.3 Specifying Requirements
5.4 Requirements Tracing
5.5 Summary
© 2005 IAS, Universität Stuttgart 42
SER
Requirements Trace To Many Project Elements
5.4 Requirements Tracing
© 2005 IAS, Universität Stuttgart 43
SER
Requirement tracing
– Traceability is concerned with the relationships between requirements, their sources and the system design
– Source traceability
• Links from requirements to stakeholders who proposed these requirements
– Requirements traceability
• Links between dependent requirements
– Design traceability
• Links from the requirements to the design
5.4 Requirements Tracing
© 2005 IAS, Universität Stuttgart 44
SER
“Requirement - Feature Matrix“ according to Boehm
5.4 Requirements Tracing
Feature
Requirement
F1 F2 F3 ...
R1 X11 X12 X13
R2 X21 X22 X23
R3 X31 X32 X33
.
.
.
Requirements FeaturesMatrixRequirements FeaturesMatrix
© 2005 IAS, Universität Stuttgart 45
SER5.4 Requirements Tracing
Xij = A ... examined and consequences accepted
B ... not examined yet
O ... without consequences (irrelevant)
Di ... reference to designing decision
Ri ... reference to another requirement
designing decision verbal description
D1
D2
comment 1
comment 2
.
.
.
.
.
.
© 2005 IAS, Universität Stuttgart 46
SER
Traceability between Work Products
5.4 Requirements Tracing
requirement ...requirement ...requirement ...
Requirements specification
1."sections" referring to requirement ... requirement ... fulfils ... substitute ...
Analysis Model
actionsdatainterfacesprocesses...
design
activitiesproject participantsresourcesproducts...
project management
© 2005 IAS, Universität Stuttgart 47
SER5.4 Requirements Tracing
project management
ACTIVITY SWCE-3-development.PROBLEM: “During this development stage the SWCE 3 is being developed...“TECHNICAL-FRAMEWORK:
PLANNED-SECTIONS: P1.1.1.1.1. “SW configuration entity 1”,P1.1.1.1.1.1. “SW component 1”,P1.1.1.1.1.2. “SW component 2”.
PLANNED OBJECTS: SWCE 1, SW component 1, SW component 2.PREDECESSORS: segment specification-Segment 1.
ACTIVITYEND
ACTIVITY SWCE-3-development.PROBLEM: “During this development stage the SWCE 3 is being developed...“TECHNICAL-FRAMEWORK:
PLANNED-SECTIONS: P1.1.1.1.1. “SW configuration entity 1”,P1.1.1.1.1.1. “SW component 1”,P1.1.1.1.1.2. “SW component 2”.
PLANNED OBJECTS: SWCE 1, SW component 1, SW component 2.PREDECESSORS: segment specification-Segment 1.
ACTIVITYEND
...1.1.1.1.1. “SW configuration entity 1”
“This system component‘s task is to...”
1.1.1.1.1.1. “SW component 1”“This software component‘s task is to...”REQUIREMENT 10001 (1) ...REQUIREMENT 10002 (2) ...
1.1.1.1.1.2. “SW component 2”“This software component‘s task is to...”REQUIREMENT 10001 (3)REQUIREMENT 10002 (1)...
...1.1.1.1.1. “SW configuration entity 1”
“This system component‘s task is to...”
1.1.1.1.1.1. “SW component 1”“This software component‘s task is to...”REQUIREMENT 10001 (1) ...REQUIREMENT 10002 (2) ...
1.1.1.1.1.2. “SW component 2”“This software component‘s task is to...”REQUIREMENT 10001 (3)REQUIREMENT 10002 (1)...
analysis model designACTION SWCE 1.DESCRIPTION:
PURPOSE: “...DESCRIPTIONENDDECOMPOSITION:
(/ SW comp. 1, SW comp. 2 /)ACTIONEND
ACTION SW comp. 1DESCRIPTION:...FULFILS: REQ. 10001 (3)
REQ. 10002 (1)
ACTION SW comp. 1DESCRIPTION:...FULFILS: REQ. 10001 (1)
REQ. 10002 (2)...
© 2005 IAS, Universität Stuttgart 48
SER
Requirements change
The priority of requirements from different viewpoints changes during the development process
System customers may specify requirements from a business perspective that conflicts with end-user needs
The business and technical environment of the system changes during its development (this is most frequent reason for change)
• Typically ca. 2..3% per month!
5.4 Requirements Tracing
© 2005 IAS, Universität Stuttgart 49
SER
Requirements Change Management
Requirements change management is the process of managing changing requirements during the requirements engineering process and system development
Requirements are inevitably incomplete and inconsistent
– New requirements emerge during the process as business needs change and a better understanding of the system is developed
– Different viewpoints have different requirements and these are often contradictory
5.4 Requirements Tracing
© 2005 IAS, Universität Stuttgart 50
SER
Tool support
Requirements database
– Requirements should be managed in a secure, managed data store
Change management
– The process of change management is a workflow process whose stages can be defined and information flow between these stages partially automated
Traceability management
– Automated retrieval of the links between requirements
5.4 Requirements Tracing
© 2005 IAS, Universität Stuttgart 51
SER
5 Requirements Engineering
Software Engineering for Real-Time Systems
5.1 What are requirements?
5.2 Requirements Engineering
5.3 Specifying Requirements
5.4 Requirements Tracing
5.5 Summary
© 2005 IAS, Universität Stuttgart 52
SER5.5 Summary
Summary
– Requirements engineering includes collection, analysis, allocation, specification, verification, tracing and managing change of requirements.
– Requirements analysis is iterative involving domain understanding, requirements collection, classification, structuring, prioritization and validation
– Systems have multiple stakeholders with different requirements and different views on the same system to be developed.
– Most frequent error: to give the customer what she needs and not what she wants.
© 2005 IAS, Universität Stuttgart 53
SER
Standards
– IEEE 1220: Systems Engineering Process
– ISO 15288: System Life Cycle Processes
– ISO 12207: Standard for Software Life Cycle Processes
– CMM, CMMI, ISO 15504: Software Process Improvement and Capability Determination
– SW-CMM: Software Engineering Capability Maturity Model
– SE-CMM: Systems Engineering CMM
– CMMI: Capability Maturity Model Integration
– IEEE 1233: Guide for Developing of System Req. Specifications
– IEEE 830: Recommended Practice for SW Req. Specification
5.5 Summary
© 2005 IAS, Universität Stuttgart 54
SER
Internet Resources
– Requirements Engineering / Management web links• http://www.shu.ac.uk/tfre/web.links.html
– Requirements Engineering hotlist• http://www.cc.gatech.edu/computing/SW_Eng/hotlist.html#requirements
– IEEE Task Force on Requirements Engineering• http://www.shu.ac.uk/tfre/welcome.html
– RENOIR (Requirements Engineering Network Of Int. cooperating Research groups)• http://www.cs.ucl.ac.uk/research/renoir/
– Requirements Engineering Journal • http://rej.co.umist.ac.uk/
– Intern. Council on Systems Engineering - Requirements Working Group • http://www.incose.org/rwg/
– Guidance to select a requirements management tool• http://www.incose.org/toc.html , http://www.incose.org/tools/tooltax.html
– Practical examples for requirements documents, inspection checklists, req. prioritization • http://www.processimpact.com
– Estimation tools (and more)• http://www.methods-tools.com
5.5 Summary
© 2005 IAS, Universität Stuttgart 55
SER
Further Information
Software Requirements (Best Practices)
by Karl E. Wiegers /$34.99/ Paperback - 368 pages /(September 1999)
Microsoft Press; ISBN: 0735606315
Well-written introduction to requirements engineering. Focus especially on practitioner. Excellentchapter on tools for requirementsengineering.
5.5 Summary