Requirements Engineering Process
Requirements Engineering Process
Inception / Feasibility
• Identify stakeholders
• Recognize multiple points of view
• Work toward collaboration
The first questions
Who is behind the request for this work?
Who will use the solution?
What will be the economic benefit of a successful solution
Is there another source for the solution that you need?
Feasibility studies
• A feasibility study decides whether or not the proposed system is worthwhile
Eliciting Requirements
• Meetings are conducted and attended by both software engineers and customers
• Rules for preparation and participation are established
• An agenda is suggested
• A "facilitator" (can be a customer, a developer, or an outsider) controls the meeting
• A "definition mechanism" (can be work sheets, flip charts, or wall stickers or an electronic bulletin board,
chat room or virtual forum) is used
• The goal is
To identify the problem
Propose elements of the solution
Negotiate different approaches, and
Specify a preliminary set of solution requirements
Eliciting Requirements
Conduc t FA ST
m eet ings
Mak e lis t s of
f unc t ions , c las s es
Mak e lis t s of
c ons t raint s , et c .
draw us e-c as e
writ e s c enario
diagram
Creat e Us e-c as es
c om plet e t em plat e
Requirements Engineering Process
• The requirements change during the analysis process. New stakeholders may emerge and the business
environment change.
Process Activities
• Domain understanding
• Requirements collection
• Classification
• Conflict resolution
• Prioritisation
• Requirements checking
Building the Analysis Model
• Elements of the analysis model
Scenario-based elements
• Functional—processing narratives for software functions
• Use-case—descriptions of the interaction between an “actor” and the system
Class-based elements
• Implied by scenarios
Requirements Engineering Process
Behavioral elements
• State diagram
Flow-oriented elements
• Data flow diagram
System Models
• Different models may be produced during the requirements analysis activity
• Requirements analysis may involve three structuring activities which result in these different models
Partitioning. Identifies the structural (part-of) relationships between entities
Abstraction. Identifies generalities among entities
Projection. Identifies different ways of looking at a problem
Viewpoint-Oriented Elicitation
• Stakeholders represent different ways of looking at a problem or problem viewpoints
• Multi-perspective analysis is important as there is no single correct way to analyse system requirements
Types of Viewpoint
• Data sources or sinks
Viewpoints are responsible for producing or consuming data. Analysis involves checking that data
is produced and consumed and that assumptions about the source and sink of data are valid
• Representation frameworks
Viewpoints represent particular types of system model. These may be compared to discover
requirements that would be missed using a single representation. Particularly suitable for real-time
systems
• Receivers of services
Viewpoints are external to the system and receive services from it. Most suited to interactive
systems
External Viewpoints
• Natural to think of end-users as receivers of system services.
• Methods have different emphases. Some are designed for requirements elicitation, others are close to
design methods
The VORD method
“[Use-cases] are simply an aid to defining what exists outside the system (actors) and
what should be performed by the system (use-cases).” Ivar Jacobson
Flow-Oriented Modeling
Represents how data objects are transformed at they move through the system
A data flow diagram (DFD) is the diagrammatic form that is used
Exception Description
• Most methods do not include facilities for describing exceptions
• Social and organisational factors are not a single viewpoint but are influences on all viewpoints.
• Good analysts must be sensitive to these factors but currently no systematic way to tackle their analysis.
Ethnography
• Social scientists spend a considerable time observing and analysing how people actually work.
• Ethnographic studies have shown that work is usually richer and more complex than suggested by
simple system models.
Requirements Engineering Process
Focused Ethnography
• Combines ethnography with prototyping
• Prototype development results in unanswered questions which focus the ethnographic analysis
• Problem with ethnography is that it studies existing practices which may have some historical basis
which is no longer relevant
Ethnography and Prototyping
Scope of Ethnography
• Requirements that are derived from the way that people actually work rather than the way of processing
definitions suggest that they ought to work
• Requirements that are derived from cooperation and awareness of other people‟s activities
IEEE Standard for Software Requirements Specification
2. Overall Description —This section is intended to provide the background to understand the rest of the
requirements.
2.1 Product Perspective —This section must put the product into perspective with other products. It will
usually include a block diagram of the larger system. It should specify constraints (e.g., system interfaces
with other software), user interfaces (e.g., screen formats, timing), hardware interfaces, software
interfaces (e.g., versions of interfaced software), memory constraints, operations (e.g., modes of
operations), and site adaptation constraints.
Requirements Engineering Process
2.2 Product Functions —This section must include a summary of the major functions of the product.
2.3 User Characteristics —This section must include the educational level, experience, and technical
expertise of the users.
2.4 Constraints —This section must include any other (e.g., regulatory) constraint that is not covered in
Section 2.1.
2.5 Assumptions and Dependencies —This section must include any assumptions that, if not true, would
require changes to the requirements.
2.6 Apportioning of Requirements —This section must identify requirements that may be delayed to
future versions of the product.
3. Specific Requirements —According to IEEE Standard 830: „„This section of the SRS should contain all
the software requirements to a level of detail sufficient to enable designers to design a system to satisfy
those requirements, and testers to test that the system satisfies those requirements.‟‟ The SRS should be
sufficiently detailed so designs and tests can be constructed directly from the SRS.
„„These requirements should include at a minimum a description of every input (stimulus) into the
system, every output (response) from the system and all functions performed by the system in response to
an input or in support of an output.‟‟
3.1 External Interface Requirements —This section must describe all inputs and outputs of the system.
This gives detailed Product information
3.2 Functions—This section must describe all the functions of the system. These must include validity
checks on inputs, responses to abnormal situations, effect of parameters, and the relationship of outputs to
inputs.
3.3 Performance Requirements —This section must describe the static and dynamic requirements.
3.4 Design Constraints —This section must describe any constraints on the design.
Validating Requirements
• Is each requirement consistent with the overall objective for the system/product?
• Have all requirements been specified at the proper level of abstraction? That is, do some requirements
provide a level of technical detail that is inappropriate at this stage?
• Is the requirement really necessary or does it represent an add-on feature that may not be essential to the
objective of the system?
• Is each requirement bounded and unambiguous?
• Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for
each requirement?
• Do any requirements conflict with other requirements?
• Is each requirement achievable in the technical environment that will house the system or product?
• Is each requirement testable, once implemented?
Requirements Engineering Process
• Does the requirements model properly reflect the information, function and behavior of the system to be
built.
• Has the requirements model been “partitioned” in a way that exposes progressively more detailed
information about the system.
• Have requirements patterns been used to simplify the requirements model. Have all patterns been
properly validated? Are all patterns consistent with customer requirements?
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?
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
• Automated consistency analysis
Checking the consistency of a structured requirements description
Requirements reviews
• Regular reviews should be held while the requirements definition is being formulated.
• Both client and contractor staff should be involved in reviews.
• Reviews may be formal (with completed documents) or informal. Good communications between
developers, customers and users can resolve problems at an early stage.
Review checks
• Verifiability. Is the requirement realistically testable?
• Comprehensibility. Is the requirement properly understood?
• Traceability. Is the origin of the requirement clearly stated?
• Adaptability. Can the requirement be changed without a large impact on other requirements?
Requirements Engineering Process
Requirements Management
• Requirements management is the process of managing changing requirements during the requirements
engineering process and system development
• Requirements are inevitably incomplete and inconsistent
New requirements emerge during the process as business needs change and a better understanding
of the system is developed
Different viewpoints have different requirements and these are often contradictory
Requirements Change
• The priority of requirements from different viewpoints changes during the development process
• System customers may specify requirements from a business perspective that conflict with end-user
requirements
• The business and technical environment of the system changes during its development
Requirements Engineering Process
Requirements Evolution
• Volatile Requirements: Requirements which change during development or when the system is in use. In
a hospital, requirements derived from health-care policy
Classification of requirements
• Mutable requirements
Requirements that change due to the system‟s environment
• Emergent requirements
Requirements that emerge as understanding of the system develops
• Consequential requirements
Requirements that result from the introduction of the computer system
• Compatibility requirements
Requirements that depend on other systems or organisational processes
Requirements Management Planning
• During the requirements engineering process, you have to plan:
Requirements identification
• How requirements are individually identified
A change management process
• The process followed when analysing a requirements change
Traceability policies
Requirements Engineering Process
• The amount of information about requirements relationships that is maintained
CASE tool support
• The tool support required to help manage requirements change
CASE Tool Support
• Requirements storage
Requirements should be managed in a secure, managed data store
• Change management
The process of change management is a workflow process whose stages can be defined and
information flow between these stages partially automated
• Traceability management
Automated retrieval of the links between requirements
Requirements change management
• Should apply to all proposed changes to the requirements
• Principal stages
Problem analysis. Discuss requirements problem and propose change
Change analysis and costing. Assess effects of change on other requirements
Change implementation. Modify requirements document and other documents to reflect change