Requirement Engineering
Requirement Engineering
Requirements
Engineering
CSC3324
Dr Houda CHAKIRI
Copyright © 2016, 2011, 2006 Pearson Education, Inc. All Rights Reserved
Topics to be
Covered
1. Functional and non-functional
requirements
2. Requirements engineering
processes
3. Requirements elicitation
4. Requirements specification
5. Requirements validation
6. Requirements change
Requirements Engineering
User 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’s
functions, services and operational constraints. Defines what should be
implemented so may be part of a contract between client and
contractor.
User and
System
Requirements
Case study:
p34-36
Readers of
Different Types
of
Requirements
Specification
p34-36
• Any person or organization who is affected
by the system in some way and so who has a
legitimate interest
• Stakeholder types:
• End users
• System managers
• System owners
• External stakeholders
System
Stakeholders
Functional and
Non-Functional
Requirements
Copyright © 2016, 2011, 2006 Pearson Education, Inc. All Rights Reserved
Functional and Non-
Functional Requirements
• Functional requirements
• Statements of services the system should provide, how the system
should react to particular inputs and how the system should behave in
particular situations.
• Non-functional requirements
• Constraints on the services or functions offered by the system such as
timing constraints, constraints on the development process,
standards, etc. Often apply to the system as a whole rather than
individual features or services.
• Domain requirements
• Constraints on the system from the domain of operation.
Examples (Test your understanding)
• The system should support up to 100,000 concurrent users without
performance degradation.
• The system should enable users to transfer funds between their
own accounts and to external accounts, with confirmation through
a One-Time Password (OTP).
• All user interactions with the system, especially financial
transactions, must be logged and stored securely for at least seven
years, as mandated by financial regulatory authorities.
• The system must allow users to log in using a username and
password. After three failed login attempts, the account should be
locked for 15 minutes.
• The application must use encryption (AES-256) for all data
transmission and storage.
• The system must comply with the local banking regulations,
including Anti-Money Laundering (AML) laws and Know Your
Customer (KYC) requirements.
Functional
Requirements
• Product requirements
• Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability, etc.
• Organisational requirements
• Requirements which are a consequence of organisational 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.
Goals and Requirements
Copyright © 2016, 2011, 2006 Pearson Education, Inc. All Rights Reserved
Requirements Engineering Processes
• Requirements discovery
• Interacting with stakeholders to discover their requirements.
Domain requirements are also discovered at this stage.
• Requirements classification and organisation
• Groups related requirements and organises them into coherent
clusters.
• Prioritisation and negotiation
• Prioritising requirements and resolving requirements conflicts.
• Requirements specification
• Requirements are documented and input into the next round of the
spiral.
Requirements Discovery
• Requirements that are derived from the way that people actually work
rather than the way I which process definitions suggest that they
ought to work.
• Requirements that are derived from cooperation and awareness of
other people’s activities.
• Awareness of what other people are doing leads to changes in the
ways in which we do things.
• Ethnography is effective for understanding existing processes but
cannot identify new features that should be added to a system.
Focused Ethnography
• Lack of clarity
• Precision is difficult without making the document
difficult to read.
• Requirements confusion
• Functional and non-functional requirements tend to be
mixed-up.
• Requirements amalgamation
• Several different requirements may be expressed
together.
Structured Specifications
Chapter Description
Preface This should define the expected readership of the document and describe its
version history, including a rationale for the creation of a new version and a
summary of the changes made in each version.
Introduction This should describe the need for the system. It should briefly describe the
system’s functions and explain how it will work with other systems. It should
also describe how the system fits into the overall business or strategic
objectives of the organization commissioning the software.
Glossary This should define the technical terms used in the document. You should not
make assumptions about the experience or expertise of the reader.
User requirements Here, you describe the services provided for the user. The nonfunctional
definition system requirements should also be described in this section. This
description may use natural language, diagrams, or other notations that are
understandable to customers. Product and process standards that must be
followed should be specified.
System architecture This chapter should present a high-level overview of the anticipated system
architecture, showing the distribution of functions across system modules.
Architectural components that are reused should be highlighted.
The Structure of a Requirements Document
Chapter Description
System This should describe the functional and nonfunctional requirements in more
requirements detail. If necessary, further detail may also be added to the nonfunctional
specification requirements. Interfaces to other systems may be defined.
System models This might include graphical system models showing the relationships between
the system components and the system and its environment. Examples of
possible models are object models, data-flow models, or semantic data models.
System evolution This should describe the fundamental assumptions on which the system is
based, and any anticipated changes due to hardware evolution, changing user
needs, and so on. This section is useful for system designers as it may help them
avoid design decisions that would constrain likely future changes to the system.
Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database descriptions.
Hardware requirements define the minimal and optimal configurations for the
system. Database requirements define the logical organization of the data used
by the system and the relationships between data.
Index Several indexes to the document may be included. As well as a normal
alphabetic index, there may be an index of diagrams, an index of functions, and
so on.
Requirements Validation
• Validity. Does the system provide the functions which best support the
customer’s needs?
• Consistency. Are there any requirements conflicts?
• Completeness. Are all functions required by the customer included?
• Realism. Can the requirements be implemented given available
budget and technology
• Verifiability. Can the requirements be checked?
Requirements Validation Techniques
• Requirements reviews
• Systematic manual analysis of the requirements.
• Prototyping
• Using an executable model of the system to check requirements.
Covered in Chapter 2.
• Test-case generation
• Developing tests for requirements to check testability.
Requirements Reviews
• Verifiability
• Is the requirement realistically testable?
• Comprehensibility
• Is the requirement properly understood?
• Traceability
• Is the origin of the requirement clearly stated?
• Adaptability
• Can the requirement be changed without a large impact on other
requirements?
Requirements
Change
Copyright © 2016, 2011, 2006 Pearson Education, Inc. All Rights Reserved
Changing Requirements
• The business and technical environment of the system always changes after
installation.
• New hardware may be introduced, it may be necessary to interface the system
with other systems, business priorities may change (with consequent changes in
the system support required), and new legislation and regulations may be
introduced that the system must necessarily abide by.
• The people who pay for a system and the users of that system are rarely the same
people.
• System customers impose requirements because of organizational and
budgetary constraints. These may conflict with end-user requirements and, after
delivery, new features may have to be added for user support if the system is to
meet its goals.
• Large systems usually have a diverse user community, with many users having
different requirements and priorities that may be conflicting or contradictory.
• The final system requirements are inevitably a compromise between them and,
with experience, it is often discovered that the balance of support given to
different users has to be changed.
Requirements
Evolution
Requirements Management