software project management lecture # 10. outline quality management (chapter 26) what is quality? ...
TRANSCRIPT
Software Project Management
Lecture # 10
Outline
Quality Management (chapter 26) What is quality? Meaning of Quality in Various Context Some quality concepts SQA SQA activities
Quality Management Quality Management (often called Software Quality
Assurance) is an umbrella activity that is applied through out the software process.
Every one involved in software engineering process is responsible for quality.
Emphasis on quality in all software engg. activities reduces the amount of rework that the software engg. team must do this eventually lowers costs, improves time to market
The team must identify SQA activities that will filter errors out of the work products before they are passed on. But before doing so, they must define software quality at different levels of
abstraction SQA Plan is created to define the quality strategy of the team
Quality Management
It encompasses Software quality assurance process Specific quality assurance & quality control
tasks (including FTRs and testing strategies) Effective SE practice (methods & tools) Control of all software work products & changes
made to them A procedure to ensure compliance with software
dev. Standards Measurement & reporting mechanism
What is Quality? British Standard Institute’s definition
Quality is totality of features & characteristics of a product or service which relate on its ability to satisfy a given need
American Heritage Dictionary definition Quality is characteristic or attribute of something
Quality of Software Quality of Software is software that does what it
is supposed to do customer dissatisfaction is lack of quality
Meaning of Quality in Various Context
In Manufacturing Quality means that the developed product
should meet its specification
In Software Development Quality would mean that a software product
conforms to its specification Software specification should be oriented towards
customer requirements. There may be some implicit requirements like
maintainability, usability, etc. but they are not included in the specification
Meaning of Quality in Various Context
Practically , its very difficult to write complete software specifications/ characteristics
Therefore, although the product conforms to its specifications, it may not satisfy the customer as hence may not be considered as a high quality product
Another school of thought …
Quality can be achieved by defining standards & organizational quality procedures that check that these standards are followed by the software development team
Besides standards & procedures there are intangible aspects also involved in software quality like elegance, readability, etc.
Quality Concepts
Quality of design Refers to the characteristics that designers specify for an
item Focuses on requirements, specifications & design of
system Quality of conformance
Is the degree to which the design specifications are followed during manufacturing
Focuses primarily on implementation User satisfaction
Robert Glass suggested the following relationship: Compliant product + good quality + delivery within
budget & schedule
Quality Concepts
Quality Control Definition & enhancement of processes that ensure
the software development team has followed project quality procedures & standards
Quality Control is a series of inspections, reviews & tests used through out the development cycle to ensure that each work product meets the requirements placed on it
It includes feed-back loop to the process that created the work product
The combination of measurement & feedback helps to fine tune the process when work products fail to meet their specification
Quality Concepts Quality Assurance
The process of defining how software quality can be achieved & how the development organization knows that the software has the required level of quality
It involves establishment of a framework of organizational procedures & standards that lead to high quality software
It consists of a set of auditing & reporting functions that assess the effectiveness of quality control activities.
The aim is to provide management with facts & figures and proofs that product quality is meeting its goals
Quality Concepts
Variation Control Variation control is the heart of quality control Variation control may be equated to quality
control Manufacturers aim to minimize the variation
among the products that are produced For software projects, from one project to
another, we may want to minimize the difference between predicted resources needed to complete project and actual resources used, including staff, equipment, and calendar time
Quality Concepts
Cost of Quality It includes all costs incurred in performing quality
related activities Cost of quality studies are conducted to
Provide a baseline for current cost of quality Identify opportunities for reducing cost of quality Provide normalized basis of comparison (usually in
dollars) Quality costs are divided into
Prevention costs Appraisal costs Failure costs
Quality Concepts
Quality costs Prevention costs relate to
Quality planning Formal technical reviews Test equipment training
Appraisal costs relate to Activities to gain insight into product – “first time
through” each process, e.g., In-process and inter process inspection Equipment calibration &maintenance testing
Quality Concepts
Quality costs Failure costs
Those that would disappear if no defects appeared before shipping a product to customer
Failure costs subdivided into 2 types Internal failure costs (related to defects found before
product is shipped) Rework, repair & failure analysis mode
External failure costs (related to defects found after product is shipped) Complaint resolution, product return and
replacement, helpline support & warranty work
Relative cost of correcting an error
Refer to figure 26.1
020406080
100120140160180200
Req. Design Code Dev.Test
Systemtest
Field Op
Software Quality Assurance
Although there are many definitions of quality but for our purposes, software quality is:
Conformance to … the explicitly stated functional & performance requirements, explicitly documented development standards & implicit characteristics that are expected of all professionally
developed software
This definition emphasizes on 3 important points S/W requirements – a foundation from which quality is
measured Standards – define development criteria against which S/W is
engineered Implicit requirements – often go unmentioned but if not met,
can cause suspicion in quality
Who does it? Prior to 20th Century
SQA was responsibility of the craftsperson
During 1950s and 1960s Responsibility of programmer
Today responsible ones are … S/W Engrs. (Apply technical methods & measures, Conduct
FTRs & perform planned testing) Project managers Customers Sales Person SQA group (Serves as customer’s in-house representative,
Looks at S/W from customer’s point of view, Assists the S/W Engrs team to achieve quality)
SQA
SQA is an activity that is applied throughout the software process and not after the software has been developed
SQA covers the following Quality management approach Effective s/w engineering technology (methods & tools) Formal technical reviews (applied throughout the process) A multi-tiered testing strategy Control of software documentation & changes made to it A procedure to assure compliance with software
development standards Measurement & reporting mechanism
SQA Group & SQA Activities SQA group is responsible for QA planning, oversight,
record keeping, analysis and reporting SEI recommends the following set of SQA group
activities: Prepares an SQA plan for project Participates in the development of project’s software
process description Reviews s/w engg activities to verify compliance with
defines s/w process Audits designated s/w work products to verify compliance Ensures that deviations in s/w work & work products are
documented Records any non compliance & reports to senior
management SQA groups also participates in change management
& help to collect & analyze s/w metrics