Mathematics and Computer Science
Capturing Bad Design Practices in Object-Oriented Code
Document Type
Oral Presentation
Location
Indianapolis, IN
Subject Area
Physics, Mathematics & Computer Science
Start Date
10-4-2015 11:15 AM
End Date
10-4-2015 12:00 PM
Sponsor
Awny Alnusair (Indiana University Kokomo)
Description
Code understanding and reuse while particularly time consuming can be improved with the adherence to design patterns, reusable solutions to common issues within software design. On the other hand, anti-patterns are the antithesis to design patterns and create more complication than benefit, often leading to unsuccessful software design projects.
The existence of Anti-patterns is currently prevalent in large software repositories. In this article, we propose a reverse engineering approach to identify Anti-patterns within software libraries. We use semantic web techniques and ontology formalism to represent the conceptual knowledge of the library source code, capturing every aspect of object-oriented design, such as inheritance, composition, type and subtypes information, method signatures, and other object-oriented features.
We built a parser for Java software libraries that scans at the byte-code level and populates the ontology with semantic instances representing the structure and behavior of the inspected libraries. We then use semantic rules to identify Anti-patterns, such as the God Class, Data Class, Alien Spider, and Call Super, within the libraries using an Eclipse plugin. To do this we compare the ontology instances generated by the parser to ontologies we have created representing the structure and behavior for each Anti-pattern.
We are currently implementing this approach as a plugin for the Eclipse IDE. Once the implementation is complete, we will examine several software libraries with this approach to determine if the use of ontology modeling and semantic-based techniques is an effective means of identifying Anti-patterns within software code libraries.
Capturing Bad Design Practices in Object-Oriented Code
Indianapolis, IN
Code understanding and reuse while particularly time consuming can be improved with the adherence to design patterns, reusable solutions to common issues within software design. On the other hand, anti-patterns are the antithesis to design patterns and create more complication than benefit, often leading to unsuccessful software design projects.
The existence of Anti-patterns is currently prevalent in large software repositories. In this article, we propose a reverse engineering approach to identify Anti-patterns within software libraries. We use semantic web techniques and ontology formalism to represent the conceptual knowledge of the library source code, capturing every aspect of object-oriented design, such as inheritance, composition, type and subtypes information, method signatures, and other object-oriented features.
We built a parser for Java software libraries that scans at the byte-code level and populates the ontology with semantic instances representing the structure and behavior of the inspected libraries. We then use semantic rules to identify Anti-patterns, such as the God Class, Data Class, Alien Spider, and Call Super, within the libraries using an Eclipse plugin. To do this we compare the ontology instances generated by the parser to ontologies we have created representing the structure and behavior for each Anti-pattern.
We are currently implementing this approach as a plugin for the Eclipse IDE. Once the implementation is complete, we will examine several software libraries with this approach to determine if the use of ontology modeling and semantic-based techniques is an effective means of identifying Anti-patterns within software code libraries.