Software Quality Assurance Process-Based (Conformance to Requirements) Product-Based (You Get What You Pay For) Transcendent (Excellence)
Total Page:16
File Type:pdf, Size:1020Kb
Five Views of Quality Value-based (Engineer to price) User-based (Fitness for purpose) Software Quality Assurance Process-based (Conformance to requirements) Product-based (You get what you pay for) Transcendent (Excellence) M8034 @ Peter Lo 2006 1 M8034 @ Peter Lo 2006 2 Software Quality Definition The Definition Emphasize Conformance to explicitly stated functional and Software requirements are the foundation from which performance requirements, explicitly documented quality is measured. Lack of conformance to development standards, and implicit requirements is lack of quality. characteristics that are expected of all Specified standards define a set of development criteria that guide the manner in which software is engineered. If professionally developed software. the criteria are not followed, lack of quality will almost surely result. There is a set of implicit requirements that often goes unmentioned. If software conforms to its explicit requirements, but fails to meet implicit requirements, software quality is suspect. M8034 @ Peter Lo 2006 3 M8034 @ Peter Lo 2006 4 How Important Software Quality? Software Quality Factors It is important to have the understanding that the It can be categorized in two groups: software quality work begins before the testing Factors that can be Directly Measured (e.g. phase and continues after the software is delivered. errors; KLOC; unit-time) Factors that can be Measured only Indirectly (e.g. usability or maintainability) Or, it can be categorized into: Internal – Attributes which can be measured or observed in isolation. External – Attributes which can only be observed in relation to external environment. M8034 @ Peter Lo 2006 5 M8034 @ Peter Lo 2006 6 McCall’s Triangle of Quality McCall’s Triangle of Quality McCall’s quality factors were proposed in the PRODUCT REVISION PRODUCT TRANSITION early 1970s. Maintainability Portability They are as valid today as they were in that time. Reusability Flexibility It’s likely that software built to conform to these Testability Interoperability factors will exhibit high quality well into the 21st century, even if there are dramatic changes in technology. PRODUCT OPERATION Reliability Integrity Correctness Usability Efficiency M8034 @ Peter Lo 2006 7 M8034 @ Peter Lo 2006 8 Product Operations – Product Revision – Operation Characteristics Ability to Undergo Change Correctness The extent to which a program satisfies its Maintainability The effort required to locate and fix an specification and fulfills the customer's mission error in a program. objectives. Reliability The extent to which a program can be expected to perform its intended function with required precision. Flexibility The effort required to modify an Efficiency The amount of computing resources and code required operational program. by a program to perform its function. Integrity The extent to which access to software or data by unauthorized persons can be controlled. Testability The effort required to test a program to ensure that it performs its intended Usability The effort required to learn, operate, prepare input, function. and interpret output of a program. M8034 @ Peter Lo 2006 9 M8034 @ Peter Lo 2006 10 Product Transition – Adaptability to ISO 9126 Quality Factors New Environments Portability The effort required to transfer the program These factors provide a basis for indirect from one hardware and / or software measures and an excellent checklist for assessing system environment to another. the quality of the system. Reusability The extent to which a program (or parts of Functionality a program) can be reused in other Reliability applications - related to the packaging and scope of the functions that the program Usability performs. Efficiency Interoperability The effort required to couple one system Maintainability to another. Portability M8034 @ Peter Lo 2006 11 M8034 @ Peter Lo 2006 12 ISO 9126 Quality Factors – ISO 9126 Quality Factors – Functionality Reliability The degree to which the software satisfies stated The amount of time that the software is available needs as indicated by the following sub-attributes: for use as indicated by the following sub-attributes: Suitability Maturity Accuracy Fault tolerance Interoperability Recoverability Compliance Security M8034 @ Peter Lo 2006 13 M8034 @ Peter Lo 2006 14 ISO 9126 Quality Factors – ISO 9126 Quality Factors – Usability Efficiency The degree to which the software is easy to use as The degree to which the software makes optimal indicated by the following sub-attributes: use of system resources as indicated by the Understandability following sub-attributes: Learnability Time behaviour Operability Resource behaviour M8034 @ Peter Lo 2006 15 M8034 @ Peter Lo 2006 16 ISO 9126 Quality Factors – ISO 9126 Quality Factors – Maintainability Portability The ease with which repair may be made to the The ease with which the software can be software as indicated by the following sub- transposed from one environment to another as attributes: indicated by the following sub-attributes: Analysability Adaptability Changeability Installability Stability Conformance Testability Replaceability M8034 @ Peter Lo 2006 17 M8034 @ Peter Lo 2006 18 The Attributes of Effective Software Software Quality Metric Auditability The ease with which conform ance to standards can be checked. Metrics Accuracy The precision of com putations and control. Communication The degree to which standard interfaces, protocols, and bandwidths are used. commonality C om pleteness The degree to which full im plem entation of required function has been achieved. Simple and Computable Conciseness The com pactness of the program in term s of lines of code. Consistency The use of uniform design and documentation techniques throughout the software developm ent project. Empirically and Intuitively Persuasive Data The use of standard data structures and types throughout the program. commonality Error tolerance The dam age that occurs when the program encounters an error. Consistent and Objective Execution The run-tim e perform ance of a program . efficiency Expandability The degree to which architectural, data, or procedural design can be extended. Consistent in its Use of Units and Dimensions Generality The breadth of potential application of program components. Hardware The degree to which the software is de-coupled from the hardware on which it independence operates Programming Language Independent Instrum entation The degree to which the program m onitors its own operation and identifies errors that do occur. An Effective Mechanism for Quality Feedback M odularity The functional independence of program com ponents. Operability The ease of operation of a program . Security The availability of m echanism s that control or protect program s and data. Self- The degree to which the source code provides meaningful documentation. docum entation Simplicity The degree to which a program can be understood without difficulty. Software system The degree to which the program is independent of nonstandard programm ing independence language features, operating system characteristics, and other environm ental constraints. Traceablilty The ability to trace a design representation or actual program com ponent back to M8034requirements. @ Peter Lo 2006 19 M8034 @ Peter Lo 2006 20 Training The degree to which the software assists in enabling new users to apply the system . Attributes of Effective Software Metrics – Attributes of Effective Software Metrics – Simple and Computable Empirically and Intuitively Persuasive It should be relatively easy to learn how to derive The metric should satisfy the engineer’s intuitive the metric, and its computation should not demand notions about the product attribute under inordinate effort or time. consideration. M8034 @ Peter Lo 2006 21 M8034 @ Peter Lo 2006 22 Attributes of Effective Software Metrics – Attributes of Effective Software Metrics – Consistent and Objective Consistent in Use of Units and Dimensions The metric should always yield results that are The mathematical computation of the metric unambiguous. should use measures that do not lead to bizarre combinations of unit. M8034 @ Peter Lo 2006 23 M8034 @ Peter Lo 2006 24 Attributes of Effective Software Metrics – Attributes of Effective Software Metrics – Programming Language Independent Effective Mechanism for Quality Feedback Metrics should be based on the analysis model, the The metric should provide a software engineer design model, or the structure of the program itself. with information that can lead to a higher quality end product. M8034 @ Peter Lo 2006 25 M8034 @ Peter Lo 2006 26 Software Reliability Reliability Metric Most hardware-related reliability models are Reliability metric is an indicator of how broken a predicated on failure due to wear rather than program is. failure due to design defects. Metrics are best weighted by the by severity of In hardware, failures due to physical wear (e.g. the errors. effects of temperature, corrosion, shock) are more likely than a design-related failure. A minor error every hour is better than a The opposite is true for software: in fact, all catastrophe every month. software failures can be traced to design or These metrics are not the same as counting bugs, implementation problems; wear does not enter into but indicate different probabilities of happening. the picture. M8034 @ Peter Lo 2006 27 M8034 @ Peter Lo 2006 28 Mean Time Between Failure (MTBF) Availability MTBF