Measurement

Cost of Correcting Defects

  • Costs steadily increase from prevention to detection phases.

  • Internal vs. external detection has significant cost differences.

  • Fixing bugs is cheaper earlier in the lifecycle; can increase tenfold or more later (fifty-fold by some estimates).

Defect Amplification Model

  • Errors can be generated in each step.

  • Failure to review can pass errors unnoticed; current work may amplify previous errors.

Costs of Software Quality

  • Represents all costs that an organisation incurs from having to repeat a process in order to complete the work as per requirements

Components of Cost of SQ

  • Prevention Costs: Costs related to preventing defects (process writing, training, dev of SQA infrastructure).

  • Appraisal Costs: Costs for detecting defects (testing, reviews).

  • Internal Failure Costs: Costs incurred after testing but before customer delivery (redesign, re-programming, repeat testing).

  • External Failure Costs: Costs incurred after software delivery to customers (warranty expenses, customer dissatisfaction, correction of software failure).

Economics of Software Quality

  • High quality prevents expensive rework and ultimately increases productivity.

  • Investments in early phases yield long-term benefits but must avoid diminishing returns.

Managerial Costs

  • Managerial preparations (e.g., project planning, control) and failures can incur significant costs.

Software Measurement

  • Deriving a numeric value for an attribute of a software product or process.

  • Allows for objective comparisons between techniques and processes.

Software Metric

  • Any type of measurement which relates to a software system, process or related documentation.

  • Allows the software and software process to be quantified.

  • Can be used for general predictions or to identify anomalous components.

Problems with Measurement

  • Difficult to categorize and quantify quality costs.

  • Measurement metrics often vary and can be poorly defined.

  • Adds additional overhead to processes.

Importance of Measurement

  • Correct interpretation of appropriate metrics leads to increased visibility, understanding and control.

  • For Developers: completeness of reqs, quality of design, testing readiness.

  • For Managers: delivery readiness, budget and scheduling issues.

  • For Customers: compliance with reqs, quality.

Integrating Metrics with Software Process

  • Metrics necessary for assessing efficacy; requires historical data.

  • Managers focus on cost, productivity, and user satisfaction; engineers focus on testability and goal conformity.

Metric Categories

  • Project Metrics: Effort/time per SE task, errors uncovered per review hour, schedules vs actual milestone dates.

  • Process Metrics: Quality of processes and outcomes (defects reported, human effort).

  • Product Metrics: Measure deliverables (complexity, error rates).

Lines of Code (LOC)

  • LOC often misused; does not accurately reflect complexity.

Function Points

  • Measures software size by quantifying the functionality provided to the user based solely on logical design and functional specs.