Professional Documents
Culture Documents
Chapter 3. Software Requirements Analysis and Specification
Chapter 3. Software Requirements Analysis and Specification
3/7/2024 1
Chapter 3. Software Requirements
Analysis and Specification
3.1. Value of a Good SRS
3.2. Requirement Process
3.3. Requirements Specification
3.4. Functional Specification with Use Cases
3.5. Other Approaches for Analysis
3.6. Validation
3.7. Conclusion
2
Software Requirements Analysis and
Specification
◼ IEEE defines a requirement as:
◼ (1) A condition of capability needed by a user to solve a problem
or achieve an objective;
◼ (2) A condition or a capability that must be met or possessed by a
system ... to satisfy a contract, standard, specification, or other
formally imposed document. \
◼ All development models require requirements to be
specified.
◼ Approaches like agile require only high-level requirements
to be specified in written form—detailed requirements are
elicited through interaction with the customer in the
iteration the requirement is to be implemented and directly
reflected in software.
3
Software Requirements Analysis and
Specification
◼ The goal of the requirements activity is to produce the
Software Requirements Specification (SRS) that describes
what the proposed software should do without describing
how the software will do it.
◼ In this chapter we will discuss:
◼ The role of the SRS in a project and the value a good SRS brings
to it.
◼ The different activities in the process for producing the desired
SRS.
◼ The desired characteristics of an SRS, the structure of an SRS
document, and its key components.
◼ The use case approach for analyzing and specifying functional
requirements, and how use cases can be developed.
◼ Some other approaches for analyzing requirements like the data
flow diagram.
4
◼ How requirements are validated
Value of a Good SRS
◼ The origin of most software systems is in the needs of
some clients.
◼ The software system itself is created by some developers.
◼ The completed system will be used by the end users.
◼ Thus, there are three major parties interested in a new
system: the client, the developer, and the users
◼ Somehow the requirements for the system that will satisfy
the needs of the clients and the concerns of the users have
to be communicated to the developer.
◼ The problem is that the client usually does not understand
software or the software development process, and the
developer often does not understand the client’s problem
and application area.
5
Value of a Good SRS
◼ This causes a communication gap between the parties
involved in the development project.
◼ A basic purpose of the SRS is to bridge this
communication gap so they have a shared vision of the
software being built. Hence, one of the main advantages of
a good SRS is: an SRS establishes the basis for agreement
between the client and the supplier on what the software
product will do.
◼ This basis for agreement is frequently formalized into a
legal contract between the client (or the customer) and the
developer (the supplier).
◼ So, through SRS, the client clearly describes what it
expects from the supplier, and the developer clearly
understands what capabilities to build in the software 6
Value of a Good SRS
◼ An SRS provides a reference for validation of the final
product.
◼ The SRS helps the client determine if the software meets
the requirements.
◼ Without a proper SRS, there is no way a client can
determine if the software being delivered is what was
ordered, and there is no way the developer can convince
the client that all the requirements have been fulfilled.
◼ Providing the basis of agreement and validation should be
strong enough reasons for both the client and the developer
to do a thorough and rigorous job of requirement
understanding and specification, but there are other very
practical and pressing reasons for having a good SRS.
7
Value of a Good SRS
◼ Studies have shown that many errors are made during the
requirements phase.
◼ An error in the SRS will manifest itself as an error in the final
system implementing the SRS.
◼ Clearly, if we want a high-quality end product that has few
errors, we must begin with a high-quality SRS.
◼ We can conclude that: a high-quality SRS is a prerequisite to
high-quality software. the quality of SRS has an impact on cost
(and schedule) of the project.
◼ We know that errors can exist in the SRS. It is also known that
the cost of fixing an error increases almost exponentially as time
progresses.
◼ Hence, by improving the quality of requirements, we can have a
huge savings in the future by having fewer expensive defect
removals. A high-quality SRS reduces the development cost. 8
Requirement Process
◼ Desirable Characteristics of an SRS
◼ Components of an SRS
◼ Structure of a Requirements Document
9
Requirement Process
◼ The requirement process is the sequence of activities that need
to be performed in the requirements phase and that culminate in
producing a high-quality document containing the SRS.
◼ The requirements process typically consists of three basic tasks:
problem or requirement analysis, requirements specification,
and requirements validation.
◼ Problem analysis often starts with a high-level “problem
statement.”
◼ During analysis the problem domain and the environment are
modeled in an effort to understand the system behavior,
constraints on the system, its inputs and outputs, etc.
◼ The basic purpose of this activity is to obtain a thorough
understanding of what the software needs to provide.
10
Requirement Process
◼ Frequently, during analysis, the analyst will have a series of
meetings with the clients and end users.
◼ In the early meetings, the clients and end users will explain to
the analyst about their work, their environment, and their needs
as they perceive them.
◼ Any documents describing the work or the organization may be
given, along with outputs of the existing methods of performing
the tasks.
◼ In these early meetings, the analyst is basically the listener,
absorbing the information provided.
◼ Once the analyst understands the system to some extent, he uses
the next few meetings to seek clarifications of the parts he does
not understand.
◼ He may document the information or build some models, and he
may do some brainstorming or thinking about what the system 11
Requirement Process
◼ In the final few meetings, the analyst essentially explains to the
client what he understands the system should do and uses the
meetings as a means of verifying if what he proposes the system
should do is indeed consistent with the objectives of the clients.
◼ The understanding obtained by problem analysis forms the basis
of requirements specification, in which the focus is on clearly
specifying the requirements in a document.
◼ Issues such as representation, specification languages, and tools
are addressed during this activity.
◼ As analysis produces large amounts of information and
knowledge with possible redundancies, properly organizing and
describing the requirements is an important goal of this activity.
12
Requirement Process
◼ Requirements validation focuses on ensuring that what have
been specified in the SRS are indeed all the requirements of the
software and making sure that the SRS is of good quality.
◼ The requirements process terminates with the production of the
validated SRS.
13
Requirement Process
◼ It should be pointed out that the requirements process is not a
linear sequence of these three activities and there is considerable
overlap and feedback between these activities.
◼ As shown in the figure, from the specification activity we may
go back to the analysis activity. This happens as frequently
some parts of the problem are analyzed and then specified
before other parts are analyzed and specified.
◼ Furthermore, the process of specification frequently shows
shortcomings in the knowledge of the problem, thereby
necessitating further analysis.
◼ Once the specification is done, it goes through the validation
activity. This activity may reveal problems in the specification
itself, which requires going back to the specification step, or
may reveal shortcomings in the understanding of the problem,
which requires going back to the analysis activity.
14
Requirements Specification
◼ The final output is the SRS document. As analysis
precedes specification, the first question that arises is: If
formal modeling is done during analysis, why are the
outputs of modeling not treated as an SRS? The main
reason is that modeling generally focuses on the problem
structure, not its external behavior.
◼ Consequently, things like user interfaces are rarely
modeled, whereas they frequently form a major component
of the SRS.
◼ Similarly, for ease of modeling, frequently “minor issues”
like erroneous situations (e.g., error in output) are rarely
modeled properly, whereas in an SRS, behavior under such
situations also has to be specified.
15
Requirements Specification
◼ Similarly, performance constraints, design constraints, standards
compliance, recovery, etc., are not included in the model, but
must be specified clearly in the SRS because the designer must
know about these to properly design the system. It should
therefore be clear that the outputs of a model cannot form a
desirable SRS.
◼ The modeling is essentially a tool to help obtain a thorough and
complete knowledge about the proposed system.
◼ The SRS is written based on the knowledge acquired during
analysis.
◼ As converting knowledge into a structured document is not
straightforward, specification itself is a major task, which is
relatively independent.
16
Requirement Process
◼ Desirable Characteristics of an SRS
◼ Components of an SRS
◼ Structure of a Requirements Document
17
Desirable Characteristics of an SRS
◼ To properly satisfy the basic goals, an SRS should have certain
properties and should contain different types of requirements.
Some of the desirable characteristics of an SRS are:
1. Correct
2. Complete
3. Unambiguous
4. Verifiable
5. Consistent
6. Ranked for importance and/or stability
◼ An SRS is correct if every requirement included in the SRS
20
Requirement Process
◼ Desirable Characteristics of an SRS
◼ Components of an SRS
◼ Structure of a Requirements Document
21
Components of an SRS
◼ Completeness of specifications is difficult to achieve and even
more difficult to verify. Having guidelines about what different
things an SRS should specify will help in completely specifying
the requirements. The basic issues an SRS must address are:
◼ Functionality
◼ Performance
◼ External interfaces
24
Components of an SRS
◼ An SRS should identify and specify all such constraints.
Some examples of these are:
◼ Standards Compliance: This specifies the
requirements for the standards the system must follow.
◼ Hardware Limitations: The software may have to
26
Requirement Process
◼ Desirable Characteristics of an SRS
◼ Components of an SRS
◼ Structure of a Requirements Document
27
Structure of a Requirements Document
◼ Requirements have to be specified using some
specification language.
◼ Though formal notations exist for specifying specific
properties of the system, natural languages are now most
often used for specifying requirements.
◼ When formal languages are employed, they are often used
to specify particular properties or for specific parts of the
system, as part of the overall SRS.
◼ All the requirements for a system, stated using a formal
notation or natural language, have to be included in a
document that is clear and concise.
28
Structure of a Requirements Document
◼ We discuss the organization based on the IEEE guide to
software requirements specifications.
◼ The IEEE standards recognize the fact that different
projects may require their requirements to be organized
differently, that is, there is no one method that is suitable
for all projects.
29
Structure of a Requirements Document
◼ It provides different ways of structuring the SRS. The first
two sections of the SRS are the same in all of them. The
general structure of an SRS is given in Figure 3.2.
30
Structure of a Requirements Document
◼ The introduction section contains the purpose, scope,
overview, etc., of the requirements document. The key
aspect here is to clarify the motivation and business
objectives that are driving this project, and the scope of the
project.
◼ The next section gives an overall perspective of the
system—how it fits into the larger system, and an
overview of all the requirements of this system.
◼ Detailed requirements are not mentioned. Product
perspective is essentially the relationship of the product to
other products; defining if the product is independent or is
a part of a larger product, and what the principal interfaces
of the product are.
31
Structure of a Requirements Document
◼ A general abstract description of the functions to be
performed by the product is given.
◼ Schematic diagrams showing a general view of different
functions and their relationships with each other can often
be useful. Similarly, typical characteristics of the eventual
end user and general constraints are also specified.
◼ If agile methods are being used, this may be sufficient for
the initial requirements phase, as these approaches prefer
to do the detailed requirements when the requirement is to
be implemented.
32
Structure of a Requirements Document
◼ The detailed requirements section describes the details of
the requirements that a developer needs to know for
designing and developing the system.
◼ One method to organize the specific requirements is to first
specify the external interfaces, followed by functional
requirements, performance requirements, design
constraints, and system attributes.
◼ The external interface requirements section specifies all the
interfaces of the software: to people, other software,
hardware, and other systems.
◼ In the functional requirements section, the functional
capabilities of the system are described. In this
organization, the functional capabilities for all the modes
of operation of the software are given. 33
34
Functional Specification with Use Cases
◼ Basics
◼ Examples
◼ Extensions
◼ Developing Use Cases
35
Functional Specification with Use Cases
◼ Functional requirements often form the core of a
requirements document.
◼ The traditional approach for specifying functionality is to
specify each function that the system should provide.
◼ Use cases specify the functionality of a system by
specifying the behavior of the system, captured as
interactions of the users with the system.
◼ Use cases can be used to describe the business processes of
the larger business or organization that deploys the
software, or it could just describe the behavior of the
software system.
36
Functional Specification with Use Cases
◼ Though use cases are primarily for specifying behavior,
they can also be used effectively for analysis. Later when
we discuss how to develop use cases, we will discuss how
they can help in eliciting requirements also.
◼ Use cases drew attention after they were used as part of the
object-oriented modeling approach proposed by Jacobson.
◼ A software system (in our case whose requirements are
being uncovered) may be used by many users, or by other
systems. In use case terminology, an actor is a person or a
system which uses the system for achieving some goal.
◼ Note that as an actor interacts for achieving some goal, it is
a logical entity that represents a group of users (people or
system) who behave in a similar manner.
37
Functional Specification with Use Cases
◼ Though use cases are primarily for specifying behavior,
38
Functional Specification with Use Cases
◼ Basics
◼ Examples
◼ Extensions
◼ Developing Use Cases
39
Examples
◼ Let us illustrate these concepts with a few use cases, which
we will also use to explain other concepts related to use
cases. Let us consider that a small on-line auction system is
to be built for a university community, called the
University Auction System (UAS), through which
different members of the university can sell and buy goods.
◼ In this system, though we have the same people who might
be buying and selling, we have “buyers” and “sellers” as
separate logical actors, as both have different goals to
achieve. Besides these, the auction system itself is a
stakeholder and an actor.
◼ The financial system is another. Let us first consider the
main use cases of this system—“put an item for auction,”
“make a bid,” and “complete an auction.” These use cases 40
are given in Figure 3.4.
41
Functional Specification with Use Cases
◼ Basics
◼ Examples
◼ Extensions
◼ Developing Use Cases
42
Extensions
◼ Besides specifying the primary actor, its goal, and the
success and exceptional scenarios, a use case can also
specify a scope.
◼ If the system being built has many subsystems, as is often
the case, sometimes system use cases may actually be
capturing the behavior of some subsystem.
◼ In such a situation it is better to specify the scope of that
use case as the subsystem.
43
Extensions
44
Functional Specification with Use Cases
◼ Basics
◼ Examples
◼ Extensions
◼ Developing Use Cases
45
Developing Use Cases
◼ UCs not only document requirements, as their form is like
storytelling and uses text, both of which are easy and
natural with different stakeholders, they also are a good
medium for discussion and brainstorming.
46
Other Approaches for Analysis
◼ Data Flow Diagrams
◼ ER Diagrams
47
Validation
48
Summary
49
The test examine 1
1. What is the relationship between a process
model, process specification, and process
for a project?
2. What are the key outputs during an iteration
in a project following an iterative
development model?
50
51