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

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.

This document is currently not available here.

Share

COinS
 
Apr 10th, 11:15 AM Apr 10th, 12:00 PM

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.