SEunit 2
SEunit 2
SEunit 2
(SRS)
(UNIT-2-part1)
Compiled By
Dr. Vandana Agarwal
Requirement Engineering
• A systematic and strict approach to the
definition, creation and verification of
requirements for a software system is known
as requirements engineering.
• In order to guarantee the effective creation of
a software product, the requirements
engineering process entails a number of tasks
that help in understanding, recording and
managing the demands of stakeholders.
Requirements Engineering Process
Feasibility Study:
• The objective behind the feasibility study is to create the reasons
for developing the software that is acceptable to users, flexible to
change and conformable to established standards.
Types of Feasibility:
• Technical Feasibility - Technical feasibility evaluates the current
technologies, which are needed to accomplish customer
requirements within the time and budget.
• Operational Feasibility - Operational feasibility assesses the range in
which the required software performs a series of levels to solve
business problems and customer requirements.
• Economic Feasibility - Economic feasibility decides whether the
necessary software can generate financial profits for an
organization.
Steps in Requirements Engineering
Process
• Requirements Elicitation
– This is the process of gathering information about the needs and expectations of stakeholders
for the software system. This step involves interviews, surveys, focus groups, and other
techniques to gather information from stakeholders.
• Requirements Analysis
– This step involves analyzing the information gathered in the requirements elicitation step to
identify the high-level goals and objectives of the software system. It also involves identifying
any constraints or limitations that may affect the development of the software system.
• Requirements Specification
– This step involves documenting the requirements identified in the analysis step in a clear,
consistent, and unambiguous manner. This step also involves prioritizing and grouping the
requirements into manageable chunks.
• Requirements Validation
– This step involves checking that the requirements are complete, consistent, and accurate. It
also involves checking that the requirements are testable and that they meet the needs and
expectations of stakeholders.
• Requirements Management
– This step involves managing the requirements throughout the software development life
cycle, including tracking and controlling changes, and ensuring that the requirements are still
valid and relevant.
Requirement Engineering Process
Requirements Elicitation
There are several techniques that can be used to elicit requirements, including:
• Interviews: These are one-on-one conversations with stakeholders to gather
information about their needs and expectations.
• Surveys: These are questionnaires that are distributed to stakeholders to gather
information about their needs and expectations.
• Focus Groups: These are small groups of stakeholders who are brought together to
discuss their needs and expectations for the software system.
• Observation: This technique involves observing the stakeholders in their work
environment to gather information about their needs and expectations.
• Prototyping: This technique involves creating a working model of the software
system, which can be used to gather feedback from stakeholders and to validate
requirements.
• It’s important to document, organize and prioritize the requirements obtained
from all these techniques to ensure that they are complete, consistent and
accurate
Requirements specification
There are several types of requirements that are commonly specified in this step, including
• Functional Requirements: These describe what the software system should do. They specify the
functionality that the system must provide, such as input validation, data storage, and user
interface.
• Non-Functional Requirements: These describe how well the software system should do it. They
specify the quality attributes of the system, such as performance, reliability, usability, and security.
• Constraints: These describe any limitations or restrictions that must be considered when
developing the software system.
• Acceptance Criteria: These describe the conditions that must be met for the software system to be
considered complete and ready for release.
• In order to make the requirements specification clear, the requirements should be written in a
natural language and use simple terms, avoiding technical jargon, and using a consistent format
throughout the document. It is also important to use diagrams, models, and other visual aids to
help communicate the requirements effectively.
• Once the requirements are specified, they must be reviewed and validated by the stakeholders and
development team to ensure that they are complete, consistent, and accurate.
• Functional Requirements: Functional requirements define a
function that a system or system element must be qualified
to perform and must be documented in different forms.
The functional requirements are describing the behavior of
the system as it correlates to the system's functionality.
• Non-functional Requirements: This can be the necessities
that specify the criteria that can be used to decide the
operation instead of specific behaviors of the system.
• Non-functional requirements are divided into two main
categories:
– Execution qualities like security and usability, which are
observable at run time.
– Evolution qualities like testability, maintainability, extensibility,
and scalability that embodied in the static structure of the
software system.
Requirements Verification and
Validation
• 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. The main steps for this process
include:
– The requirements should be consistent with all the other requirements i.e no two
requirements should conflict with each other.
– The requirements should be complete in every sense.
– The requirements should be practically achievable.
– Reviews, buddy checks, making test cases, etc. are some of the methods used for this.
• Requirements verification and validation (V&V) is the process of checking that the
requirements for a software system are complete, consistent, and accurate, and
that they meet the needs and expectations of the stakeholders. The goal of V&V is
to ensure that the software system being developed meets the requirements and
that it is developed on time, within budget, and to the required quality.
Requirements Management
Compiled By
Dr. Vandana Agarwal
Information Modeling
• It is a non technical but formal description of
the information needs of a group of users .
• Usually it consist of a diagram describing all
the core business object,their properties and
their interrelationships.
SYSTEM MODELLING
System modelling helps the analyst to understand
the functionality of the system and models are
used to communicate with customers.
• Different models present the system from
different perspectives o
– Behavioural perspective showing the behaviour of the
system;
– Structural perspective showing the system or data
architecture
BEHAVIOURAL MODELS:
• Key attribute
• Composite attribute
• Single-valued attribute
• Multi-valued attribute
• Derived attribute
• Composite attribute: An
attribute that is a
combination of other
attributes is called a
composite attribute. For
example, In student
entity, the student
address is a composite
attribute as an address is
composed of other
characteristics such as pin
code, state, country.
Single-valued attribute: Single-
valued attribute contain a single
value. For example,Aadhar
number.
Multi-valued Attribute: If an
attribute can have more than one
value, it is known as a multi-
valued attribute. Multi-valued
attributes are depicted by the
double ellipse. For person can
have more than one phone
number etc.
Derived attribute: Derived attributes
are the attribute that does not
exist in the physical database, but
their values are derived from
other attributes present in the
database. For example, age can
be derived from date_of_birth. In
the ER diagram, Derived
attributes are depicted by the
dashed ellipse
Relationships
The association among entities is known as
relationship. Relationships are
represented by the diamond-shaped box
are called relationships. EMP SUPERVISES
Types of Cardinalities
• 1. One to One: One entity from entity
set A can be contained with at most
one entity of entity set B and vice
versa. Let us assume that each
student has only one student ID, and
each student ID is assigned to only
one person. So, the relationship will
be one to one.
• Easy conversion of business flow to test case: Any complex business flow
can be easily converted into test scenarios and test cases using this
technique.
• Works iteratively: Decision tables work iteratively which means the table
created at the first iteration is used as input tables for the next tables. The
iteration is done only if the initial table is not satisfactory.
• Simple to understand: Simple to understand and everyone can use this
method to design the test scenarios & test cases.
• Provides complete test case coverage: It provides complete coverage of
test cases which helps to reduce the rework on writing test scenarios &
test cases.
• Guarantees every combination is considered: These tables guarantee that
we consider every possible combination of condition values. This is known
as its completeness property.
•
ExampleHow to Create a Login Screen
Decision Base Table
Software Requirement Specification
SRS Document
&
Software Quality Assurance
Compiled by
Dr. Vandana Agarwal
Uses of SRS document
2. General Description.
i) Product perspective
ii) Product functions
iii) User characteristics
iv) General constraints
v) Assumptions and dependencies
3. Specific Requirements
i. Functional, non-functional and interface requirements.
ii. describe system functionality and performance,
iii. specify logical database requirements,
iv. design constraints,
v. emergent system properties and quality characteristics.
4.Approval
5. Appendices.
Introduction
Interface Requirements
• In this, software interfaces which mean how software program communicates with each other or
users either in form of any language, code, or message are fully described and explained. Examples
can be shared memory, data streams, etc.
Performance Requirements
• In this, how a software system performs desired functions under specific condition is explained. It
also explains required time, required memory, maximum error rate, etc. The performance
requirements part of an SRS specifies the performance constraints on the software system.
• All the requirements relating to the performance characteristics of the system must be clearly
specified. There are two types of performance requirements: static and dynamic. Static
requirements are those that do not impose constraint on the execution characteristics of the
system. Dynamic requirements specify constraints on the execution behaviour of the system
Design Constraints
• In this, constraints which simply means limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm,
hardware and software limitations, etc. There are a number of factors in the
client’s environment that may restrict the choices of a designer leading to design
constraints such factors include standards that must be followed resource limits,
operating environment, reliability and security requirements and policies that may
have an impact on the design of the system. An SRS should identify and specify all
such constraints.
Non-Functional Attributes
• In this, non-functional attributes are explained that are required by software
system for better performance. An example may include Security, Portability,
Reliability, Reusability, Application compatibility, Data integrity, Scalability capacity,
etc.
• When the user acquires software, he/she always expect a high-quality software.
When end users develop their software then quality is different. End-user
programming, a phrase popularized by which is programming to achieve the result
of a program primarily for personal, rather than public use.
• In contradiction to end-user programming, professional programming has the goal
of producing software for others to use.
• For example, the moment a novice Web developer moves from designing a web
page for himself to designing a Web page for others, the nature of this activity has
changed.
• Users find software quality as a fit between their goals and software’s
functionality.
• The better the quality, the more likely the user will be satisfied with the soft-ware.
Therefore, the user understands quality as fitness for purpose. Avoiding complexity
and keeping software simple, considerably lessens the implementation risk of
software.
Product View
Compiled By
Dr. Vandana Agarwal
ISO 9000
Managed Level 4
Defined Level 3
REpeatabl
e Level 2
Initial Level 1
Levels of CMM
• Initial. At the initial level, processes are disorganized, ad hoc and even chaotic.
Success likely depends on individual efforts and is not considered to be repeatable.
This is because processes are not sufficiently defined and documented to enable
them to be replicated.
• Repeatable. At the repeatable level, requisite processes are established, defined
and documented. As a result, basic project management techniques are
established, and successes in key process areas are able to be repeated.
• Defined. At the defined level, an organization develops its own standard software
development process. These defined processes enable greater attention to
documentation, standardization and integration.
• Managed. At the managed level, an organization monitors and controls its own
processes through data collection and analysis.
• Optimizing. At the optimizing level, processes are constantly improved
through monitoring feedback from processes and introducing innovative processes
and functionality.
Initial
• Initial ( process unpredictable and poorly
controlled)
• No engineering management, everything
done of 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
• This level of software development
organization has a basic and consistent project
management processes to track cost, schedule
and functionality
• Planning and managing of new projects are
based on the experience with the similar
projects
• Realistic plans based on the performance
based on previous projects
Defined
process standardization
• Process of development and maintaining s/w across
the organization is documented including engineering
and management
• Integrated into a standard software process for the
entire organization
• Training programs are implemented to ensure that
concern team acquire skills and knowledge required
• All projects across the organization use an approved
,tailored version of the organization’s standard
software process for developing , testing and
maintaining the application
• Risk Management
Managed
Quantitative Measurement
• Organization sets quantitative goals for both
product and process
• Here process is predictable both with respect
to time and cost
• At this maturity level, the performance of
processes is controlled using statistical and
other quantitative techniques
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 through both
incremental and innovative technological
improvements
Conclusion
• SEICMM provides a series of key areas on
which to focus to take an organization from
one level of maturity to the next.
• It provides a method for gradual quality
improvement over various stages. Each step
has been carefully designed such that one
step enhances the capability already built up.
Key process areas of each level
CMM level Key Focus Key process area
Initial -
Competent People
Repetitive Project Management Software Project Planning
Software Configuration
Management
Defined Definition of Processes Process Definition
Training Program
Peer Review
Managed Product & Process Quality Quantitative Process
Metrics
Software quality
management
Optimized Continuous process Defect Prevention
Improvement Process Change
Management
Technology change
Management
Advantages of SEICMM
• Quality deliverables
• Higher client contentment
• Easier Management
• Cost Effective
• Brings more business
COMPARISION
ISO CMM
• Its concept is to follow a set of • It emphasizes a process of
standards to make success continuous improvement
repeatable
• After certified ,organization • Ongoing process of evaluation
has only to maintain that level and improvement moving from
one level of achievement to other
• Focus on customer –supplier
relationship • Focus on software supplier to
improve its processes to achieve
• Written for wide range of a higher quality product
industries • CMM framework is specific only
• Defines minimum attribute for for software industry
a quality management • It’s a five level framework for
program measuring software engineering
practices
CMM vs. CMMI: What's the difference?