Unit 2 - Requirements concepts Flashcards
Which parties will be involved during requirements engineering?
. the people who are going to use the system
. those who are paying for it (the clients)
. those who are to benefit from it
. those who are developing it.
Why is specifying the requirements for a system not an easy task?
. requirements are not usually stable and they tend to change as the environment changes
. there are usually many stakeholders and they do not always have the same view or priorities for the system to be developed
. it is not always clear and easy to identify what the requirements for a system are
. there are many factors that influence what the requirements are and these are not always explicit
List the main properties requirements must exhibit
. 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. The level of completeness of requirements will depend on the system to be developed and on the development environment.
. Consistent – requirements should not contradict each other.
. Verifiable and validated – it should be possible to check that a requirement has been implemented, and that what is implemented corresponds to what
was intended.
What are the 4 main activities during the requirements engineering process?
Requirements elicitation,
Requirements analysis and negotiation,
Requirements documentation
Requirements validation.
What are some of the modelling techniques used in elicitation?
Activity diagrams,
Use cases,
Scenarios,
User stories.
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 has therefore to take place early in the software development process.
However, an iterative and incremental process recognises that requirements are not stable and revisiting, clarifying and specifying requirements occur in parallel with the other phases of development.
Identify the stakeholders for a system to book appointments for a hospital.
Hospital administrators, receptionists, doctors, nurses, patients, general public.
Suggest ways in which requirements may evolve.
Examples are:
◦ new requirements may be added
◦ existing requirements may change because of changes in the environment or in the organisation
◦ some requirements may become obsolete
◦ technologies may evolve
◦ other systems may emerge that introduce interoperability requirements
◦ regulations may change.
Consider the following list of poorly expressed requirements, indicate which properties are not respected and ask questions to clarify their
meaning:
(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 that are wanted 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 record decisions. They are the main reference for what should be built and the basis for validation of the built system.
Therefore they need to be documented so that they can be used throughout development.
What is an agile approach to requirements engineering documentation?
In an agile approach, requirements documentation serves a purpose and should be done only to the extent that it contributes to that purpose. It
should serve as a vehicle for common understanding, communication and future traceability.
Which other activities will be taking place in parallel with requirements engineering?
The definition of the system architecture and an elaboration of tests for the requirements. When defining requirements there are implications for the
architecture of the system and each requirement will be related to some test of the final system.
Who are the stakeholders in a hotel reservation system?
The hotel owners, receptionists, existing customers, the general public accessing the system to make a reservation.
Consider the example of a hotel reservation system and invent some examples of the main inputs for a requirements engineering process.
Examples 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 in a floor
◦ existing documentation – the manual system used for reservations
◦ regulations and organisational standards – an acknowledgement is sent to every customer who makes a reservation.
Give definitions for functional requirements
Functional requirements are things the product must do.
A requirement is a statement of need, something that some class of user or other stakeholder wants
A function is something that a system or subsystem does, presumably because a requirement made it necessary. … A functional requirement … in
practice just means the same as function.
What typical terminology identifies a functional requirement (i.e. how should it be expressed)?
The system ‘shall’ accept/allow…
‘the system shall allocate a room’
What does the MoSCoW scheme help define in terms of requirements prioritisation
Must have
Should have
Could have
Wont have (this time)
What is a typical format for a user story
As a [role] I want [feature] so that [reason]
What are the purposes of requirements?
Communication – from the requirements engineer to the designer.
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.
Indicate one property that a functional requirement should not possess?
A functional requirement should not be a statement about a general property such as usability, reliability or maintainability.
A functional requirement should not be about the implementation of a solution.
What is a non-functional requirement?
A non-functional requirement is a requirement about a quality that the product must have.
What are a technical solution requirement and a business functional requirement? Why is it useful to distinguish them?
A technical solution requirement is a constraint on the product resulting from the technology of the solution that must be adopted.
Business functional requirements are a specification of the work,or business, independent of the way that work will be carried out.
The two types of requirement therefore arise from different domains – the business domain and the solution domain. It is important 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 should 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?
One way to discover the requirements of a system is to use the steps in use case scenarios. Use cases are derived from business events and each use case is described by a set of scenarios.
Each step in a scenario details a functional task. All the functional requirements associated with a use case can be collected from these tasks.
How do user stories help in determining functional requirements?
User stories are written by the people who will get some value out of the system and therefore highlight elements of functionality relevant to them.
User stories encourage communication and involvement of users and customers with the development process, allowing for change and discovery of requirements throughout.