0% found this document useful (0 votes)
29 views10 pages

Software Requirement Specifications Guide

The document outlines Software Requirement Specifications (SRS), detailing the types of requirements (known, unknown, undreamt), and differentiating between functional and non-functional requirements. It describes the requirements engineering process, including elicitation, analysis, documentation, and validation, emphasizing the importance of clear communication between stakeholders. Additionally, it covers software quality assurance, quality models, and standards such as ISO 9001 and the Capability Maturity Model (CMM) for improving software development processes.

Uploaded by

shivansh jaiswal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views10 pages

Software Requirement Specifications Guide

The document outlines Software Requirement Specifications (SRS), detailing the types of requirements (known, unknown, undreamt), and differentiating between functional and non-functional requirements. It describes the requirements engineering process, including elicitation, analysis, documentation, and validation, emphasizing the importance of clear communication between stakeholders. Additionally, it covers software quality assurance, quality models, and standards such as ISO 9001 and the Capability Maturity Model (CMM) for improving software development processes.

Uploaded by

shivansh jaiswal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering

Unit-2: Software Requirement Specifications

Software Requirement
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."

1. Known Requirements:- Something a stakeholder believes to be implemented


2. Unknown requirements:-Forgotten by the stakeholder because they are not needed
right now or needed only by another stakeholder
3. Undreamt requirements:- stakeholder may not be able to think of new requirement
due to limited knowledge
A Known, Unknown and Undreamt requirements may functional or non functional.

 Functional requirements: - describe what the software has to do. They are often called
product features. It depends on the type of software, expected users and the type of
system where the software is used.
 Non Functional requirements: - are mostly quality requirements. That stipulate how
well the software does, what it has to [Link] define system properties and constraints
e.g. reliability, response time and storage requirements. Constraints are I/O device
capability, system representations, etc.
 User requirements:- Statements in natural language plus diagrams of the services the
system provides and its operational constraints.
 System requirements: - A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints. Defines what should be
implemented so may be part of a contract between client and contractor.

1. Requirements engineering Process


 The process of finding out, analyzing, documenting and checking these services and
constraints called requirement engineering.
 RE produces one large document, written in a natural language, contains a
description of what the system will do without how it will do
 Input to RE is problem statement prepared by the customer and the output is SRS
prepared by the developer.
 The requirements themselves are the descriptions of the system services and constraints
that are generated during the requirements engineering process.

Requirements engineering processes:- The processes used for RE vary widely


depending on the application domain, the people involved and the organisation
developing the requirements. However, there are a number of generic activities
common to all processes
 Requirements elicitation
 Requirements analysis
 Requirements documentation
 Requirements review

Crucial process steps of Requirement

 Requirement Elicitation: - known as gathering of requirement. Here requirement are


identified with the help of customer and exiting system processes, if they are available.
 Requirement Analysis: - analysis of requirement stars with Requirement Elicitation.
Requirements are analyzed in order to identify inconstancy, defects etc.
 Requirement Documentation:- this is the end product of requirement elicitation and
analysis. Documentation is very important as it will be the foundation for the design of
the software. The documentation is known as SRS.
 Requirement Review:-review process is carried out to improve the quality of the SRS. it
may also called verification. It should be a continuous activity that is incorporated into
the elicitation, analysis, documentation.
The primary output of requirement engineering process is requirement specification
(SRS).

1. Feasibility Study: - It is the process of evaluation or analysis of the potential


impact of a propose project or program.
Five common factors (TELOS)
 Technical feasibility: - Is it technically feasible to provide direct communication
connectivity through space from one location of globe to another location?
 Economic feasibility:-Are the project’s cost assumption realistic?
 Legal feasibility: - Does the business model realistic?
 Operational feasibility: - Is there any market for the product?
 Schedule feasibility: - Are the project’s schedule assumption realistic?

1. Elicitation: - It is also called requirement [Link] are identified


with the help of customer and exiting system processes, if they are available.
Requirement Elicitation is most difficult is perhaps most critical most error prone
most communication intensive aspect of software development.

