Lecture 2 (2)
Lecture 2 (2)
WHAT IS A REQUIREMENT?
A need to be satisfied
IEEE Definition:
1. A condition or capability needed by a user to solve a problem or achieve an objective [User].
2. A condition or capability that must be met or possessed by a system or system component to satisfy a
contract, standard, specification or other formally imposed documents [System].
REQUIREMENTS
User Requirements – Written for customers, often in natural language, no technical details
System Requirements – Written for developers, detailed functional and non-functional requirements, clearly and
more rigorously specified
LIFE CYCLE OF A REQUIREMENT
Functional Requirements – typically focus on the “what” of the system and identify the functions and data related
requirements.
Non-functional Requirements – focus on the “how well” aspects of the system and identify attributes like
⚫ Performance
⚫ Maintainability
⚫ Inter-operability
⚫ Reliability
⚫ Portability
⚫ Constraints
FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS
• 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.
FUNCTIONAL REQUIREMENTS
• These define system properties and constraints e.g. reliability, response time and storage requirements.
Constraints are I/O device capability, system representations, etc.
• Process requirements may also be specified mandating a particular IDE, programming language or
development method.
• Non-functional requirements may be more critical than functional requirements. If these are not met, the system
may be useless.
REQUIREMENTS COMPLETENESS AND CONSISTENCY
• Consistent
• There should be no conflicts or contradictions in the descriptions of the system facilities
• Product requirements
• Requirements which specify that the delivered product must behave in a particular way e.g.
execution speed, reliability, etc.
• Organizational requirements
• Requirements which are a consequence of organizational policies and procedures e.g. process
standards used, implementation requirements, etc.
• External requirements
• Requirements which arise from factors which are external to the system and its
development process e.g. interoperability requirements, legislative requirements, etc.
TYPES OF NON-FUNCTIONAL REQUIREMENTS
https://www.youtube.com/watch?v=2L_6rBEMkdA
WHAT IS “REQUIREMENTS ENGINEERING (RE) ”?
•A Ref:
http://www.mymanagementguide.com/feasibilit
y-study-reporting-steps-to-writing-a-feasibility-
study-report-fsr/
WHAT IS REQUIREMENTS ENGINEERING
3. Requirements documentation – Here the Requirements that are gathered and modeled are
put together in a document, typically know as the SRS
4. Requirements Review – This consists of, reviewing the SRS by all stakeholders. The reviewed
and approved SRS forms the basis for the work products to be created in the later parts of
the Software life cycle.
REQUIREMENTS MANAGEMENT - AREAS
A. Introduction
B. Glossary
C. General knowledge about the domain
D. Customers and users
E. The environment
F. Tasks and procedures currently performed
G. Competing software
H. Similarities to other domains
DEFINING THE PROBLEM AND THE SCOPE
• List all the things you might imagine the system doing
• Exclude some of these things if too broad
• Determine high-level goals if too narrow
⚫ Creating a wish list for each user category across all levels
of the user community
Notation Description
Natural language The requirements are written using numbered sentences in natural language.
Each sentence should express one requirement.
Structured natural The requirements are written in natural language on a standard form or
language template. Each field provides information about an aspect of the
requirement.
Design description This approach uses a language like a programming language, but with more
languages abstract features to specify the requirements by defining an operational
model of the system. This approach is now rarely used although it can be
useful for interface specifications.
Graphical notations Graphical models, supplemented by text annotations, are used to define the
functional requirements for the system; UML use case and sequence
diagrams are commonly used.
Mathematical These notations are based on mathematical concepts such as finite-state
specifications machines or sets. Although these unambiguous specifications can reduce
the ambiguity in a requirements document, most customers don’t understand
a formal specification. They cannot check that it represents what they want
and are reluctant to accept it as a system contract
REQUIREMENTS DEFINITION – REQUIREMENTS ANALYSIS
• Develop prototype(s)
REQUIREMENTS ELICITATION TECHNIQUE - PROTOTYPING
• review the goals, the features and function defined for the prototype to
establish the expectation of the prototype
• Collect Users’ and developers’ feedback based on the script
• Prepare the evaluation report which may includes
• new requirements
• changes to user interface
• dropping of requirements etc.
PROTOTYPING – EVOLUTIONARY APPROACH
Evolutionary Approach
⚫ The tools, language, platforms used to develop the prototype be the same as the actual
development platforms
⚫ To maximize the reuse of the prototype important conventions for the design and programming be
laid down before the development of the prototype begins
⚫ the prototype be reviewed not only externally (behavior) but also internally (design and code
review)
PROTOTYPING – THROW AWAY APPROACH
• Not much importance is given to the prototype’s “internals” such as coding standards
Chapter Description
Preface This should define the expected readership of the document and describe its
version history, including a rationale for the creation of a new version and a
summary of the changes made in each version.
Introduction This should describe the need for the system. It should briefly describe the
system’s functions and explain how it will work with other systems. It should
also describe how the system fits into the overall business or strategic
objectives of the organization commissioning the software.
Glossary This should define the technical terms used in the document. You should not
make assumptions about the experience or expertise of the reader.
User requirements Here, you describe the services provided for the user. The nonfunctional system
definition requirements should also be described in this section. This description may use
natural language, diagrams, or other notations that are understandable to
customers. Product and process standards that must be followed should be
specified.
System architecture This chapter should present a high-level overview of the anticipated system
architecture, showing the distribution of functions across system modules.
Architectural components that are reused should be highlighted.
THE STRUCTURE OF A REQUIREMENTS DOCUMENT
Chapter Description
System This should describe the functional and nonfunctional requirements in more detail.
requirements If necessary, further detail may also be added to the nonfunctional requirements.
specification Interfaces to other systems may be defined.
System models This might include graphical system models showing the relationships between
the system components and the system and its environment. Examples of
possible models are object models, data-flow models, or semantic data models.
System evolution This should describe the fundamental assumptions on which the system is based,
and any anticipated changes due to hardware evolution, changing user needs,
and so on. This section is useful for system designers as it may help them avoid
design decisions that would constrain likely future changes to the system.
Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database descriptions.
Hardware requirements define the minimal and optimal configurations for the
system. Database requirements define the logical organization of the data used
by the system and the relationships between data.
Index Several indexes to the document may be included. As well as a normal alphabetic
index, there may be an index of diagrams, an index of functions, and so on.
REQUIREMENTS DOCUMENTATION – SRS
CHARACTERISTICS
Completeness –
⚫ requirements from all the stakeholders
⚫ More than the system functionality
⚫ Focusing on user tasks, problems, bottlenecks and improvements required
⚫Ranking/Prioritizing Requirements
⚫ Customers identifies most important ones
⚫ Designers to make right trade-offs
⚫ Scope Matrix
REQUIREMENTS DOCUMENTATION – SRS CHARACTERISTIC
• Clarity –
• The documented requirements should lead to
only a single interpretation independent of the
person or the time
⚫Readability
Consistently number chapters, sections and sub
sections and individual requirements
Align text to the left margin rather than “justify both
margins”
Use white space to reduce eye strain
Use highlighting features
Do not use colors as far as possible
Create a table of contents
Use hyperlinks within the document to easy navigation
REQUIREMENTS DOCUMENTATION – SRS CHARACTERISTIC
Correctness
⚫ every requirement stated must be actual required by the system.
Modifiability
⚫ Changes can be made to SRS
⚫ Changes can be traced
Traceability
Labeling (or numbering) of requirements provides a mechanism to
trace each requirement through the design into the test plans, test
cases and source code.
Backward traceability to the documentation/and other work-
products created prior to the requirements phase. This will
depend upon how well referencing and labeling has been
provided in the earlier documents/ work products
Forward traceability – This will depend upon on how each
requirement is labeled or numbered. Forward traceability is
extremely important as this is one of the way of tracing a
requirement to its implementation.
REQUIREMENTS DOCUMENTATION – SRS CHARACTERISTIC
• Feasibility
• Highlight infeasible requirements
• put out of the SRS after providing the proper reasons
• Testability
• Every requirement in SRS to be tested (need the test case)
• Typically statements like “user friendly”, “reasonable
response”, “fairly accurate” are non-testable and non-
verifiable. These need to be identified and removed from
the SRS.
EXAMPLES – HOW TO WRITE REQUIREMENTS
• Missing Requirements
• Over Specifying
• Unnecessary requirements creep into
specification in a number of ways and the
only cure is to carefully manage, review and
control
THANK YOU