Download presentation
1
Software Requirements
Chapter 5 Software Requirements
2
Software Requirements
Descriptions and specifications of a system
3
Objectives To introduce the concepts of user and system requirements
To describe functional and non-functional requirements To explain two techniques for describing system requirements To explain how software requirements may be organized in a requirements document
4
What is a requirement? Range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification Requirements may serve a dual function May be the basis for a bid for a contract - therefore must be open to interpretation May be the basis for the contract itself - therefore must be defined in detail Both these statements may be called requirements
5
Requirements engineering
The requirements are the descriptions of the system services and constraints The requirements engineering is the process of establishing the customer services and addressing system constraints
6
Types of requirement User requirements System requirements
Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers System requirements A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor Software specification A detailed software description which can serve as a basis for a design or implementation. Written for developers
7
Requirements readers
8
Topics covered Functional and non-functional requirements
User requirements System requirements The software requirements document
9
Functional and non-functional requirements
Statements of services the system should provide, how the system should react and behave in a certain condition. Non-functional requirements Emergent properties such as reliability, response time, availability, not concerned with any specific functions delivered by the system. Domain requirements Requirements that come from the application domain of the system and that reflect characteristics of that domain
10
Functional requirements
Describe functionality or system services Functional user requirements are high-level statements Functional system requirements describe system services in detail
11
Examples of functional requirements
The user shall be able to search either all databases or specify a subset. The system shall provide appropriate viewers for the user to read documents. Every order shall be allocated a unique identifier (ORDER_ID).
12
Requirements imprecision
Problems arise when requirements are not precisely stated Ambiguous requirements may be interpreted in different ways by developers and users Consider the term ‘appropriate viewers’ User intention - special purpose viewer for each different document type Developer interpretation - Provide a text viewer that shows the contents of the document
13
Requirements completeness and consistency
Typically, requirements should be both complete and consistent but may have difficulty in practice Complete The requirements should include descriptions of all facilities required Consistent There should be no conflicts or contradictions in the descriptions of the system facilities
14
Non-functional requirements
Define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc. Process requirements may also be specified mandating a particular CASE system, programming language or development method Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless
15
Non-functional classifications
Product requirements Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. Organizational requirements Requirements which are a consequence of organizational policies and procedures e.g. process standards used, implementation requirements, etc. External requirements Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
16
Non-functional requirement types
17
Non-functional requirements examples
Product requirement Performance requirements on how fast the system must execute Organizational requirement Process standards which must be used in the organization External requirement Legislative requirements which must be followed
18
Goals and requirements
Non-functional requirements may be very difficult to state precisely and imprecise requirements may be difficult to verify. Goal A general intention of the user such as ease of use Verifiable non-functional requirement A statement using some measure that can be objectively tested Goals are helpful to developers as they convey the intentions of the system users
19
Examples A system goal A verifiable non-functional requirement
The system should be easy to use by experienced controllers and should be organized in such a way that user errors are minimised. A verifiable non-functional requirement Experienced controllers shall be able to use all the system functions after a total of two hours training. After this training, the average number of errors made by experienced users shall not exceed two per day.
20
Requirements measures
21
Requirements interaction
Conflicts between different non-functional requirements are common in complex systems Spacecraft system – an example To minimise weight with few chips To minimise power consumption with low power chips However, using low power chips need more chips Which is the most critical requirement?
22
Domain requirements Requirements and features are for a specific domain. Domain requirements have specific functions, constraints or computations The system may not work if domain requirements are not satisfied
23
Train protection system
A specific computation function for train domain: The deceleration of the train shall be computed as: Dtrain = Dcontrol + Dgradient where Dgradient is 9.81ms2 * compensated gradient/alpha and where the values of 9.81ms2 /alpha are known for different types of train.
24
Domain requirements problems
Understandability Requirements are expressed in the language of the application domain, resulting in understanding problems for software engineers Implicitness Domain specialists understand the area so well that they do not think of making the domain requirements explicit
25
Topics covered Functional and non-functional requirements
User requirements System requirements The software requirements document
26
User requirements Describe functional and non-functional requirements for users who don’t have technical knowledge Use natural language, tables and diagrams
27
Problems with natural language
Ambiguity Readers and writers may interpret the same words differently. Requirements confusion Functional and non-functional requirements tend to be mixed-up Requirements amalgamation Several different requirements may be expressed together Over-flexibility The same thing may be described in different ways in the specification Lack of modularization NL structures are inadequate to structure system requirements
28
Editor grid requirement
2.6 Grid facilities To assist in the positioning of entities on a diagram, the user may turn on a grid in either centimetres or inches, via an option on the control panel. Initially, the grid is off. The grid may be turned on and off at any time during an editing session and can be toggled between inches and centimetres at any time. A grid option will be provided on the reduce-to-fit view but the number of grid lines shown will be reduced to avoid filling the smaller diagram with grid lines.
29
Guidelines for user requirements
Invent a standard format and use it for all requirements Use language in a consistent way. Use text highlighting to identify key parts of the requirement Avoid the use of computer jargon
30
Structured presentation
2.6 Grid facilities 2.6.1 The editor shall provide a grid facility where a matrix of horizontal and vertical lines provide a background to the editor window. This grid shall be a passive grid where the alignment of entities is the user's responsibility. Rationale: A grid helps the user to create a tidy diagram with well-spaced entities. Although an active grid, where entities 'snap-to' grid lines can be useful, the positioning is imprecise. The user is the best person to decide where entities should be positioned. Specification: ECLIPSE/WS/Tools/DE/FS Section 5.6
31
Topics covered Functional and non-functional requirements
User requirements System requirements The software requirements document
32
System requirements More detailed specifications of user requirements
Serve as a basis for designing the system May be used as part of the system contract System requirements may be expressed using system models (data-flow model, object model, etc.)
33
Requirements and design
Requirements care about “what the system should do” Design cares about “how to fulfill the requirements”
34
Two Alternatives to NL specification
Structured natural language specifications PDL-based definitions
35
Structured NL specifications
A limited form of natural language may be used to express requirements This removes the problems of ambiguity and flexibility and supports uniformity
36
Structured NL -- Form-based
37
PDL-based requirements definition
A programming language like description but with more flexibility of expression Appropriate in two situations Where an operation is specified as a sequence of actions and the order is important When interfaces have to be specified
38
Part of an ATM specification
39
PDL disadvantages PDL may not be sufficiently expressive to express the system functionality in an understandable way Notation is only understandable to people with programming language knowledge The requirement may be taken as a design specification rather than a model to help understand the system
40
Topics covered Functional and non-functional requirements
User requirements System requirements The software requirements document
41
IEEE requirements standard
Introduction General description Specific requirements Appendices Index This is a generic structure that must be instantiated for specific systems
42
Requirements document structure
Introduction Glossary User requirements definition System architecture System requirements specification System models System evolution Appendices Index
43
Requirements Specification – Volere Template
Table of Contents Project Drivers The Purpose of the Product Client, Customer and Stakeholders Users of the Product Project Constraints Mandated Constraints Naming Conventions and Definitions Relevant Facts and Assumptions Functional Requirements The Scope of the Work The Scope of the Product Functional and Data Requirements
44
Requirements Specification – Volere Template
Non-Functional Requirements Look and Feel Requirements Usability Requirements Performance Requirements Operational Requirements Maintainability and Portability Requirements Security Requirements Cultural and Political Requirements Legal Requirements Project Constraints Open Issues Off-the-Shelf Solutions New Problems Tasks Cutover Risks Costs User Documentation and Training Waiting Room Ideas for Solutions
45
Key points Requirements set out what the system should do and define constraints on its operation and implementation Functional requirements set out services the system should provide Non-functional requirements constrain the system being developed or the development process User requirements are high-level statements of what the system should do
46
Key points User requirements should be written in natural language, tables and diagrams System requirements are intended to communicate the functions that the system should provide System requirements may be written in structured natural language, a PDL or in a formal language A software requirements document is an agreed statement of the system requirements
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.