04 SWEng Agile Development Lec04
04 SWEng Agile Development Lec04
Engineering
Software Engineering
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.
May state what the system should not do.
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.
2. The system shall generate each day, for each clinic, a list of
patients who are expected to attend appointments that day.
Product Requirements
Organizational requirements
Requirements which arise from factors which are external to the system
and its development process.
These may include regulatory requirements that set out what must be
done for the system to be approved for use by a regulator, such as a
central bank; legislative requirements that must be followed to ensure
that the system operates within the law; and ethical requirements that
ensure that the system will be acceptable to its users and the general
public.
Examples of Non-Functional
17
Requirements in the MHC-PMS
Product requirement
The MHC-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 MHC-PMS system shall authenticate themselves using
their health authority identity card.
External requirement
The system shall implement patient privacy provisions as set out in
HStan-03-2006-priv.
Goal
A general intention of the user such as ease of use, the ability of the system
to recover from failure, or rapid user response.
Goal
The system should be easy to use by medical staff and should be
organized in such a way that user errors are minimized.
Feasibility study An estimate is made of whether the identified user needs may be
satisfied using current software and hardware technologies.
The study considers whether the proposed system will be cost-effective from a business point
of view and if it can be developed within existing budgetary constraints.
A feasibility study should be relatively cheap and quick. The result should inform the decision
of whether or not to go ahead with a more detailed analysis.
Requirements Elicitation and Analysis: Draw out the requirements from stakeholders.
This is the process of deriving the system requirements through observation of existing systems,
discussions with potential users and procurers, task analysis, and so on. This may involve the
development of one or more system models and prototypes. These help you understand the
system to be specified.
Requirements specification
◼ Requirements are documented.
1. Requirements discovery
◼ Interacting with stakeholders to discover their requirements.
Domain requirements are also discovered at this stage.
2. Requirements classification and organisation
◼ Requirements are categorized and organized into subsets.
◼ Relations among requirements identified.
◼ Requirements reviewed for correctness.
3. Prioritization and negotiation
◼ Prioritising requirements based on customer needs and resolving
requirements conflicts.
◼ Negotiation about requirements, project cost and project timeline.
People often find it very difficult to articulate details of their work because
it is second nature to them. They understand their own work but may not
understand its relationship to other work in the organization.
Validity. Does the system provide the functions which best support the
customer’s needs?
Requirements reviews
Systematic manual analysis of the requirements.
Prototyping
Using an executable model of the system to check if it
meets their real requirements.
Test-case generation
Developing tests for requirements to check testability.
You need to keep track of individual requirements and maintain links between
dependent requirements so that you can assess the impact of requirements
changes. You need to establish a formal process for making change proposals and
linking these to system requirements.
1. Requirements identification: Each requirement must be uniquely identified so that
it can be cross-referenced with other requirements and used in traceability
assessments.
2. A change management process: This is the set of activities that assess the impact
and cost of changes.
3. Traceability policies: These policies define the relationships between each
requirement and between the requirements and the system design that should be
recorded. The traceability policy should also define how these records should be
maintained.
4. Tool support: Requirements management involves the processing of large amounts
of information about the requirements. Tools that may be used range from
specialist requirements management systems to spreadsheets and simple database
systems.
Requirements Change Management
47
Change implementation
◼ The requirements document and, where necessary, the system design and
implementation, are modified. Ideally, the document should be organized so that
changes can be easily implemented.
Chapter 4 Requirements engineering
48