REQUIREMENTS ENGINEERING Flashcards
What is requirements engineering
The process of establishing the services that the customer requires from a system and the constraints under which the system operates and is developed.
What are requirements
The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.
It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification.
What are the types of requirements?
Functional requirements
Non-functional requirements
Domain requirements
Describe functional requirements
Describe functionality or system services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations
Depend on the type of software, expected users and the type of system where the software is used
Functional user requirements may be high-level statements of what the system should do
May state what the system should not do
Give the examples of functional requirements eg for a Medical system
A user shall be able to search the appointments lists for all clinics
The system shall generate each day, for each clinic, a list of patients who are expected to attend appointments that day
Each staff member using the system shall
Describe the following concepts as relates to functional requirements: requirements imprecision, completeness and consistency
Imprecision-Ambiguous requirements may be interpreted in different ways by developers and users
Consider the term ‘search’ in requirement 1
User intention – search for a patient name across all
appointments in all clinics;
Developer interpretation – search for a patient name in an individual clinic. User chooses clinic then search
Completeness
They should include descriptions of all facilities required
Consistency
There should be no conflicts or contradictions in the
descriptions of the system facilities
In practice, it is impossible to produce a complete and
consistent requirements document
Describe 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
These 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 IDE, programming language or development method
Describe and illustrate non-functional requirements classifications
Product requirements
-Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability
Organizational requirements
-Requirements which are a consequence of organizational policies and procedures e.g. process standards used, implementation requirements
External requirements
-Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements
*See notes for the illustration
Describe the implementation of non-functional requirements implementation
Non-functional requirements may affect the overall
architecture of a system rather than the individual
components
For example, to ensure that performance requirements are met, organize the system to minimize communications between components
A single non-functional requirement, such as a security requirement, may generate a number of related functional requirements that define system services that are required
It may also generate requirements that restrict existing requirements
Give examples of non-functional requirements for example in a medical setting
Product requirement
The MoH-PMS shall be available to all clinics during normal working hours (Mon–Fri, 0830–17.30). Downtime within normal working hours shall not exceed five seconds in any one day.
Organizational requirement
Users of the MoH-PMS system shall authenticate themselves using their health authority identity card.
External requirement
The system shall implement patient privacy provisions as set out in the privacy act.
Detail the metrics for specifying some non-functional requirements
- Speed
Processed transactions/second
User/event response time
Screen refresh time - Size
Mbytes
Number of ROM chips
3.Ease of use
Training time
Number of help frames
4.Reliability
Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
5.Robustness
Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
6.Portability
Percentage of target dependent statements
Number of target systems
Describe domain requirements
The system’s operational domain imposes requirements on the system.
-For example, a train control system has to take into account the braking characteristics in different weather conditions
Domain requirements may be new functional requirements, constraints on existing requirements or define specific computations
What are some of the problems related to domain requirements
Understandability
-Requirements are expressed in the language of the
application domain;
-This is often not understood by software engineers
developing the system
Implicitness
Domain specialists understand the area so well that they do not think of making the domain requirements explicit
9/12/2022 ICS 2201, Software Engineering 18
What is the software requirements document
This is the official statement of what is required of the
system developers.
Should include both a definition of user requirements
and a specification of the system requirements. (User requirements have to be understandable by end-users and customers who do not have a technical background. System requirements may include more technical information.)
It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it.
How are requirements handled in agile methods
Many agile methods argue that producing a requirements document is a waste of time as requirements change so quickly.
The document is therefore always out of date.
Methods such as XP use incremental requirements
engineering and express requirements as ‘user stories’
The above is practical for business systems but problematic for systems that require a lot of pre-delivery analysis (e.g. critical systems) or systems developed by several teams