Chapter 3 - Requirements Engineering: Prepared by Brook A
Chapter 3 - Requirements Engineering: Prepared by Brook A
Chapter 3 - Requirements Engineering: Prepared by Brook A
Engineering
Prepared by Brook A
Software Engineering 14
Example
Patient records system
(Elicitation) 1. Talk to patients, doctors, nurses, receptionists,
managers to find out
Current system practise, legal restrictions DPA, problems with current
system, needs for improvement, security issues, costs
(Elicitation) 2. Develop draft documentation and review what is
most important, what will it cost, what is the timescale, is new
hardware required
(Validation) 3. Send requirements to end users. Present them
with Q&A. Go back to step 1, discuss requirements again
(Management) 4. Have a yearly review of requirements
between all stakeholders. Have a system of reviewing the cost
and feasability of change to system
Software Engineering 15
The Requirements Engineering Process
Requirements
Feasibility
elicitation and
stud y
anal ysis
Requirements
specification
Feasibility Requirements
report validation
System
models
Requirements
document
Software Engineering 16
Requirements Engineering
Requirements
specification
System requirements
specification and
modeling
User requirements
specification
Business requirements
specification
System
Feasibility
requirements User
elicitation study
requirements
elicitation
Prototyping
Requirements
elicitation
Reviews Requirements
validation
System requirements
document
Software Engineering 17
Feasibility Studies
• Feasibility studies: is a short, focused study that should
take place early in the RE process. It should answer three
key questions:
– does the system contribute to the overall objectives of the
organization?
– can the system be implemented within schedule and budget
using current technology? and
– can the system be integrated with other systems that are used?
– Is there a simpler way of doing this (buy in software and
customize)
• If the answer to any of these questions is no, you should
probably not go ahead with the project.
COMP201 - Software Engineering 18
Types of Feasibility study
• Technological Feasibility
– Carried out to determine whether the company has the capability, in terms
of software, hardware, personnel, and expertise, to handle the completion
of the project .
• Economic Feasibility(cost/benefit analysis)
– Cost analysis: development cost and operation cost
– Time based: This is analysis of the time required to achieve a return on
investment.
• Legal feasibility: checks whether the system conflicts with legal
requirement. data protection acts or, project certificate, license,
copyright etc
• Operational feasibility: how well the proposed system solves the
problem or satisfy the requirement of the client.
– if the system is developed, will it be used? how much easy product will be
to operate and maintenance after deployment.
Chapter 3 Requirements engineering 19
Stakeholders
• “stakeholder' refers to the people or groups affected by a
software development project.
• Stakeholders exist both within the organization and outside of
it.
• Example - ATM Stakeholders
– Bank customers
– Representatives of other banks
– Bank managers
– Counter staff
– Database administrators
– Security managers
– Marketing department
– Hardware and software maintenance engineers
Software Engineering 21
Problems of Requirements Analysis
• Stakeholders don’t know what they really want.
• Stakeholders express requirements in their own terms.
• Different stakeholders may have conflicting
requirements
• Organisational and political factors may influence the
system requirements (Data protection)
• The requirements change during the analysis process.
New stakeholders may emerge and the business
environment change.
Software Engineering 22
Basic techniques for eliciting requirements
Software Engineering 23
Interviewing
• In formal or informal interviewing, the RE team
puts questions to stakeholders about the system
that they use and the system to be developed.
• There are two types of interview
– Closed interviews where a pre-defined set of questions
are answered.
– Open interviews where there is no pre-defined agenda
and a range of issues are explored with stakeholders.
• Interviews are good for getting an overall
understanding of what stakeholders do and how
they might interact with the system.
Software Engineering 24
Ethnography
• In ethnography, a social scientist spends a
considerable amount of time observing and
analysing how people actually work.
• People do not have to explain or articulate their
work.
• Social and organisational factors of importance
may be observed.
• The problem with ethnography is that it studies
existing practices which may have some historical
basis which is no longer relevant.
Software Engineering 25
In the real world
• Requirements often come from
– Copying /modifying the requirements of other
systems
– Copying and fixing the requirements of a legacy
system
– Looking at what competitors do and improve on it
• Prototyping
– A lot of requirements are discovered by
prototyping, so the initial requirements are often
very thin
Software Engineering 26
Functional and non functional requirement
Software Engineering 32
ATM machine
• Actors
– Customers
– Bank staff
– ATM service engineer
• Use cases
– Withdraw cash
– Check balance
– Add cash to machine
– Check security video recording
Software Engineering 33
Example - ATM Use Case Diagram
Software Engineering 34
Include Relations
• If several use cases include, as part of their
functionality, another use case, we have a
special way to show this in a use-case diagram
with an <<include>> relation.
Include and Extend
• Include
– When the other use case is always part of the main use
case
• Extend
– When the other use case, sometime is needed
Software Engineering 36
Requirements validation
• Concerned with demonstrating that the
requirements define the system that the
customer really wants.
• Requirements error costs are high so
validation is very important
– Fixing a requirements error after delivery may cost
up to 100 times the cost of fixing an
implementation error.
Software Engineering 38
Requirements Checking
• 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?
– This reduces the potential for disputes between customers and
contractors and a set of tests should be possible.
Software Engineering 39
Requirements validation techniques
• Requirements reviews
– Systematic manual analysis of the requirements.
• Prototyping
– Using an executable model of the system to check
requirements.
• Test-case generation
– Developing tests for requirements to check
testability.