[Sommerville2004]
Quality Management System [ISO 9000]: The organizational structure, responsibilities, procedures, processes and resources for implementing quality management
Concerned with ensuring that the required level of quality is achieved in a software product. Involves defining appropriate quality standards and procedures and ensuring that these are followed. Should aim to develop a quality culture where quality is seen as everyones responsibility.
WS04/05 Software Quality Assurance I Introduction I-60
Environment Characteristics
[Galin2004]
Being contracted Subjection to customersupplier relationship Requirement for teamwork Need for cooperation and coordination with other development teams Need for interfaces with other software systems Need to continue carrying out a project while the team changes Need to continue maintaining the software system for years
I-61
Cost of Quality includes all costs incurred in the pursuit of quality or in performing quality related activities such as appraisal costs, failure costs and external failure costs. [Pressman2004]
We cannot wait for specifications to improve before paying attention to quality management. We must put quality management procedures into place to improve quality in spite of imperfect specification. [Sommerville2004]
WS04/05 Software Quality Assurance I Introduction I-62
Quality management is particularly important for large, complex systems. The quality documentation is a record of progress and supports continuity of development as the development team changes. For smaller systems, quality management needs less documentation and should focus on establishing a quality culture.
[Sommerville2004]
WS04/05 Software Quality Assurance I Introduction I-63
[Sommerville2004]
D5
Quality plan
I-64
Establish organisational procedures and standards for quality. Select applicable procedures and standards for a particular project and modify these as required. Ensure that procedures and standards are followed by the software development team.
I-66
Quality Assurance
Software quality assurance is [Galin2004] : A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.
Quality assurance consists of the auditing and reporting functions of management [Pressman2004]
I-67
Quality planning is the process of assessing the requirements of the procedure and of the product and the context in which these must be observed. Quality assurance plan is the central aid for planning and checking the quality assurance. [Pressman2004]
WS04/05 Software Quality Assurance I Introduction I-68
[Sommerville2004]
A quality assurance plan sets out the desired product qualities and how these are assessed and defines the most significant quality attributes. The quality assurance plan should define the quality assessment process. It should set out which organisational standards should be applied and, where necessary, define new standards to be used.
I-69
[Sommerville2004]
Product introduction Product plans Process descriptions Quality goals Risks and risk management
I-70
organization structure, SQA tasks, their placement in the process roles and responsibilities related to product quality
Documentation
Tools, Techniques and Methodologies Code Control Media Control Supplier control Records Collection, Maintenance and Retention Training Risk Management
[IEEE_Std_730-1998, Pressman2004]
I-71
22
Quality Control is the series of inspections, reviews and tests used throughout the development cycle to ensure that each work product meets the requirements placed upon it.
[Pressman2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-72
Quality Control
[Sommerville2004]
This involves checking the software development process to ensure that procedures and standards are being followed. There are two approaches to quality control
I-73
Quality Control
Objective: minimize the produced defects increase the product quality Implementation approaches: Fully automated Entirely manual Combination of automated tools and human interactions
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-74
Quality Control
Quality control includes a feedback loop to the process: provide management with the necessary data about product quality. gain the insight and confidence of product quality Two types of quality control: Quality design: the characteristics that designers specify for an item (includes: requirements, specifications, and the design of the system). Quality of conformance: the degree to which the design specification are followed. It focuses on implementation based on the design. [Pressman2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-75
Quality assurance system is the organizational structure, responsibilities, procedures, processes and resources for implementing quality management.
[Pressman2004]
I-76
The quality of a developed product is influenced by the quality of the production process. This is important in software development as some product quality attributes are hard to assess. However, there is a very complex and poorly understood relationship between software processes and product quality.
[Sommerville2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-77
Process-based Quality
[Sommerville2004]
There is a straightforward link between process and product in manufactured goods. More complex for software because:
The application of individual skills and experience is particularly important in software development; External factors such as the novelty of an application or the need for an accelerated development schedule may impair product quality.
Care must be taken not to impose inappropriate process standards - these could reduce rather than improve the product quality.
WS04/05 Software Quality Assurance I Introduction I-78
Process-based quality
[Sommerville2004]
I-79
[Sommerville2004]
Define process standards such as how reviews should be conducted, configuration management, etc. Monitor the development process to ensure that standards are being followed. Report on the process to project management and software procurer. Dont use inappropriate practices simply because standards have been established.
WS04/05 Software Quality Assurance I Introduction I-80
I-82
Procedures and work instruction Templates and checklists Staff training, retraining and certification Preventive and corrective actions Configuration management Documentation control
I-84
(see Chapter V)
I-85
Objectives: Utilization of international professional knowledge Improvement of coordination with other organizations quality systems Objective professional evaluation and measurement of the organizations SQA achievement (see Chapter VI)
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-86
I-87
[Galin2004]
Software Maintenance
Software Testing
Experts Opinion
Peer Reviews
(5) Standards
Management
Documentation Control
Quality
Standards
I-88
[Galin2004]
(5) Standards
Management
a) a) b) b) c) c) d) d) e) e)
Software Maintenance
Management Management SQAUnit Unit SQA SQATrustees Trustees SQA SQACommittees Committees SQA SQAForums Forums SQA
Software Testing
Experts Opinion
Peer Reviews
Documentation Control
Quality
Standards
I-89
Management
Exec. Exec . Exec. Executive responsible for software quality
Other Departments
SQA Committees
Legend Line of authority line for SQA issues Flow of Forum s recommendations line
SQA Forums
[Galin2004]
SQA Trustees
I-90
Testers
Top management executives, especially the executive in charge of SQA Software development and maintenance department managers Software testing department managers Project managers and team leaders of development and maintenance projects Leaders of software testing teams
SQA trustees SQA committee members SQA forum members SQA unit team members
I-91
a) Management
Overview: Top managements quality assurance activities Software quality policy The executive in charge of software quality Management review Department management responsibilities for quality assurance processes Project management responsibilities for quality assurance
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-92
[Galin2004]
Assure the quality of the Companys software products and software maintenance services. Communicate the importance of product and service quality in addition to customer satisfaction to employees. Assure full compliance with customer requirements. Ensure that SQA objectives are established and accomplished. Initiate planning and oversee implementation of changes to adapt the SQA system to changes related to the organization's clientele, competition and technology. Intervene directly to resolve of crisis situations and minimize damages. Ensure availability of resources required by SQA systems.
WS04/05 Software Quality Assurance I Introduction I-93
SQ Policy Requirements
[Galin2004]
Quality policy refers to the basic aims and objectives of an organization regarding quality as stipulated by the management. [Pressman2004]
Conformity to the organization purpose and goals Commitment to: General software quality assurance concepts The quality standards adopted by the organization Allocate adequate resources for software quality assurance Continuous improvement of the organizations quality and productivity
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-94
I-95
Management Reviews
Def.: Management review is the name given to the periodic meeting convened to allow executives to obtain an overview of their organizations software quality issues. Typical items: Periodic performance reports, including quality metrics Customer satisfaction feedback Follow up reports for SQA annual regular activity program and SQA development projects Summary of special quality events related to customers, suppliers, subcontractors, etc. Review of significant findings of internal and external quality audits as well as special surveys Identification of new software quality risks and unsolved pre-existing risks Recommendations for software quality management improvements.
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-96
I-101
[Pressman2004]
Quality assurance planning oversight, record keeping, analysis and reporting Participates in the development of the projects software process 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 document procedure. Records any noncompliance and reports to senior management.
WS04/05 Software Quality Assurance I Introduction I-102
12
[Galin2004]
SQA Operations
I-103
Preparation of proposals for the Units annual activity program and budget Planning and updating the organizations software quality management system and recommended annual SQA activities programs for the software development and maintenance departments. Preparation of recommended SQA systems development plans for the software development and maintenance departments. Management of SQA team's activities Monitoring implementation of the SQA activity program Nomination of team members, SQA committee members and SQA trustees Preparation of special and periodic status and performance reports.
[Galin2004]
Management tasks
I-104
Serving as the customers address for software quality issues of software products and services supplied Representation of the organization before external bodies regarding software quality issues Drafting the management review reports Raising SQA organizational issues and preparing requested material for top management's consideration Participation in project joint committees Participation in formal design reviews Review and approval of deviations from specifications Consultation to project managers and team leaders Participation in SQA committees and forums
[Galin2004]
I-105
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-106
Publication of updated versions of procedures, work instructions, templates, checklists, etc., with their circulation. Training and instruction to new and current staff and SQA trustees regarding SQA procedures, work instructions, new and revised procedures, development tools and methods, etc. Monitoring and supporting implementation of new and revised SQA procedures Follow up of staff certification activities Proposal of subjects requiring preventive and corrective actions Follow up of configuration management activities Follow up of compliance with documentation procedures and work instructions
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-107
Internal audits Audits of subcontractors and suppliers to evaluate their SQA systems External audits performed by certification bodies External audits performed by customers who wish to evaluate the SQA system prior to accepting the organization as a supplier
[Galin2004]
WS04/05 Software Quality Assurance I Introduction I-108
Preparation of annual programs for SQA audits Performance of SQA audits Follow up of corrections Preparation of periodic summary reports Collection of data on the performance of the audited organization from internal and external sources Periodic evaluation of the audited organization Coordination of the external audit's contents and schedule Preparation of documents as specified by external auditors Instruction of the audited teams and performance of preparations for external audits Participation in the audit
[Galin2004]
I-109
Preparation of project development plans and project quality plans Staffing review teams Choice of development methodologies and tools that reflect the accumulated failure experience Choice of measures to solve identified software development risks Choice of measures to solve schedule delays and budget overruns Choice of SQA metrics and software costs components Use of SQA information systems
[Galin2004]
WS04/05 Software Quality Assurance I Introduction I-110
Prepare an annual program for development of new procedures and procedure updates Responsibility for development of new procedures and procedure updates, including participation in appropriate committees and forums Follow up of developments and changes in SQA and software engineering standards; introduction of additional relevant procedures and changes Initiation of updates and adaptations of procedures in response to changes in professional standards, including adoption or deletion of standards applied by the organization.
[Galin2004]
I-111
Engineering (Sub-Units)
Testing quality and productivity aspects with respect to new development tools and new versions of currently used development tools Evaluation of quality and productivity of new and improved development and maintenance methods Development of solutions to difficulties confronted in application of currently used software development tools and methods Development of methods for measuring software quality and team productivity Provision of technological support to CAB committees during analysis of failures and formulation of solutions
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-112
Development of SQA information systems for software development and maintenance units for: Collection of activity data. Processing of information delivered by the units: periodic reports, lists, exception reports, queries and estimates of software quality metrics and software quality costs. Updating of SQA information systems Development and maintenance of the organization's SQA Intranet/Internet site
WS04/05 Software Quality Assurance I Introduction
[Galin2004]
I-113
[Pressman2004]
Evaluations to be performed Audits and reviews to be performed Standards that are applicable to the project Procedures for error reporting and tracking Documents to be produced by the SQA group Amount of feedback provided to software project team
I-114
c) SQA Trustees
Unit-related tasks:
Support their colleagues' attempts to solve difficulties in the implementation of SQA procedures and work instructions Help their unit manager in performing his or her SQA tasks Promote compliance and monitor implementation of SQA procedures and work instructions by colleagues Report substantial and systematic non-compliance events to the SQA unit Report severe software quality failures to the SQA unit Initiate changes and updates of organization-wide SQA procedures and work instructions Initiate organization-wide improvements of development and maintenance processes and applications for solutions to recurrent failures observed in their units Identify organization-wide SQA training needs and propose an appropriate training or instruction program
[Galin2004]
Organization-related tasks
I-115
d) SQA Committees
Permanent committees commonly deal with: SCC (software change control), CA (corrective actions), Procedures, Development of method, tools and quality metrics. Ad-hoc committees commonly deal with specific cases: Updates of a specific procedure, Analysis and solution of a software failure, Elaboration of software metrics for a targeted process or product, Updating software quality costs, Data collection methods for a specific issue.
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-116
e) SQA Forums
SQA forums typically focus on: SQA procedures improvements and implementation Quality metrics Corrective actions analysis of failure and success cases Quality system issues development and implementation of new tools Quality line management problems daily operational software quality problems Members of an open forum may include: SQA unit members SQA trustees Software development and maintenance staff SQA and software engineering consultants/experts Customer representatives
[Galin2004]
Dr. Holger Giese WS04/05 Software Quality Assurance I Introduction I-117
[Pressman2004]
requirement changes must be formally reviewed and approved design changes must be formally reviewed and approved
I-118
General quality definitions of quality are not sufficient in practice. Thus, software quality is described by specific quality models which determine the causal relationship from intangible quality views to tangible software measures [ISO/IEC 9126] We cannot wait for specifications to improve before paying attention to quality management. We must put quality management procedures into place to improve quality in spite of imperfect specification. Quality management activities consist of quality assurance, quality planning, and quality control.
I-119
The quality of a developed product is influenced by the quality of the production process. This is important in software development as some product quality attributes are hard to assess. However, there is a very complex and poorly understood relationship between software processes and product quality. The main instrument for quality is the software quality assurance system. Components of a software quality assurance system for the pre-project phase, each life cycle phase, management, infrastructure, standardization, and organization exist. Organizing for SQA involves mainly the management, SQA Unit, SQA Trustees, SQA Committees, and SQA Forums
WS04/05 Software Quality Assurance I Introduction I-120
I-121
I-122
Bibliography (3/4)
[ISO9000-2002] ISO Handbook:2002, ISO 9001:2000 for small businesses What to do, Advice from ISO/TC 176 [ISO/IEC 9126] Information technology - Software Product Evaluation - Quality characteristics and guidelines for their use - 1991. http://www.cse.dcu.ie/essiscope/sm2/9126ref.html ISO/IEC 9126-1:2001: Software engineering -- Product quality -- Part 1: Quality model ISO/IEC TR 9126-2:2003: Software engineering -- Product quality -Part 2: External metrics ISO/IEC TR 9126-3:2003: Software engineering -- Product quality -Part 3: Internal metrics ISO/IEC TR 9126-4:2004: Software engineering -- Product quality -Part 4: Quality in use metrics [IEEE_Std_610.12-1990] Standards Coordinating Committee of the IEEE Computer Society, The Institute of Electrical and Electronics Engineers, Inc. 345 East 47th Street, New York, NY 10017-2394, USA. IEEE Std 610.121990, IEEE Standard Glossary of Software Engineering Terminology. (Revision and redesignation of IEEE Std 729-1983). [IEEE_Std_730-1998] Standards Coordinating Committee of the IEEE Computer Society, The Institute of Electrical and Electronics Engineers, Inc. 345 East 47th Street, New York, NY 10017-2394, USA. IEEE Std 730-1998, IEEE Standard fro Software Quality Assurance Plans.
WS04/05 Software Quality Assurance I Introduction I-123
Bibliography (4/4)
Michael R. Lyu, editor. Handbook of software reliability engineering. IEEE Computer Society Press, Los Alamitos, Calif., 1996. [McCall +1977] J.A. McCall, P.K. Richards, and G.F. Walters, Factors in Software Quality, Vol. 1, AD/A-049-014/015/055, Nat'l Tech. Information Service, Springfield, Va., 1977. [McConnell 1996] Steve McConnell. Software Quality at Top Speed. Software Development. August 1996 [Pressman2004] Roger Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill, 6 ed., 2004. [Sommerville2004] Ian Sommerville. Software Engineering. Addison Wesley. 7 ed., 2004. [Schulmeyer1992] G. G. Schulmeyer, ed., Handbook of software quality assurance. Van Nostrand Reinhold, 1992. [Lyu1996]
I-124