Various methods of Requirements Elicitation


1. Interviews
 After receiving the problem statement from the customer, the first step is to arrange a
meeting with the customer.
 During the meeting or interview, both the parties would like to understand each other.
 The objective of conducting an interview is to understand the customer’s expectation
from the software
Selection of stakeholder
1. Entry level personnel
2. Middle level stakeholder
3. Managers
4. Users of the software (Most important)
2. Brainstorming Sessions
 Brainstormy is a group technique that may be used during requirement elicitation to
understand the requirement
 Every idea will be documented in a way that every can see it
 After brainstormy session a detailed report will be prepared and reviewed by the
facilitator
3. Facilitated Application specification approach (FAST)
 FAST is similar to brainstormy session and the objective is to bridge the expectation gap-
a difference what the developers think they are suppose to build and what the customer
think they are going to get
 In order to reduce the gap a team oriented approach is developed for requirement
gathering and is called FAST
4. Quality function deployment (QFT)
It incorporates the voice of the customer and converts it in to the document.

2. Analysis
Requirement analysis phase analyze, refine and scrutinize requirements to make
consistent & unambiguous requirements.
1. Draw the context diagram
The context diagram is a simple model that defines the boundaries and interface of the
proposed system.
2. Development of prototype
Prototype helps the client to visualize the proposed system and increase the
understanding of requirement. Prototype may help the parties to take final decision.
3. Model the requirement
This process usually consists of various graphical representations of function, data
entities, external entities and their relationship between them. It graphical view may
help to find incorrect, inconsistent, missing requirements. Such models include data
flow diagram, entity relationship diagram, data dictionary, state transition diagram.
4. Finalize the requirement
After modeling the requirement inconsistencies and ambiguities have been identified
and corrected. Flow of data among various modules has been analyzed. Now Finalize
and analyzes requirements and next step is to document these requirements in
prescribed format.

3. Documentation
This is the way of representing requirements in a consistent format SRS serves many
purpose depending upon who is writing it.

1. Software requirement specification


Requirements specification is a complete description of the behavior of a system to be
developed. It includes a set of use cases that describe all the interactions the users will
have with the software. Use cases are also known as functional requirements. In
addition to use cases, the SRS also contains non-functional (or supplementary)
requirements. Non- functional requirements are requirements which impose constraints
on the design or implementation (such as performance engineering requirements,
quality standards, or design constraints).
Need for Software Requirement Specification (SRS)
 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.

 This causes a communication gap between the parties involved in the development
project. A basic purpose of software requirements specification is to bridge this
communication gap.

Characteristics of good SRS document:- Some of the identified desirable qualities of the SRS
documents are the following-
Concise- The SRS document should be concise and at the same time unambiguous,
consistent, and complete. An SRS is unambiguous if and only if every requirement
stated has one and only one interpretation.
Structured- The SRS document should be well-structured. A well-structured document
is easy to understand and modify. In practice, the SRS document undergoes several
revisions to cope with the customer requirements.
Black-box view- It should only specify what the system should do and refrain from
stating how to do. This means that the SRS document should specify the external
behaviour of the system and not discuss the implementation issues.
Conceptual integrity- The SRS document should exhibit conceptual integrity so that
the reader can easily understand the contents.
Verifiable- All requirements of the system as documented in the SRs document should
be verifiable. This means that it should be possible to determine whether or not
requirements have been met in an implementation.

4. Requirements Validation
Requirement Validation is used for checking the document:-
 Completeness & consistency
 Conformance to standards
 Requirements conflicts
 Technical errors
 Ambiguous requirements
2. Software Quality
 The degree to which a system, component, or process meets specified requirements.
 The degree to which a system, component or process meets customer or user needs or
expectations.
Software Quality attribute

2.3.1 McCall Software Quality Model


[Link] Operation
Factors which are related to the operation of a product are combined. The factors are:
 Correctness
 Efficiency
 Integrity
 Reliability
 Usability

