UNIT V SOFTWARE QUALITY ASSUARANCE 9 hours
Software Quality: Quality concepts, Software quality assurance, Software reviews,
Formal technical reviews. Software Quality Assurance: Statistical software quality
assurance, Software reliability, The ISO 9000 quality standards, Principles of Software
Process Change.
20CSE115-SOFTWARE ENGINEERING
- Quality concepts
- Software quality assurance
- Software reviews
- Statistical software quality assurance
- Software reliability, availability, and safety
- SQA plan
(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
Quality Management
Quality Concepts
What is Quality Management
4
•
•
•
•
•
Also called software quality assurance (SQA)
Serves as an umbrella activity that is applied throughout the software
process
Involves doing the software development correctly versus doing it
over again
Reduces the amount of rework, which results in lower costs and
improved time to market
Encompasses
–
–
–
–
–
–
A software quality assurance process
Specific quality assurance and quality control tasks (including formal
technical reviews and a multi-tiered testing strategy)
Effective software engineering practices (methods and tools) Control of
all software work products and the changes made to them
A procedure to ensure compliance with software development standards
Measurement and reporting mechanisms
Quality Defined
5
•
•
•
•
Defined as a characteristic or attribute of something
Refers to measurable characteristics that we can compare to known
standards
In software it involves such measures as cyclomatic complexity,
cohesion(intra), coupling(inter), function points, and source lines
of code
Includes variation control
–
–
– A software development organization should strive to minimize the
variation between the predicted and the actual values for cost, schedule,
and resources
They should make sure their testing program covers a known percentage of
the software from one release to another
One goal is to ensure that the variance in the number of bugs is also
minimized from one release to another
Quality Defined (continued)
6
• Two kinds of quality are sought out
– Quality of design
•
•
The characteristic that designers specify for an item
This encompasses requirements, specifications, and the design of the system
– Quality of conformance (i.e., implementation)
• The degree to which the design specifications are followed during
manufacturing
• This focuses on how well the implementation follows the design and how
well the resulting system meets its requirements
• Quality also can be looked at in terms of user satisfaction
User satisfaction = compliant(userfriendly) product
+ good quality
+ delivery within budget and schedule
Quality Control
7
•
•
•
•
•
 Involves a series of inspections, reviews, and tests used
throughout the software process
 Ensures that each work product meets the requirements
placed on it Includes a feedback loop to the process that
created the work product
– This is essential in minimizing the errors produced
 Combines measurement and feedback in order to adjust
the process when product specifications are not met
 Requires all work products to have defined, measurable
specifications to which practitioners may compare to the
output of each process
Quality Assurance Functions
8
•
•
•
 Consists of a set of auditing and reporting functions that
assess the effectiveness and completeness of quality
control activities
 Provides management personnel with data that provides
insight into the quality of the products
 Alerts management personnel to quality problems so that
they can apply the necessary resources to resolve quality
issues
The Cost of Quality
9
•
•
Includes all costs incurred in the pursuit of quality or in performing
quality-related activities
Is studied to
–
–
–
Provide a baseline for the current cost of quality Identify
opportunities for reducing the cost of quality
Provide a normalized basis of comparison (which is usually dollars)
•
•
Involves various kinds of quality costs (See next slide)
Increases dramatically as the activities progress from
– Prevention  Detection  Internal failure (before product
release) External failure(after product release)
"It takes less time to do a thing right than to explain why you did it wrong." Longfellow
Kinds of Quality Costs
1
0
•
•
•
Prevention costs
–Quality planning, formal technical reviews, test equipment, training
Appraisal(assesment) costs
–Inspections, equipment calibration and maintenance, testing
Failure costs – subdivided into internal failure costs and external
failure costs
– Internal failure costs
• Incurred when an error is detected in a product prior to
shipment Include rework, repair, and failure mode analysis
– External failure costs
•
•
Involves defects found after the product has been shipped
Include complaint resolution, product return and replacement, help
line support, and warranty work
Software Quality Assurance
11
Software Quality Defined
Definition: "Conformance to explicitly stated functional and
performance requirements, explicitly documented development
standards, and implicit characteristics that are expected of all
professionally developed software"
(More on next slide)
Software Quality Defined (continued)
13
• This definition emphasizes three points
–
–
– Software requirements are the foundation from which quality is measured;
lack of conformance to requirements is lack of quality
Specified standards define a set of development criteria that guide the
manner in which software is engineered; if the criteria are not followed,
lack of quality will almost surely result
A set of implicit requirements often goes unmentioned; if software fails to
meet implicit requirements, software quality is suspect
• Software quality is no longer the sole responsibility of the programmer
– It extends to software engineers, project managers, customers,
salespeople, and the SQA group
– Software engineers apply solid technical methods and measures, conduct
formal technical reviews, and perform well-planned software testing
The SQA Group
14
•
•
•
Serves as the customer's in-house representative
Assists the software team in achieving a high-quality product
Views the software from the customer's point of view
–
–
Does the software adequately meet quality factors?
Has software development been conducted according to pre-established
standards?
– Have technical disciplines properly performed their roles as part of
the SQA activity?
• Performs a set of of activities that address quality assurance planning,
oversight, record keeping, analysis, and reporting (See next slide)
SQA Activities
15
•
•
•
•
•
•
•
•
Prepares an SQA plan for a project
Participates in the development of the project's software process description
Reviews(less assurance) software engineering activities to verify compliance
with the defined software process
Audits(high assurance) designated software work products to verify
compliance with those defined as part of thesoftware process
Ensures that deviations in software work and work products are documented
and handled according to a documented procedure
Records any noncompliance and reports to senior management Coordinates
the control and management of change
Helps to collect and analyze software metrics
Software Reviews
Purpose of Reviews
17
•
•
•
•
•
•
Serve as a filter for the software process
Are applied at various points during the software process Uncover
errors that can then be removed
Purify the software analysis, design, coding, and testing activities
Catch large classes of errors that escape the originator more than other
practitioners
Include the formal technical review (also called a walkthrough or
inspection)
–
–
–
–
Acts as the most effective SQA filter
Conducted by software engineers for software engineers Effectively
uncovers errors and improves software quality
Has been shown to be up to 75% effective in uncovering design flaws
(which constitute 50-65% of all errors in software)
• Require the software engineers to expend time and effort, and the
organization to cover the costs
Formal Technical Review (FTR)
18
• Objectives
–
–
–
–
– To uncover errors in function, logic, or implementation for any
representation of the software
To verify that the software under review meets its requirements
To ensure that the software has been represented according to predefined
standards
To achieve software that is developed in a uniform manner To make
projects more manageable
•
•
•
Serves as a training ground for junior software engineers to observe
different approaches to software analysis, design, and construction
Promotes backup and continuity because a number of people become
familiar with other parts of the software
May sometimes be a sample-driven review
– Project managers must quantify those work products that are the primary
targets for formal technical reviews
– The sample of products that are reviewed must be representative of the
products as a whole
The FTR Meeting
(More on next slide) 19
• Has the following constraints
–
–
From 3-5 people should be involved
Advance preparation (i.e., reading) should occur for each participant but should
require no more than two hours a piece and involve only a small subset of
components
– The duration of the meeting should be less than two hours
•
•
Focuses on a specific work product (a software requirements specification, a
detailed design, a source code listing)
Activities before the meeting
–
–
–
– The producer informs the project manager that a work product is complete and
ready for review
The project manager contacts a review leader, who evaluates the product for
readiness, generates copies of product materials, and distributes them to the
reviewers for advance preparation
Each reviewer spends one to two hours reviewing the product and making notes
before the actual review meeting
The review leader establishes an agenda for the review meeting and schedules the
time and location
The FTR Meeting (continued)
(More on next slide) 20
• Activities during the meeting
–
–
–
•The meeting is attended by the review leader, all reviewers, and the producer
•One of the reviewers also serves as the recorder for all issues and decisions concerning the product
•After a brief introduction by the review leader, the producer proceeds to "walk through" the work product
while reviewers ask questions and raise issues
•The recorder notes any valid problems or errors that are discovered; no time or effort is spent in this
meeting to solve any of these problems or errors
• Activities at the conclusion of the meeting
– All attendees must decide whether to
•
•
Accept the product without further modification
Reject the product due to severe errors (After these errors are corrected, another
review will then occur)
•Accept the product provisionally (Minor errors need to be corrected but no additional
review is required)
– All attendees then complete a sign-off in which they indicate that they took part
in the review and that they concur with the findings
The FTR Meeting (continued)
21
• Activities following the meeting
– The recorder produces a list of review issues that
•
•
Identifies problem areas within the product
Serves as an action item checklist to guide the producer in making corrections
–
–
The recorder includes the list in an FTR summary report
•This one to two-page report describes what was reviewed, who reviewed it, and
what were the findings and conclusions
The review leader follows up on the findings to ensure that the producer
makes the requested corrections
FTR Guidelines
22
•
•
•
•
•
•
•
•
•
•
Review the product, not the producer Set an agenda and maintain
it
Limit debate and rebuttal; conduct in-depth discussions off-line
Enunciate problem areas, but don't attempt to solve the problem
noted
Take written notes; utilize a wall board to capture comments
Limit the number of participants and insist upon advance
preparation
Develop a checklist for each product in order to structure and focus
the review
Allocate resources and schedule time for FTRs Conduct
meaningful training for all reviewers
Review your earlier reviews to improve the overall review process
Statistical Software Quality Assurance
Process Steps
24
•
•
•
 Collect and categorize information (i.e., causes) about
software defects that occur
 Attempt to trace each defect to its underlying cause
(e.g., nonconformance to specifications, design error,
violation of standards, poor communication with the
customer)
 Using the Pareto principle (80% of defects can be traced
to 20% of all causes), isolate the 20%
A Sample of Possible Causes
for Defects
25
•
•
•
•
•
•
•
•
•
•
•
Incomplete or erroneous specifications
Misinterpretation of customer communication
Intentional deviation from specifications Violation of
programming standards
Errors in data representation Inconsistent component
interface Errors in design logic Incomplete or
erroneous testing
Inaccurate or incomplete documentation
Errors in programming language translation of design
Ambiguous or inconsistent human/computer interface
25
Six Sigma
•
•
•
•
•
Popularized by Motorola in the 1980s
Is the most widely used strategy for statistical quality assurance
Uses data and statistical analysis to measure and improve a company's
operational performance
Identifies and eliminates defects in manufacturing and service-related
processes
The "Six Sigma" refers to six standard deviations (3.4 defects per a
million occurrences)
(More on next slide)
Six Sigma (continued)
27
• Three core steps
–
–
– Define customer requirements, deliverables, and project goals via well-
defined methods of customer communication
Measure the existing process and its output to determine current quality
performance (collect defect metrics)
Analyze defect metrics and determine the vital few causes (the 20%)
• Two additional steps are added for existing processes (and can be done in
parallel)
–
–
Improve the process by eliminating the root causes of defects
Control the process to ensure that future work does not reintroduce the causes
of defects
Six Sigma (continued)
•
•
All of these steps need to be performed so that you can manage the
process to accomplish something
You cannot effectively manage and improve a process until you first do
these steps (in this order):
Manage and improve the work process
Control the work process Analyze the
work process Measure the work
process
Define the work process The work to
be done
28
Software Reliability, Availability, and Safety
Reliability and Availability
30
• Software failure
–
–
Defined: Nonconformance to software requirements
Given a set of valid requirements, all software failures can be traced to design or
implementation problems (i.e., nothing wears out like it does in hardware)
• Software reliability
– Defined: The probability of failure-free operation of a software application in a
specified environment for a specified time
– Estimated using historical and development data
– A simple measure is MTBF = MTTF + MTTR = Uptime + Downtime
– Example:
• MTBF = 68 days + 3 days = 71 days
• Failures per 100 days = (1/71) * 100 = 1.4
• Software availability
– Defined: The probability that a software application is operating according to
requirements at a given point in time
– Availability = [MTTF/ (MTTF + MTTR)] * 100%
–Example:
• Avail. = [68 days / (68 days + 3 days)] * 100 % =96%
Mean time between failures, Mean time to failure, mean time to repair
Software Safety
31
•
•
Focuses on identification and assessment of potential hazards to
software operation
It differs from software reliability
–
– Software reliability uses statistical analysis to determine the likelihood
that a software failure will occur; however, the failure may not necessarily
result in a hazard or mishap
Software safety examines the ways in which failures result in conditions that
can lead to a hazard or mishap; it identifies faults that may lead to failures
• Software failures are evaluated in the context of an entire computer-
based system and its environment through the process of fault tree
analysis or hazard analysis
SQA Plan
Purpose and Layout
•
•
•
Provides a road map for instituting software quality assurance in an
organization
Developed by the SQA group to serve as a template for SQA activities that
are instituted for each software project in an organization
Structured as follows:
–
–
–
–
–
The purpose and scope of the plan
A description of all software engineering work products that fall within
the purview of SQA
All applicable standards and practices that are applied during the software
process
SQA actions and tasks (including reviews and audits) and their placement
throughout the software process
The tools and methods that support SQA actions and tasks
Methods for assembling, safeguarding, and maintaining all SQA-related
records
Organizational roles and responsibilities relative to product quality
32

ISO 9000 Series of Quality Standards
 The ISO 9000 series was created by the International Organization for
Standardization (ISO) as international requirements and guidelines for quality
management systems. It was originally introduced in 1987 and over the years has
established itself in the global economy having been adopted in over 178 countries
with over one million registrations.
 The phrase “ISO 9000 family” or “ISO 9000 series” refers to a group of quality
management standards which are process standards (not product standards).
 ISO 9000 Quality management systems – Fundamentals and Vocabulary, referenced
in all ISO 9000 Standards.
 ISO 9001 Quality management systems – Requirements, contains
the requirements an organization must comply with to become ISO 9001 certified.
 ISO 9002 – Guidelines for the application of ISO 9001:2015
 ISO 9004 – Managing for the sustained success of an organization,
provides guidelines for sustaining QMS success through evaluation and
performance improvement.
Chapter 1 Introduction 34
Principles of Software Process Change
People
 The best people are always in short supply
 You probably have about the best team you can get right
now.
 With proper leadership and support, most people can do
much better than they are currently doing.
Design
 Superior products have superior design.
Successful products are designed by people who
understand the application (domain engineer).
 A program should be viewed as executable knowledge.
Program designers should haveapplication knowledge
Chapter 1 Introducti o n 35
Six Basic Principles Of Software Process
Change
 Major changes to the process must start at the top.
 Ultimately, everyone must be involved.
 Effective change requires great knowledge of the current
process
 Change is continuous
 Software process changes will not be retained without
conscious effort and periodic reinforcement
 Software process improvement requires investment
Chapter 1 Introduction 36
Continuous Change
 Reactive changes generally make things worse
 Every defect is an improvement opportunity
 Crisis prevention is more important than crisis recovery
Software Processes Changes Won’t Stick by Themselves
 The tendency for improvements to deteriorate is characterized by the term
 entropy
 (Webster’s: a measure of the degree of disorder
 in a...system; entropy always increases andavailable energy diminishes in a closed system.). New
methods must be carefully introduced and periodically monitored, or they to willrapidly decay.Human
adoption of new process involves four stages:
 Installation - Initial training
 Practice - People learn to perform as instructed
 Proficiency - Traditional learning curve
 Naturalness - Method ingrained and performed without intellectual effort.
Chapter 1 Introduction 37
It Takes Time, Skill, and Money!
 To improve the software process, someone must work
on it
 Unplanned process improvement is wishful thinking
 Automation of a poorly defined process will produce
poorly defined results
 Improvements should be made in small steps
 Train!!!!.
Chapter 1 Introduction 38
Some Common Misconceptions about the
Software Process
 We must start with firm requirements
 If it passes test it must be OK
 Software quality can’t be
 measured
 The problems are technical
 We need better people
 Software management is different.
Chapter 1 Introduction 39
Firm Requirements
A software perversity law seems to be the more firm the
specifications, the more likely they are to be wrong. With
rare exceptions, requirements change as the software job
progresses.
Just by writing a program, we change our perceptions of th
e task. Requirements cannot be firm because we cannot
anticipate the ways the tasks will change when they
are automated. For large-scale programs, the task of
stating a complete requirement is not just difficult; it is
impossible. Generally, we must develop software
incrementally. However, we must have stability long
enough to build and test a system. However, if we freeze
requirements too early, later retrofits are expensive.
Chapter 1 Introduction 40
Champions, Sponsors, and Agents
Champions -
 Ones who initiate change. They bring management’s attention to the subject, obtain the blessing of a
sponsor, and establish the credibility to get the
change program launched. The champion maintains focus on the goal, strives to overcome obstacles, and
refuses to give up when the going gets tough.
Sponsors –
Senior manager who provides resources and official backing. Once a sponsor is found, the champion’s job is
done; it is time to launch the change process.
Agents –
Change agents lead the planning and implementation. Agents must be enthusiastic, technically and politically
savvy, respected by others, and have management’s confidence and support.
Elements of Change
 Planning
 Implementation
 Communication
Chapter 1 Introduction 41

UNIT V SOFTWARE QUALITY ASSUARANCE (1).ppt

  • 1.
    UNIT V SOFTWAREQUALITY ASSUARANCE 9 hours Software Quality: Quality concepts, Software quality assurance, Software reviews, Formal technical reviews. Software Quality Assurance: Statistical software quality assurance, Software reliability, The ISO 9000 quality standards, Principles of Software Process Change. 20CSE115-SOFTWARE ENGINEERING
  • 2.
    - Quality concepts -Software quality assurance - Software reviews - Statistical software quality assurance - Software reliability, availability, and safety - SQA plan (Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005) Quality Management
  • 3.
  • 4.
    What is QualityManagement 4 • • • • • Also called software quality assurance (SQA) Serves as an umbrella activity that is applied throughout the software process Involves doing the software development correctly versus doing it over again Reduces the amount of rework, which results in lower costs and improved time to market Encompasses – – – – – – A software quality assurance process Specific quality assurance and quality control tasks (including formal technical reviews and a multi-tiered testing strategy) Effective software engineering practices (methods and tools) Control of all software work products and the changes made to them A procedure to ensure compliance with software development standards Measurement and reporting mechanisms
  • 5.
    Quality Defined 5 • • • • Defined asa characteristic or attribute of something Refers to measurable characteristics that we can compare to known standards In software it involves such measures as cyclomatic complexity, cohesion(intra), coupling(inter), function points, and source lines of code Includes variation control – – – A software development organization should strive to minimize the variation between the predicted and the actual values for cost, schedule, and resources They should make sure their testing program covers a known percentage of the software from one release to another One goal is to ensure that the variance in the number of bugs is also minimized from one release to another
  • 6.
    Quality Defined (continued) 6 •Two kinds of quality are sought out – Quality of design • • The characteristic that designers specify for an item This encompasses requirements, specifications, and the design of the system – Quality of conformance (i.e., implementation) • The degree to which the design specifications are followed during manufacturing • This focuses on how well the implementation follows the design and how well the resulting system meets its requirements • Quality also can be looked at in terms of user satisfaction User satisfaction = compliant(userfriendly) product + good quality + delivery within budget and schedule
  • 7.
    Quality Control 7 • • • • •  Involvesa series of inspections, reviews, and tests used throughout the software process  Ensures that each work product meets the requirements placed on it Includes a feedback loop to the process that created the work product – This is essential in minimizing the errors produced  Combines measurement and feedback in order to adjust the process when product specifications are not met  Requires all work products to have defined, measurable specifications to which practitioners may compare to the output of each process
  • 8.
    Quality Assurance Functions 8 • • • Consists of a set of auditing and reporting functions that assess the effectiveness and completeness of quality control activities  Provides management personnel with data that provides insight into the quality of the products  Alerts management personnel to quality problems so that they can apply the necessary resources to resolve quality issues
  • 9.
    The Cost ofQuality 9 • • Includes all costs incurred in the pursuit of quality or in performing quality-related activities Is studied to – – – Provide a baseline for the current cost of quality Identify opportunities for reducing the cost of quality Provide a normalized basis of comparison (which is usually dollars) • • Involves various kinds of quality costs (See next slide) Increases dramatically as the activities progress from – Prevention  Detection  Internal failure (before product release) External failure(after product release) "It takes less time to do a thing right than to explain why you did it wrong." Longfellow
  • 10.
    Kinds of QualityCosts 1 0 • • • Prevention costs –Quality planning, formal technical reviews, test equipment, training Appraisal(assesment) costs –Inspections, equipment calibration and maintenance, testing Failure costs – subdivided into internal failure costs and external failure costs – Internal failure costs • Incurred when an error is detected in a product prior to shipment Include rework, repair, and failure mode analysis – External failure costs • • Involves defects found after the product has been shipped Include complaint resolution, product return and replacement, help line support, and warranty work
  • 11.
  • 12.
    11 Software Quality Defined Definition:"Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software" (More on next slide)
  • 13.
    Software Quality Defined(continued) 13 • This definition emphasizes three points – – – Software requirements are the foundation from which quality is measured; lack of conformance to requirements is lack of quality Specified standards define a set of development criteria that guide the manner in which software is engineered; if the criteria are not followed, lack of quality will almost surely result A set of implicit requirements often goes unmentioned; if software fails to meet implicit requirements, software quality is suspect • Software quality is no longer the sole responsibility of the programmer – It extends to software engineers, project managers, customers, salespeople, and the SQA group – Software engineers apply solid technical methods and measures, conduct formal technical reviews, and perform well-planned software testing
  • 14.
    The SQA Group 14 • • • Servesas the customer's in-house representative Assists the software team in achieving a high-quality product Views the software from the customer's point of view – – Does the software adequately meet quality factors? Has software development been conducted according to pre-established standards? – Have technical disciplines properly performed their roles as part of the SQA activity? • Performs a set of of activities that address quality assurance planning, oversight, record keeping, analysis, and reporting (See next slide)
  • 15.
    SQA Activities 15 • • • • • • • • Prepares anSQA plan for a project Participates in the development of the project's software process description Reviews(less assurance) software engineering activities to verify compliance with the defined software process Audits(high assurance) designated software work products to verify compliance with those defined as part of thesoftware process Ensures that deviations in software work and work products are documented and handled according to a documented procedure Records any noncompliance and reports to senior management Coordinates the control and management of change Helps to collect and analyze software metrics
  • 16.
  • 17.
    Purpose of Reviews 17 • • • • • • Serveas a filter for the software process Are applied at various points during the software process Uncover errors that can then be removed Purify the software analysis, design, coding, and testing activities Catch large classes of errors that escape the originator more than other practitioners Include the formal technical review (also called a walkthrough or inspection) – – – – Acts as the most effective SQA filter Conducted by software engineers for software engineers Effectively uncovers errors and improves software quality Has been shown to be up to 75% effective in uncovering design flaws (which constitute 50-65% of all errors in software) • Require the software engineers to expend time and effort, and the organization to cover the costs
  • 18.
    Formal Technical Review(FTR) 18 • Objectives – – – – – To uncover errors in function, logic, or implementation for any representation of the software To verify that the software under review meets its requirements To ensure that the software has been represented according to predefined standards To achieve software that is developed in a uniform manner To make projects more manageable • • • Serves as a training ground for junior software engineers to observe different approaches to software analysis, design, and construction Promotes backup and continuity because a number of people become familiar with other parts of the software May sometimes be a sample-driven review – Project managers must quantify those work products that are the primary targets for formal technical reviews – The sample of products that are reviewed must be representative of the products as a whole
  • 19.
    The FTR Meeting (Moreon next slide) 19 • Has the following constraints – – From 3-5 people should be involved Advance preparation (i.e., reading) should occur for each participant but should require no more than two hours a piece and involve only a small subset of components – The duration of the meeting should be less than two hours • • Focuses on a specific work product (a software requirements specification, a detailed design, a source code listing) Activities before the meeting – – – – The producer informs the project manager that a work product is complete and ready for review The project manager contacts a review leader, who evaluates the product for readiness, generates copies of product materials, and distributes them to the reviewers for advance preparation Each reviewer spends one to two hours reviewing the product and making notes before the actual review meeting The review leader establishes an agenda for the review meeting and schedules the time and location
  • 20.
    The FTR Meeting(continued) (More on next slide) 20 • Activities during the meeting – – – •The meeting is attended by the review leader, all reviewers, and the producer •One of the reviewers also serves as the recorder for all issues and decisions concerning the product •After a brief introduction by the review leader, the producer proceeds to "walk through" the work product while reviewers ask questions and raise issues •The recorder notes any valid problems or errors that are discovered; no time or effort is spent in this meeting to solve any of these problems or errors • Activities at the conclusion of the meeting – All attendees must decide whether to • • Accept the product without further modification Reject the product due to severe errors (After these errors are corrected, another review will then occur) •Accept the product provisionally (Minor errors need to be corrected but no additional review is required) – All attendees then complete a sign-off in which they indicate that they took part in the review and that they concur with the findings
  • 21.
    The FTR Meeting(continued) 21 • Activities following the meeting – The recorder produces a list of review issues that • • Identifies problem areas within the product Serves as an action item checklist to guide the producer in making corrections – – The recorder includes the list in an FTR summary report •This one to two-page report describes what was reviewed, who reviewed it, and what were the findings and conclusions The review leader follows up on the findings to ensure that the producer makes the requested corrections
  • 22.
    FTR Guidelines 22 • • • • • • • • • • Review theproduct, not the producer Set an agenda and maintain it Limit debate and rebuttal; conduct in-depth discussions off-line Enunciate problem areas, but don't attempt to solve the problem noted Take written notes; utilize a wall board to capture comments Limit the number of participants and insist upon advance preparation Develop a checklist for each product in order to structure and focus the review Allocate resources and schedule time for FTRs Conduct meaningful training for all reviewers Review your earlier reviews to improve the overall review process
  • 23.
  • 24.
    Process Steps 24 • • •  Collectand categorize information (i.e., causes) about software defects that occur  Attempt to trace each defect to its underlying cause (e.g., nonconformance to specifications, design error, violation of standards, poor communication with the customer)  Using the Pareto principle (80% of defects can be traced to 20% of all causes), isolate the 20%
  • 25.
    A Sample ofPossible Causes for Defects 25 • • • • • • • • • • • Incomplete or erroneous specifications Misinterpretation of customer communication Intentional deviation from specifications Violation of programming standards Errors in data representation Inconsistent component interface Errors in design logic Incomplete or erroneous testing Inaccurate or incomplete documentation Errors in programming language translation of design Ambiguous or inconsistent human/computer interface
  • 26.
    25 Six Sigma • • • • • Popularized byMotorola in the 1980s Is the most widely used strategy for statistical quality assurance Uses data and statistical analysis to measure and improve a company's operational performance Identifies and eliminates defects in manufacturing and service-related processes The "Six Sigma" refers to six standard deviations (3.4 defects per a million occurrences) (More on next slide)
  • 27.
    Six Sigma (continued) 27 •Three core steps – – – Define customer requirements, deliverables, and project goals via well- defined methods of customer communication Measure the existing process and its output to determine current quality performance (collect defect metrics) Analyze defect metrics and determine the vital few causes (the 20%) • Two additional steps are added for existing processes (and can be done in parallel) – – Improve the process by eliminating the root causes of defects Control the process to ensure that future work does not reintroduce the causes of defects
  • 28.
    Six Sigma (continued) • • Allof these steps need to be performed so that you can manage the process to accomplish something You cannot effectively manage and improve a process until you first do these steps (in this order): Manage and improve the work process Control the work process Analyze the work process Measure the work process Define the work process The work to be done 28
  • 29.
  • 30.
    Reliability and Availability 30 •Software failure – – Defined: Nonconformance to software requirements Given a set of valid requirements, all software failures can be traced to design or implementation problems (i.e., nothing wears out like it does in hardware) • Software reliability – Defined: The probability of failure-free operation of a software application in a specified environment for a specified time – Estimated using historical and development data – A simple measure is MTBF = MTTF + MTTR = Uptime + Downtime – Example: • MTBF = 68 days + 3 days = 71 days • Failures per 100 days = (1/71) * 100 = 1.4 • Software availability – Defined: The probability that a software application is operating according to requirements at a given point in time – Availability = [MTTF/ (MTTF + MTTR)] * 100% –Example: • Avail. = [68 days / (68 days + 3 days)] * 100 % =96% Mean time between failures, Mean time to failure, mean time to repair
  • 31.
    Software Safety 31 • • Focuses onidentification and assessment of potential hazards to software operation It differs from software reliability – – Software reliability uses statistical analysis to determine the likelihood that a software failure will occur; however, the failure may not necessarily result in a hazard or mishap Software safety examines the ways in which failures result in conditions that can lead to a hazard or mishap; it identifies faults that may lead to failures • Software failures are evaluated in the context of an entire computer- based system and its environment through the process of fault tree analysis or hazard analysis
  • 32.
  • 33.
    Purpose and Layout • • • Providesa road map for instituting software quality assurance in an organization Developed by the SQA group to serve as a template for SQA activities that are instituted for each software project in an organization Structured as follows: – – – – – The purpose and scope of the plan A description of all software engineering work products that fall within the purview of SQA All applicable standards and practices that are applied during the software process SQA actions and tasks (including reviews and audits) and their placement throughout the software process The tools and methods that support SQA actions and tasks Methods for assembling, safeguarding, and maintaining all SQA-related records Organizational roles and responsibilities relative to product quality 32 
  • 34.
    ISO 9000 Seriesof Quality Standards  The ISO 9000 series was created by the International Organization for Standardization (ISO) as international requirements and guidelines for quality management systems. It was originally introduced in 1987 and over the years has established itself in the global economy having been adopted in over 178 countries with over one million registrations.  The phrase “ISO 9000 family” or “ISO 9000 series” refers to a group of quality management standards which are process standards (not product standards).  ISO 9000 Quality management systems – Fundamentals and Vocabulary, referenced in all ISO 9000 Standards.  ISO 9001 Quality management systems – Requirements, contains the requirements an organization must comply with to become ISO 9001 certified.  ISO 9002 – Guidelines for the application of ISO 9001:2015  ISO 9004 – Managing for the sustained success of an organization, provides guidelines for sustaining QMS success through evaluation and performance improvement. Chapter 1 Introduction 34
  • 35.
    Principles of SoftwareProcess Change People  The best people are always in short supply  You probably have about the best team you can get right now.  With proper leadership and support, most people can do much better than they are currently doing. Design  Superior products have superior design. Successful products are designed by people who understand the application (domain engineer).  A program should be viewed as executable knowledge. Program designers should haveapplication knowledge Chapter 1 Introducti o n 35
  • 36.
    Six Basic PrinciplesOf Software Process Change  Major changes to the process must start at the top.  Ultimately, everyone must be involved.  Effective change requires great knowledge of the current process  Change is continuous  Software process changes will not be retained without conscious effort and periodic reinforcement  Software process improvement requires investment Chapter 1 Introduction 36
  • 37.
    Continuous Change  Reactivechanges generally make things worse  Every defect is an improvement opportunity  Crisis prevention is more important than crisis recovery Software Processes Changes Won’t Stick by Themselves  The tendency for improvements to deteriorate is characterized by the term  entropy  (Webster’s: a measure of the degree of disorder  in a...system; entropy always increases andavailable energy diminishes in a closed system.). New methods must be carefully introduced and periodically monitored, or they to willrapidly decay.Human adoption of new process involves four stages:  Installation - Initial training  Practice - People learn to perform as instructed  Proficiency - Traditional learning curve  Naturalness - Method ingrained and performed without intellectual effort. Chapter 1 Introduction 37
  • 38.
    It Takes Time,Skill, and Money!  To improve the software process, someone must work on it  Unplanned process improvement is wishful thinking  Automation of a poorly defined process will produce poorly defined results  Improvements should be made in small steps  Train!!!!. Chapter 1 Introduction 38
  • 39.
    Some Common Misconceptionsabout the Software Process  We must start with firm requirements  If it passes test it must be OK  Software quality can’t be  measured  The problems are technical  We need better people  Software management is different. Chapter 1 Introduction 39
  • 40.
    Firm Requirements A softwareperversity law seems to be the more firm the specifications, the more likely they are to be wrong. With rare exceptions, requirements change as the software job progresses. Just by writing a program, we change our perceptions of th e task. Requirements cannot be firm because we cannot anticipate the ways the tasks will change when they are automated. For large-scale programs, the task of stating a complete requirement is not just difficult; it is impossible. Generally, we must develop software incrementally. However, we must have stability long enough to build and test a system. However, if we freeze requirements too early, later retrofits are expensive. Chapter 1 Introduction 40
  • 41.
    Champions, Sponsors, andAgents Champions -  Ones who initiate change. They bring management’s attention to the subject, obtain the blessing of a sponsor, and establish the credibility to get the change program launched. The champion maintains focus on the goal, strives to overcome obstacles, and refuses to give up when the going gets tough. Sponsors – Senior manager who provides resources and official backing. Once a sponsor is found, the champion’s job is done; it is time to launch the change process. Agents – Change agents lead the planning and implementation. Agents must be enthusiastic, technically and politically savvy, respected by others, and have management’s confidence and support. Elements of Change  Planning  Implementation  Communication Chapter 1 Introduction 41