M5T3
M5T3
Module-05
Software Quality
Module 5
2 Which are the Special Characteristics of Software Affecting Quality Management? L2 CO5
Explain.
3 Explain the quality models: 1) Garvin’s Quality Dimensions L2 CO5
2) Mccall Model
3) Boehms Model
4 Explain ISO 9126. L2 CO5
5 How does ISO 14598 relate to the assessment of software quality characteristics as L2 CO5
defined by ISO 9126?
6 Describe the relationship between software quality and project planning with neat L2 CO5
diagram.
7 List the popular capability models to manage the quality of the Software and L2 CO5
Explain SEI CMM with appropriate diagram.
8 Identify how Automation testing is preferred over manual testing, with different L2 CO5
tools used for Automation Testing.
9 Explain Quality Management Systems with Principles of BS EN ISO 9001:2000. L2 CO5
10 What are the various quality methods used to measure the quality of the software? L2 CO5
Explain any 2 models in brief.
Page 1
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Concept of Quality:
Objective Assessment:
Development Perspective:
o Assess the likely quality of the final system. o Ensure development methods
o Ensuring these methods will lead to the required quality in the final system.
Page 2
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Quality Concerns:
• Key points in the Step Wise framework where quality is particularly emphasized:
o Review the overall quality aspects of the project plan at this stage.
Page 3
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
General Expectation:
o Final customers and users are increasingly concerned about software quality,
particularly reliability.
Page 4
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
System Requirements:
Measuring Quality:
• Good Measure: Relates the number of units to the maximum possible (e.g., faults
per thousand lines of code).
Page 5
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Direct Measurement: Measures the quality itself (e.g., faults per thousand lines of
code).
• Indirect Measurement: Measures an indicator of the quality (e.g., number of user
inquiries at a help desk as an indicator of usability).
Setting Targets:
• Impact on Project Team: Quality measurements set targets for team members.
• Meaningful Improvement: Ensure that improvements in measured quality are
meaningful.
o Example: Counting errors found in program inspections may not be
meaningful if errors are allowed to pass to the inspection stage rather than
being eradicated earlier.
1. Definition/Description
o Definition: Clear definition of the quality characteristic.
o Description: Detailed description of what the quality characteristic entails.
2. Scale
o Unit of Measurement: The unit used to measure the quality characteristic
(e.g., faults per thousand lines of code).
Page 6
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
3. Test
o Practical Test: The method or process used to test the extent to which the
quality attribute exists.
4. Minimally Acceptable
o Worst Acceptable Value: The lowest acceptable value, below which the
product would be rejected.
5. Target Range
o Planned Range: The range of values within which it is planned that the quality
measurement value should lie.
6. Current Value
o Now: The value that applies currently to the quality characteristic.
1. Availability:
o Definition: Percentage of a particular time interval that a system is usable. o
Page 7
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
These measurements help quantify and assess the reliability and maintainability of
software systems, ensuring they meet desired quality standards.
ISO 9126 is a significant standard in defining software quality attributes and providing a)
framework for assessing them. Here are the key aspects and characteristics defined by|
Page 8
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
1. Functionality:
o Definition: The functions that a software product provides to satisfy user
needs.
o Sub-characteristics: Suitability, accuracy, interoperability, security,
compliance.
2. Reliability:
o Definition: The capability of the software to maintain its level of
performance under stated conditions.
o Sub-characteristics: Maturity, fault tolerance, recoverability.
3. Usability:
o Definition: The effort needed to use the software. o Sub-characteristics:
Understandability, learnability, operability, attractiveness.
4. Efficiency:
o Definition: The ability to use resources in relation to the amount of work
done.
o Sub-characteristics: Time behavior, resource utilization.
5. Maintainability:
o Definition: The effort needed to make changes to the software. o Sub-
characteristics: Analyzability, modifiability, testability.
6. Portability:
o Definition: The ability of the software to be transferred from one
environment to another.
o Sub-characteristics: Adaptability, install ability, co-existence.
• Definition: Focuses on how well the software supports specific user goals in a
specific context of use.
• Elements: Effectiveness, productivity, safety, satisfaction.
Page 9
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
ISO 14598
Compliance
Interoperability
• Definition: Refers to the ability of the software to interact with other systems
effectively.
• Clarification: ISO 9126 uses "interoperability" instead of "compatibility" to avoid
confusion with another characteristic called "replaceability".
• Importance: Ensures seamless integration and communication between different
Page 10
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Maturity
Recoverability
• Definition: Refers to the capability of the software to restore the system to its
normal operation after a failure or disruption.
Page 11
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Importance of Distinction
• Security: Focuses on access control and protecting the system from unauthorized
access, ensuring confidentiality, integrity, and availability.
• Recoverability: Focuses on system resilience and the ability to recover from
failures, ensuring continuity of operations.
Learnability
• Definition: Refers to the ease with which users can learn to operate the
• Focus: Primarily on the initial phase of user interaction with the software.
Operability
• Definition: Refers to the ease with which users can operate and navigate the
software efficiently.
• Focus: Covers the overall usability of the software during regular use and
over extended periods.
Page 12
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Importance of Distinction
• Learnability: Critical for software that requires quick adoption and minimal
training, ensuring users can start using the software effectively from the
outset.
• Operability: Crucial for software used intensively or for extended periods,
focusing on efficiency, ease of navigation, and user comfort.
Page 13
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Analysability
• Definition: Refers to the ease with which the cause of a failure in the software can
be determined.
and accurately.
Changeability
• Definition: Also known as flexibility, changeability refers to the ease with which
software can be modified or adapted to changes in requirements or environment.
• Focus: Emphasizes the software's ability to accommodate changes without
introducing errors or unexpected behaviors.
Page 14
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Stability
Clarification of Terms
Page 15
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Portability Compliance
• Definition: Refers to the adherence of the software to standards that facilitate its
transferability and usability across different platforms or environments.
• Focus: Ensures that the software can run efficiently and effectively on various
hardware and software configurations without needing extensive modifications.
Replaceability
Coexistence
• Definition: Refers to the ability of the software to peacefully share resources and
operate alongside other software components within the same environment.
• Focus: Does not necessarily involve direct data exchange but ensures
compatibility and non-interference with other software components.
• Importance: Enables integration of the software into complex IT ecosystems
without conflicts or performance degradation.
Page 16
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Clarification of Terms
ISO 9126 provides structured guidelines for assessing and managing software quality
characteristics based on the specific needs and requirements of the software product. It
emphasizes the variation in importance of these characteristics depending on the type and
context of the software product being developed.
Once the software product requirements are established, ISO 9126 suggests the following
steps:
2. Define Metrics and Measurements: Establish measurable criteria and metrics for
evaluating each quality characteristic, ensuring they align with the defined
objectives and user expectations.
3. Plan Quality Assurance Activities: Develop a comprehensive plan for quality
assurance activities, including testing, verification, and validation processes to
ensure adherence to quality standards.
4. Monitor and Improve Quality: Continuously monitor software quality
throughout the development lifecycle, identifying areas for improvement and
Page 17
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Reliability: Critical for safety-critical systems where failure can have severe
consequences. Measures like mean time between failures (MTBF) are essential.
• Efficiency: Important for real-time systems where timely responses are crucial.
Measures such as response time are key indicators.
• Internal measurements like code execution times can help predict external qualities
like response time during software design and development.
• Predicting external qualities from internal measurements is challenging and often
requires validation in the specific environment where the software will operate.
Page 18
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• ISO 9126 acknowledges that correlating internal code metrics to external quality
characteristics like reliability can be difficult.
• This challenge is addressed in a technical report rather than a full standard,
indicating ongoing research and development in this area.
Page 19
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
<2 5
2-3 4
It seems like you're describing a method for evaluating and comparing software products
based on their quality characteristics. Here's a summary and interpretation of your
approach:
Page 20
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Usability 3 1 3 3 9
Efficiency 4 S
2 8 2
Maintainability 2
3
6 1 2
Overall 17 19
Page 21
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Understanding the differences between product metrics and process metrics is crucial in
software development:
1. Product Metrics:
o Purpose: Measure the characteristics of the software product being
developed.
o Examples:
Page 22
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
2. Process Metrics:
o Purpose: Measure the effectiveness and efficiency of the development
process itself.
o Examples:
Differences:
• Focus: Product metrics focus on the characteristics of the software being built
(size, effort, time), while process metrics focus on how well the development
process is performing (effectiveness, efficiency, quality).
• Use: Product metrics are used to gauge the attributes of the final software product,
aiding in planning, estimation, and evaluation. Process metrics help in assessing
Page 23
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
By employing both types of metrics effectively, software development teams can better
manage projects, optimize processes, and deliver high-quality software products that meet
user expectations.
Product quality management focuses on evaluating and ensuring the quality of the
software product itself. This approach is typically more straightforward to implement and
measure after the software has been developed.
Aspects:
Page 24
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
3. Benefits:
o Provides clear benchmarks for evaluating the success of the software
development project.
o Facilitates comparisons with user requirements and industry standards. o
Helps in identifying areas for improvement in subsequent software versions or
projects.
4. Challenges:
o Predicting final product quality based on intermediate stages (like early code
modules or prototypes) can be challenging.
o Metrics may not always capture the full complexity or performance of the
final integrated product.
Process quality management focuses on assessing and improving the quality of the
development processes used to create the software. This approach aims to reduce errors
and improve efficiency throughout the development lifecycle.
Aspects:
Page 25
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• While product and process quality management approaches have distinct focuses,
they are complementary.
• Effective software development teams often integrate both approaches to achieve
optimal results.
• By improving process quality, teams can enhance product quality metrics, leading
to more reliable, efficient, and user-friendly software products.
ISO 9001:2000, now superseded by newer versions but still relevant in principle, outlines
standards for Quality Management Systems (QMS). Here’s a detailed look at its key
aspects and how it applies to software development:
ISO 9001:2000 is part of the ISO 9000 series, which sets forth guidelines and
requirements for implementing a Quality Management System (QMS).
The focus of ISO 9001:2000 is on ensuring that organizations have effective processes in
place to consistently deliver products and services that meet customer and regulatory
Page 26
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
requirements.
Key Elements:
1. Fundamental Features:
o Describes the basic principles of a QMS, including customer focus,
leadership, involvement of people, process approach, and continuous
improvement.
o Emphasizes the importance of a systematic approach to managing processes
and resources.
Page 27
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Ensure that subcontractors and external vendors also adhere to quality standards
through effective quality assurance practices.
• Perceived Value: Critics argue that ISO 9001 certification does not guarantee the
quality of the end product but rather focuses on the process.
• Cost and Complexity: Obtaining and maintaining certification can be costly and
time-consuming, which may pose challenges for smaller organizations.
• Focus on Compliance: Some organizations may become overly focused on
meeting certification requirements rather than improving overall product quality.
Despite these criticisms, ISO 9001:2000 provides a structured framework that, when
implemented effectively, can help organizations improve their software development
processes and overall quality management practices.
It emphasizes continuous improvement and customer satisfaction, which are crucial aspects
in the competitive software industry.
Page 28
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
1. Customer Focus:
o Understanding and meeting customer requirements to enhance satisfaction.
2. Leadership:
o Providing unity of purpose and direction for achieving quality objectives.
3. Involvement of People:
o Engaging employees at all levels to contribute effectively to the QMS.
4. Process Approach:
Page 29
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
process.
5. Resource Management:
o Ensuring adequate resources (human, infrastructure, etc.) are available for
effective process execution.
6. Measurement and Monitoring:
o Designing methods to measure and monitor process effectiveness and
efficiency.
o Gathering data and identifying discrepancies between actual performance
and targets.
7. Analysis and Improvement:
o Analyzing causes of discrepancies and implementing corrective actions to
improve processes continually.
Detailed Requirements
1. Documentation:
o Maintaining documented objectives, procedures (in a quality manual),
plans, and records that demonstrate adherence to the QMS. o
Implementing a change control system to manage and update
documentation as necessary.
2. Management Responsibility:
o Top management must actively manage the QMS and ensure that processes
conform to quality objectives.
3. Resource Management:
o Ensuring adequate resources, including trained personnel and infrastructure,
are allocated to support QMS processes.
4. Production and Service Delivery:
o Planning, reviewing, and controlling production and service delivery
processes to meet customer requirements.
o Communicating effectively with customers and suppliers to ensure clarity
Page 30
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Historical Perspective
1. Definition:
o TQM focuses on continuous improvement of processes through
measurement and redesign.
o It advocates that organizations continuously enhance their processes to
Page 31
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
1. Objective:
Page 32
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
The SEI Capability Maturity Model (CMM) is a framework developed by the Software
Engineering Institute (SEI) to assess and improve the maturity of software development
processes within organizations.
It categorizes organizations into five maturity levels based on their process capabilities and
practices:
1. Level 1: Initial
o Characteristics:
■ Chaotic and ad hoc development processes.
■ Lack of defined processes or management practices.
■ Relies heavily on individual heroics to complete projects. o
Outcome:
■ Project success depends largely on the capabilities of individual team
members.
■ High risk of project failure or delays.
2. Level 2: Repeatable
o Characteristics:
■ Basic project management practices like planning and tracking
Page 33
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Outcome:
■ Organizations can repeat successful practices on similar projects.
■ Improved project consistency and some level of predictability.
3. Level 3: Defined
o Characteristics:
Outcome:
■ Consistent and standardized processes across the organization.
■ Better management of project risks and quality.
4. Level 4: Managed
o Characteristics:
Outcome:
■ Focus on managing and optimizing processes to meet quality and
performance goals.
■ Continuous monitoring and improvement of project execution.
5. Level 5: Optimizing
o Characteristics:
Page 34
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
culture.
■ Process metrics are analyzed to identify areas for improvement.
■ Lessons learned from projects are used to refine and enhance
processes.
■ Innovation and adoption of new technologies are actively pursued. o
Outcome:
■ Continuous innovation and improvement in processes.
■ High adaptability to change and efficiency in handling new
challenges.
■ Leading edge in technology adoption and process optimization.
SEI CMM has been instrumental not only in enhancing the software development
practices within organizations but also in establishing benchmarks for industry standards.
to optimized and continuously improving processes (Level 5), thereby fostering better
Page 35
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Page 36
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Benefits of CMMI
Page 37
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
ISO/IEC 15504, also known as SPICE (Software Process Improvement and Capability
dEtermination), is a standard for assessing and improving software development
processes. Here are the key aspects of ISO 15504 process assessment:
Process Attributes
• Nine Process Attributes: ISO 15504 assesses processes based on nine attributes,
which are:
Page 38
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
the organization.
6. Process Measurement (PME): Evaluates the use of measurements to
manage and control the process.
7. Process Control (PC): Assesses the monitoring and control mechanisms in
place for the process.
• Alignment with CMMI: ISO 15504 and CMMI share similar goals of assessing
and improving software development processes. While CMMI is more
comprehensive and applicable to a broader range of domains, ISO 15504 provides
a structured approach to process assessment specifically tailored to software
development.
Page 39
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
When assessors are judging the degree to which a process attribute is being fulfilled they
allocate one of the following scores:
Page 40
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Here’s how evidence might be identified and evaluated for assessing the process
attributes, taking the example of requirement analysis processes:
step of the requirements analysis process, indicating that the defined process is being
implemented and deployed effectively (3.2 in Table 13.5). Using ISO/IEC 15504
Attributes
Page 41
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Importance of Evidence
Page 42
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
development for machine tool equipment, involves addressing several key challenges
identified within the organization.
Here’s a structured approach, drawing from CMMI principles, to address these issues and
improve process maturity:
1. Resource Overcommitment:
o Issue: Lack of proper liaison between the Head of Software Engineering and
Project Engineers leads to resource overcommitment across new systems
and maintenance tasks simultaneously.
o Impact: Delays in software deliveries due to stretched resources.
2. Requirements Volatility:
o Issue: Initial testing of prototypes often reveals major new requirements. o
Impact: Scope creep and changes lead to rework and delays.
3. Change Control Challenges:
o Issue: Lack of proper change control results in increased demands for
software development beyond original plans.
o Impact: Increased workload and project delays.
4. Delayed System Testing:
o Issue: Completion of system testing is delayed due to a high volume of bug
fixes.
o Impact: Delays in product release and customer shipment.
Page 43
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Actions:
• Expected Outcomes:
Page 44
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Page 45
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Six Sigma
Page 46
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Here’s how UVW can adopt and benefit from Six Sigma:
1. Define:
o jective: Clearly define the problem areas and goals for improvement. o
performance.
Page 47
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Focus Areas:
o Addressing late deliveries due to resource overcommitment. o Managing
requirements volatility and change control effectively. o Enhancing testing
processes to reduce defects and delays in system testing phases.
• Tools and Techniques:
o Use of DMAIC (Define, Measure, Analyse, Improve, Control) for
existingprocess improvements.
o Application of DMADV (Define, Measure, Analyse, Design, Verify) for new
process or product development to ensure high-quality outputs from the
outset.
• Cost Savings: Reduced rework and operational costs associated with defects.
Page 48
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
The discussion highlights several key themes in software quality improvement over time,
emphasizing shifts in practices and methodologies:
1. Increasing Visibility:
o Early practices like Gerald Weinberg's 'egoless programming' promoted code
review among programmers, enhancing visibility into each other's work.
o Modern practices extend this visibility to include walkthroughs, inspections,
and formal reviews at various stages of development, ensuring early
detection and correction of defects.
2. Procedural Structure:
o Initially, software development lacked structured methodologies, but over
time, methodologies with defined processes for every stage (like Agile,
Waterfall, etc.) have become prevalent.
o Structured programming techniques and 'clean-room' development further
enforce procedural rigor to enhance software quality.
3. Checking Intermediate Stages:
o Traditional approaches involved waiting until a complete, albeit imperfect,
version of software was ready for debugging.
o Contemporary methods emphasize checking and validating software
components early in development, reducing reliance on predicting external
quality from early design documents.
4. Inspections:
o Inspections are critical in ensuring quality at various development stages, not
just in coding but also in documentation and test case creation.
Page 49
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Page 50
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
The late 1960s marked a pivotal period in software engineering where the complexity of
software systems began to outstrip the capacity of human understanding and testing
capabilities. Here are the key developments and concepts that emerged during this time:
Page 51
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
4. Incremental Development:
o Systems were developed incrementally, ensuring that each increment was
capable of operational use by end-users.
o This approach avoided the pitfalls of iterative debugging and ad-hoc
modifications, which could compromise software reliability.
5. Verification and Validation:
o Clean-room development emphasized rigorous verification at the
development stage rather than relying on extensive testing to identify and
fix errors.
o The certification team's testing was thorough and continued until statistical
models showed that the software failure rates were acceptably low.
Overall, these methodologies aimed to address the challenges posed by complex software
systems by promoting structured, systematic development processes that prioritize
correctness from the outset rather than relying on post hoc testing and debugging. Clean-
room software development, in particular, contributed to the evolution of quality
assurance practices in software engineering, emphasizing formal methods and rigorous
validation techniques.
Page 52
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Formal methods
It seems like you're discussing formal methods in software development and the concept of
software quality circles. Here's a summary of the points covered:
• Purpose: SWQCs are adapted from Japanese quality practices to improve software
development processes by reducing errors.
• Structure: Consist of 4 to 10 volunteers in the same department who meet
regularly to identify, analyze, and solve work-related problems.
• Process: The group selects a problem, identifies its causes, and proposes solutions.
Management approval may be required for implementing improvements.
• Benefits: Enhances team collaboration, spreads best practices, and focuses on
continuous process improvement.
If you have any specific questions or if there's more you'd like to explore on these topics or
related areas, feel free to ask!
The process you're describing involves the compilation of most probable error lists, which
is a proactive approach to improving software development processes. Here’s a
Page 53
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Page 54
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
This approach aligns well with quality circles and other continuous improvement
methodologies by fostering a culture of proactive problem-solving and learning from past
experiences.
If you have more questions or need further elaboration on any aspect, feel free to ask!
The concept of Lessons Learned reports and Post Implementation Reviews (PIRs) are
crucial for organizational learning and continuous improvement in project management.
Here’s a breakdown of these two types of reports:
Page 55
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• Purpose: A PIR takes place after a significant period of operation of the new
system (typically after it has been in use for some time). Its focus is on evaluating
the effectiveness of the implemented system rather than the project process itself.
• Timing: Conducted by someone who was not directly involved in the project to
ensure neutrality and objectivity.
• Content: A PIR includes:
o System Performance: How well the system meets its intended objectives
and user needs.
o User Feedback: Feedback from users on system usability and
functionality.
o Improvement Recommendations: Changes or enhancements suggested to
improve system effectiveness.
• Audience: The audience typically includes stakeholders who will benefit from
insights into the system’s operational performance and areas for improvement.
• Outcome: Recommendations from a PIR often lead to changes aimed at enhancing
the effectiveness and efficiency of the system.
• Continuous Improvement: They provide a basis for making informed decisions and
improvements in future projects and system implementations.
Testing
The text discusses the planning and management of testing in software development,
highlighting the challenges of estimating the amount of testing required due to unknowns,
such as the number of bugs left in the code.
Page 56
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
It introduces the V-process model as an extension of the waterfall model, emphasizing the
importance of validation activities at each development stage.
1. Quality Judgement:
o The final judgement of software quality is based on its correct execution.
2. Testing Challenges:
o Estimating the remaining testing work is difficult due to unknown bugs in the
code.
3. V-Process Model:
o Introduced as an extension of the waterfall model.
o Diagrammatic representation provided in Figure 13.5.
o Stresses the necessity for validation activities matching the project creation
activities.
4. Validation Activities:
o Each development step has a matching validation process.
o Defects found can cause a loop back to the corresponding development stage
for rework.
5. Discrepancy Handling:
o Feedback should occur only when there is a discrepancy between specified
requirements and implementation.
o Example: System designer specifies a calculation method; if a developer
misinterprets it, the discrepancy is caught during system testing.
6. System Testing:
o Original designers are responsible for checking that software meets the
specified requirements, discovering any misunderstandings by developers.
Page 57
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• The V-process model provides a structure for making early planning decisions
about testing.
• Decisions can be made about the types and amounts of testing required from the
beginning of the project.
Off-the-Shelf Software:
• If software is acquired off-the-shelf, certain stages like program design and coding
are not relevant.
• Consequently, program testing would not be necessary in this scenario.
Page 58
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
• User acceptance tests remain valid and necessary regardless of the software being
off-the-shelf.
1. Objectives:
o Both techniques aim to remove errors from software.
2. Definitions:
o Verification: Ensures outputs of one development phase conform to the previous
phase's outputs.
o Validation: Ensures fully developed software meets its requirements
specification.
3. Objectives Clarified:
o Verification Objective: Check if artifacts produced after a phase conform to
those from the previous phase (e.g., design documents conform to requirements
specifications).
o Validation Objective: Check if the fully developed and integrated software
satisfies customer requirements.
4. Techniques:
o Verification Techniques: Review, simulation, and formal verification. o
Validation Techniques: Primarily based on product testing.
5. Process Stages:
Page 59
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Testing activities
The text provides an overview of test case design approaches, levels of testing, and main
testing activities in software development.
It emphasizes the differences between black-box and white-box testing, the stages of
testing (unit, integration, system), and the activities involved in the testing process. Test
1. Black-Box Testing:
o Test cases are designed using only the functional specification. o Based on
input/output behavior without knowledge of internal structure. o Also known
as functional testing or requirements-driven testing.
2. White-Box Testing:
o Test cases are designed based on the analysis of the source code. o Requires
knowledge of the internal structure.
o Also known as structural testing or structure-driven testing.
Levels of Testing
1. Unit Testing:
o Tests individual components or units of a program.
o Conducted as soon as the coding for each module is complete. o Allows for
parallel activities since modules are tested separately. o Referred to as testing
in the small.
2. Integration Testing:
o Checks for errors in interfacing between modules.
Page 60
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
o Units are integrated step by step and tested after each integration. o Referred
to as testing in the large.
3. System Testing:
o Tests the fully integrated system to ensure it meets requirements. o
Conducted after integration testing.
Testing Activities
1. Test Planning:
o Involves determining relevant test strategies and planning for any required
test bed.
o Test bed setup is crucial, especially for embedded applications.
2. Test Suite Design:
o Planned testing strategies are used to design the set of test cases (test suite).
3. Test Case Execution and Result Checking:
o Each test case is executed, and results are compared with expected outcomes.
o Failures are noted for test reporting when there is a mismatch between actual
and expected results.
The text describes the detailed process and activities involved in software test reporting,
debugging, error correction, defect retesting, regression testing, and test closure.
It highlights the importance of formal issue recording, the adjudication of issues, and
various testing strategies to ensure software quality.
Test Reporting
1. Issue Raising:
o Report discrepancies between expected and actual results.
2. Issue Recording:
o Formal recording of issues and their history.
Page 61
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
1. Debugging:
2. Error Correction:
o Correct the code after locating the error through debugging.
3. Defect Retesting:
o Retesting corrected code to check if the defect has been successfully
addressed (resolution testing).
4. Regression Testing:
o Ensures unmodified functionalities still work correctly after bug fixes. o
Runs alongside resolution testing to check for new errors introduced by
changes.
Test Closure
1. Test Completion:
o Archiving documents related to lessons learned, test results, and logs for
Page 62
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
future reference.
2. Time-Consuming Activity:
o Debugging is noted as usually the most time-consuming activity in the
testing process.
The text describes who performs testing in organizations, the importance and benefits of
test automation, and various types of automated testing tools.
It emphasizes that while test automation can significantly reduce human effort, improve
thoroughness, and lower costs, different tools have distinct advantages and challenges.
Can offer a final quality check but may lead developers to take less care in their
work.
2. Integrated Testing Roles:
o Testers work alongside developers rather than as a separate group.
Page 63
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Test Automation
o Reduces monotony, boredom, and errors in running the same test cases
repeatedly.
o Substantial cost and time reduction in testing and maintenance phases.
Page 64
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
1. Historical Data:
o Use historical data to estimate errors per 1000 lines of code from past
projects.
o Apply this ratio to new system development to estimate potential errors
based on the code size.
Independent Reviews
Page 65
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
code.
o They must work independently of each other.
o Three counts are collected for better error estimation.
Using these methods helps in obtaining a better estimation of latent errors, providing a
clearer understanding of the remaining testing effort needed to ensure software quality.
For example, A finds 30 errors and B finds 20 errors of which 15 are common to both A and B. The estimated total
number of errors would be:
(30 X 20)/15 = 40
Software reliability
Page 66
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
overall reliability.
o Studies show that 90% of a typical program's execution time is spent on 10%
of its instructions.
o The specific location of a defect (core or non-core part) affects reliability.
4. Observer Dependency:
o Reliability is dependent on user behavior and usage patterns.
o A bug may affect different users differently based on how they use the
software.
5. Reliability Improvement Over Time:
o Reliability usually improves during testing and operational phases as defects
are identified and fixed.
o This improvement can be modeled mathematically using Reliability
Growth Models (RGM).
6. Reliability Growth Models (RGM):
o RGMs describe how reliability improves as failures are reported and bugs are
corrected.
o Various RGMs exist, including the Jelinski-Moranda model, Littlewood-
Verall’s model, and Goel-Okutomo’s model.
o RGMs help predict when a certain reliability level will be achieved, guiding
decisions on when testing can be stopped.
Quality plans
• Quality plans detail how standard quality procedures and standards from an
organization's quality manual will be applied to a specific project.
• They ensure all quality-related activities and requirements are addressed.
Page 67
21CS61 SOFTWARE ENGINEERING & PROJECT MANAGEMENT, AI&ML,RNSIT
Client Requirements:
• For software developed for external clients, the client's quality assurance staff may
require a quality plan to ensure the quality of the delivered products.
• This requirement ensures that the client’s quality standards are met.
• A quality plan acts as a checklist to confirm that all quality issues have been
addressed during the planning process.
• Most of the content in a quality plan references other documents that detail specific
quality procedures and standards.
Page 68
Software Engineering & Project Management(21CS61)
MODULE- 5
Step 1:Project Scope and objective:Some objective could relate to the qualities of the application to be
delivered.
Step 2: Identify project infrastructure: Identify the installation standard and procedures mostly regarding
quality
69
Software Engineering & Project Management(21CS61)
For example is it is safety critical then a wide range of activities could be added, such as n-version
development where a number of teams develop versions of the same software which are then run in
parallel with the outputs being cross checked for discrepancies.
Step 4: Identify the products and activities of the project: It is at this point the entry, exist and process
requirement are identified for each activity. Break down the project into manageable activities, ensuring
each is planned with quality measures in place.
Step 5:Estimate Effort for Each Activity: Accurate effort estimation is essential to allocate sufficient
resources for quality assurance activities, avoiding rushed and low-quality outputs.
Step 6: Identify Activity Risks: Identifying risks early allows for planning mitigation strategies to
maintain quality throughout the project.
Step 7: Allocate Resources: Allocate resources not just for development but also for quality assurance
tasks like testing, code reviews, and quality audits.
Step 8: Review and Publicize Plan: Regular reviews of the plan ensure that quality objectives are being
met and any deviations are corrected promptly.
Step 9: Execute Plan: Execute the project plan with a focus on adhering to quality standards, monitoring
progress, and making necessary adjustments to maintain quality.
Step 10: Lower-Level Planning:Detailed planning at lower levels should include specific quality
assurance activities tailored to each phase or component of the project.
Review (Feedback Loop): Continuous review and feedback loops help in maintaining and improving
quality throughout the project lifecycle.
70
Software Engineering & Project Management(21CS61)
The intangibility of software: This make it difficult to know that a particular tasks in project
has been completed satisfactory. The results of these tasks can be made tangible by demanding
that the developer produce deliverables that can be examined for quality.
Accumulating errors during software development: As computer system development
comprises steps where the output from one step is the input to the next, the errors in the later
deliverables will be added to those in the earlier steps, leading to an accumulating detrimental
effect. In general, the later in a project that an error is found the more expensive it will be to fix.
In addition, because the number of errors in the system is unknown, the debugging phases of a
project arc particularly difficult to control.
Quality is a rather vague term and we need to define carefully what we mean by it.
71
Software Engineering & Project Management(21CS61)
The quality models give a characterization (often hierarchical) of software quality in terms of a set of
characteristics of the software. The bottom level of the hierarchy can be directly measured, enabling a
quantitative assessment of the quality of the software. There are several well-established quality Models
including McCall’s. Dromey’s and Boehm’s. Since there was no standardization among the large
number of quality models that became available, the ISO 9126 model of quality was developed.
David Garvin suggests that quality ought to be thought about by taking a third-dimensional read point
that begins with an assessment of correspondence and terminates with a transcendental (aesthetic) view.
Eight dimensions of product quality management will be used at a strategic level to investigate quality
characteristics.
72
Software Engineering & Project Management(21CS61)
73
Software Engineering & Project Management(21CS61)
MCCALL MODEL
McCall’s Software Quality Model was introduced in 1977. This model is incorporated with many
attributes, termed software factors, which influence software. The model distinguishes between two
levels of quality attributes:
Quality Factors
Quality Criteria
Quality Factors: The higher-level quality attributes that can be accessed directly are called quality
factors. These attributes are external. The attributes at this level are given more importance by the users
and managers.
Quality Criteria: The lower or second-level quality attributes that can be accessed either subjectively
or objectively are called Quality Criteria. These attributes are internal. Each quality factor has many
second-level quality attributes or quality criteria.
Example: The usability quality factor is divided into operability, training, communicativeness,
input/output volume, and input/output rate. This model classifies all software requirements into 11
software quality factors.
The 11 factors are organized into three product quality factors: Product Operation, Product Revision,
74
Software Engineering & Project Management(21CS61)
75
Software Engineering & Project Management(21CS61)
DROMEY’S MODEL:
Dromey proposed that software product quality depends on four major high-level properties of the
software: Correctness, internal characteristics, contextual characteristics and certain descriptive
properties.
BOEHM’S MODEL:
The model represents a hierarchical quality model similar to the McCall Quality Model to define
software quality using a predefined set of attributes and metrics, each of which contributes to the overall
quality of software. The difference between Boehm’s and McCall’s Models is that McCall’s Quality
Model primarily focuses on precise measurement of high-level characteristics, whereas Boehm’s Quality
Model is based on a wider range of characteristics.
The highest level of Boehm’s model has the following three primary uses, as stated as below:
76
Software Engineering & Project Management(21CS61)
The next level of Boehm’s hierarchical model consists of seven quality factors associated with three
primary uses, stated below:
Usability (Human Engineering): Extent of effort required to learn, operate and understand functions of
the software.
Testability: Effort required to verify that software performs its intended functions.
Understandability: Effort required for a user to recognize a logical concept and its applicability.
77