The approach Software Quality Models Structures Of Quality What is Quality? Drazen Milicic Quality Attributes Software Quality Models Gurus What is quality? ISO 9000 – Quality management system 1994: The totality of characteristics of an entity that bear on its ability to satisfy stated and implied needs. 2000: degree to which a set of inherent characteristics (i.e. distinguishing feature) fulfils requirements (i.e. need or expectation that is stated, generally implied or obligatory) What do the gurus say? 1. IEEE STD 1061:1993 (Software quality metrics methodology) - The degree to which software possesses a desired combination of attributes. 610.12:1990 (Glossary of Software Engineering Terminology) The degree to which a system, component, or process meets specified requirements. Philip B. Crosby I Two dominant overall views on software quality: Quality is a subjectively identified differently by each individual and institution. As this is not useful in software engineering quality must be defined as “conformance to requirements” Nonconformance to requirements is the absence of quality, quality problems become nonconformance problems, and quality becomes definable 2. Conformance and degree of satisfaction to an in beforehand defined specification. The products or services capability to meet customer expectations – explicitly stated or not Joseph M. Juran Walter A. Shewhart Philip B. Crosby W. Edwards Deming Armand V. Feigenbaum Kaoru Ishikawa W. Edwards Deming II Translating future needs of the user into measurable characteristics Constantly changing based on “real world” - competitors, solutions, technology, price Quality can be defined only in terms of the agent. 1 Armand V. Feigenbaum II Quality is based upon the customer’s actual experience with the product or service, measured against his or her requirements stated or unstated conscious or merely sensed technically operational entirely subjective always representing a moving target Joseph M. Juran I Quality can be: Those product features which meet the need of customers and thereby provide product satisfaction. Freedom from deficiencies. Quality in terms of satisfying customer expectations or specifications is not usable as it is very hard to achieve. Quality is fitness for use Gurus vs. Models Kaoru Ishikawa II Quality defined according to standards (ISO, IEEE etc.) contain shortcomings, does not reflect constantly changing customer needs Narrowly interpreted, quality means quality of products. Broadly interpreted, quality means quality of product, service, information, processes, people, systems etc. etc. Quality must be defined comprehensively and dynamically. Walter A. Shewhart II Quality from two perspectives: An objective reality independent of the existence of the customer The subjective perspective dependent on individual thoughts, feelings or senses as a result of the objective reality. Software Quality Models How well does the models actually meet the definition of quality as described by the gurus? 2 McCall’s Quality Model McCall’s Quality Model Boehm’s Quality Model McCall vs. Boehm FURPS(+) / Robert Grady Dromey's Quality Model Functionality – which may include feature sets, capabilities and security Usability - which may include human factors, aesthetics, consistency in the user interface, online and context-sensitive help, wizards and agents, user documentation, and training materials Reliability - which may include frequency and severity of failure, recoverability, predictability, accuracy, and mean time between failure (MTBF) Performance - imposes conditions on functional requirements such as speed, efficiency, availability, accuracy, throughput, response time, recovery time, and resource usage Supportability - which may include testability, extensibility, adaptability, maintainability, compatibility, configurability, serviceability, installability, localizability (internationalization) + - Design constraints, implementation requirements, interface requirements and physical requirements. 3 ISO 9000:2000 ISO 9126 Quality management principles: ISO 9126: Software Product Evaluation: Quality Characteristics and Guidelines for their Use Customer focus Leadership Involvement of people Process approach System approach to management Continual improvement Factual approach to discussion making Mutually beneficial supplier relationships ISO 9126 CMM ISO 9126: Software Product Evaluation: Quality Characteristics and Guidelines for their Use CMM P-CMM Level Focus Level 5 – Optimizing level Continuous improvement Level 4 – Managed level Product and process quality Level 3 – Defined level Engineering process Level 2 – Repeatable level Project management Level 1 – Initial level Heroes Key Process Area Process Change Management Technology Change Management Defect Prevention Software Quality Management Quantitative Process Management Organization Process Focus Organization Process Definition Peer Reviews Training Program Intergroup Coordination Software Product Engineering Integrated Software Management Requirements Management Software Project Planning Software Project Tracking and Oversight Software Subcontract Management Software Quality Assurance Software Configuration Management No KPAs at this time 4 CMMI CMMI Excellence models Quality - Gurus vs. Models Common excellence models: How well does the models actually meet the definition of quality as described by the gurus? From: According to specification. To: Customer satisfaction. Malcolm Baldrige National Quality Award European Quality Award Utmärkelsen Svensk Kvalitet The excellence models contain criteria (within leadership, process and technology) that enable comparative evaluation of organizational performance. Assessment criteria in excellence models provide a basis for an organization to compare its performance with the performance of other organizations. Q = Deliverables / Expectations Quality models focus on control of deliverables 5