Chapter 6 - On managing software quality Flashcards
Quality measurement framework
Quality measurement framework constituents:
- Entity: object in the real world we want to predict certain properties for (e.g. Project, software, etc.).
- Attribute: property of an entity.
- Attribute relation: relation between different attributes (e.g. Hours spent and cost of project).
- Value: measuring attributes (assigning values to them).
- Unit: unit of measurement.
- Scale types: unit belongs to some scale type.
- Attribute relation model: computes the value of an attribute in which we are interested from values of one or more attributes from the model. (A relation between different attributes of possibly different real objects has to exist and is formalized through this model).
Possible scale types are:
- nominal (attributes are merely classified)
- ordinal (ordering of values of attribute)
- interval (distance between successive values of an attribute is the same) e.g. Calendar
- ratio (interval with a 0 value)
- absolute (count the number of occurrences of an attribute).
Measurement
Measurement: mapping from the empirical real world to the formal relational world.
Measure: number or symbol assigned to an attribute of an entity by this mapping.
Internal vs. external attributes
Internal attribute: can be measured purely in terms of that entity itself. Examples: modularity, size, defects encountered, cost.
External attribute: can be measured only with respect to how that entity relates to it’s environment. Examples: maintainability, usability.
External attributes can only be measured indirectly as they involve measurement of other attributes.
Representation condition
Representation condition: S(a)>S(b) if speed of a is higher than speed of b.
Can sometimes be checked by looking at the attribute-relation model.
If a measure satisfies the representation condition, it is said to be a valid measure.
Quality factors (higher level quality attributes)
Quality factors are higher level quality attributes according to McCall.
Product operation (first class of quality factors, pertain to the use of the software after it has become operational:
- Correctness: does it do what i want?
- Reliability: does it do it accurately all of the time?
- Efficiency: Will it run on my hardware as well as it can?
- Integrity: is it secure?
- Usability: can i run it?
Product revision (second class of quality factors, pertain to the maintainability of the system):
- Maintainability: can I fix it?
- Testability: can I test it?
- Flexibility: Can I change it?
Product transition (third class of quality factors, reflect the ease of transition to a different environment:
- Portability: will I be able to use it on a different machine?
- Reusability: will I be able to reuse some of the software?
- Interoperability: will I be able to interface it with another system?
Quality criteria
Quality criteria (second level of attributes): can be measured subjectively or objectively
Quality in use (quality model of ISO 9126, 2001)
Quality in use: the user’s view of the quality of the software product when it is executed in a specific environment and a specific context of use.
Quality in use is usually can in general be measured indirectly.
Theoretically internal quality indicates external quality which in turn indicates quality in use.
Characteristics of quality in use:
- Effectiveness: capability of the software product to enable users to achieve specific goals with accuracy and completeness in a specified context
- Productivity: capability of the software product to enable users to expend appropriate amounts of resources in relation to the effectiveness in a specified context.
- Safety: capability of the software product to achieve acceptable risks of risk to people, business, software, property or the environment in a specified context.
- Satisfaction: capability of the software product to satisfy users in a specified context.
Quality characteristics (external and internal quality model of ISO 9126, 2001)
Quality characteristics (external and internal quality model of ISO 9126, 2001):
- Functionality
- Reliability
- Usability
- Efficiency
- Maintainability
- Portability
Quality sub-characteristics (external and internal quality model of ISO 9126, 2001)
Quality sub-characteristics (external and internal quality model of ISO 9126, 2001):
- Suitability
- Accuracy
- Interoperability
- Security
- Functionality compliance
- Maturity
- Fault tolerance
- Recoverability
- Understandability
- Learnability
- Operability
- Attractiveness
- Usability compliance
- Time behavior
- Resource utilization
- Efficiency compliance
- Analysability
- Changeability
- Stability
- Testability
- Maintainability compliance
- Adaptability
- Installability
- Co-existence
- Replaceability
- Portability compliance
Five definitions of software quality (by Garvin)
Five definitions of software quality (by Garvin):
- Transcedent definition: transcendent quality concerns innate excelence.
- User-based definition: concerns ‘fitness for use’ and relates to the degree in which user needs are adressed.
- Product-based definition: quality relates to attributes of the software.
- Manufacturing-based definition: concerns conformance to specifications.
- Value-based definition: deals with costs and profits. (e.g. increased efficiency, increased effectiveness, added value, marketable product, Corporate IT infrastructure)
Quality attribute scenario
Quality attribute scenario: quality requirements specification in a language common to both users and developers.
TQM (Total quality management)
TQM (Total quality management): eclectic view on quality. In TQM quality applies to each and every aspect of the organization.
TQM cornerstones:
- Customer value strategy: balance between benefits and sacrifices is sought. The attitude is ‘let’s first determine what the customer needs’
- Organizational systems: systems encompass more than software and hardware. Other materials, humans, work practices belong to the system as well.
- Continuous improvement: quality is pursued proactively. Errors are opportunities for learning. Authorithy is not imposed by position and rules, but is earned by communicating a vision.
ISO/IEC 90003 (ISO 9001 as base)
ISO/IEC 90003 (ISO 9001 as base) has 5 perspectives from which the management of quality in software engineering is addressed.
ISO/IEC 90003 (ISO 9001 as base) perspectives:
- systemic perspective: deals with the establishment and documentation of the system itself.
- management perspective: deals with the definition and management of the policies to support quality.
- resource perspective: deals with the resources needed to implement and improve the quality management system and meet customer and regulatory requirements.
- product perspective: deals with the process of actually creating quality products such as those pertaining to requirements engineering, design, testing, production and servicing. (about 60% of the standard)
- improvement perspective: deals with monitoring, measuring and analyzing activities to improve and maintain quality.
SQA (Software quality assurance)
SQA (Software quality assurance) goals:
- improve software quality by monitoring the software and its development process
- ensure compliance with the established standards and procedures for the software and the development process.
- ensure that any inadequacies in the product, the process, or the standards are brought to management’s attention so they can be fixed.
SQA people are not responsible themselves for producing quality products. They review and audit and provide the project and management the result of these reviews and audits.
SQA organization should be independent of the development organizaiton and staffed with competent and judicious people.
Software quality assurance plan
Software quality assurance plan: describes how the quality of the software is to be assesed.