Used To Monitor and Improve The Software Development Process Making Sure That Standards and Procedures Are Followed Ensures That Problems Are Found and Dealt With Orientated To Prevention'
Used To Monitor and Improve The Software Development Process Making Sure That Standards and Procedures Are Followed Ensures That Problems Are Found and Dealt With Orientated To Prevention'
Standards development
An international set of standards for
quality management.
Applicable to a range of organisations
from manufacturing to service
industries.
ISO 9001 applicable to organisations
which design, develop and maintain
products.
ISO 9001 is a generic model of the
quality process that must be
instantiated for each organisation using
the standard.
Quality standards and procedures
should be documented in an
organisational quality manual.
An external body may certify that an
organisation’s quality manual conforms
to ISO 9000 standards.
Some customers require suppliers to be
ISO 9000 certified although the need
for flexibility here is increasingly
recognised.
Particularly important - documents are the
tangible manifestation of the software.
Documentation process standards
Concerned with how documents should be developed,
validated and maintained.
Document standards
Concerned with document contents, structure, and
appearance.
Document interchange standards
Concerned with the compatibility of electronic
documents.
Document identification standards
How documents are uniquely identified.
Document structure standards
Standard structure for project documents.
Document presentation standards
Define fonts and styles, use of logos, etc.
Document update standards
Interchange standards allow electronic
Define how changes from previous versions
documents to be exchanged, mailed, etc.
are reflected in a document.
Documents are produced using different
systems and on different computers. Even
when standard tools are used, standards are
needed to define conventions for their use
e.g. use of style sheets and macros.
Need for archiving. The lifetime of word
processing systems may be much less than
the lifetime of the software being
documented. An archiving standard may be
defined to ensure that the document can be
accessed in future.
A quality plan sets out the desired
product qualities and how these are
assessed and defines the most
significant quality attributes.
The quality plan should define the
quality assessment process.
It shouldplan
Quality set structure
out which organisational
standards should be applied and,
Product introduction;
where
Product necessary,
plans; define new standards
to be used.
Process descriptions;
Quality goals;
Risks and risk management.
Quality plans should be short, succinct
documents
If they are too long, no-one will read them.
This involves checking the software
development process to ensure that
procedures and standards are being
followed.
There are two approaches to quality
control
This is the principal method of validating the
Quality reviews;
quality of a process or of a product.
Automated software assessment and
A group examines part or all of a process or
software measurement.
system and its documentation to find
potential problems.
There are different types of review with
different objectives
Inspections for defect removal (product);
Reviews for progress assessment (product and
Quality reviews (product and standards).
Quality reviews
Quality function - they are part of the
general quality management process.
Project management function - they
provide information for project
managers.
Training and communication function -
product knowledge is passed between
The objective is the discovery of system
development team members.
defects and inconsistencies.
Any documents produced in the
process may be reviewed.
Review teams should be relatively small
and reviews should be fairly short.
Records should always be maintained
of quality reviews.
Review results
Software measurement is concerned with
deriving a numeric value for an attribute of a
software product or process.
This allows for objective comparisons
between techniques and processes.
Although some companies have introduced
measurement programmes, most
organisations still don’t make systematic use
of software measurement.
There are few established standards in this
area.
Software metric
Metrics assumptions
A software measurement process may
be part of a quality control process.
Data collected during this process
should be maintained as an
organisational resource.
Once a measurement database has
been established, comparisons across
projects become possible.
A metrics programme should be based
on a set of product and process data.
Data should be collected immediately
(not in retrospect) and, if possible,
automatically.
Three types of automatic data
Don’t collect unnecessary data
collection
The questions
Static product to be answered should be
analysis;
decided
Dynamicinproduct
advance and the required data
analysis;
identified.
Process data collation.
Tell people why the data is being
collected.
It should not be part of personnel evaluation.
Don’t rely on memory
Collect data when it is generated not after a
project has finished.
Product metrics
Dynamic metrics are closely related to
software quality attributes
It is relatively easy to measure the response time of a
system (performance attribute) or the number of
failures (reliability attribute).
Static metrics have an indirect relationship
with quality attributes
You need to try and derive a relationship between
these metrics and properties such as complexity,
understandability and maintainability.
Framework for which Software
Evolves
Standards
Established Criteria to which Software
Products are Compared
Procedures
Established Criteria to which
Development andof Standards
• Proper Documentation Control andProcedures arefor SQA
Procedures is Necessary
Followed
SQA is based on the Following of
Standards and Procedures
Requirement Standards
Design Standards
• Code Standards
• Specify what Language the Code is written in and Define any
Restrictions on Language Features
• Style Conventions
Code Standards
• A good thing but too many will Force Productivity and Creativity to
Suffer
• Etc…
• Documentation Standards
Documentation Standards
• Specifications
• Designs
• Business Rules
• Inspection Reports
• Configurations
• Code Changes
• Test Plans
• Test Cases
• Bug Reports
• User Manuals
• Etc…
• Review Management
• Technical Processes
• Assurance Processes
• Continuous Improvement
– Design quality
– Conformance quality
TQM
Open communications
Empowerment
Prevention
External focus on customer
Continuous improvement
Co-operative relations
Solving problems at their roots
Source: Slack et al. 2004
Source: 2004 Criteria for Performance Excellence, U.S. Dept. of Commerce, Baldrige National Quality Program, National Institute of Standards and Technology,
Gaithersburg, MD 20899. (www.quality.nist.gov)
Static Test Tools: These tools do not involve actual input and output. Rather, they take a
symbolic approach to testing, i.e. they do not test the actual execution of the software.
These tools include the following: ,
1) Flow analyzers: They ensure consistency in data flow from input to output.
2) Path tests: They find unused code and code with contradictions.
Dynamic Test Tools: These tools test the software system with 'live' data. Dynamic test
tools include the following
2) Test beds: It simultaneously displays source code along with the program under
execution.
3) Emulators: The response facilities are used to emulate parts of the system not yet
developed.
4) Mutation analyzers: The errors are deliberately 'fed' into the code in order to test fault
tolerance of the system.
Testing the product means adding value to it, which means raising the quality or reliability of the
Program. Raising the reliability of the product means finding and removing errors.
Testing is the process of executing a program with the intent of finding errors.
Purpose of Testing
To show the software works: It is known as demonstration-oriented
To show the software doesn’t work: It is known as destruction-oriented
To minimize the risk of not working up to an acceptable level: it is known as evaluation-oriented