Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

Unit-2(Software Requirement Specifications (SRS))

Requirement Engineering Process:

Elicitation,

Analysis,

Documentation,

Review and Management of User Needs,

Feasibility Study,

Information Modeling.

Data Flow Diagrams,

Entity Relationship Diagrams,

Decision Tables,

SRS Document,

IEEE Standards for SRS.

Software Quality Assurance (SQA): Verification and Validation,

SQA Plans, Software Quality Frameworks, ISO 9000 Models, SEI-CMM


Model
Requirement Analysis
Requirement Engineering Process

The hardest part of building a software is deciding precisely what is to be built. Requirement
engineering is the disciplined application of proven principle, methods, tools and notations to
describe a proposed system's intended behavior and its associated constraints.
Difficulties of Requirement Engineering
Requirement are difficult to uncover: no one give the complete requirement in

the first time, if someone does then also requirement are incomplete

Requirement Changes: with the development process requirements get added and changed
as the user begins to understand the system and his or her real need.

Tight project schedule: have insufficient time to do a decent job

Communication Barrier: user and developer have different technical background and tastes

Lack of resources: there may not be enough resources to build software that can do
everything the customer wants.
Types of requirement
Known requirement: Which is already known to the stake holder

Unknown Requirement: Forgotten by stake holder because that are not needed right
now

Undreamt Requirement: Stakeholder is unable to think of new requirement due to limited


domain knowledge.

There are majorly four steps in requirement analysis


Requirement Elicitation: Gathering of Requirement

Requirement Analysis: Requirements are analyzed to identify inconsistences, defects etc.


and to resolve conflicts.

Requirement documentation: Here we document all the refined requirement properly.

Requirement Review: Review is carried out to improve the quality of the SRS.

Methods of requirement elicitation


Is the most difficult, most critical, most error-prone and communication intensive aspect of the
s/w development. It can only succeed only through an effective customer developer partnership.

Interview
• Both parties would like to understand each other

• Interview can be of two types open-ended or structured

• In open ended, there is no present agenda, context free questions can be asked to
understand the problem, to have an over view over the situation

In structured interview, agenda is pre-set.

Brainstorming
• A kind of group discussion, which lead to ideas very quickly and help to promote creative
thinking

• Very popular now a days and is being used in most of the organizations

All participants are encouraged to say whatever idea come to their mind and no one will be
criticized for any idea no matter how goofy it seems.

Delphi technique
• Here participants are made to write the requirement on a piece of paper, then these
requirements are exchanged among participants who gave their comments to get a revised set
of requirements. This process is repeated till the final consensus is reached

FAST (facilitated application specification technique)


• This approach encourages the creation of joint team of customer and developer who works
together to understand correct set of requirements

Everyone is asked to prepare a list of

• What surrounds the system

• Produced by the system

• Used by the system

• List of service, constraints, and performance criterion

• Then we divide these lists into smaller list to work in smaller teams

QFD (quality functional deployment)


Its emphases to incorporate the voice of the customer with importance
Then according to customer, a value indicating a degree of
importance, is assigned to each requirement. Thus, the customer,
determine the importance of each requirement on a scale of 1 to 5 as:

5 points: very important

4 points: important

3 points: not important but nice to have

2 point: not important

1 point: unrealistic, requires further explanation

Use case approach.


• These are structured description of the user requirement. It is a narrative which
describe the sequence of events from user's perspective.

• Use case diagrams are graphical representation to show the system at different
levels

• They are sometimes supportive the activity diagrams, to understand the


workflow.

Requirement analysis
In this phase we analysis all the set of requirements to find any inconsistency or
conflicts.
In requirement gathering phase our all concentration was on getting all the set of
requirements but now, we see how many requirements are contradictory to each
other or requires further exploration to be considered further.
Different tools can be used Data flow diagram, Control flow diagram, ER diagram
etc.

Data Flow Diagram


A data flow diagram or bubble chart is a graphical representation of the flow of
data through a system. It clarifies systems requirements and identify major
transformations.
DFD represent a system at different level of abstraction. DFD may be Partitioned
into levels that represent increasing information flow and functional details

