Title: Software Quality Management
1Software Quality Management
- Objective of quality management is to achieve the
level of product and service quality as defined
by the organization (beat it if possible). - Participate in the definition of organizational
quality goals - Define the standards and procedures to be used
for software development and support - Monitoring and checking that the standards and
procedures are followed - Project and anticipate product and service
quality and recommend actions if necessary
items are the places where quality management
earns its real value as opposed to just quality
assurance.
2Key Components of Quality Management
Set Organizational Quality Goals
Quality Goals
Inputs from all parts of the Organization
Quality Assurance
The establishment of standards and procedures for
the organization
Measuring and Projecting to see if
organizational goals are met
Quality Planning
Selection of the appropriate set of standards and
procedures, with project manager.
Quality Control
Monitoring and ensuring that the
selected standards and procedures are followed
3Quality Assurance
- Defines a framework for achieving the quality
goals via defining a set of organizational
standards and procedures - Product Standards and Procedures
- manuals, brochures and user guides (online or
printed) - display screen interfaces
- on-line messages and help material
- programs and data
- etc.
- Process Standards and Procedures
- description of the software activities
- description of forms to be used with the
activities - descriptions of the measurements and how to use
them - etc.
4Quality Assurance (cont.)
- There are several standards and procedures
defined by organizations such as IEEE, ANSI, etc.
that one may want to use as references instead of
generating from scratch. - Involve people from other organizations in both
the picking and generation of standards/procedures
. - Review the the ones chosen and get organizational
support and commitment - Provide tools and support for the standards and
procedures - Product and Process quality are not the same
- assumed that improving process quality improves
product quality - process based quality management, when applied
alone, has a tendency of becoming beauracratic
so it must be constantly analyzed
5Quality Planning
- Quality plan should select those standards and
procedures that are fit for the specific
organization or project to which they are applied - Quality plan should include the following
- Critical quality goals for this project (this is
very difficult) - measurable
- attainable
- Critical non-quality goals such as schedule,
cost, scalability that may affect quality - Risk items that may affect the quality goal
attainment - Process that will be used for development and
support - The standards and procedures that will be used to
support the chosen process
6Some Quality Attributes
- Quality goals are often expressed in terms of one
or more of the following attributes - Reliability in terms of software failures
- Availability in terms of amount of time that
the software is operational - Usability no simple measurement
- Maintainability no simple measurement
- Complexity multiple measurements exit
- Learnability no simple measurement
- etc.
- An attribute that is difficult to measure makes
it a very soft target to achieve.
7Quality Control
- Quality control, as process management, is often
viewed as beauracratic because it oversees how
and if all the processes and standards are being
followed - Review of the process and the activities as
development marches through the procedures and
standards. - Use some automated tool to analyze (compare)
against the standards that apply to the
particular project - Assess the various defects that are discovered in
the artifacts (through reviews or tests) that are
produced at each stage of development and
recommending what actions that need to be taken
(this is a much more difficult task and requires
more resource)
8Software Metrics
- In order to set quality goals and gauge if the
goals have been attained, the goals must be
measurable, for both product and process - Control metric
- usually measures the process quality
- e.g. review and inspection people hours
- Predictor metric
- usually measures the product quality
- e.g. number of failures during test or module
complexity - There is a high degree of reluctance to introduce
measurements into an organization - lack of expertise
- lack of process definition
9Software Attributes and Measurability Realtionship
Cyclomatic complexity
Reliability
Average fan-in and fan-out
Program size in loc
Maintainability
Pages of user manual
Usability
Coupling in terms of parameters passed
External Quality Attributes
Internal Measurable Attributes
10Software Metrics
- For an software attribute to be useful as a
control or predictor they must satisfy at least
three conditions - The (internal) attribute must be measured
accurately - There must be a strong relationship between what
can be measured (internal attribute) and the
external desirable quality - This relationship between the internal attribute
and the external quality attribute is clearly
understood and validated
11Metric and Quality Goal
- Coming up with Quality Goals and Objectives is a
difficult task - Quality attributes need to be identified and
prioritized - e.g. for users usability, understandability,
reliability, modifiability, localization, etc. - e.g. for developers reliability, modifiability,
etc. - Measurable attributes need to be identified and
related to the quality attributes - static measure size, complexity, number of
classes, etc. - dynamic measure number of failures, response
time, etc. - Measurement Effort
- resource cost
- skills or training
- time
12Quality Assessment and Projection
- We can assess and project quality or any specific
attribute only if the following are true - Measurable Goals and Objectives are set
- Measurements are taken
- Relationship between objectives and the
measurements are understood and validated - Assessment and Projection scheme is valid