Software Engineering: Software Requirement Specification (SRS)
Software Engineering: Software Requirement Specification (SRS)
Software Engineering: Software Requirement Specification (SRS)
Unit 2
Requirements
Elicitation
Requirements
Requirement
Analysis
Engineering
Requirements
Documentation
Requirements
Review
SRS
Selection of stakeholder
1. Entry level personnel
2. Middle level stakeholder
3. Managers
4. Users of the software (Most important)
14
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
Types of questions.
• Any problems with existing system
• Any Calculation errors
• Possible reasons for malfunctioning
• No. of Student Enrolled
15
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
5. Possible benefits
6. Satisfied with current policies
7.How are you maintaining the records of previous students?
8. Any requirement of data from other system
9. Any specific problems
10. Any additional functionality
11. Most important goal of the proposed development
16
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
2. Brainstorming Sessions
It is a group technique
group discussions
Categorized
Prioritized Pruned
18
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
Guidelines
1. Arrange a meeting at a neutral site.
2. Establish rules for participation.
3. Informal agenda to encourage free flow of ideas.
4. Appoint a facilitator.
5. Prepare definition mechanism board, worksheets, wall
stickier.
6. Participants should not criticize or debate.
19
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
1. Part of environment that surrounds the system.
2. Produced by the system.
3. Used by the system.
A. List of constraints
B. Functions
C. Performance criteria
Activities of FAST session
1. Every participant presents his/her list
2. Combine list for each topic
3. Discussion
4. Consensus list
5. Sub teams for mini specifications
6. Presentations of mini-specifications
7. Validation criteria
8. A sub team to draft specifications
20
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
4. Quality Function Deployment
-- Incorporate voice of the customer
Technical requirements.
Documented
Prime concern is customer satisfaction
What is important for customer?
-- Normal requirements
-- Expected requirements
-- Exciting requirements
21
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
Steps
1. Identify stakeholders
2. List out requirements
3. Degree of importance to each requirement.
22
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
5 Points : V. Important
4 Points : Important
5 Points : Not Important but nice to have
2 Points : Not important
1 Points : Unrealistic, required further
exploration
Requirement Engineer may categorize like:
(i) It is possible to achieve
(ii) It should be deferred & Why
(iii) It is impossible and should be dropped from
consideration
First Category requirements will be implemented as per
priority assigned with every requirement.
23
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
5. The Use Case Approach
Ivar Jacobson & others introduced Use Case approach for elicitation
& modeling.
Use Case – give functional view
The terms
Use Case
Use Case Scenario Often Interchanged
Use Case Diagram But they are different
Use Cases
A use case is initiated by a user with a particular goal in
mind, and completes successfully when that goal is
satisfied.
26
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
* It describes the sequence of interactions between actors
and the system necessary to deliver the services that
satisfies the goal.
* Alternate sequence
* System is treated as black box.
Thus
Use Case captures who (actor) does what (interaction)
with the system, for what purpose (goal), without dealing
with system internals.
27
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
*defines all behavior required of the system, bounding the
scope of the system.
Jacobson & others proposed a template for writing Use cases
as shown below:
1. Introduction
Describe a quick background of the use case.
2.Actors
List the actors that interact and participate in the
use cases.
3.Pre Conditions
Pre conditions that need to be satisfied for the use
case to perform.
4. Post Conditions
Define the different states in which we expect the system
to be in, after the use case executes.
28
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
5. Flow of events
Business rules should be listed for basic & information flows as special
requirements in the use case narration .These rules will also be used
for writing test cases. Both success and failures scenarios should be
described.
7.Use Case relationships
30
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
Use case Diagrams
-- represents what happens when actor interacts with a system.
-- captures functional aspect of the system.
*Use Cases are for “what” the system is , not “how” the system
will be designed
32
Faculty : Dr. Abhinav Juneja
Use case diagram for Result Management System
Maintain Student
Details
Maintain Subject
Details
Login
Administrator/DR
Generate Result
Reports
View Results
Student/Teacher
33
Faculty : Dr. Abhinav Juneja
Requirements Elicitation
1. Maintain student Details
Add/Modify/update students details like name, address.
2.Maintain subject Details
Add/Modify/Update Subject information semester wise
3.Maintain Result Details
Include entry of marks and assignment of credit points for each
paper.
4. Login
Use to Provide way to enter through user id & password.
5. Generate Result Report
Use to print various reports
6. View Result
(i) According to course code
(ii) According to Enrollment number/roll number
34
Faculty : Dr. Abhinav Juneja
Requirements Elicitation (Use
Case)
Login
1.1 Introduction : This use case describes how a user logs into
the Result Management System.
35
Faculty : Dr. Abhinav Juneja
Requirements Elicitation (Use
Case)
1.5 Basic Flow : This use case starts when the actor wishes
to login to the Result Management system.
(i) System requests that the actor enter his/her name and
password.
(ii) The actor enters his/her name & password.
(iii) System validates name & password, and if finds correct
allow the actor to logs into the system.
36
Faculty : Dr. Abhinav Juneja
Use Cases
1.6 Alternate Flows
None
None
37
Faculty : Dr. Abhinav Juneja
Use Cases
2.Maintain student details
38
Faculty : Dr. Abhinav Juneja
Use Cases
2.4 Post-conditions : If use case is successful, student
information is added/updated/deleted from the system.
Otherwise, the system state is unchanged.
(ii) One of the sub flow will execute after getting the
information.
39
Faculty : Dr. Abhinav Juneja
Use Cases
If DEO selects "Add a student", "Add a student" sub flow will
be executed.
(ii) DEO enters the student_id. The system retrieves and display the
student information.
(iv) After changes, the system updates the student record with
changed information.
41
Faculty : Dr. Abhinav Juneja
Use Cases
2.5.3 Delete a student
42
Faculty : Dr. Abhinav Juneja
Use Cases
43
Faculty : Dr. Abhinav Juneja
Use Cases
2.6.2 Update Cancelled
44
Faculty : Dr. Abhinav Juneja
Use Cases
2.6.3 Delete cancelled
If in the delete a student sub flows, DEO decides not to delete
student record ,the delete is cancelled and the basic flow is re-
started at the beginning.
45
Faculty : Dr. Abhinav Juneja
Use Cases
3. Maintain Subject Details
3.1 Introduction
The DEO to maintain subject information. This includes adding,
changing, deleting subject information from the system
46
Faculty : Dr. Abhinav Juneja
Requirements Analysis
• The models used at this stage include ER diagrams, data flow diagrams(DFDs), data
dictionaries, etc.
• Requirements specification is the activity during which requirements are recorded in one or
more forms, usually in a Software Requirement Specification Document (SRS)
Faculty : Dr. Abhinav Juneja
Requirement Verification and Validation
• Concerned with demonstrating that the requirements define the system that
the customer really wants.
• Requirements error costs are high, so validation is very important
• Fixing a requirements error after delivery may cost up to 100 times the cost of
fixing an implementation error.
• Verification: It refers to the set of tasks that ensures that the software correctly
implements a specific function.
Validation: It refers to a different set of tasks that ensures that the software that
has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirement definitions would
propagate to the successive stages resulting in a lot of modification and
rework.
• Scope
• Information requirements
Literature surveys
Standards surveys
Domain experts’ interviews
Industrial data reviews
State-of-the-art assessments
Condition
Stub Rules
Stub
Action Entries
Stub Stub
• Rewrite the decision table with the most reduced set of rules;
rearranging the rule order is permissible if it improves user
understanding.
Y N Y Y Y N N N
Y Y Y N N N Y N
Y Y N N Y Y N N
Y N - Y Y Y Y N - N N N
Y Y Y Y N - N N N Y N -
Y Y Y N N N Y Y Y N N N
Loyality N N Y Y N N
Card (10%)
Coupon Y N Y N Y N
(20%)
ACTIONS
NO X
DISCOUN
T
20% X
15% X
30% X
10% X
20% X
Faculty : Dr. Abhinav Juneja
Q2 : Consider the payroll system of a person
(a) If the salary of a person is less than equal to Rs. 70,000 and
expenses do not exceed Rs. 30,000 then 10% tax is charged by IT
department.
(b) If the salary is greater than Rs.60,000 and less than equal to
Rs 2lakhs and expenses don’t exceed Rs. 40,000 than 20% tax is
charged by IT department.
(c) For salary greater than Rs 2 lakhs, 5% additional surcharge is
also charged. (d) If expenses are greater than Rs. 40,000
surcharge is 9%.
• An attribute which uniquely identifies each entity in the entity set is called KEY
ATTRIBUTE. For example, Roll_No will be unique for each student. In ER diagram, key
attribute is represented by an oval with underlying lines.
6. Modifiability:
SRS should be made as modifiable as possible and should be capable of easily
accepting changes to the system to some extent. Modifications should be properly
indexed and cross-referenced.
Faculty : Dr. Abhinav Juneja
Characteristics of Good SRS
7. Verifiability:
An SRS is verifiable if there exists a specific technique to quantifiably measure the
extent to which every requirement is met by the system. For example, a
requirement stating that the system must be user-friendly is not verifiable and
listing such requirements should be avoided.
8. Traceability:
One should be able to trace a requirement to a design component and then to a
code segment in the program. Similarly, one should be able to trace a requirement
to the corresponding test cases.
9. Design Independence:
There should be an option to choose from multiple design alternatives for the final
system. More specifically, the SRS should not include any implementation details.
Faculty : Dr. Abhinav Juneja
Characteristics of Good SRS
10. Testability:
An SRS should be written in such a way that it is easy to generate test cases and
test plans from the document.
11. Understandable by the customer:
An end user may be an expert in his/her specific domain but might not be an
expert in computer science. Hence, the use of formal notations and symbols should
be avoided to as much extent as possible. The language should be kept easy and
clear.
12. Right level of abstraction:
If the SRS is written for the requirements phase, the details should be explained
explicitly. Whereas, for a feasibility study, fewer details can be used. Hence, the
level of abstraction varies according to the purpose of the SRS.
• ISO 9000 describes the elements of a quality assurance system in general terms.
• These elements include the organizational structure, procedures, processes, and
resources needed to implement quality planning, quality control, quality
assurance, and quality improvement.
• However, ISO 9000 does not describe how an organization should implement
these quality system elements.
• Consequently, the challenge lies in designing and implementing a quality
assurance system that meets the standard and fits the company’s products,
services, and culture.
• The software organization registered to ISO 9001, must establish policies and
procedures to address each of the requirements just noted (and others) and then
be able to demonstrate that these policies and procedures are being followed.
• ISO/IEC (International Electrotechnical Commission) 9126 Software
engineering — Product quality was an international standard for the evaluation of
software quality.
• Now, It has been replaced by ISO/IEC 25010:2011.
• No KPA’s defined.
• Processes followed are adhoc and immature and are not well
defined.
• Unstable environment for software development.
• No basis for predicting product quality, time for completion, etc.
• At this stage, quantitative quality goals are set for the organization for software products
as well as software processes.
• The measurements made help the organization to predict the product and process
quality within some limits defined quantitatively.
• KPA’s:
• Software Quality Management- It includes the establishment of plans and strategies
to develop a quantitative analysis and understanding of the product’s quality.
• Quantitative Management- It focuses on controlling the project performance in a
quantitative manner.
Focus is customer supplier relationship, attempting to reduce Focus on the software supplier to improve its interval processes
to achieve a higher quality product for the benefit of the
customer’s risk in choosing a supplier. customer.
It is created for hard goods manufacturing industries. It is created for software industry.
ISO9000 is recognized and accepted in most of the countries. SEICMM is used in USA, less widely elsewhere.
It specifies concepts, principles and safeguards that should be CMM provides detailed and specific definition of what is
in place. required for given levels.
This establishes one acceptance level. It assesses on 5 levels.
Its certification is valid for three years. It has no limit on certification.
It focuses on inwardly processes. It focus outwardly.
It has 5 levels:(a). Initial (b). Repeatable (c). Defined (d).
It has no level. Managed (e). Optimized
It is basically an audit. It is basically an appraisal.
It is open to multi sector. It is open to IT/ITES.
Follow set of standards to make success repeatable. It emphasizes a process of continuous improvement.
Faculty : Dr. Abhinav Juneja