280 likes | 432 Views
ICS 442 Software Project Management. Quality Management. What is Quality?. Fitness for purpose A degree of excellence Conformant with requirements “The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs” (ISO 8402)
E N D
ICS 442 Software Project Management Quality Management
What is Quality? • Fitness for purpose • A degree of excellence • Conformant with requirements • “The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs” (ISO 8402) • In ISO, quality also defined as “(The) degree to which a set of inherent characteristics fulfils requirements……”
Quality Concept • General objective: “reduce the variation between samples”… so What does mean for software? • Quality control: inspections, reviews, tests • Quality assurance: analysis, auditing, and reporting activities
Quality Concept • Cost of quality -appraisal costs - prevention costs • Cost of poor quality - Failure costs - external (field) failure costs
Quality management system • Elements Effective Quality Management Systems exhibit three things; - organization - resources - procedures
Auditor • To check & monitor quality • May be an external or internal auditor, or both • The basic principles that auditors look for: - documented - implemented - and effective Quality Management System (QMS)
The certification process • Perform a readiness audit, review feedback • When ready, contact certification body/registrar • Agree assessment date, brief participants, organize • External Audit team perform on-site assessment • Audit team provides an evaluation report and findings • Findings reviewed, any corrective actions carried out • Corrective actions are verified • Registration granted • Regular follow-up audits to ensure compliance • Auditing: documentation, records, and improvement
Quality Standards • AQAP 1, 13 &14 (NATO) • ANSI/IEEE -730 • DEF-STAN 00-16 • FAA-STD-018 • DoD 2167 • ISO 9001/BS5750/EN29000 • TickIT (ISO 9001:2000 and ISO 9000-3:1997)
Quality System • Framework (1) Management responsibility (2) Quality system (3) Internal QS audits (4) Corrective action
Quality System • Life-cycle Activities - Purchaser’s requirements specification - Development planning - Quality planning - Design and implementation - Testing and validation - Replication, delivery and installation - Maintenance - Acceptance
Quality System • Supporting Activities - CM (Configuration Management) - Document Control - Rules, practices and conventions - Tools and technique - Included software product - Measurement - Purchasing - Training - Quality records
Quality Assurance • Juran defined QA as: “ the activity of providing to all concerned the evidence needed to establish confidence that the quality function is being performed adequately” • And also defined as: “ Systematic activities providing evidence of fitness for purpose of the total software product”
Software Quality Assurance SQA Process definition & standards Formal Technical Reviews Analysis & reporting Test Planning & Review Measurement
QA Activities • Prepared a SQA plan • Participate in the definition of a project’s software development plan ( and process model) • Review (software engineering) activities to verify compliance with defined software process
QA Activities(cont…) • Review selected (software) work products to verify compliance with specifications • Ensure deviations from defined activities and products are documented and handled according to defined procedure • Record any non-compliances • Regularly report to senior management
QA principles • Customer focus • Leadership • Involvement of people • Process approach • System approach to management • Continual improvement • Factual approach to decision making • Mutually beneficial supplier relationships
Software Quality Planning “If we fail to plan, we plan to fail ……” (anonymous) Objective: Provide a framework for understanding the scope of the problem and for making estimates of resources, cost and schedule
Launching a SQA Programme • Initiate the programme • Identify the issues • Write the plan • Establish standards • Establish the function • Train and promote • Implement the plan • Evaluate the programme
Watts Humphrey says: “ The people responsible for the software projects are the only ones who can be responsible for quality. The role of SQA is to monitor the way these groups perform their responsibilities” ## Are you agree with this statement? ………..
Pitfalls • It is a mistake to think that SQA people (alone) can do anything about quality • The existence of a SQA function does not ensure that the standard procedures are followed • Unless management periodically demonstrates its support for SQA, by following their recommendations, SQA will be ineffective
Pitfalls (cont…) • Unless line management requires that SQA tries to resolves their issues with project management before escalation, SQA and development will not work together effectively
QA & QC • Software quality assurance - concerns the design and monitoring of an appropriate regime of standards and procedures to achieve high quality outcomes from system development activities.
QA & QC • Software quality control consists in the conformance to this regime by all members of a system development team
Software Quality Factors • McCall et al, Factors in Software Quality (1997), sets out a checklist of factors divided into three categories: - system operations: factors which focus on the day-today use of the system - system revision: factors which address the ease with which changes can be made to the system - system transition: factors which consider the system in relation to other systems
System Operation Factors • Correctness: does the system operate according to its specification • Reliability: is the system consistently able to produce accurate results? (narrow definition?) • Efficiency: does the system avoid unwarranted resource demands? • Integrity: is the system secure from intrusion? • Usability: is it easy for users to learn how to use the system, and then convenient to use it?
System Revision Factors • Maintainability: how easy is it to fix bugs in the system? (this is a much narrower definition of ‘maintenance’ than is usually applied) • Flexibility: how readily can the system be modified to meet new/changed requirements? • Testability: has the system been designed to facilitate systematic and thorough testing?
System Transition Factors • Portability: how easy is it to adapt the system to enable it to operate in a different hardware and/or software environment? • Reusability: would it be possible and cost-effective to reuse all or some parts of the system in future development projects? • Interoperability: how readily can the system communicate and interact with other systems?