CSE204 - Software Requirements
CSE204 - Software Requirements
ENGINEERING
Software Requirements
The software requirements are description of features and functionalities of the target
system. The requirements can be obvious or hidden, known or unknown, expected or
unexpected from client’s point of view.
Requirement Engineering
The process to gather the software requirements from client, analyze, and document
them is known as requirement engineering. Requirements engineering provides the
appropriate mechanism for understanding what the customer wants, analyzing need,
assessing feasibility, negotiating a reasonable solution, specifying the solution
unambiguously, validating the specification, and managing the requirements as they are
transformed into an operational system
However, The System engineers must approach the requirements gathering activity in an
organized manner and has to follow some standard and guidelines
.
The work products produced as a consequence of the requirements elicitation activity
will vary depending on the size of the system or product to be built. For most systems,
the work products include
A statement of need and feasibility.
A bounded statement of scope for the system or product.
A list of customers, users, and other stakeholders who participated in the
requirements elicitation activity.
A description of the system’s technical environment.
A list of requirements (preferably organized by function) and the domain
constraints that apply to each.
A set of usage scenarios that provide insight into the use of the system or product
under different operating conditions.
Any prototypes developed to better define requirements.
Each of these work products is reviewed by all people who have participated in the
requirements elicitation
Characteristics of a Good Requirement
• Clear and Unambiguous
– Standard structure
– has only one possible interpretation
– Not more than one requirement in one sentence
• Correct– A requirement contributes to a real need
• Understandable– A reader can easily understand the meaning of the requirement
• Verifiable– A requirement can be tested
• Complete
• Consistent
• Traceable
Types of Requirement
Requirement can be broadly classified into two:
Functional Requirements
Requirements, which are related to functional aspect of software . it define the
basic system behaviour. Essentially, they are what the system does or must
not do, and can be thought of in terms of how the system responds to
inputs. Functional requirements are product features and focus on
user requirements. Functional requirements are product features or functions that
developers must implement to enable users to accomplish their tasks. So, it’s important
to make them clear both for the development team and the stakeholders. Generally,
functional requirements describe system behavior under specific conditions. For
instance:
A search feature allows a user to hunt among various invoices if they want to credit an
issued invoice.
They define functions and functionality within and from the software system.
Examples -
Search option given to user to search from various invoices.
User should be able to mail any report to management.
Users can be divided into groups and groups can be given separate rights.
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into this
category. They are implicit or expected characteristics of software, which users
make assumption of.
Non-functional requirements include -
Security e.g Logging
Storage
Configuration
Performance
Interoperability
Flexibility
Disaster recover
Security requirements ensure that the software is protected from unauthorized
access to the system and its stored data. It considers different levels of
authorization and authentication across different users roles
Availability is gauged by the period of time that the system’s functionality and
services are available for use with all operations
When writing the availability requirements, the team has to define the most critical
components of the system that must be available at all time.
QFD is a technique that translates the needs of the customer into technical requirements for software
engineering. QFD identifies three types of requirements:
Normal requirements: These requirements reflect objectives and goals stated for a product or system
during meetings with the customer. Eg requested types of graphic display, specific system function.
Expected requirements: These requirements are implicit to the product or system and may be so
fundamental that the customer does not explicitly state them. Ease of human/computer interaction, ease of
software installation
Exciting requirements: These requirements reflect features that go beyond the customer’s expectations
and prove to be very satisfying when present. Eg. Multitouch screen, visual voice mail delight every user
of the product.
The major steps involved in this procedure are –
Measuring Requirements
As a practical matter, it is typically useful to have some concept of the “volume” of the requirements for a
particular software product. This number is useful in evaluating the “size” of a change in requirements, in
estimating the cost of a development or maintenance task, or simply for use as the denominator in other
measurements.
Three levels of requirement
Business requirements are the critical activities of an enterprise that must be performed to meet
the organizational objectives while remaining solution independent. A business requirements
document (BRD) details the business solution for a project including the documentation of
customer needs and expectations.
The rules may include corporate policies, industry standards, national or international
legislation.
Verifiable. Just because business requirements state business needs rather than technical
specifications doesn’t mean they mustn’t be demonstrable. Verifiable requirements are
specific and objective. A quality control expert must be able to check, for example, that
the system accommodates the debit, credit, and PayPal methods specified in the business
requirements
Unambiguous, stating precisely what problem is being solved. For example, “This project
will be deemed successful if ticket sales increase sufficiently,
Comprehensive, covering every aspect of the business need. Business requirements are
indeed big picture, but they are very thorough big picture.
“The ultimate business requirement is profit growth achieved through increased earnings or
decreased expenses.”
User Requirements
User requirements should specify the specific requirements which the user expects/wants from
software to be constructed from the software project. A user requirement should be Verifiable,
Clear and concise, Complete, Consistent, Traceable, Viable.
The user requirements document (URD) or user requirements specification is a document usually
used in software engineering that specifies what the user expects the software to be able to do.
User requirements readers are • Client managers • System end-users • Client engineers • Contractor
managers • System architects
System Requirements More detailed specifications of user requirements • Serve as a basis for
designing the system.
System requirements are all of the requirements at the system level that describe the functions
which the system as a whole should fulfill to satisfy the stakeholder needs and requirements,
System requirements are classified as either functional or supplemental requirements. A
functional requirement specifies something that a user needs to perform their work. For example,
a system may be required to enter and print cost estimates; this is a functional requirement. non-
functional requirements specify all the remaining requirements not covered by the functional
requirements are sometimes called quality of service requirements. The plan for implementing
functional requirements is detailed in the system design. The plan for implementing non-funct
requirements is detailed in the system architecture. These are expressed in an appropriate
combination of textual statements, views, and non-functional requirements; the latter expressing
the levels of safety, security, reliability, etc., that will be necessary.