Components of DFD
Circle: A circle (bubble) shows a process that transforms data inputs into data outputs.

Data Flow: A curved line shows the flow of data into or out of a process or data store.

Data Store: A set of parallel lines shows a place for the collection of data items. A data store
indicates that the data is stored which can be used at a later stage or by the other processes in
a different order. The data store can have an element or group of elements.

Source or Sink: Source or Sink is an external entity and acts as a source of system inputs or sink
of system outputs.

Levels in Data Flow Diagrams (DFD)


The DFD may be used to perform a system or software at any level of abstraction. Infact, DFDs
may be partitioned into levels that represent increasing information flow and functional detail.
Levels in DFD are numbered 0, 1, 2 or beyond. Here, we will see primarily three levels in the data
flow diagram, which are: 0-level DFD, 1-level DFD, and 2-level DFD.

DFD uses hierarchy to maintain transparency thus multilevel DFD's can be created. Levels of
DFD are as follows:

0-level DFD: It represents the entire system as a single bubble and provides an overall picture
of the system.
1-level DFD: It represents the main functions of the system and how they interact with each
other.

2-level DFD: It represents the processes within each function of the system and how they
interact with each other.
Control Flow Diagram/Control flow chart/Flow Chart
A flow chart is a graphical representation of how control flow during the execution of a program. It use
the following symbols to represent a system's control flow.

FLOW CHART OF SOFTWARE INSTALLATION


Entity Relationship Diagram
⚫ ER Diagram a non-technical design method works on conceptual level based
on the perception of the real world.

⚫ E-R data model was developed to facilitate software designers by allowing


specification of an enterprise schema that represents the overall logical structure
of a database.

Three main constructs are data entities, their relationships and their associated
Pat tributes.
Decision Tables
A decision table is a brief visual representation for specifying which actions to perform
depending on given conditions.

A decision table is a good way to settle with different combination inputs with their
corresponding outputs.

Decision tables are very much helpful in requirements management and test design techniques.
It provides a regular way of starting complex business rules, that is helpful for developers as
well as for testers.

Requirement Documentation

After have final set of requirements it is also necessary to document them properly in a
standard format, so that can be understood easily even by non-technical person.
Here IEEE provides standard for SRS documents in IEEE830, using which we can make SRS
document more readable, modifiable, and a format which can be followed through the world.

