Uma abordagem inteligente para suporte à detecção e classificação automática de design smells em sistemas de software orientados a objetos através de ontologias
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Federal de Uberlândia
Brasil Programa de Pós-graduação em Ciência da Computação |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | https://repositorio.ufu.br/handle/123456789/28290 http://doi.org/10.14393/ufu.di.2019.2566 |
Resumo: | Object oriented programming is a fairly complex discipline that requires knowledge ofvarious concepts such as inheritance, encapsulation, and polymorphism. These conceptsare very important for learning more advanced concepts such as design patterns and coderefactoring. Some concepts when applied incorrectly can lead to design flaws, also knownas design smells. Design smells are software structures that may indicate code or designproblems that make the process of software evolution and maintenance complex. Learninghow to avoid these failures and how to refactor them is one of the most important skillsfor becoming a good object-oriented developer. Thus, this work aims to develop a plug-in for the Eclipse development environment to make the process of identifying smells inOO code simpler and faster. Our method has been tested against 4 similar purpose tools(DECOR, JDeodorant, CheckStyle and PMD), running them all in 3 open source projects(JUnit, Log4J and ArgoUML) for the purpose of identifying 4 design smells (InsufficientModularization, Long Method, Long Parameter List and Deficient Encapsulation). Soonafter, we performed a sample analysis in order to demonstrate the expressive power ofusing ontologies by identifying all 14 design smells proposed in this work. The resultsobtained showed that our tool presented 100 % accuracy in all tests, results that wereequal to some tools or were superior to them in others. |