Software Size Estimation and Metrics
Lecture 9 of CS605 Software Engineering - II addresses the critical software engineering challenge of estimating system size, development effort, and cost prior to detailed implementation. The lecture investigates the two primary measurement paradigms: size-oriented metrics based on Lines of Code (LOC) and function-oriented metrics based on Function Points (FP). Students explore the fundamental shortcomings of LOC as a sizing measure, including its extreme programming language dependence, penalization of concise high-level expressive languages, and total inability to measure pre-implementation design effort. The lesson explains how productivity metrics normalized by LOC can yield misleading economic conclusions. Consequently, the conceptual advantages of function-oriented measurement, originally developed by Allan Albrecht at IBM, are established. Function Points measure the functional utility delivered directly to the user from the external business perspective, providing a programming-language-independent basis for project estimation, productivity benchmarking, and cross-project historical analysis. Network diagramming techniques provide deterministic and probabilistic insights into project milestones and resource dependencies. Risk mitigation, monitoring, and management plans are formulated to identify technical, operational, and commercial exposure early in the lifecycle. Software quality assurance audits and formal technical reviews are presented as indispensable instruments for defect detection and process compliance. Organizational structures, including democratic decentralized, controlled decentralized, and controlled centralized teams, are contrasted regarding productivity. Team dynamics and collaborative leadership styles are analyzed to overcome communication bottlenecks and foster high-performing development cultures. The curriculum traces the evolutionary transition from traditional waterfall lifecycles to iterative and risk-driven development paradigms. Practical considerations for statistical software quality assurance, error tracking, and Pareto analysis provide rigorous quantitative decision support. Scholars examine how mistake-proofing mechanisms such as Poka-Yoke can be adapted to software design to eliminate defect injection at the source. System maintenance challenges in legacy enterprise environments are evaluated alongside forward engineering and reverse engineering workflows. The lesson explores Martin Fowler refactoring patterns, demonstrating how code smells are methodically removed while preserving observable behavior. Extract method, move method, and replace temp with query are examined through concrete code refactoring demonstrations.
No questions available yet.
There are currently no examination questions published for Software Size Estimation and Metrics. Explore other curriculum units or build a custom quiz with the practice builder.