IEEE Standard for SRS

 1-Introduction
 1.1-Purpose
 1.2-Scope/Intended Audience
 1.3-Definition, Acronyms and Abbreviation
 1.4-References / Contact Information / SRS team members
 1.5-Overview

 2-Overall Description
 2.1-Product Perspective
 2.2-Product Functions
 2.3-User Characteristics
 2.4-General Constraints
 2.5-Assumptions and dependencies

 3-Specific Requirement
 3.1-External interface requirements(user/hardware/software interface)
 3.2-Functional requirements
 3.3-Performance requirements
 3.4-Design constraints (Standards compliance/hardware limitations.
 3.5-Logical database requirements
 3.6-Software system attributes(Reliability, availability, Security, Maintainability.

 4-Change Management process


 5-Document approval
 5.1-Tables, diagrams, and flowchar
 5.2-Appendices
 5.3-Index

Requirement Review
Before finalizing the requirement one more review specially by a third party, who a master in
the industry is advisable, to have a fresh lock over the system, and can mentions any points if
missed by team.

Verification/White Box
• Verification ensures that the software product is designed and developed according to the
specified requirements and standards. "Are we building the product right".
Process of Ensuring that the product meets its design specifications.
Focuses on static analysis techniques. Checks for consistency, completeness, am correctness.
Code reviews.
Static analysis tools
Inspection of requirements, design, and code documentation

Validation/Black Box
Validation ensures that the software product meets the end-user requirements and is fit for its
intended purpose, "Are we Building the right product". Ensure that the product meets its design
specifications.

Focuses on static analysis techniques. Checks for consistency, completeness, correctness


Code reviews
Static analysis tools

Inspection of requirements, design, and code documentation

What is Quality?

Quality defines to any measurable characteristics such as correctness,


maintainability, portability, testability, usability, reliability, efficiency,
integrity, reusability, and interoperability.

Quality of Design: Quality of Design refers to the characteristics that designers specify for an
item. The grade of materials, tolerances, and performance specifications that all contribute to
the quality of design.
Quality of conformance: Quality of conformance is the degree to which the design
specifications are followed during manufacturing. Greater the degree of conformance, the
higher is the level of quality of conformance.

Software Quality Assurance – Software Engineering


Software Quality Assurance (SQA) is simply a way to assure quality in the software. It is
the set of activities which ensure processes, procedures as well as standards are suitable
for the project and implemented correctly.
Software Quality Assurance is a process which works parallel to development of software.
It focuses on improving the process of development of software so that problems can be
prevented before they become a major issue. Software Quality Assurance is a kind of
Umbrella activity that is applied throughout the software process.
Generally, the quality of the software is verified by the third-party organization
like international standard organizations.
Elements Of Software Quality Assurance:
1. Standards: The IEEE, ISO, and other standards organizations have produced a
broad array of software engineering standards and related documents. The job of
SQA is to ensure that standards that have been adopted are followed, and all work
products conform to them.
2. Reviews and audits: Technical reviews are a quality control activity performed
by software engineers for software engineers. Their intent is to uncover errors.
Audits are a type of review performed by SQA personnel (people employed in an
organization) with the intent of ensuring that quality guidelines are being
followed for software engineering work.
3. Testing: Software testing is a quality control function that has one primary
goal—to find errors. The job of SQA is to ensure that testing is properly planned
and efficiently conducted for primary goal of software.
4. Error/defect collection and analysis: SQA collects and analyzes error and
defect data to better understand how errors are introduced and what software
engineering activities are best suited to eliminating them.
5. Change management: SQA ensures that adequate change management practices
have been instituted.
6. Education: Every software organization wants to improve its software
engineering practices. A key contributor to improvement is education of software
engineers, their managers, and other stakeholders. The SQA organization takes
the lead in software process improvement which is key proponent and sponsor of
educational programs.
7. Security management: SQA ensures that appropriate process and technology
are used to achieve software security.
8. Safety: SQA may be responsible for assessing the impact of software failure and
for initiating those steps required to reduce risk.
9. Risk management: The SQA organization ensures that risk management
activities are properly conducted and that risk-related contingency plans have
been established.
Software quality assurance focuses on:
 software’s portability
 software’s usability
 software’s reusability
 software’s correctness
 software’s maintainability
 software’s error control
Major Software Quality Assurance Activities:
1. SQA Management Plan: Make a plan for how you will carry out the SQA
throughout the project. Think about which set of software engineering activities
are the best for project. check level of SQA team skills.
2. Set The Check Points: SQA team should set checkpoints. Evaluate the
performance of the project on the basis of collected data on different check
points.
3. Measure Change Impact: The changes for making the correction of an error
sometimes re introduces more errors keep the measure of impact of change on
project. Reset the new change to check the compatibility of this fix with whole
project.
4. Multi testing Strategy: Do not depend on a single testing approach. When you
have a lot of testing approaches available use them.
5. Manage Good Relations: In the working environment managing good relations
with other teams involved in the project development is mandatory. Bad relation
of SQA team with programmers team will impact directly and badly on project.
Don’t play politics.
6. Managing Reports and Records: Document and share QA activities (test cases,
defects, client changes) for future reference and stakeholder alignment.
Benefits of Software Quality Assurance (SQA):
1. SQA produces high quality software.
2. High quality application saves time and cost.
3. SQA is beneficial for better reliability.
4. SQA is beneficial in the condition of no maintenance for a long time.
5. High quality commercial software increase market share of company.
6. Improving the process of creating software.
7. Improves the quality of the software.
8. It cuts maintenance costs. Get the release right the first time, and your company
can forget about it and move on to the next big thing. Release a product with
chronic issues, and your business bogs down in a costly, time-consuming, never-
ending cycle of repairs.
Disadvantage of SQA:
There are a number of disadvantages of quality assurance. Some of them include adding
more resources, employing more workers to help maintain quality and so much more.
CAPABILITY MATURATY MODEL

• CMM is a strategy for improving the software process, to generate quality


software.

• The Capability Maturity Model (CMM) is a development model created after a


study of data collected from organizations that contracted with the U.S.
Department of Defense, who funded the research. The term "maturity" relates to
the degree of formality and optimization of processes, from ad hoc practices, to
formally defined steps, to managed result metrics, to active optimization of the
processes.

• It is use to judge the maturity of s/w process an organization and to identify


the key practice that are required to increase the maturity of theses process.

There are five levels of the CMM

• Initial (process unpredictable and poorly controlled) • No engineering management,


everything done on ad hoc basis • Software process is unpredictable with respect to time
and cost • It depends on current staff, as staff change so does the process.

• Repeatable (basic project management) • Planning and managing of new projects are
based on the experience with the similar projects
• Realistic plans based on the performance based on the previous projects.
• Defined (process standardization)
• Process of developing and maintaining s/w across the organization is documented
including engineering and management.
• Training programs are implemented to ensure that the staff have skills and knowledge
required
• Risk management .

• Managed (Quantitative measurement)


• Organization set quantitative goals for both product and process.
• Here process is predictable both with respect to time and cost .

• Optimized (continuous process improvement)


• Here organization analysis defects to determine their causes and goals is to preventing the
occurrence of defects
• Here company continuously improve the process performance of their projects.
ISO 9000 Series/Iso 9000 Model:

“ISO International Organization for standardization"

 91 is an independent, non-governmental International organization for developing


standards.
 These standard are developed for ensuring quality, safety and efficiency products, services
and systems.

ISO 9000

 It is a series of standards developed by ISO.


 these standards have been developed for assuring quality (GA) for manufacturing and
service industries.
 Initially ISO 9001, 9002. & 9003 have been launched and later ISO 9004 also came into
existence.

Why ISO Certification required by Software Industry?


There are several reasons why software industry must get an ISO certification.
Some of reasons are as follows :
 This certification has become a standards for international bidding.
 It helps in designing high-quality repeatable software products.
 It emphasis need for proper documentation.
 It facilitates development of optimal processes and totally quality
measurements.

Features of ISO 9001 Requirements :


 Document control –
All documents concerned with the development of a software product should
be properly managed and controlled.
 Planning –
Proper plans should be prepared and monitored.
 Review –
For effectiveness and correctness all important documents across all phases
should be independently checked and reviewed .
 Testing –
The product should be tested against specification.
 Organizational Aspects –
Various organizational aspects should be addressed e.g., management
reporting of the quality team.

Advantages of ISO 9000 Certification :


Some of the advantages of the ISO 9000 certification process are following :
 Business ISO-9000 certification forces a corporation to specialize in “how
they are doing business”. Each procedure and work instruction must be
documented and thus becomes a springboard for continuous improvement.
 Employees morale is increased as they’re asked to require control of their
processes and document their work processes
 Better products and services result from continuous improvement process.
 Increased employee participation, involvement, awareness and systematic
employee training are reduced problems.

ISO 9000 Series:-

ISO 9000 (1987)

*it is defined as a set of international standards on quality management & quality assurance

* Applicable to any size of organization

* Be usable by all sectors

ISO 9001: (1987)

Current version is released in Sep, 2015.

This standard is provided to the organizations which are involved in creating new products.

IT focuses quality assurance in-

*Desigh
*Development & Poduction.
Ex- s\w Development org.

ISO 9002

This standard is applicable to these Companies which do not design product but involved in
manufacturing.
Eg. steel and car manufacturing Companies

ISO 9003
latest version ISO 9003:
1994 Applicable to the organizations that are only involved in the installation and testing of the
products.

latest

ISO 9004;

This standard gives the guidelines for enhancing an organizations ability to success

*It provides a self-assessment total.

You might also like