Unit 2 Flashcards
Where and when does the requirements engineering process take place in an iterative and incremental development process?
The main output of a requirements engineering process is the contract between those commissioning the system and the developers of the system. It therefore has to take place early in the software development process. However, an iterative and incremental process recognises that requirements are not stable, and that revisiting, clarifying and specifying requirements occurs in parallel with the other phases of development.
Identify the stakeholders for a system to book appointments for a hospital.
Stakeholders include hospital administrators, receptionists, doctors, nurses, patients and the general public.
Suggest ways in which requirements may evolve.
New requirements may be added. Existing requirements may change because of changes in the environment or in the organisation. Some requirements may become obsolete.
Consider the following list of poorly expressed requirements. Indicate which of the properties introduced in Subsection 2.1 are not respected, and ask a question to clarify the meaning of the requirement.
(a) The software system should provide acceptable performance under maximum load conditions.
(b) If the system fails in operation there should be minimal loss of data.
(c) The software should be developed so that it can be used by inexperienced users.
(a) The requirement is ambiguous and not verifiable. How can performance be measured? What is maximum load?
(b) The requirement is ambiguous and not verifiable. What is minimal loss of data?
(c) The requirement is ambiguous. What are the usability criteria?
What are requirements and stakeholders, and how do they relate to each other?
Requirements are the functions and qualities we want of a product. Stakeholders are the people and organisations with a vested interest in the product. Requirements arise from stakeholders’ needs.
What are the benefits of documenting requirements within a project?
Requirements documentation records decisions; it is the main reference for what should be built, and the basis for validation of the built system.
Who are the stakeholders in a hotel reservation system?
The stakeholders include the hotel owners, receptionists, existing customers and the general public accessing the system to make reservations.
Consider the example of a hotel reservation system, and invent some examples of the main inputs for a requirements engineering process.
Examples of inputs include:
stakeholder needs – there should be a help system for first-time users of the system;
domain information – rooms are identified by a number where the first digit indicates the floor, and the subsequent digits indicate the number of the room on that floor;
existing documentation – there is a manual system currently used for reservations;
regulations and organisational standards – an acknowledgement is sent to every customer that makes a reservation.
What are the purposes of a requirements document?
A requirements document is for communication – from the requirements engineer
to the designer. It serves as a contract with the client (and other stakeholders) for
what the system must do.
What is a functional requirement?
A functional requirement describes an action that the product must take if it is to carry out the work it is intended to do.
What is one property that a functional requirement should not possess?
A functional requirement should not be a statement about a quality.
What is a non-functional requirement?
A non-functional requirement is a requirement about a quality that the product must have.
What is a technical solution requirement and what is a business functional
requirement? Why is it useful to distinguish them?
A technical solution requirement is a constraint on the product due to the technology of the solution that must be adopted.
A business functional requirement is a specification of the work, or business, independent of the way that work will be carried out.
Thus the two types of requirement arise from different domains: the business domain and the solution domain. We want to keep issues related to the business separate from those of the solution.
What overarching property should the set of functional requirements that result
from a requirements gathering process possess?
The set of functional requirements must fully describe the actions that the intended product can perform. That is, the product’s builder must be able to construct the product desired by the client from the descriptions contained in the functional
requirements.
How do business events and use cases help in determining functional
requirements?
Use cases are derived from business events, and each use case is described by a set of scenarios. A scenario is a series of steps that complete the functional tasks of a use case. A task is something that the actor identifies as being part of the work of the use case. Thus the steps in a scenario provide a mechanism (thinking
technique) for determining all the functional requirements needed by each step.
How do you discover whether a set of functional requirements are sufficient for the
product to be useful, and whether the functionality is correct?
Ask the user!
Why must functional requirements be testable?
It can then be determined whether the delivered product meets the intention of the user.
Can you think of some generic questions to ask that can help in making requirements precise and complete?
Questions of the form ‘When should something happen?’ and ‘To whom should something be sent?’ are useful. You may have thought of others.
What is the major problem with a requirement that is written in a natural language such as English?
Natural language is often ambiguous.
Is it possible or desirable to avoid ambiguity entirely in a requirements specification? What steps can you take to reduce ambiguity in a requirements specification?
It may be possible to avoid ambiguity entirely, but the cost of being so precise can be enormous and the result unreadable. Therefore, we accept having to live with some ambiguity, but try to ensure that the risk of doing so is acceptably small. One
way in which you can try to reduce ambiguity is by providing clear definitions of any technical terms you use. A second way is by ensuring that requirements are not stated in too general terms.
Why should you record the meanings of business and technical words in a
requirements specification?
They should be recorded to avoid ambiguity and aid clarity in the usage of terms.
Summarise the overall process described above for determining a set of functional
requirements.
1 Understand the domain, determining the business processes and business events.
2 Determine the scope of the new system, and which business events are relevant.
3 Draw up a set of use cases for the product associated with those events.
4 Describe each use case by one or more scenarios – sets of steps.
5 Work through each step of each scenario to determine a set of system
requirements.
6 Check for similar requirements from different use cases.
7 Search out and remove ambiguity.
Here is a list of requirements that apply to the product X. For each requirement, say whether it is a functional or non-functional requirement, and if it is a functional requirement, say whether it is a business requirement or a technical solution
requirement.
(a) X must check a user’s identity.
(b) X must check a user’s password.
(c) X must produce a statement of the user’s account.
(d) X must validate the user’s identity and password within 3 seconds.
(e) X must be usable by users with limited dexterity.
(f) X must employ the company’s proprietary password-maintenance system.
(g) X must operate in arctic climates.
(a) Functional, business requirement (the requirement states what needs to be done,
not how to do it).
(b) Functional, technical solution requirement (access to the system can be achieved
in many ways; passwords are just one mechanism, but biometrics may be more
appropriate to this product).
(c) Functional, business requirement (the requirements states what needs to be done,
not how to do it).
(d) Non-functional.
(e) Non-functional.
(f) Functional, technical solution requirement (a specific technology is mandated).
(g) Non-functional.
Derive some functional requirements for the following step of a scenario in a hotel
management system: ‘The system shall allocate an available cleaner to each occupied
room.’ Confine yourself to what must be done, not how it is to be done.
Here are some suggestions.
The system shall identify occupied rooms.
The system shall identify available cleaners.
The system shall allocate occupied rooms among the available cleaners while balancing their workloads.