230 likes | 528 Views
Class Point: An Approach for the Size Estimation of Object-Oriented Systems. Presented by Wei-Chia Lai. Software product measures quantify properties. Internal attributes Independently from its behavior (e.g., size, complexity, modularity) External attributes
E N D
Class Point: An Approach for the Size Estimation of Object-Oriented Systems Presented by Wei-Chia Lai
Software product measures quantify properties • Internal attributes • Independently from its behavior (e.g., size, complexity, modularity) • External attributes • Relation to the environment (e.g., reliability, understandability, and maintainability )
Why is it important? • Estimating cost and effort • effort/cost ratio • costs of design, implementation, debugging and modification • Planning software project development • More effectively
Function Points (FPs) • Widely apply on the estimation of the size of business systems • Predict the effort, cost, and duration • Measure the functionality of the system
How does FPs work? • Identify all functions • Classify functions into 4 types • Weight functions • Base on its type and complexity (Standard values: Counting Practices Manual) • Multiplied by the Value Adjustment Factor • 14 general system characteristics
Size measures for O-O System • FPs • unnatural to object-oriented systems • WMC (Weighted Methods per Class) • NOC (Number of Children) • RFC (Response For a Class) • class-level measurement • less profitable for effort prediction
Class Points (CPs) • FP-like approach • Focus on the size of O-O system • system-level estimation • Focus on classes (Logical building blocks) • Local methods • Interaction of the class • The attributes
The Class Point method (Three main phases) • Information processing size estimation: • Identification and classification of classes • Evaluation of complexity level of each class • Estimation of the Total Unadjusted Class Point • Technical complexity factor estimation • Final Class Point evaluation
Classes Identification & classification • PDT (Problem Domain Type) • Classes representing real-world entities • RegisterCourses, ViewReportCard, MaintainClassStatus • HIT (Human Interaction Type) • Information visualization and human-computer interaction (e.g. RegisterForm, RegisterConfirmButton) • DMT (Data Management Type) • Data storage and retrieval (e.g. CourseManagement subsystem ) • TMT (Task Management Type) • Definition and control of tasks • (e.g. ManageRegistrationControl, ClassMaintainControl)
Class complexity level Evaluation • Assign a complexity level for each class • CP1 • NEM (Number of External Methods) • NSR (Number of Services Requested ) • A measure of the interconnection of system components • CP2 • Above all & NOA (Number Of Attributes) • evaluate the complexity level
Total Unadjusted Class Point • xij is the number of classes of component type I with complexity level j • wij is the weighting value for type i and complexity level j
Technical Complexity Factor (TCF) • TDI (Total Degree of Influence) • Generated from 18 general system characteristics (ranging from 0 to 5) • TCF = 0.55 + ( 0.01 * TDI )
Final Class Point • CP = TUCP * TCF • Calculation worksheet
Two complementary validations • Theoretical • Theoretically evaluated against the desirable size properties defined by Briand et al • Empirical • Linear regression analysis based on 4-fold cross validation technique (40 project samples) • System size is high correlation with the development effort
Conclusion • The Class Point method: • Estimating cost and effort • Planning software project development • Providing system-level estimation of the size of O-O products • Focusing on classes