These five factors are related to operational performance, convenience, ease of usage
and its correctness. These factors play a very significant role in building customer’s
satisfaction.
ii. Product Revision
The factors which are required for testing & maintenance are combined and are given
below:
 Maintainability
 Flexibility
 Testability
These factors pertain to the testing & maintainability of software. They give us idea
about ease of maintenance, flexibility and testing effort. Hence, they are combined
under the umbrella of product revision.
iii. Product Transition
We may have to transfer a product from one platform to an other platform or from
one technology to another technology. The factors related to such a transfer are
combined and given below:
 Portability
 Reusability
 Interoperability

3. Software Quality Assurance


 It is a planned and systematic pattern of all actions necessary to provide adequate
confidence that the time or product conforms to established technical requirements.”
 Purpose of SQAP is to specify all the works products that need to be produced during the
project, activities that need to performed for checking the quality of each of the work
product
 It is interested in the quality of not only the final product but also an intermediate product.

Verification:-is the process of determine whether or not product of a given phase of


software development full fill the specification established during the previous phase.

Validation:-is the process of evaluating software at the end of software development to


ensure compliance with the software requirement. testing is common method of
validation Software V&V is a system engineering process employing rigorous
methodologies for evaluating the correctness and quality of the software product
throughout the software life cycle.
4. SQA Plans, Software Quality Frameworks
Quality plan structure
 Product introduction;
 Product plans;
 Process descriptions;
 Quality goals;
 Risks and risk management.
Quality plans should be short, succinct documents. If they are too long, no-one will
read them.

SQA Life CYCLE or Framework of SQA

IV&V
Safety Reliability
Metrics
Risk Management

5. International National Organization (ISO)


An international set of standards for quality management. It is applicable to a range of
organisations from manufacturing to service industries. ISO 9001 applicable to
organisations which design, develop and maintain products. ISO 9001 is a generic
model of the quality process that must be instantiated for each organisation using the
standard.
Quality standards and procedures should be documented in an organisational quality
manual. An external body may certify that an organisation’s quality manual conforms
to ISO 9000 standards. Some customers require suppliers to be ISO 9000 certified
although the need for flexibility here is increasingly recognised.
Process of getting ISO 9000 Certification
 Application
 Pre-assessment
 Document review and adequacy of audit
 Compliance audit
 Registration
 Continued surveillance

The Capability Maturity Model (CMM)


When it is applied to an existing organization's software development processes, it
allows an effective approach toward improving them. Eventually it became clear that
the model could be applied to other processes. This gave rise to a more general concept
that is applied to business processes and to developing people
The Capability Maturity Model involves the following aspects:
 Maturity Levels: a 5-level process maturity continuum - where the uppermost (5th) level
is a notional ideal state where processes would be systematically managed by a
combination of process optimization and continuous process improvement.
 Key Process Areas: a Key Process Area (KPA) identifies a cluster of related activities
that, when performed together, achieve a set of goals considered important.
 Goals: the goals of a key process area summarize the states that must exist for that key
process area to have been implemented in an effective and lasting way. The extent to
which the goals have been accomplished is an indicator of how much capability the
organization has established at that maturity level. The goals signify the scope,
boundaries, and intent of each key process area.
 Common Features: common features include practices that implement and
institutionalize a key process area. There are five types of common features:
commitment to Perform, Ability to Perform, Activities Performed, Measurement and
Analysis, and Verifying Implementation.

Common questions

Powered by AI

Requirement analysis builds upon requirement elicitation by scrutinizing gathered requirements for inconsistencies, ambiguities, and defects . Techniques used during this phase include context diagrams, data flow diagrams, and entity-relationship diagrams which visually represent system functions and data interactions . These models simplify complex relationships and processes, highlighting areas needing clarity. The development of prototypes serves as a tangible representation aiding in the validation and refinement of requirements, ensuring they are feasible and comprehensible . Through these methods, requirement analysis ensures precision and uniformity, laying a robust foundation for subsequent development phases .

