Unit-2 (Se)
Unit-2 (Se)
3. Requirement Elicitation is a critical part of the software development life cycle and is
typically performed at the beginning of the project.
5. The output of the requirements elicitation process is a set of clear, concise, and well-defined
requirements that serve as the basis for the design and development of the software system.
6. Requirements elicitation is difficult because just questioning users and customers about
system needs may not collect all relevant requirements, particularly for safety and
dependability.
7. Interviews, surveys, user observation, workshops, brainstorming, use cases, role-playing, and
prototyping are all methods for eliciting requirements.
Requirement Engineering
Requirement Engineering
2. User Satisfaction: It is easier to create software that fulfills end users’ needs and
expectations when they are involved in the requirements elicitation process. Higher user
pleasure and acceptance of the finished product are the results of this.
3. Time and Money Savings: Having precise and well-defined specifications aids in preventing
miscommunication and rework during the development phase. As a result, there will be cost
savings and the project will be completed on time.
4. Compliance and Regulation Requirements: Requirements elicitation is crucial for projects
in regulated industries to guarantee that the software conforms with applicable laws and
norms. In industries like healthcare, finance, and aerospace, this is crucial.
1. Interviews
The objective of conducting an interview is to understand the customer’s expectations of the software.
It is impossible to interview every stakeholder hence representatives from groups are selected based on
their expertise and credibility. Interviews may be open-ended or structured.
2. Brainstorming Sessions
Its objective is to bridge the expectation gap – the difference between what the developers think they are
supposed to build and what customers think they are going to get. A team-oriented approach is developed
for requirements gathering. Each attendee is asked to make a list of objects that are:
Each participant prepares his/her list, different lists are then combined, redundant entries are eliminated,
the team is divided into smaller sub-teams to develop mini-specifications and finally, a draft of
specifications is written down using all the inputs from the meeting.
In this technique customer satisfaction is of prime concern, hence it emphasizes the requirements that are
valuable to the customer.
3 types of requirements are identified:
● Normal requirements: In this the objective and goals of the proposed software are discussed
with the customer. For example – normal requirements for a result management system may
be entry of marks, calculation of results, etc.
● Expected requirements: These requirements are so obvious that the customer need not
explicitly state them. Example – protection from unauthorized access.
● Exciting requirements: It includes features that are beyond customer’s expectations and
prove to be very satisfying when present. For example – when unauthorized access is
detected, it should back up and shut down all processes.
1. Actor: It is the external agent that lies outside the system but interacts with it in some way.
An actor may be a person, machine, etc. It is represented as a stick figure. Actors can be
primary actors or secondary actors.
3. Use case diagram: A use case diagram graphically represents what happens when an actor
interacts with a system. It captures the functional aspect of the system.
The success of an elicitation technique used depends on the maturity of the analyst, developers, users, and
the customer involved.
5. Validation and verification: Requirements elicitation involves validating and verifying the
requirements with the stakeholders to ensure they accurately represent their needs and
requirements.
3. Results in good quality software: Increases the chances of developing a software system
that meets customer needs.
7. Increases user confidence: Increases user and stakeholder confidence in the software
development process.
8. Increased development cost: This can lead to increased development costs and decreased
efficiency if requirements are not well-defined.
Requirement Engineering (RE) is the process of defining, documenting, and maintaining the
requirements for a software system. The goal is to understand what the stakeholders need and to ensure
that the final software product meets those needs.
Requirement Engineering Process Documentation involves creating structured and organized records
of all activities, decisions, and outputs during the requirement engineering process. This documentation
serves as a reference for stakeholders, developers, and testers throughout the software development
lifecycle (SDLC).
The requirement engineering process is typically divided into the following phases:
1. Requirement Elicitation
The process of gathering information from stakeholders to understand their needs and expectations.
Activities:
Documentation:
2. Requirement Analysis
The process of analyzing gathered requirements to identify conflicts, gaps, and inconsistencies.
Activities:
Documentation:
3. Requirement Specification
The process of formally documenting the analyzed requirements into a structured format.
Activities:
Documentation:
4. Requirement Validation
The process of checking whether the documented requirements accurately reflect stakeholder needs.
Activities:
Documentation:
5. Requirement Management
The process of handling changes and maintaining requirement consistency throughout the project
lifecycle.
Activities:
● Change Request Log – Record of all change requests and their status.
● Updated SRS – Revised version reflecting approved changes.
● Requirement Traceability Matrix (RTM) – Updated with changes and status.
1. Introduction
2. System Overview
3. Functional Requirements
4. Non-Functional Requirements
5. System Constraints
6. Data Requirements
● Database structure.
● Data input and output formats.
7. Interface Requirements
8. Traceability Matrix
9. Acceptance Criteria
Requirement:
"The system shall allow registered users to reset their password using a verified email address."
Requirement Analysis is a critical phase in the Requirement Engineering (RE) process where the
gathered requirements are systematically examined to ensure they are complete, consistent, unambiguous,
and feasible. It involves refining and detailing the initial high-level requirements collected from
stakeholders to create a clear and structured understanding of the system’s needs.
Requirement analysis ensures that the development team and stakeholders have a common understanding
of what the system should do and how it should perform. It helps prevent issues such as missing
functionality, conflicting requirements, and unrealistic expectations, which can lead to project failures if
not addressed early.
Objectives of Requirement Analysis
The requirement analysis phase is generally broken down into five key steps:
In this step, the collected requirements are grouped into logical categories to simplify analysis and
understanding.
Types of Requirements:
Outcome:
2. Requirement Prioritization
Not all requirements have equal importance. Prioritization helps the development team focus on the most
critical aspects of the system first.
● Business Value – Requirements that directly impact business goals are given higher priority.
● Technical Complexity – Simple requirements are often implemented first to build a strong
foundation.
● Stakeholder Impact – Critical requirements for stakeholders are prioritized.
● Legal and Compliance Needs – Regulatory requirements are given high priority.
Prioritization Techniques:
● MoSCoW Method:
Outcome:
3. Requirement Modeling
In this step, the requirements are represented visually using various models and diagrams to improve
understanding and communication.
Outcome:
Once the requirements are modeled and documented, they need to be checked for accuracy, completeness,
and consistency.
Verification:
● Ensures that the documented requirements are consistent and logically correct.
● Techniques used:
○ Formal reviews
○ Walkthroughs
○ Checklists
Validation:
● Ensures that the requirements reflect stakeholder needs and business goals.
● Techniques used:
○ Prototyping
○ User feedback
○ Stakeholder reviews
Outcome:
5. Conflict Resolution
During the analysis phase, conflicting requirements may arise between different stakeholders or between
business and technical constraints.
Sources of Conflict:
Outcome:
● Resolved conflicts.
● Clear and agreed-upon requirements.
Functional Requirement:
"The system shall allow users to reset their password using a verified email."
Analysis:
Resolution:
● The performance of requirement review helps to radiate the precise and correct data to the
consumers and users.
● It helps to have a quick tour of the Existing project to see whether or not it is going in the
right direction.
1. Team consultation :
Suggestion matters also matter the way of performance. Teamwork goes hand in hand. When there are
people to offer suggestions, give appropriate guidelines, and supervise in a team. There is no doubt about
the project getting mismanaged. Reaching out to the team/individual who has better insights into
requirement review works the best way.
● Requirement reviews accord the developers a motive and structure to carry out the project
further.
● Lack of attention acts as a hindrance. When a team does not listen to each other in a meeting
room because of disagreement on matters, it emerges as a sign of unprofessional and
uncoordinated work.
● At times, the Review cannot be accurate. So, If you fail in assembling the precise
information, it can be an obstacle for the developers and the industry.
Managing user needs involves handling requirements throughout the software development lifecycle
(SDLC) to ensure alignment with business goals and user expectations.
1. Requirement Elicitation
3. Requirement Analysis
4. Requirement Validation
6. Requirement Traceability
🌟 Best Practices
Feasibility Study
1. Cost-Benefit Analysis: It permits the interested parties to carry out an exhaustive evaluation
of costs and advantages to envision
2. Project Viability: Evaluating the general viability and feasibility of a proposed project is
critical because it enables stakeholders to determine if the project is profitable.
3. Market Demand and Competition: A feasibility study gives insights into the possible
purchaser base, marketplace possibilities, and competitive surroundings by analyzing market
demands, trends, and opposition.
2. Introduction: A summary of the goals and goals to be carried out, along with the reason and
scope of the feasibility study.
3. Background and Context: Details about the project or business endeavors under attention,
such as its heritage, purpose, and justification for conducting a feasibility study.
4. Market Analysis: Market study is the process of examining the target market's size, trends,
potential for growth, customer demographics, and competitive environment. This section
explores possible opportunities and difficulties as well as evaluates the demand for the
suggested good or service.
5. Financial Analysis: A thorough financial analysis that includes ROI calculations, cost
estimates, revenue forecasts, and cash flow projections. This part evaluates the project's
prospective profitability as well as its financial viability.
6. Risk assessment: It is the process of identifying and evaluating the project's possible risks
and difficulties, such as financial, technical, commercial, and regulatory concerns. The
methods for decreasing and controlling those risks are described in this phase.
7. Resource Requirements: Plans for allocating sources and an estimate of its expenses are
supplied in this segment.
9. Appendices: Extra data, charts, tables, references, and supporting documents that give the
feasibility study more context or information.
1. Technical Feasibility Study: This type of feasibility takes a look at evaluating a project's
technical capabilities, consisting of the accessibility of the resources, technology, and
knowledge needed to deliver it out efficiently. It assesses whether or not the project may be
technically finished on time.
2. Economic Feasibility Study: Economic feasibility studies examine a project's expenses and
feasible benefits to determine whether or not it's financially viable. This entails comparing the
project's effect on income, charges, and profitability as well as doing cost-benefit analysis
and calculating return on funding (ROI).
4. Social Feasibility Study: It evaluates how a task will have an effect on stakeholders,
neighborhood communities, and society as a whole on a social and cultural stage. To decide if
the project is socially possible and suitable, they determine variables like social acceptance,
stakeholder participation, community effect, and company social responsibility.
● Step1: Specify the goals and scope of the assignmentClearly state the project's goals,
objectives, and motive. Comprehending the project's scale is critical in directing the
feasibility study methodology.
● Step2: Collect relevant details and dataGather all the project-related data and information
that is required. This could contain financial information, industry analysis, legal needs,
technological considerations, market research, and any other elements that could have an
impact on the project's success.
● Step3: Analyze the marketAnalyze the product or service's potential and market demand.
Examine consumer demands and preferences, market developments, rivalry, and possible
entry hurdles.
● Step5: Assessing the Financial ViabilityTo determine the viability and profitability of the
project, do a detailed economic study. Compute the projected revenue, persevering with
prices, one-time investment charges, and feasible return on investment (ROI). To ascertain
whether or not the project is financially feasible, compute essential economic indicators such
net present value (NPV), internal rate of run (IRR), and payback duration.
1. Define the Objectives: Clearly state the aim and objectives of the manufacturing feasibility
study, with an emphasis on the product to be produced and the intended results.
2. Gather information: To help with the feasibility evaluation, gather information on the
following topics: market demand, competitors, materials, production techniques, product
specifications, and regulatory needs.
3. Analyze Technical Feasibility: Determine whether the technology, tools, and information
required for manufacturing are simply available. You should also look for areas where the
manufacturing process might be optimized and faced with obstacles.
6. Evaluate the Issues of Regulation and Compliance: Recognize and abide through
applicable laws and regulations, securing the required licenses and certifications to guarantee
ethical and steady production strategies.
7. Compile Results and Offer Recommendations: Combine results into a report that
emphasizes important factors and offers suggestions on whether or not the product can be
manufactured, along with any necessary modifications or mitigations.
1. Include Crucial Stakeholders: To assure support and obtain a variety of viewpoints, involve
decision-makers, subject matter experts, and end users at every stage of the feasibility study.
2. Complete Data Collection: To support the feasibility evaluation, compile accurate and
thorough data from a variety of sources, such as industry reports, financial predictions,
market research, and expert opinions.
3. Clear Communication: Clearly and simply convey to all stakeholders the results,
conclusions, and suggestions of the feasibility study. Charts, graphs, and other visual aids can
help with comprehension.
4. Practical Suggestions: Based on the results of the feasibility study, make practical
suggestions that specify the measures that must be done in order to overcome obstacles or
seize possibilities.
Information Modeling in software engineering is the process of defining, analyzing, and documenting
the structure, relationships, and constraints of data and information within a software system. It
provides a structured way to represent the data and how it interacts with different components of the
system, ensuring that the system's design is consistent, complete, and aligned with business requirements.
Information modeling helps developers and stakeholders understand how data is stored, processed, and
exchanged within a system, forming the foundation for database design, system architecture, and
application development.
1. Entities
2. Attributes
3. Relationships
There are three main types of information models used in software engineering:
1. Conceptual Model
● High-level model that defines the system’s data structure and relationships without technical
details.
● Focuses on understanding the business requirements.
● Example: A diagram showing how Customers, Orders, and Products relate to each other.
Techniques Used:
● Entity-Relationship Diagrams (ERD)
● UML Class Diagrams
2. Logical Model
● Translates the conceptual model into a more detailed model with specific data elements and
relationships.
● Defines the structure of the data and the rules that govern it.
● Independent of the database or storage technology used.
Example:
Techniques Used:
3. Physical Model
Example:
Techniques Used:
● Represent how the system changes states based on data inputs and events.
● Example: "Logged Out" → "Logged In" → "Session Expired."
1. Conceptual Model
Customer Table:
1. Start with a conceptual model and gradually refine it into a logical and physical model.
2. Keep models simple and understandable.
3. Use standard naming conventions for entities and attributes.
4. Regularly review and update the model as requirements change.
5. Ensure that the model aligns with business goals and technical constraints.
Data Flow Diagram (DFD) represents the flow of data within information systems. Data Flow Diagrams
(DFD) provide a graphical representation of the data flow of a system that can be understood by both
technical and non-technical users. The models enable software engineers, customers, and users to work
together effectively during the analysis and specification of requirements.
It should be pointed out that a DFD is not a flowchart. In drawing the DFD, the designer has to specify
the major transforms in the path of the data flowing from the input to the output. DFDs can be
hierarchically organized, which helps in progressively partitioning and analyzing large systems.
It provides an overview of
● What data is system processes.
● What transformation are performed.
● What data are stored.
● What results are produced , etc.
Data Flow Diagram can be represented in several ways. The Data Flow Diagram (DFD) belongs to
structured-analysis modeling tools. Data Flow diagrams are very popular because they help us to visualize
the major steps and data involved in software-system processes.
● Graphical Representation: Data Flow Diagram (DFD) use different symbols and notation to
represent data flow within system. That simplify the complex model.
● Problem Analysis: Data Flow Diagram (DFDs) are very useful in understanding a system
and can be effectively used during analysis. Data Flow Diagram (DFDs) are quite general and
are not limited to problem analysis for software requirements specification.
● Abstraction: Data Flow Diagram (DFD) provides a abstraction to complex model i.e. DFD
hides unnecessary implementation details and show only the flow of data and processes
within information system.
● Hierarchy: Data Flow Diagram (DFD) provides a hierarchy of a system. High- level diagram
i.e. 0-level diagram provides an overview of entire system while lower-level diagram like 1-
level DFD and beyond provides a detailed data flow of individual process.
● Data Flow: The primary objective of Data Flow Diagram (DFD) is to visualize the data flow
between external entity, processes and data store. Data Flow is represented by an arrow
Symbol.
● Ease of Understanding: Data Flow Diagram (DFD) can be easily understand by both
technical and non-technical stakeholders.
● Modularity: Modularity can be achieved using Data Flow Diagram (DFD) as it breaks the
complex system into smaller module or processes. This provides easily analysis and design of
a system.
Logical data flow diagram mainly focuses on the system process. It illustrates how data flows in the
system. Logical Data Flow Diagram (DFD) mainly focuses on high level processes and data flow without
diving deep into technical implementation details. Logical DFD is used in various organizations for the
smooth running of system. Like in a Banking software system, it is used to describe how data is moved
from one entity to another.
Physical data flow diagram shows how the data flow is actually implemented in the system. In the
Physical Data Flow Diagram (DFD), we include additional details such as data storage, data transmission,
and specific technology or system components. Physical DFD is more specific and close to
implementation.
● Process: Input to output transformation in a system takes place because of process function.
The symbols of a process are rectangular with rounded corners, oval, rectangle or a circle.
The process is named a short sentence, in one word or a phrase to express its essence
● Data Flow: Data flow describes the information transferring between different parts of the
systems. The arrow symbol is the symbol of data flow. A relatable name should be given to
the flow to determine the information which is being moved. Data flow also represents
material along with information that is being moved. Material shifts are modeled in systems
that are not merely informative. A given flow should only transfer a single type of
information. The direction of flow is represented by the arrow which can also be bi-
directional.
● Warehouse (Data Store) : The data is stored in the warehouse for later use. Two horizontal
lines represent the symbol of the store. The warehouse is simply not restricted to being a data
file rather it can be anything like a folder with documents, an optical disc, a filing cabinet.
The data warehouse can be viewed independent of its implementation. When the data flow
from the warehouse it is considered as data reading and when data flows to the warehouse it
is called data entry or data updating.
● Terminator (External Entity): The Terminator is an external entity that stands outside of
the system and communicates with the system. It can be, for example, organizations like
banks, groups of people like customers or different departments of the same organization,
which is not a part of the model system and is an external entity. Modeled systems also
communicate with terminators.
In Data-Flow Diagrams (DFDs), symbols and notations vary depending on the methodology being used.
Here’s a summary of symbols and notations commonly associated with each methodology:
The different methodologies or approaches used for creating Data-Flow Diagrams (DFDs) are:
Each methodology provides its own set of guidelines, symbols, and notations for representing system
components and their interactions.
0-level DFD
It is also known as a context diagram. It’s designed to be an abstraction view, showing the system as a
single process with its relationship to external entities. It represents the entire system as a single bubble
with input and output data indicated by incoming/outgoing arrows.
1-Level DFD
This level provides a more detailed view of the system by breaking down the major processes identified
in the level 0 DFD into sub-processes. Each sub-process is depicted as a separate process on the level 1
DFD. The data flows and data stores associated with each sub-process are also shown. In 1-level DFD,
the context diagram is decomposed into multiple bubbles/processes. In this level, we highlight the main
functions of the system and breakdown the high-level process of 0-level DFD into subprocesses.
2-level DFD
This level provides an even more detailed view of the system by breaking down the sub-processes
identified in the level 1 DFD into further sub-processes. Each sub-process is depicted as a separate
process on the level 2 DFD. The data flows and data stores associated with each sub-process are also
shown.
ER Model
We typically follow the below steps for designing a database for an application.
● Gather the requirements (functional and data) by asking questions to the database users.
● Do a logical or conceptual design of the database. This is where the ER model plays a role. It
is the most used graphical representation of the conceptual design of a database.
● Physical Database Design (Like indexing) and external design (like views)
The Entity Relationship Model is a model for identifying entities (like student, car or company) to be
represented in the database and representation of how those entities are related. The ER data model specifies
an enterprise schema that represents the overall logical structure of a database graphically.
● ER diagrams represent the E-R model in a database, making them easy to convert into
relations (tables).
● ER diagrams provide the purpose of real-world modeling of objects which makes them
intently useful.
ER Model is used to model the logical view of the system from a data perspective which consists of these
symbols:
ER Model consists of Entities, Attributes, and Relationships among Entities in a Database System.
Components of ER Diagram
What is Entity?
An Entity may be an object with a physical existence – a particular person, car, house, or employee – or it
may be an object with a conceptual existence – a company, a job, or a university course.
An Entity is an object of Entity Type and a set of all entities is called an entity set. For Example, E1 is an
entity having Entity Type Student and the set of all students is called Entity Set. In ER diagram, Entity
Type is represented as:
Entity Set
We can represent the entity set in ER Diagram but can’t represent entity in ER Diagram because entity is
row and column in the relation and ER Diagram is graphical representation of data.
Types of Entity
1. Strong Entity
A Strong Entity is a type of entity that has a key Attribute. Strong Entity does not depend on other Entity
in the Schema. It has a primary key, that helps in identifying it uniquely, and it is represented by a rectangle.
These are called Strong Entity Types.
2. Weak Entity
An Entity type has a key attribute that uniquely identifies each entity in the entity set. But some entity type
exists for which key attributes can’t be defined. These are called Weak Entity types .
For Example, A company may store the information of dependents (Parents, Children, Spouse) of an
Employee. But the dependents can’t exist without the employee. So Dependent will be a Weak Entity
Type and Employee will be Identifying Entity type for Dependent, which means it is Strong Entity Type
.
A weak entity type is represented by a Double Rectangle. The participation of weak entity types is always
total. The relationship between the weak entity type and its identifying strong entity type is called
identifying relationship and it is represented by a double diamond.
Attributes are the properties that define the entity type. For example, Roll_No, Name, DOB, Age, Address,
and Mobile_No are the attributes that define entity type Student. In ER diagram, the attribute is represented
by an oval.
Attribute
Types of Attributes
1. Key Attribute
The attribute which uniquely identifies each entity in the entity set is called the key attribute. For example,
Roll_No will be unique for each student. In ER diagram, the key attribute is represented by an oval with
underlying lines.
Key Attribute
2. Composite Attribute
An attribute composed of many other attributes is called a composite attribute. For example, the Address
attribute of the student Entity type consists of Street, City, State, and Country. In ER diagram, the composite
attribute is represented by an oval comprising of ovals.
Composite Attribute
3. Multivalued Attribute
An attribute consisting of more than one value for a given entity. For example, Phone_No (can be more
than one for a given student). In the ER diagram, a multivalued attribute is represented by a double oval.
Multivalued Attribute
4. Derived Attribute
An attribute that can be derived from other attributes of the entity type is known as a derived attribute. e.g.;
Age (can be derived from DOB). In ER diagram, the derived attribute is represented by a dashed oval.
Derived Attribute
The Complete Entity Type Student with its Attributes can be represented as:
A Relationship Type represents the association between entity types. For example, ‘Enrolled in’ is a
relationship type that exists between entity type Student and Course. In ER diagram, the relationship type
is represented by a diamond and connecting the entities with lines.
Entity-Relationship Set
A set of relationships of the same type is known as a relationship set. The following relationship set depicts
S1 as enrolled in C2, S2 as enrolled in C1, and S3 as registered in C3.
Relationship Set
The number of different entity sets participating in a relationship set is called the degree of a relationship
set.
1. Unary Relationship: When there is only ONE entity set participating in a relation, the relationship is
called a unary relationship. For example, one person is married to only one person.
Unary Relationship
2. Binary Relationship: When there are TWO entities set participating in a relationship, the relationship
is called a binary relationship. For example, a Student is enrolled in a Course.
Binary Relationship
3. Ternary Relationship: When there are three entity sets participating in a relationship, the relationship
is called a ternary relationship.
4. N-ary Relationship: When there are n entities set participating in a relationship, the relationship is called
an n-ary relationship.
Cardinality
Cardinality describes the number of entities in one entity set, which can be associated with the number of
entities of other sets via the relationship set.
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.
2. One to many: When a single instance of an entity is associated with more than one instances of another
entity then it is called one to many relationships. For example, a client can place many orders; a order
cannot be placed by many customers.
4. Many to Many: One entity from A can be associated with more than one entity from B and vice-versa.
For example, the student can be assigned to many projects, and a project can be assigned to many students.
Introduction
• Purpose of this Document – At first, main aim of why this document is
necessary and what’s purpose of document is explained and described.
• Scope of this document – In this, overall working and main objective of
document and what value it will provide to customer is described and explained.
It also includes a description of development cost and time required.
• Overview – In this, description of product is explained. It’s simply summary or
overall review of product.
General description
In this, general functions of product which includes objective of user, a user
characteristic, features, benefits, about why its importance is mentioned. It also
describes features of user community.
Functional Requirements
In this, possible outcome of software system which includes effects due to
operation of program is fully explained. All functional requirements which may
include calculations, data processing, etc. are placed in a ranked order.
Functional requirements specify the expected behavior of the system-which
outputs should be produced from the given inputs. They describe the
relationship between the input and output of the system. For each functional
requirement, detailed description all the data inputs and their source, the units
of measure, and the range of valid inputs must be specified.
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.
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.
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.
Preliminary Schedule and Budget
In this, initial version and budget of project plan are explained which include
overall time duration required and overall cost required for development of
project.
Appendices
In this, additional information like references from where information is
gathered, definitions of some specific terms, acronyms, abbreviations, etc. are
given and explained.
Uses of SRS document
• Development team require it for developing product according to the need.
• Test plans are generated by testing group based on the describe external
behaviour.
• Maintenance and support staff need it to understand what the software product
is supposed to do.
• Project manager base their plans and estimates of schedule, effort and resources
on it.
• customer rely on it to know that product they can expect.
CHARACTERSTICS OF GOOD SRS
SRS should be
1. Correct
2. Unambiguous
3. Complete
4. Consistent
5. Ranked for importance and/or stability
6. Verifiable
7. Modifiable
8. Traceable
Advantages of SRS
Software SRS establishes the basic for agreement between the client and the
supplier on what the software product will do.
1. A SRS provides a reference for validation of the final product.
2. A high-quality SRS is a prerequisite to high-quality software.
3. A high-quality SRS reduces the development cost.
Are we building the product right? Are we building the right product?
Ensure that the software system meets all the functionality Ensure that the functionalities meet the intended behavio
Verifications take place first and include the checking for Validation occurs after verification and mainly involves th
documentation, code etc checking of the overall product.
Have static activities as it includes the reviews, walk-throughs Have dynamic activities as it includes executing the softw
and inspections to verify that software is correct or not against the requirements.
likelihood of these risks and develop strategies for risk mitigation and
management.
Establish Quality Assurance Activities:
• Determine the specific activities and tasks that will be carried out to ensure
developing test plans, test cases, and acceptance criteria to ensure that the
product or service meets quality standards.
Document Processes and Procedures:
• Document the processes and procedures that will be followed to implement
members to support quality assurance efforts. Ensure that team members have
the necessary skills and knowledge.
Define Change Control Processes:
• Establish a process for managing changes to the project or product to ensure
that they do not negatively impact quality. This includes a change control
board and a structured process for reviewing and approving changes.
Review and Approval:
• Seek input and feedback from relevant stakeholders on the draft Quality
Assurance Plan. Revise the plan based on feedback and obtain formal approval
before implementation.
Monitoring and Continuous Improvement:
• Continuously monitor quality metrics, track progress, and identify
detailed SQA plan may be excessive for small projects compared to their
scope and complexity.
• Opposition to Change: An SQA strategy may involve changes that teams
accustomed to their current workflows find difficult to accept, which could
result in a time of adjustment and resistance.
• Documentation Complexity: SQA plans with high documentation
requirements run the risk of adding complexity and coming off as bureaucratic
to teams, which makes it difficult to keep documentation up to date.
Software Quality Framework
Software Quality Framework connects the customer view with the developer’s
view of software quality and it treats software as a product.
1.The software product view describes the characteristics of a product that
bear on its ability to satisfy stated and implied needs.
2.This is a framework that describes all the different concepts relating to
quality in a common way measured by a qualitative scale that can be
understood and interpreted commonly.
Developers View
Validation and verification are two independent methods used together to
check that a software product meets the requirements and that it fulfills its
intended purpose.
1. The primary concern for developers is in the design and engineering
processes involved in producing software.
2. Quality can be measured by the degree of conformance to predetermined
requirements and standards, and deviations from these standards can lead to poor
quality and low reliability.
3. While validation and verification are used by the developers to improve the
software, the two methods don’t represent a quantifiable quality measurement.
For example, the customer understands or describes the quality of operation
as meeting the requirement while the developers use different factors to describe
the software quality. The developer view of quality in the software is influenced
by many factors. This model stresses on 3 primary ones:
The code: It is measured by its correctness and reliability.
The data: The application integrity measures it.
Maintainability: It has different measures the simplest is the mean time to
change.
Users View
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.
1. The important distinction here is that software itself is not primarily
intended for use by many users with varying needs.
2. For example, a teacher may write a spreadsheet to track student’s test scores.
3. In these end-user programming situations, the program is a means to an end
that could be used to accomplish a goal.
4. In contradiction to end-user programming, professional programming has
the goal of producing software for others to use.
Product View
The product view describes quality as correlated to inherent characteristics of
the product. Product quality is defined as the set of characteristics and features
of a product that gives contribution to its ability to fulfill given requirements.
1. Product quality can be measured by the value-based view which sees the
quality as dependent on the amount a customer is willing to pay for it.
2. According to the users, a high-quality product is one that satisfies their
expectations and preferences while meeting their requirement.
CMM Levels
It has 5 levels:
(a). Initial
(b). Repeatable
It has no level.
(c). Defined
(d). Managed
(e). Optimized