Professional Documents
Culture Documents
1 Intro MSWL Eval 20102011 Intro Quality
1 Intro MSWL Eval 20102011 Intro Quality
19 de noviembre de 2010
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
(cc) 2010 Felipe Ortega, Daniel Izquierdo, Pedro Coca. Some rights reserved. This document is distributed under the Creative Commons Attribution-ShareAlike 3.0 licence, available in http://creativecommons.org/licenses/by-sa/3.0/
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
But it is dicult to write good software specication. Maintainability, reusability, modularity, security, etc. are usually not included (but required). Quality is linked to meeting end-user expectations (subjective).
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
OOP, CASE support. Standards (development and organizational). But bureaucracy is not enough. Quality culture: experience, best practices, management.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Product quality
Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Try to convey best practices in software development. Oer required framework for QA. Many examples: US DoD, ANSI, IEEE, BSI, NATO, etc. Engineers usually reluctant to adopt standards (bureaucracy).
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
ISO 9000
International body of standards for quality in any industry. ISO 9001 is the most extended version.
Quality in process, development and maintenance of any product. Mainly concerned about high level procedures. Forces denition of specic metrics to measure quality. Involves periodic reviews to maintain ISO 9001 label award.
Involve denition of documentation templates, and documenting all processes. Does not ensure that standarized process reects best practices in the eld.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Documentation standards
3 dierent categories: Documentation process standards: Establish good process for document production. Documentation standards: Dene structure and presentation of documents. Document interoperability standards: Compatibility between document formats.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Documentation standards
Some examples Document identication: Unique names, easy tracking and identication. Document structure: Homogeneous structure for docs of similar character. Document presentation: Customized layout and look and feel (design and presentation). Document update: Tracking changes/updates/reviews.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
5 dierent aspects: Product overview: Description, target market, user expectations. Product plan: Releases, updates, support, distribution, etc. Process description: Product development and management. Quality goals: Including identication of quality attributes to be tracked. Risks and risk management: Risks aecting quality and corrective actions.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Interoperability
Felipe Ortega, Daniel Izquierdo, Pedro Coca
Installability
Introduction to software quality evaluation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Documentation standards
3 components: Quality reviews: Periodic checks of conformity with quality standards dene in the project. Automated assessment: Collecting quality information automatically (product and process). Quality metrics: Measure dierent quality aspects as an input for assessment.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Quality reviews
3 components: We need a dedicated team of reviewers. Systematic methodology and approaches to examine key quality properties dened for the project.
Design or program inspections. Progress reviews (management). Quality reviews: Technical analysis of components and assessment from metrics.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Key application: predicting possible problems for proactive management and control.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Measurement procedure
Select metrics
Perform measurements
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Product metrics
Static metrics
Dynamic metrics
Fan-in/Fan-out
Length of code
Method fan-in/fan-out
Cyclomatic complexity Weighted methods per class Fan-in/Fan-out Number overriding operations
Fog index
Felipe Ortega, Daniel Izquierdo, Pedro Coca Introduction to software quality evaluation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Product metrics
Static metrics:
Fan-in/Fan-out : Number of functions or methods that call some other function or method (complexity, connascence). Length of code : Size of program. SLOC (LOC or LLOC). Cyclomatic complexity : Metric for control complexity of software. Length of identiers : Average length of identiers used in a program. Supposedly, the longer the ID, the better for readability and maintenance of code. Depth of conditional nesting : Deeply nested statements are harder to be grasped. Fog index : Average length of words and sentences in documents.
Felipe Ortega, Daniel Izquierdo, Pedro Coca Introduction to software quality evaluation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Product metrics
Dynamic metrics:
Depth of inheritance tree : Number of discrete levels in the tree of classes (OOP). The deeper the tree, the more complex the desgin. Method fan-in/fan-out : Distinction between origin of calls to other methods (from object or from external methods). Weighted methods per class : Number of methods included in a class, weighted complexity of every method. Too complex classes are dicult as for understanding and maintenance. Number of overriding operations : Operations overridden in sub-classes. The higher this number, the less appropriate may be the super-class.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Metrics assessment
It is not enough to collect dierent metrics. We need to infer assessments and conclusions from these results. Most of times, human interpretation of results is needed. Value ranges drawn from multiple case examples may serve as guidelines. Usually, supported through integrated assessment frameworks (Business Intelligence).
Organization of measurement areas and lists of metrics. Automated production of reports summarizing results. Support for elaboration of assessment reports and executive summaries. Other buit-in functionalities: data mining, data warehouse, statistical tools, etc.
Felipe Ortega, Daniel Izquierdo, Pedro Coca Introduction to software quality evaluation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Index
1 2 3 4 5 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Analysis
Measurement
Change
Improvements to be checked
Felipe Ortega, Daniel Izquierdo, Pedro Coca Introduction to software quality evaluation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Process improvement
Quality frameworks focused on improving the process, rather than just describing it. 3 stages:
1
Process measurement : Compilation of metrics and indicators related to software process (development and management). Process analysis : Producing meaningful assessment from results, identifying or anticipating problems that must be corrected. Process change : Alter problematic elements or practices to align the process to the quality goals of the project.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Process metrics
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
Frequently applied to develop customized process quality frameworks. Goal-oriented, top-down methodology to measure quality of software processes and products. First developed at University of Maryland (1984) in collaboration with NASA. Hierarchical structure composed by 3 kinds of elements: goals, questions and metrics.
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
GQM Hierarchy
Goal 1
Goal 2
[...]
Goal N
Q1
Q2
Q3
Q4
Q5
Q6
Metric 9 Metric 10
Metric 7 Metric 6
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
GQM implementation
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
GQM Example
Goal
Object
Product vers. Alpha
Purpose
Understanding
Context
Aspects of quality and metrics 1. Number of failure - total number - severity (sorted by criticality) 2. Number of faulty modules - total number - sorted by modules - sorted by lifecycle phases of detection Baseline hypotheses 1. Number of failure - total number: 115 - estimates John: 30% critical, 70% uncritical - estimates Elsa: 15% critical, 60% uncritical, 15% others 2. Number of faulty modules - total number: 200 Modules - AlphaH (40 faults), AlphaD (25), AlphaF (10)...
Influencing factors 1. Degree of Reuse 2. Experience of Development Team Members 3. Adherence to Code Inspection Process
Impact of influencing factors in baseline hypotheses 1. Higher the degree of reuse lower num. failures. 2. The longer the experience of the developement team members, the lower the number of failures and faults. 3. The closer the adherence to the code inspection process, the lower the number of failures and faults in testing and integration
Introduction Quality Assurance (QA): standards Quality Planning Quality Control Product quality Process quality
References
Humphrey, W. S. Characterizing the software process. IEEE Software, 5(2), 73-79. 1988. Ian Sommerville, Software Engineering, 8th Edition. Addison Wesley, 2006. Hans van Vliet, Software Engineering: Principles and Practice, 3rd Edition. Wiley, 2008. V. R. Basili, Quantitative Evaluation of Software Engineering Methodology, Proceedings of the First Pan Pacic Computer Conference, Melbourne, Australia, Vol. 1 pp. 379-398, 1985.