OO Technical MetricsGoals for Using OO MetricsOO Metric Characteristics - 1OO Metric Characteristics - 2OOD Model Metrics - 1OOD Model Metrics - 2Class-Oriented Metrics - 1Class-Oriented Metrics - 2Class-Oriented Metrics - 3Operation-Oriented MetricsOO Test Metrics - 1OO Test Metrics - 2OO Product Metrics1OO Technical MetricsCIS 375Bruce R. MaximUM-Dearborn2Goals for Using OO Metrics•To better understand product quality•To assess process effectiveness•To improve quality of the work performed at the project level3OO Metric Characteristics - 1•Localization–OO metrics need to apply to the class as a whole and should reflect the manner in which classes collaborate with one another •Encapsulation–OO metrics chosen need to reflect the fact that class responsibilities, attributes, and operations are bound as a single unit•Information hiding–OO metrics should provide an indication of the degree to which information hiding has been achieved4OO Metric Characteristics - 2•Inheritance–OO metrics should reflect the degree to which reuse of existing classes has been achieved•Abstraction–OO metrics represent abstractions in terms of measures of a class (e.g. number of instances per class per application)5OOD Model Metrics - 1•Size–population, volume, length, functionality •Complexity–how classes interrelate to one another•Coupling–physical connections between design elements•Sufficiency–how well design components reflect all properties of the problem domain6OOD Model Metrics - 2•Completeness–coverage of all parts of problem domain•Cohesion–manner in which all operations work together•Primitiveness–degree attributes and operations are atomic•Similarity–degree of similarity between two or more classes •Volatility–likelihood a design component will change7Class-Oriented Metrics - 1•Chidamber and Kemerer (CK) Metrics Suite–weighted metrics per class (WMC)–depth of inheritance tree (DIT)–number of children (NOC)–coupling between object classes (CBO)–response for a class(RFC)–lack of cohesion in methods (LCOM)8Class-Oriented Metrics - 2•Lorenz and Kidd–class size (CS)–number of operations overridden by a subclass (NOO)–number of operations added by a subclass (NOA)–specialization index (SI)9Class-Oriented Metrics - 3•Harrison, Counsel, and Nithi (MOOD) Metrics Suite–method inheritance factor (MIF)–coupling factor (CF)–polymorphism factor (PF)10Operation-Oriented Metrics•Average operation size (OSavg)•Operation complexity (OC)•Average number of parameters per operation (NPavg)11OO Test Metrics - 1•Encapsulation–lack of cohesion in methods (LCOM)–percent public and protected (PAP)–public access to data members(PAD)•Inheritance–number of root classes (NOR)–fan in (FIN)–number of children (NOC)–depth of inheritance tree (DIT)12OO Test Metrics - 2•Class complexity–weighted metrics per class(WMC)–coupling between object classes (CBO)–response for a class (RFC)13OO Product Metrics•Number of scenario scripts (NSS)•Number of key classes (NKC)•Number of
View Full Document