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.