Professional Documents
Culture Documents
TM354 Unit2 Lecture Slides
TM354 Unit2 Lecture Slides
1
In this unit, you will see an approach that stresses the importance
of carefully documenting requirements, but you will also be
reminded of an agile approach to documentation.
You will see the differences between functional and non-functional
requirements, and the ways each of these can be recorded.
The importance of attaching measurable fit criteria to each
requirement will be established.
Finally, you will see how you can make use of a template to help
ensure you cover all the categories of requirements, and how you
could document requirements in an agile approach.
Note that: All SAQs and Exercises in this unit are required.
2
Section 1: Introduction
In this unit we introduce the concepts of user and software
requirements.
We discuss the importance of documenting and managing
requirements, and the complexity of the requirements engineering
process.
Sections 3 and 4 define the two main classes of requirements:
functional and non-functional, and Section 5 discusses the links
between requirements and testing.
In Section 6 we introduce a template for requirements
documentation that is based on a well-known method in the
literature.
3
Requirements are the information about what a system will
be and do that needs to be known before development
starts.
The process of reaching and documenting an agreed set of
requirements is known as requirements engineering
4
Section 2: Requirements
Requirements engineering is an important activity in software
development and the consequences of poor attention to this activity are
costly
The Standish Group has been publishing reports on the success of
software projects since 1994. In its latest report (2012) it identified that:
◦ only 39 per cent of all projects were being delivered on time, on budget, with required
features and function
◦ 43 per cent were late or over budget or not delivering all required features
◦ 18 per cent were either cancelled before delivery or delivered but never used.
In its 2010 report the Standish Group also identified major problems and
proposed its own solutions. Among these problems were the following:
◦ poor, or lack of, user involvement
◦ lack of clear business objectives
◦ under and over building – building features that are never used and not building all the required
.
features
◦ lack of support for agile processes and poor support for requirements and solutions evolving
.
5
Section 2: Requirements
The nature of requirements
6
Section 2: Requirements
Requirements need to be:
Necessary and traceable – each requirement should fulfil a purpose and it
should be clear where each requirement comes from.
Non-ambiguous and realistic – there should be no alternative interpretations for
one requirement and it should be possible to carry each requirement through to
development.
Complete – in a plan-driven development all the intended functionality is
described as completely as possible, although in practice it is often not possible to
be absolute about this and it is important to allow for requirements that emerge
later in the system development and during maintenance.
Consistent – requirements should not contradict each other.
7
Section 2: Requirements
Requirements have numerous complex and non-trivial
dependencies: they often conflict with each other.
◦ For example: the required portability of the mobile phone, and therefore
its small size and display area, conflicts with the usability of the phone.
The dependencies between requirements need to be
investigated at this stage of the software development life
cycle.
◦ A practical approach for investigating the dependencies between
requirements is to consider a few representative scenarios from a set of
all the possible scenarios that illustrate the requirements in practice.
◦ a scenario: is a specific sequence of activities that might occur when a
system is used.
◦ Scenarios can be helpful in contextualising the requirements and for
identifying the conflicts and cooperations between them.
8
Section 2: Requirements
The requirements engineering process
The inputs of a requirements engineering process:
1. Information from the stakeholders’ needs;
2. Information from existing knowledge of the domain and
associated regulations, the organization's standards, and any
systems that are already in place.
The outputs of a requirements engineering process:
1. The main output is the contract between the customer and
the developers of the system.
2. The requirements document and the models of what the
system is intended to do.
The requirements document includes the requirements
specification that contain the precise and accurate descriptions of
each requirement.
9
Section 2: Requirements
10
Section 2: Requirements
12
Section 2: Requirements
13
Section 2: Requirements
The requirements engineering process
Figure illustrates the relative
effort of requirements elicitation
and analysis in the early
phases of a project and is
naturally a simplification
because it omits the other
activities of the requirements
engineering process. Initially,
elicitation is dominant. Most of
the time the two activities
interact and inform each other
– requirements elicitation
informs the modelling of
functionality and data (which is
part of analysis), while analysis
Figure: Relative effort of requirements elicitation versus helps to discover new
analysis over time requirements.
14
Section 2: Requirements
An agile perspective of requirements
◦ In their latest edition of Mastering the Requirements Process (2012), Suzanne and
James Robertson accept that ‘The requirements do not have to be written, but they
have to become known to the builders’ (Truth 5, Chapter 1).
15
Section 2: Requirements
Requirements and architecture
Solving these conflicts involves taking decisions that will affect the
architecture of a system.
16
Section 2: Requirements
Requirements and testing
17
Section 2: Requirements
Summary of section
18
Section 3: Functional requirements
19
Section 3: Functional requirements
2020
Section 3: Functional requirements
Elicitation, analysis and negotiation
2121
Section 3: Functional requirements
22
Section 3: Functional requirements
23
Section 3: Functional requirements
24
Section 3: Functional requirements
(Sommerville, 2011)
25
Section 3: Functional requirements
Summary of section
26
Section 4: Non-Functional requirements
27
Section 4: Non-Functional requirements
28
Section 4: Non-Functional requirements
29
Section 4: Non-Functional requirements
30
Section 4: Non-Functional requirements
2. Usability and humanity requirements: They describe how easy to use the
product should be for its intended users under specified circumstances, and
how satisfied they are with it. This includes how easy it is to learn to use the
product
Usability and humanity impacts on productivity, error rates, stress levels and
acceptance. It determines how well the human part of the system can perform
A usability and humanity requirement can be expressed more precisely by
describing the level of achievement required after the required training or
learning period.
31
Section 4: Non-Functional requirements
32
Section 4: Non-Functional requirements
33
Section 4: Non-Functional requirements
34
Section 4: Non-Functional requirements
35
Section 4: Non-Functional requirements
36
Section 4: Non-Functional requirements
37
Section 4: Non-Functional requirements
8. Security requirements
In the context of a computer system Security is about the prevention of
unauthorised access to the system.
38
Section 4: Non-Functional requirements
39
Section 4: Non-Functional requirements
40
Section 4: Non-Functional requirements
8. Security requirements (contd.)
The forms an attack might take are as follows:
Disclosure of private information or the unauthorised release of information
◦ Example, an intruder might intercept the network and read your messages en route. From an ecommerce transaction
such as an electronic order you have placed, an intruder might be able to access your credit card details and illegally
use them.
Denial of use or service or loss of access, where there is some denial of network
service to its authorised (legitimate) users.
◦ The intruder redirects messages or creates congestion by recycling messages. They might also covertly gain control of
the computers owned by innocent third parties and use these computers to bombard a site with messages. The intruder
might be a competitor who is trying to put the company out of business by preventing access to its system by its
customers.
Repudiation, where a legitimate user claims that they did not send or receive a
particular message that was sent or received
◦ Example, somebody who ordered holiday insurance online might after the holiday claim that they did not order the
insurance. The insurer could do a similar thing and repudiate that the customer ordered insurance if an insurance claim
is made.
41
Section 4: Non-Functional requirements
Summary of section
42
Section 5: Conformance testing and fit criteria
43
Section 5: Conformance testing and fit criteria
44
Section 5: Conformance testing and fit criteria
45
Section 5: Conformance testing and fit criteria
Example 1:
Look-and-feel requirement
Description. The student website for this module shall have a similar look
and feel to other OU module websites.
Fit criterion. The TM354 module website shall conform to the OU web
design and accessibility guidelines..
Example 2:
Maintainability and support requirement
Description. The websites of OU modules shall be updated frequently.
Fit criterion. Updates to OU module websites shall be made weekly and
be visible to students within eight hours of being loaded.NFR fit criteria
Refer to the course material for more examples
46
Section 5: Conformance testing and fit criteria
Summary of section
47
Section 5: Representing the Requirements
48
Section 5: Representing the Requirements
49
Section 5: Representing the Requirements
event/use case – identify which use case or event is associated with this
requirement
description – a one-sentence statement of the intent of the requirement
fit criterion – this is the acceptance criterion, written in a quantified manner so that
the solution can be tested against the requirement
customer satisfaction/dissatisfaction – this is an indication of the customer’s
reaction to the requirement’s omission from the solution
priority – a mark of the value of the requirement for the customer
conflicts – requirements that contradict this one or make this one less feasible
50
Section 5: Representing the Requirements
The template is divided into a fixed set of categories, which means you
are less likely to forget some types of requirements.
It also saves having to work out what categories of requirements to
deal with each time you start a new document.
It helps to communicate requirements to other developers because if
there is a standard template then everyone will know what information
to expect and in what order.
It might also allow projects to be compared and even requirements to
be reused more easily.
52
Section 5: Representing the Requirements
Summary
53
Unit Summary
54