Software Engineering Metrics for Quality Assurance

Effective Methods and Tools

Software engineers should apply effective methods with modern tools within a mature development process. Software measurement is crucial if high quality is to be achieved. This depends on:

  • Requirements to describe the problem
  • The design modeling solution
  • The code that leads to an executable program
  • The evidence that exercises the software to detect errors

Utilizing Measurements

A good software engineer uses measurements that assess the quality of analysis and design models. They utilize technical measures to evaluate quality objectively, not subjectively. Source code and test cases are also assessed.

Primary Objective

The first objective of a project is to measure errors and defects.

Framework for Quality

A framework provides a mechanism for identifying what is considered important, such as portability and ease of maintenance. It also provides a means to quantitatively assess how well the development is progressing in relation to the established quality objectives.

Measuring Quality

There are many measures of quality. However, accuracy, completeness, ease of maintenance, and ease of use provide useful indicators for the project team.

Correction

This is the degree to which the software performs its required function. The most common measure of correctness is defects per KLOC (thousand lines of code), where a defect is a verified lack in accordance with the requirements.

Maintenance Facility

Maintenance of software requires more effort than any other activity of the software engineer. For this attribute, there are only indirect measures such as Mean Time to Change (MTTC) and “spoilage”.

Integrity

This attribute measures the ability to resist attacks on the integrity of the software. Two additional attributes must be defined: threat and security. System integrity can be defined as: Σ [(1 – threat) x (1 – security)].

Ease of Use

Ease of use is a friendly attempt to quantify what may be the software with the user and can be measured based on four characteristics:

  1. Intellectual ability and/or physical abilities required to learn the system
  2. Time required to become moderately efficient in the use of it
  3. Net increase in productivity
  4. Subjective rating

Major Errors

Major errors are those that are produced in the early stages of development. These errors increase in severity over time while staying hidden, and finally manifest at a time when the correction is much more expensive. Errors can originate from requirements collection or failures in project management during the analysis and design stages.

Software Measurement

Direct action can be measured with established units or patterns. Indirect measures are those that do not have a definite pattern of measurement (%).

Size-Oriented Metrics

These are used to get direct measures of the outcome and quality of software engineering. Direct measures include effort, cost, lines of code (LOC), speed of execution, and errors detected in a period of time.

Characteristics

These are direct measures of the software and the process by which elements are developed. They use the number of lines of code (KLOC) as a measure. Simple methods can be used for recording data.

Briefing

Using data collected in a table, a set of simple metrics can be developed for each project, oriented towards product quality and size.

Disadvantages

These metrics are controversial and not universally accepted. Using LOC as a key measure is dependent on the programming language. The use of LOC or KLOC negatively affects short but well-designed programs.

Function-Oriented Metrics

These were proposed by Albrecht, who suggested a measure called “function point”. Function points are derived through an empirical relationship as accounting measures (direct) in the domain of software information and assessments of software complexity.

Five features are identified in information domains. The information domain values are:

  • Number of user inputs
  • Number of user outputs
  • Number of user requests
  • Number of files
  • Number of external interfaces