Non-functional requirements, though often less emphasized, critically affect the software system's design and implementation by setting constraints on performance, quality, and operation . They determine system properties like usability, reliability, and efficiency, impacting user satisfaction and the system’s operational integrity . These requirements affect architectural decisions, resource allocations, and design constraints, making them essential for ensuring the software meets standards and user expectations effectively . Their role is crucial as they directly influence the long-term maintainability and adaptability of the software product .

Software requirements are mainly categorized into functional and non-functional requirements. Functional requirements describe what the software has to do, including product features dependent on the software type, expected users, and system requirements . Non-functional requirements stipulate how well the software performs its functions, defining system properties and constraints such as reliability, response time, and storage . Functional requirements are often expressed in terms of use cases, while non-functional requirements impose constraints on the design or implementation .

Requirement validation is crucial for checking the completeness, consistency, conformance to standards, potential conflicts, technical errors, and ambiguity within the software requirements document . It ensures that the documented requirements align with the client’s needs and expectations . Validation involves evaluating the correctness and quality of the requirements through activities such as reviews, prototyping, and formal inspections, ensuring that ambiguities are resolved and that requirements can be feasibly implemented .

Software Requirement Specifications (SRS) are crucial for defining what a system should do and establishing a common understanding between stakeholders. The SRS serves as a formal agreement and communication tool between the client and developer, helping to bridge the gap caused by differing understandings of the software problem and solution . A good SRS document should be concise, unambiguous, consistent, complete, and well-structured, ensuring easy understanding and modification . It should focus on what the system should accomplish without delving into how to achieve it, thus maintaining a black-box view . An effective SRS ensures that all requirements are verifiable, allowing stakeholders to measure whether they have been appropriately implemented .

Feasibility studies are significant in the requirements engineering process as they evaluate the practicality and potential impact of proposed projects before substantial resources are committed . These studies assess technical feasibility (technical capabilities and solution viability), economic feasibility (cost-effectiveness and budget realism), legal feasibility (compliance with laws and regulations), operational feasibility (market demand and user need satisfaction), and schedule feasibility (project timeline realism). Conducting a feasibility study helps identify any constraints and risks early, ensuring that projects are viable and aligned with strategic objectives before proceeding to full-scale development .

Verification and validation are distinct processes within the software development life cycle. Verification is the process of ensuring that the software products of a development phase fulfill the specifications established during the previous phase. It focuses on building the product correctly according to its specifications . Validation, on the other hand, is concerned with evaluating the software at the end of the development process to ensure it meets the customer needs and expectations, essentially checking if the right product has been built . Both processes are necessary as verification helps in catching errors early in the development stages, while validation ensures that the final product is fit for use, thus contributing to the overall software quality .

The Capability Maturity Model (CMM) assists organizations in systematically improving their software development processes by providing a framework for measuring and enhancing process maturity. It defines a 5-level maturity continuum, with higher levels indicating more systematically managed and optimized processes . CMM includes Key Process Areas that group related activities aimed at achieving necessary goals, indicating maturity at each level . By identifying these areas and the associated goals, organizations can focus on areas needing improvement, implementing practices to institutionalize process changes, thereby enhancing overall process capability and quality .

Requirements elicitation is fraught with challenges such as communication barriers, misunderstandings between stakeholders, and difficulty in pinpointing tacit knowledge or unarticulated needs . Methods to mitigate these challenges include interviews and brainstorming sessions, which foster direct communication and exchange of ideas . Facilitated Application Specification Techniques (FAST) and Quality Function Deployment (QFD) help align developer and customer expectations, documenting customer needs effectively . Prototypes offer stakeholders a visual model of potential solutions, aiding in the clarification of vague or complex requirements .

A well-structured Software Requirement Specification (SRS) document should be concise, unambiguous, consistent, complete, well-organized, and verifiable . Its conciseness helps in effective communication, while unambiguity ensures that every requirement has a single, clear interpretation . Consistency and completeness prevent conflicting or missing requirements, aiding in comprehensive system development . Structured organization facilitates easy understanding and updating of the document as project requirements evolve . Verifiability ensures that all requirements can be checked against implementation outcomes, thus significantly contributing to the accuracy, efficiency, and success of the software development process .

You might also like