Pressman Quality Management
Pressman Quality Management
Pressman Quality Management
- Quality concepts - Software quality assurance - Software reviews - Statistical software quality assurance - Software reliability, availability, and safety - SQA plan
Quality Concepts
Quality Defined
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, coupling, 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 Control
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
Involves various kinds of quality costs (See next slide) Increases dramatically as the activities progress from
Prevention Detection Internal failure External failure
"It takes less time to do a thing right than to explain why you did it wrong." Longfellow
8
Appraisal 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
Definition: "Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software"
11
12
Performs a set of of activities that address quality assurance planning, oversight, record keeping, analysis, and reporting (See next slide)
13
SQA Activities
Prepares an SQA plan for a project Participates in the development of the project's software process description Reviews software engineering activities to verify compliance with the defined software process Audits designated software work products to verify compliance with those defined as part of the software 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
14
Software Reviews
Purpose of Reviews
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
16
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
17
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
(More on next slide)
18
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
(More on next slide)
19
The review leader follows up on the findings to ensure that the producer makes the requested corrections
20
FTR Guidelines
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 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
21
Process Steps
1)
2)
3)
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%
23
24
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)
25
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
26
27
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%
29
Software Safety
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 computerbased system and its environment through the process of fault tree analysis or hazard analysis
30
SQA Plan