Software quality is the ratio to which software has a desired combination of qualities. This desired combination of qualities must be clearly determined; otherwise, estimation of quality is left to a hunch. For the purposes of this standard, determining software quality for a system is equal to determining a list of software quality traits necessary for that system. An apt collection of software metrics must be recognised in order to measure the software quality attributes.
The purpose of software metrics is to make assessments throughout the software life cycle as to whether the software quality requirements are being met. The use of software metrics reduces subjectivity in the assessment of software quality by providing a quantitative basis for making decisions about software quality.
However, the use of software metrics does not eliminate the need for human judgement in software evaluations. The use of software metrics within an organisation or project is expected to have a beneficial effect by making software quality more visible.
More specifically, the use of metrics within the methodology of this standard allows an organisation to:
To accomplish these aims, both process and product metrics should be represented in the system metrics plan.
The software quality metrics framework (See Figure 1 below) begins with the establishment of quality requirements by the assignment of various quality attributes. All attributes which define the quality requirements must be agreed upon by the project team, and definitions established. Quality factors, which represent management and user oriented views are then assigned to the attributes, then sub-factors, if necessary, assigned to each factor. Associated with each factor is a direct metric, which serves as a quantitative representation of a quality factor. For example, a direct metric for the factor reliability could be mean time to failure. Each factor must have one or more associated direct metrics and target values, such as one hour of execution time, that is set by project management. Otherwise, there is no way to determine whether the factor has been achieved.
At the second level of the hierarchy are the quality sub-factors, which represent software-oriented attributes that indicate quality. These are obtained by decomposing each factor into measurable software attributes. Sub-factors are independent attributes of software, and therefore may correspond to more than one factor (refer to Appendix A for further explanation). The sub-factors are concrete attributes of software that are more meaningful than factors to technical personnel, such as analysts, designers, programmers, testers, and maintainers. The decomposition of factors into sub-factors facilitates objective communication between the manager and the technical personnel regarding the quality objectives.
At the third level of the hierarchy the sub-factors are decomposed into metrics used to measure system products and processes during the development life cycle. Direct metric values (factor values) are typically unavailable or expensive to collect early in the software life cycle. Therefore, metrics on the third level, that are validated against direct metrics, are used to estimate factor values early in the software life cycle.
The framework, in a top-down fashion, facilitates:
On the other hand, the framework, in a bottom-up fashion, enables the managerial and technical personnel to obtain feedback by:
The framework is designed to be flexible. It permits additions, deletions, and modifications of factors, sub-factors, and metrics. Each level may be expanded to several sub-levels. The framework can thus be applied to all systems and can be adapted as appropriate without changing the basic concept.
Figure 1 Software Quality Metrics Framework
The software quality metrics methodology is a systematic approach to establishing quality requirements and identifying, implementing, analysing and validating process and product software quality metrics for a software system. It spans the entire software life cycle and comprises five steps.
These steps shall be applied iteratively because insights gained from applying a step may show the need for further evaluation of the results of prior steps.
The documentation produced as a result of the preceding steps is shown in Table 1