Terms: A Quality - Qualities
Terms: A Quality - Qualities
Quality Abstract term! Measurable? - a degree or grade of excellence or worth - the totality of characteristics of an entity that bear on its ability to satisfy stated or implied needs A characteristic property of something. A requirement that does not concern functionality. An attribute that does not concern functionality. Difference from requirement? Measurable? Same as quality requirement. All of the above...
Attributes of Software
More than Functionality Quality Attributes How the system works, as opposed to what it does. Affects the success as much as having the right functionality Affects What you build (e.g. Architecture) How you build (e.g. Development Process) Different attributes are relevant for different products
Example Buildings
Museum Bright Easy access Resting areas Impression of space Home Cosy Pivot around living room
Operational
Relevant from a usage perspective. Availability Efciency Flexibility Integrity Security Usability etc.
Balance of Qualities
What Danaher Motion is doing is to try and reach a balance where all important quality attributes are sufciently supported. All qualities may not be maximally achieved. Prioritise quality attributes What is most important to achieve? Does not mean that other attributes can be ignored!
Classifications
L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, Addison-Wesley Publishing Co., Reading MA, 1998. B. Boehm, H. In, Identifying Quality Requirement Conicts, in IEEE Software 13(2):25-36, 1996. J.A. McCall, Quality Factors, in Encyclopedia of Software Engineering, J.L. Marciniak (Editor), John Wiley & Sons, New York NY, pp. 958-969, 1994. ISO 9126, Software Qualities, ISO/IEC FDIS 91261:2000(E). IEEE Std-830 1993 G. Kotonya, I. Sommerville, Requirements Enineering, John Wiley & Sons, New York NY, 1998.
Accessibility, accountability, accuracy, adaptability, additivity, adjustability, affordability, agility, audiability, buffer, space performance, capability, capacity, clarity, code-space performance, cohesiveness, commonality, communication cost, communication time, compataibility, completeness, component integration time, component integration cost, composability, comprehensibility, conceptuality, conciseness, confidentiality, configurability, consistency, controllability, coordination cost, coordination time, correctness, cost, coupling, customer evaluation time, customer loyalty, customizability, data-space performance, decomposability, degradation of service, dependability, development cost, development time, deversity, distributivety, domain analysis cost, domain analysis time, efficiency, elasticity, enhanceability, evolvability, execution cost, extensibility, external cosistency, fault-tolerance, feasibility, flexibility, formality, generality, guidance, hardware cost, impact analyzability, independence, informativeness, inspection cost, inspection time, integrity, internal consistency, inter-operability, intuitiveness, learnability, main-memory performance, maintainability, maintenance cost, maintenance time, maturity, mean performance, measurability, mobility, modifiability, modularity, naturalness, nomadicity, obervability, offpeak-period performance, operability, operating cost, peak-period performance, performability, performance, planning cost, planning time, plasticity, portability, precision, predictability, process management time, productivity, project stability, project tracking cost, promptness, prototyping cost, prototyping time, reconfigurability, recoverability, recovery, reengineering cost, reliability, repeatability, replacability, replicability, response time, responsiveness, retirement cost, reusability, risk analysis cost, risk analysis time, robustness, safety, scalability, secondary-storage performance, sensitivity, security, similarity, simplicity, software cost, software production time, space boundness, space performance, specificity, stability, standardizability, subjectivity, supportability, surety, survivability, susceptibility, sustainability, testability, testing time, throughput, time performance, timeliness, tolerance, tracebility, trainability, transerability, transparancy, understandability, uniform performance, uniformity, usability, user-friendliness, validity, variability, verifiability, versatility, visibility, wrappability
Factor
Classifications
Criteria
Criteria
Criteria
Using Classifications
Starting point to look for relevant quality attributes May nd metrics for quality attributes May nd relations between quality attributes May nd supporting design solutions
Factor Criteria Metric [McCall 1994] Observable during Runtime vs Not Observable during Runtime [Bass et al. 1998] External and Internal Quality vs Quality in Use [ISO 9126] Describes top-levels of a tree of quality attributes All attributes are not always necessary All attributes are not always equally important By and large translatable between the different classications.
Metric
Metric
Metric
Drawbacks of classifications
They (often) provide no rationale: Why are certain attributes not included? (E.g., security and safety in ISO 9126-1.) Why does the hierarchy look the way it does? How to compose lower-level characteristics into higherlevel ones? How to perform measurements is not always stated. This makes it hard to judge the completeness and consistency of a classication.
ISO 9126-Standard
Functionality Suitability, Accuracy, Interoperability, Security, Functionality Compliance Reliability Maturity, Fault Tolerance, Recoverability, Reliability Compliance Usability Understandability, Learnability, Operability, Attractiveness, Usability Compliance Efciency Time Behaviour, Resource Utilisation, Efciency Compliance Maintainability Analysability, Changeability, Stability, Testability, Maintainability Compliance Portability Adaptability, Installability, Co-Existence, Replaceability, Portability Compliance
General truths (?) about how to Address Quality Attributes in Software Architecture
Performance Streamlining Few levels of indirection Shortcuts Modiability/extendability Extra levels of indirection Modularity Maintainability No shortcuts Modularity Portability Hardware abstraction Modularity Adherence to standards Usability Separation of user interface Adherence to standards
Discussion
Six foils one for each top-level quality attribute in ISO 9126 Find at least one system and one concrete situation where some aspect of the quality attribute is relevant. Describe this. Consider every quality attribute on its own, regardless of how important or unimportant it is in relation to the other attributes.