Authors:
Luis Paulo da Silva Carvalho
1
;
Renato Novais
2
;
Laís do Nascimento Salvador
3
and
Manoel Gomes de Mendonça Neto
3
Affiliations:
1
Federal Institute of Bahia and Federal University of Bahia, Brazil
;
2
Federal Institute of Bahia and Fraunhofer Project Center for Software and Systems Engineering at UFBA, Brazil
;
3
Federal University of Bahia and Fraunhofer Project Center for Software and Systems Engineering at UFBA, Brazil
Keyword(s):
Ontology, Reasoner, Code Smells, Ontocean.
Related
Ontology
Subjects/Areas/Topics:
Artificial Intelligence
;
Data Engineering
;
Enterprise Information Systems
;
Information Systems Analysis and Specification
;
Knowledge Engineering and Ontology Development
;
Knowledge-Based Systems
;
Ontologies and the Semantic Web
;
Ontology Engineering
;
Software Engineering
;
Software Metrics and Measurement
;
Symbolic Systems
;
Tools, Techniques and Methodologies for System Development
Abstract:
Code Smells indicate potential flaws in software design that can lead to costly consequences. To mitigate
the bad effects of Code Smells, it is necessary to detect and fix defective code. Programmatic processing of
Code Smells is not new. Previous works have focused on detection and representation to support the analysis
of faulty software. However, such works are based on a syntactic operation, without taking advantage on
semantic properties of the software. On the other hand, there are several ways to provide semantic support
in software development as a whole. Ontologies, for example, have recently been usedl. The application
of ontologies for inferring semantic mechanisms to aid software engineers in dealing with smells may be of
great value. As little attention has been given to this, we propose an ontology-based approach to analyze the
occurrence of Code Smells in software projects. First, we present a comprehensive ontology that is capable
of representing Code Smells and their
association with software projects. We also introduce a tool that can
manipulate our ontology in order to provide processing of Code Smells as it mines software source-code.
Finally, we conducted an initial evaluation of our approach in a real usage scenario with two large open-source
software repositories.
(More)