Unit 3
Unit 3
Engineering Unit-III
Software Engineering Specification
2
Software engineering Specification(SRS) :
•Requirement Engineering Process :
• A systematic and strict approach to the definition, creation, and verification of requirements for a software system is known
as requirements engineering. To guarantee the effective creation of a software product, the requirements engineering
process entails several tasks that help in understanding, recording, and managing the demands of stakeholders
7. Review documentation
The documentation consists of too many web-pages collectively holding a large chunk of information
that’s serving a sole purpose – educate and spread knowledge to anyone who is trying to understand
or implement the software. While working with a lot of information it is important ta take feedback
from senior architects and make any necessary changes aligning the documentation with its sole
purpose depending on the type of documentation.
Advantages of software documentation
▪ The presence of documentation helps in keeping the track of all aspects of an application and also
improves the quality of the software product.
▪ The main focus is based on the development, maintenance, and knowledge transfer to other
developers.
▪ Helps development teams during development.
▪ Helps end-users in using the product.
▪ Improves overall quality of software product
▪ It cuts down duplicative work.
▪ Makes easier to understand code.
▪ Helps in establishing internal coordination in work.
Disadvantages of software documentation
▪ The documenting code is time-consuming.
▪ The software development process often takes place under time pressure, due to which many
times the documentation updates don’t match the updated code.
▪ The documentation has no influence on the performance of an application.
▪ Documenting is not so fun, it’s sometimes boring to a certain extent.
Review and Management of User Needs :
▪ This is a process in which people from client & contractor organization both involved for checking
the requirements for omission.
▪ Different parts of document are checked by different people involved in this type of activities.
Plane a review
Review meeting
Follow-up actions
Checking for redundancy
Completeness
Consistency
Feasibility Study :
• When we are developing a system we know weather prposed system will be feasible or not i.e.
practically implementable or not?
• It may be possible that the proposed system may not be implementable due to many reasons like
it may take a long time limit, cost may increase than proposed.
Technical Feasibility
Operational Feasibility
Economic Feasibility
Legal Feasibility
Schedule Feasibility
Market Feasibility.
Technical Feasibility
• Technical feasibility evaluates the available infrastructure (Such as hardware and software ) and
technology needed to meet the consumer needs of software under time and budget constraints.
• The product development team determines whether current tools and technology should be
modified or applied to the program to fulfill the identified user’s needs.
• Examines the technological expertise and talents of members of the software development team .
• Determines whether the application infrastructure is reliable and well- established.
• Ensures that the technology selected for software creation has many customers who can be
contacted when issues emerge on the required changes.
Economical Feasibility
Needs to consider the expenses made on purchasing, such as hardware purchasing and required
activities required to carry out software development. It is also necessary to consider the benefits
that can e achieved by developing the software. Software is economically feasible when it focuses on
the issues listed below.
▪ Expenses incurred on software development for achieving long-term gains for an organization.
▪ Expenses required to conduct elicitation and requirement analysis.
▪ Hardware and software cost, development team and training cost.
▪ Market Research
▪ Technical Requirements
▪ Risk Assessment
Information collection
Report writing
Basic information.
Information Model
▪ Current functional procedures
▪ Practical objective
▪ Performance objective
▪ Assumption and restrictions
▪ Evaluation criteria
▪ Recommendation
▪ Recommended software
▪ Organizational influences
▪ Developmental impacts
▪ Impacts on infrastructure
▪ Program impacts
▪ Organizational implications
▪ Security implications
▪ Security implications
▪ Alternative solution
Data Flow Diagram
A graphical tool, useful for communicating with users, managers, and other personnel.
Focus on the movement of data between external entities and processes, and between processes
https://youtu.be/HSa52aX24xk
https://youtu.be/KN-inGJG540
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.
0-level DFD
▪ It is also known as fundamental system model, or context diagram represents the entire software
requirement as a single bubble with input and output data denoted by incoming and outgoing
arrows.
▪ Then the system is decomposed and described as a DFD with multiple bubbles. Parts of the system
represented by each of these bubbles are then decomposed and documented as more and more
detailed DFDs.
▪ This process may be repeated at as many levels as necessary until the program at hand is well
understood. It is essential to preserve the number of inputs and outputs between levels, this
concept is called leveling by DeMacro.
▪ Thus, if bubble "A" has two inputs x1 and x2 and one output y, then the expanded DFD, that
represents "A" should have exactly two external inputs and one external output as shown in fig:
1-level DFD
In 1-level DFD, a context diagram is decomposed into multiple bubbles/processes. In this level, we
highlight the main objectives of the system and breakdown the high-level process of 0-level DFD into
sub processes.
2-Level DFD
2-level DFD goes one process deeper into parts of 1-level DFD. It can be used to project or record the
specific/necessary detail about the system's functioning.
Decision Table
Tabular representation of condition and their respective actions
Used in requirement management as well as in system testing for checking the behavior of
different input combination
Condition R1 R2 R3
Example :
Test case for R1 : Withdrawal Amount <= Balance T F F
Balance =200
Required withdrawal =200 Credit Granted T T F
Result =‘Withdrawal granted’
Test case for R2
Balance =100 Actions
Required withdrawal =200
Result =‘Withdrawal denied’ Withdrawl Granted T F F
Test case for R3
Balance =100
Required withdrawal =200
No credit
Result =‘Withdrawal granted
https://www.youtube.com/watch?v=Znf96SUuP4o
IEEE Standards for SRS
IEEE 29148 : 2011 (Latest – 2018)
It covers the processes and information recommendation for a SRS.
Earlier this standards was named as IEEE std. 830-1998 and later replaced by standard
This standard makes us understand what should be the characteristics of good SRS, and how to
This standard provides us the suggestion to organized functional & Non functional requirement.
https://www.youtube.com/watch?v=vCGLLOuKICc
Software Quality Assurance(SQA)
• Software Quality Assurance (SQA) is a practice that ensures software meets quality standards and
requirements. It's a collaborative effort between developers and testers to identify and fix issues
before releasing software to the public.
• Software Quality Assurance (SQA) is a critical component of the software development process
that ensures the quality and reliability of software products. SQA encompasses methodologies
and practices designed to monitor the software engineering processes and methods used to
ensure quality.
• Elements of Software Quality Assurance (SQA)
1. Standards: The IEEE, ISO, and other standards organizations have produced a broad array of
software engineering standards and related documents.
2. Reviews and audits: Technical reviews are a quality control activity performed by software
engineers for software engineers. Their intent is to uncover errors.
3. Testing: Software testing is a quality control function that has one primary goal—to find errors.
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.
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 (SQA) focuses
The Software Quality Assurance (SQA) focuses on the following
SQA
Cost: Some of them include adding more resources, which cause the more budget its not, Addition of more
resources For betterment of the product.
Time Consuming: Testing and Deployment of the project taking more time which cause delay in the project.
Overhead : SQA processes can introduce administrative overhead, requiring documentation, reporting, and
tracking of quality metrics. This additional administrative burden can sometimes outweigh the benefits,
especially for smaller projects.
Resource Intensive : SQA requires skilled personnel with expertise in testing methodologies, tools, and quality
assurance practices. Acquiring and retaining such talent can be challenging and expensive.
Resistance to Change : Some team members may resist the implementation of SQA processes, viewing them as
bureaucratic or unnecessary. This resistance can hinder the adoption and effectiveness of quality assurance
practices within an organization.
Not Foolproof : Despite thorough testing and quality assurance efforts, software can still contain defects or
vulnerabilities. SQA cannot guarantee the elimination of all bugs or issues in software products.
Complexity : SQA processes can be complex, especially in large-scale projects with multiple stakeholders,
dependencies, and integration points.
Verification and Validation
Verification and Validation is the process of investigating whether a software system satisfies
specifications and standards and fulfills the required purpose. Barry Boehm described verification
and validation as the following:
Verification: Are we building the product right?
Validation: Are we building the right product?
Verification
Verification is the process of checking that software achieves its goal without any bugs. It is the
process to ensure whether the product that is developed is right or not. It verifies whether the
developed product fulfills the requirements that we have. Verification is simply known as Static
Testing.
Validation
Validation is the process of checking whether the software product is up to the mark or in other
words product has high-level requirements. It is the process of checking the validation of the product
i.e. it checks what we are developing is the right product. it is a validation of actual and expected
products. Validation is simply known as Dynamic Testing.
Difference between Verification and Validation
V &V Model
SQA PLAN
What is a Software Quality Assurance Plan?
• A Quality Assurance Plan (QAP) is a document or set of documents that outlines the
systematic processes, procedures, and standards for ensuring the quality of a product or
service.
• It is a key component of quality management and is used in various industries to
establish and maintain a consistent level of quality in deliverables.
• For a software product or service, an SQA plan will be used in conjunction with the typical
development, prototyping, design, production, and release cycle.
• An SQA plan will include several components, such as purpose, references, configuration
and management, tools, code controls, testing methodology, problem reporting and
remedial measures, and more, for easy documentation and referencing.
SQA Plan
Importance of Software Quality Assurance Plan
• Quality Standards and Guidelines: The SQA Plan lays out the requirements and guidelines
to make sure the program satisfies predetermined standards for quality.
• Risk management: It is the process of recognizing, evaluating and controlling risks in
order to reduce the possibility of errors and other problems with quality.
• Standardization and Consistency: The strategy guarantees consistent methods,
processes, and procedures, fostering a unified and well-structured approach to quality
assurance.
• Customer Satisfaction: The SQA Plan helps to ensure that the finished product satisfies
customer needs, which in turn increases overall customer satisfaction.
• Resource optimization: It is the process of defining roles, responsibilities, and procedures
in order to maximize resource utilization and minimize needless rework.
• Early Issue Detection: SQA Plans help identify problems early on, which lowers the
expense and work involved in fixing them.
Objectives And Goals of Software Quality Assurance Plan:
The objectives and goals of a Quality Assurance Plan (QAP) are to ensure that the products or
services meet specified quality standards and requirements. The plan serves as a roadmap
for implementing quality assurance processes throughout a project or organizational activity.
The specific objectives and goals can vary depending on the nature of the project or industry,
but common elements include:
1. Compliance with Standards and Regulations
2. Customer Satisfaction
3. Defect Prevention
4. Consistency and Reliability
5. Process Improvement
6. Risk Management
7. Clear Roles and Responsibilities
8. Documentation and Traceability
9. Training and Competence
10. Continuous Monitoring and Reporting
https://www.geeksforgeeks.org/software-quality-assurance-plan-in-software-development/#what
-is-a-software-quality-assurance-plan
Software Quality Framework
• The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies
an increasing series of levels of a software development organization.
What is Capability Maturity Model?
• The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies
an increasing series of levels of a software development organization. The higher
the level, the better the software development process, hence reaching each level
is an expensive and time-consuming process.
• The Capability Maturity Model (CMM) is a procedure used to develop and
refine an organization's software development process.
• The model defines a five-level evolutionary stage of increasingly organized
and consistently more mature processes.
Methods of SEICMM
Capability Evaluation: Capability evaluation provides a way to assess the software process capability
of an organization. The results of capability evaluation indicate the likely contractor performance if
the contractor is awarded a work. Therefore, the results of the software process capability
assessment can be used to select a contractor.
Software Process Assessment: Software process assessment is used by an organization to improve
its process capability. Thus, this type of evaluation is for purely internal use.
SEI CMM categorized software development industries into the following five maturity levels. The
various levels of SEI CMM have been designed so that it is easy for an organization to build its quality
system starting from scratch slowly.
Level of CMM Model
• Level One :Initial - The software process is characterized as inconsistent, and occasionally even chaotic.
Defined processes and standard practices that exist are abandoned during a crisis. Success of the
organization majorly depends on an individual effort, talent, and heroics. The heroes eventually move on to
other organizations taking their wealth of knowledge or lessons learnt with them.
• Level Two: Repeatable - This level of Software Development Organization has a basic and consistent project
management processes to track cost, schedule, and functionality. The process is in place to repeat the
earlier successes on projects with similar applications. Program management is a key characteristic of a
level two organization.
• Level Three: Defined - The software process for both management and engineering activities are
documented, standardized, and integrated into a standard software process for the entire organization and
all projects across the organization use an approved, tailored version of the organization's standard
software process for developing, testing and maintaining the application.
• Level Four: Managed - Management can effectively control the software development effort using precise
measurements. At this level, organization set a quantitative quality goal for both software process and
software maintenance. At this maturity level, the performance of processes is controlled using statistical
and other quantitative techniques, and is quantitatively predictable.
• Level Five: Optimizing - The Key characteristic of this level is focusing on continually improving process
performance through both incremental and innovative technological improvements. At this level, changes
to the process are to improve the process performance and at the same time maintaining statistical
probability to achieve the established quantitative process-improvement objectives.
Importance of Capability Maturity Model
• Optimization of Resources: CMM helps businesses make the best use of all of their resources,
including money, labor, and time. Organizations can improve the effectiveness of resource
allocation by recognizing and getting rid of unproductive practices.
• Comparing and Evaluating: A formal framework for benchmarking and self-evaluation is offered
by CMM. Businesses can assess their maturity levels, pinpoint their advantages and
disadvantages, and compare their performance to industry best practices.
• Management of Quality: CMM emphasizes quality management heavily. The framework helps
businesses apply best practices for quality assurance and control, which raises the quality of their
goods and services.
• Enhancement of Process: CMM gives businesses a methodical approach to evaluate and enhance
their operations. It provides a road map for gradually improving processes, which raises
productivity and usefulness.
• Increased Output: CMM seeks to boost productivity by simplifying and optimizing processes.
Organizations can increase output and efficiency without compromising quality as they go
through the CMM levels.
Difference between ISO9000 and SEI-CMM:
ISO 9000 SEICMM
ISO 9000 is a set of international standards on quality management and SEI (Software Engineering Institute), Capability Maturity Model (CMM)
quality assurance developed to help companies effectively document the specifies an increasing series of levels of a software development
quality system elements needed to an efficient quality system. organization.
Focus is customer supplier relationship, attempting to reduce customer’s Focus on the software supplier to improve its interval processes to achieve
risk in choosing a supplier. a higher quality product for the benefit of the customer.
It is created for hard goods manufacturing industries. It is created for software industry.
ISO9000 is recognized and accepted in most of the countries. SEICMM is used in USA, less widely elsewhere.
CMM provides detailed and specific definition of what is required for given
It specifies concepts, principles and safeguards that should be in place.
levels.
It has 5 levels:
It has no level.
(a). Initial (b). Repeatable (c). Defined (d). Managed (e). Optimized