100 likes | 251 Views
Mining Source Code Elements for Comprehending Object-Oriented Systems and Evaluating Their Maintainability. Presenter : Shu-Ya Li Authors : Yiannis Kanellopoulos , Thimios Dimopulos , Christos Tjortjis , Christos Makris. SIGKDD Explorations , 2006 . Outline.
E N D
Mining Source Code Elements for Comprehending Object-Oriented Systems and Evaluating Their Maintainability Presenter : Shu-Ya Li Authors : YiannisKanellopoulos, ThimiosDimopulos, Christos Tjortjis, Christos Makris SIGKDD Explorations , 2006
Outline • Motivation • Objective • Methodology • Experiments and Results • Conclusion • Comments
Motivation 50-70% of the total effort allocated to a software system US companies spent more than $70 billion annually on software maintenance. • Software maintenance • a very important and Complex stage in software lifecycle • typically consuming 50-70% of the total effort allocated to a software system. • US companies spent more than $70 billion annually on software maintenance.
Objectives • To facilitate maintenance engineers • comprehend the structure of a software system. • assess software system maintainability.
Methodology WMC: the sum of the complexities of its methods. NOC: the number of immediate descendants of the class. DIT : provides for each class a measure of the inheritance levels from the object hierarchy top. Ca: the number of other classes that depend on the class under examination. NPM: all the methods in a class that are declared as public. CBO: the number of classes a given class, is coupled to. Weighted Methods per Class (WMC) Weighted Methods per Class (WMC) Coupling between Objects (CBO) Coupling between Objects (CBO) Depth of Inheritance Tree (DIT) Depth of Inheritance Tree (DIT) Number of Children (NOC) Number of Children (NOC) Afferent (inward) Coupling (Ca) Afferent (inward) Coupling (Ca) Number of Public Methods (NPM) Number of Public Methods (NPM)
Experiments 1 System Overview
Experiments 2 org.jboss.axis.message.SOAPElementAxisImpl class 141 methods in a 2100 lines java file It’s difficult to maintain and reuse. Weighted Methods per Class (WMC – Class Complexity)
Experiments 3 It’s difficult to maintain and reuse. Coupling Between Objects (CBO)
Conclusion The aim of this work was to facilitate maintenance engineers to comprehend the structure of a software system and assess its maintainability.
Comments • Advantage • no • Drawback • … • Application • …