Se Unit
Se Unit
2. Software Requirements
Software Requirements: It is a field within software engineering that deals with establishing the
needs of stakeholders that are to be solved by software.
Requirements engineering:
The broad spectrum of tasks and techniques that lead to an understanding of requirements is
called requirements engineering.
It is a process of establishing the services that customer require from a system
And it is the constraints under which it operates and it is developed.
4. Requirements engineering builds a bridge to design and construction.
Types of requirements:
Types of requirements
CS8494-SE 1
(iii) Software specification:
It is a detailed software description that can serve as a basic for design and implementation. It is
written for software developers.
CS8494-SE 2
(a) Product requirements - These requirements specify or constrain the behavior of the software.
Examples include performance requirements on how fast the system must execute and how much
memory it requires, reliability requirements that set out the acceptable failure rate, security
requirements, and usability requirements.
(b) Organizational requirements - These requirements are broad system requirements derived from
policies and procedures in the customer’s and developer’s organization. Examples include
operational process requirements that define how the system will be used, development process
requirements that specify the programming language, the development environment or process
standards to be used, and environmental requirements that specify the operating environment of the
system.
(c) External requirements - This broad heading covers all requirements that are derived from factors
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.
Metrics for specifying non-functional requirements
CS8494-SE 3
(iii) Domain Requirements
Derived from the application domain and describe system characteristics and features that reflect
the domain
May be new functional requirements, constraints on existing requirements or define specific
computations
If domain requirements are not satisfied, the system may be unworkable
Example: Library system domain requirements
There shall be a standard user interface to all databases which shall be based on the Z39.50
standard.
Because of copyright restrictions, some documents must be deleted immediately on arrival.
Depending on the user’s requirements, these documents will either be printed locally on the system
server for manually forwarding to the user or routed to a network printer.
CS8494-SE 4
2.2 User Requirements
Should describe functional and non-functional requirements so that they are understandable by
system users who don’t have detailed technical knowledge
User requirements are defined using natural language, tables and diagrams
Problems with natural language
Lack of clarity Precision is difficult without making the document difficult to read
Requirements confusion Functional and non-functional requirements tend to be mixed-up
Requirements amalgamation several different requirements may be expressed together
Guidelines for writing user requirements:
Invent a standard format and use it for all requirements
Use language in a consistent way. Use shall for mandatory requirements, should for desirable
requirements
Use text highlighting to identify key parts of the requirement
Avoid the use of computer jargon
Example:
LIB system shall keep track of all data required by copyright licensing agencies In the Kingdom
and elsewhere. System Requirements Specification On making a request for a document from LIB
system, the requestor shall be presented with a form that records Details of the user and the
request made.
LIB system request forms shall be stored on the system for five years from the date of the request.
CS8494-SE 5
2.4 Software requirement document:
The software requirements document is the specification of the system.
It should include both a definition and a specification of requirements.
The software requirements provide a basis for creating the Software Requirements Specifications
(SRS).
The SRS is useful in estimating cost, planning team activities, performing tasks, and tracking the
team’s progress throughout the development activity.
Software designers use IEEE STD 830-1998 as the basis for the entire SRS.
Software Requirements Specification
<TITLE>
Version 1.0 approved
Prepared by <author>
<organization>
<date created>
1. Introduction
1.1. Purpose
1.2.Scope
1.3.Overview
2. General description
3. Functional Requirements
4. Interface requirements
4.1 User interfaces
4.1.1 GUI
4.1.2 CLI
4.1.3 API
4.2 Hardware interfaces
4.3 Software interfaces
4.4 Communication interfaces
5. Performance requirements
6. Design requirements
7. Other non-functional requirements
7.1 security
7.2 Binary compatibility
7.3 Reliability
7.4 Maintainability
7.5 Portability
7.6 Extendibility
7.7 Reusability
7.8 Application compatibility
7.9 Resource utilization
CS8494-SE 6
7.10 Serviceability
8. Operational scenarios
9. Preliminary schedule
10. Preliminary budget
11. Appendices
11.1 Definitions, Acronyms, Abbreviations
11.2 References
1. Introduction
1.1 Purpose
Identify the product whose software requirements are specified in this document, including
the revision or release number.
Describe the scope of the product that is covered by this SRS, particularly if this SRS describes
only part of the system or a single subsystem.
1.2 Scope
Provide a short description of the software being specified and its purpose, including relevant
benefits, objectives, and goals.
Relate the software to corporate goals or business strategies. If a separate vision and scope
document is available, refer to it rather than duplicating its contents here.
2. General description:
3. Functional Requirements
Itemize the detailed functional requirements associated with this feature.
These are the software capabilities that must be present in order for the user to carry out the
services provided by the feature, or to execute the use case.
Include how the product should respond to anticipated error conditions or invalid inputs
4. Interface requirements
Describe the logical characteristics of each interface between the software product and the
users.
4.1 User Interfaces
This may include sample screen images, any GUI standards or product family style guides that
are to be followed, screen layout constraints, standard buttons and functions (e.g., help) that
will appear on every screen, keyboard shortcuts, error message display standards, and so on.
Define the software components for which a user interface is needed.
4.2 Hardware Interfaces
Describe the logical and physical characteristics of each interface between the software product
and the hardware components of the system.
This may include the supported device types, the nature of the data and control interactions
between the software and the hardware, and communication protocols to be used.
4.3 Software Interfaces
Describe the connections between this product and other specific software components (name
and version), including databases, operating systems, tools, libraries, and integrated
commercial components.
Identify the data items or messages coming into the system and going out and describe the
purpose of each
Identify data that will be shared across software components.
CS8494-SE 7
If the data sharing mechanism must be implemented in a specific way (for example, use of a
global data area in a multitasking operating system), specify this as an implementation
constraint.
4.4 Communications Interfaces
Describe the requirements associated with any communications functions required by this
product, including e-mail, web browser, network server communications protocols, electronic
forms.
Define any pertinent message formatting. Identify any communication standards that will be
used, such as FTP or HTTP.
Specify any communication security or encryption issues, data transfer rates, and
synchronization mechanisms.
5. Performance Requirements
If there are performance requirements for the product under various circumstances, state them
here and explain their rationale, to help the developers understand the intent and make
suitable design choices.
6. Design requirements
Describe about the basic design of the software using UML diagrams which include DFD
diagram, sequence diagram, ER diagram, Class diagram, Activity diagram.
7. Other non functional requirements
Describe how the system should function rather than what should do. It includes following
functionalities.
7.1 securities
Describe how secure the system should be.
7.2 Binary compatibility
7.3 Reliability
7.4 Maintainability
Describe how the system can be serviced and in which time period.
7.5 Portability
Describe about how the application can be work in different platforms.
7.6 Extendibility
Describe about how the system can connect with the other external resources
7.7 Reusability
Describe about how the software can be reused for the future products.
7.8 Application compatibility
7.9 Resource utilization
7.10 Serviceability
8. Operational scenarios
9.Preliminary schedule
10. Preliminary budget
11. Appendices
11.1 Definitions, Acronyms, Abbreviations
11.2 References
CS8494-SE 8
Example:
CS8494-SE 9
CS8494-SE 10
CS8494-SE 11
CS8494-SE 12
Characteristics of SRS:
# Correctness # Unambiguous
# Specific # Completeness
# Traceable # Consistent
Users of a Requirements document:
CS8494-SE 13
2.5 Requirement Engineering Process:
Requirement engineering is a process in which various activities are concerned
Feasibility studies
Requirement elicitation and analysis
Requirement validation
Requirement management
CS8494-SE 15
– Negotiate
• Work toward a set of requirements that lead to “win-win”
(e) Specification
• Final work product produced by requirement engineer.
• Can be any one (or more) of the following:
– A written document
– A set of models
– A formal mathematical
– A collection of user scenarios (use-cases)
– A prototype
(e) Validation
Examine the specification to ensure that SW requirement is not ambiguous, consistent, error free etc.
A review mechanism that looks for
• errors in content or interpretation
• areas where clarification may be required
• missing information
• inconsistencies (a major problem when large products or systems are engineered)
• conflicting or unrealistic (unachievable) requirements.
(f) Requirement management:
Requirement management is the process of managing changing requirements during the
requirements engineering process and system development.
1. Feasibility studies:
A feasibility study is a study made to decide whether or not the proposed system is worthwhile.
Input to feasibility study: Outline description of the system.
Output from feasibility study: Feasibility report.
Feasibility report:
CS8494-SE 16
It is a document which recommends whether or not it is worth carry on with the requirement
engineering and system development process.
Feasibility studies focus on:
o Does the system contribute the overall objectives of the organization?
o Can the system be implemented using current technology?
o Can the system be implemented within the given budget and schedule?
o Can the system integrated with the other systems which are already in place?
2. Requirement elicitation and analysis
It includes following activities:
Requirement discovery
Requirement Classification
Requirement Prioritization4.
Requirement documentation
CS8494-SE 17
Requirement Requirement
checking specification
Requirement CONFLICT
collection RESOLUTION
Classification
Interviewing
In formal or informal interviewing, the RE team puts questions to stakeholders about the system that
they use and the system to be developed.
There are two types of interview
Closed interviews where a pre-defined set of questions are answered. Defined set of questions
are answered.
Open interviews where there is no pre-defined agenda and a range of issues are explored
with stakeholders.
Scenarios
Scenarios are real-life examples of how a system can be used.
They should include
A description of the system
A description of the starting situation;
A description of the normal flow of events;
A description of what can go wrong;
Information about other concurrent activities;
A description of the state when the scenario finishes.
Viewpoints:
Viewpoints are a way of structuring the requirements to represent the perspectives of different
CS8494-SE 18
stakeholders. Stakeholders may be classified under different viewpoints.
Use cases:
Use-cases are a scenario-based technique in the UML which identify the actors in an interaction and
which describe the interaction itself.
• set of use cases should describe all possible interactions the system.
Ethnography
It is a technique of observation which is used to understand social and organizational requirements.
Two types:
Requirements obtained from working style of people
Requirement obtained from interactivities performed by people.
(b) Requirements classification
• Groups related requirements and organizes them into coherent clusters.
(c) Requirements Prioritization
• Prioritizing requirements and resolving requirements conflicts.
(d) Requirements documentation
CS8494-SE 19
• Requirements are documented and input into the next round of the spiral.
3. Requirement validation
Requirement validation is a process in which it is checked that whether the gathered
requirements represent the same system the customer really wants.
In requirement validation the requirement errors are fixed.
Requirement error fixing cost is higher than the implementation error fixing cost.
Requirement checking can be done in following manner,
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 according to budget and technology?
Verifiability: can the requirements be checked?
Automated
consistency analysis Prototyping
CS8494-SE 20
Volatile requirements:
These are requirements which are likely to change during the system development or the system
becomes operational.
EX: In Hospital management system, Requirement may change after government health care policies
change.
Types of Volatile requirements:
Types Definition
Mutable Requirements get change due to the change in the
requirements environment.
Emergent Requirements get change due to the change in customer
requirements understanding.
D-Dependent
R-Weak Relationship
CS8494-SE 21
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.
CS8494-SE 22
Rules for constructing DFD:
Processes should be named and numbered for easy reference.
The direction of flow is from top to bottom and from left to right. Data flows from source to
the destination.
Process should be numbered, if they are exploded into lower level details.
The names of data stores, sources and destination should be in capital letters. Process and data
flow names first letter should be in capital letter.
CS8494-SE 23
CS8494-SE 24
Example 2: Automated Railway Reservation System
DFD level 0
DFD level 1
CS8494-SE 25
DFD level 2
CS8494-SE 26
DFD level 1
DFD level 2
CS8494-SE 27
Example 4:Food Orgering System
DFD level 0
DFD level 1
CS8494-SE 28
DFD level 2
CS8494-SE 29
DFD level 1
DFD level 2
Notations:
CS8494-SE 30
Consists of 4 types of components:
Advantages:
Precise definition of problem
Represent graphical overflow
Useful in allocating resources to tasks
The notation used to develop a content description is noted in the following table:
Data Construct Notation Meaning
= is composed of
Sequence + and
Selection [|] either-or
Repetition { }n n repetitions of
() optional data
* ... * delimits comments
The notation enables a software engineer to represent composite data in one of the three fundamental
ways that it can be constructed:
As a sequence of data items.
As a selection from among a set of data items.
As a repeated grouping of data items.
Each data item entry that is represented as part of a sequence, selection, or repetition may itself be
another composite data item that needs further refinement within the dictionary.
CS8494-SE 32
PART - A
1. Define software prototyping.[R]
Software prototyping is defined as a rapid software development for validating the
requirements.
13. What does modality in data modeling indicates? [APR/MAY 2015] [U]
Modality indicates whether or not a particular data object must participate in the relationship.
20. What is the purpose of a data dictionary? [APR / MAY 2017] [R]
Data dictionary is the centralized collection of information about data. It stores meaning and origin of
data, its relationship with other data, data format for usage, etc. Data dictionary has rigorous
definitions of all names in order to facilitate user and software designers. Data dictionary is often
referenced as meta-data (data about data) repository. It is created along with DFD (Data Flow
Diagram) model of software program and is expected to be updated whenever DFD is changed or
CS8494-SE 34
updated.
23. What are the prototyping approaches in software process? [APR / MAY 2018] [R]
i. Evolutionary prototyping – the initial prototype is prepared and it is then refined through number
of stages to final stage.
ii. Throw-away prototyping – a rough practical implementation of the system is produced. The
requirement problems can be identified from this implementation.
Part-B
1. Explain in detail about Functional and nonfunctional requirements. [APR/MAY 2012] [U]
2. Explain in detail about user requirements. [APR/MAY 2015] [R]
3. Explain in detail elicitation and analysis. [NOV/DEC 2014] [R]
4. Explain about requirement validation and management. [APR/MAY 2012] [R]
5. Explain Petri nets and data dictionary. [R]
6. What are requirements engineering? Explain in detail the various processes in requirements
engineering. [APR / MAY 2017] [U]
7. Write a note on what are the difficulties in elicitation, requirement elicitation.
[APR / MAY 2017] [R]
8. Explain the feasibility studies. What are the outcomes? Does it have implicit or explicit on
software requirement collection? [APR / MAY 2017] [U]
9. What is requirement elicitation? Briefly describe the various activities performed in requirements
elicitation phase with an example of a watch system that facilitates to set time and alarm.
[APR / MAY 2018] [U]
10. What is SRS? Explain in detail the various components of an SRS. [APR / MAY 2018] [U]
CS8494-SE 35