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

Detalhes bibliográficos
Autor(a) principal: Silva, Vinicius Jonathan Santos
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFU
Texto Completo: 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.
id UFU_4e3bf00ea75f8d90c4616baaa19acec3
oai_identifier_str oai:repositorio.ufu.br:123456789/28290
network_acronym_str UFU
network_name_str Repositório Institucional da UFU
repository_id_str
spelling 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 ontologiasA smart approach to support automatic detection and classification of design smells in object-oriented software systems through ontologies.AprendizadoRefatoraçãoProgramação orientada a objetosEngenharia de SoftwareDesign smellsComputaçãoLearningRefactoringObject-oriented programmingSoftware EngineeringCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOObject 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.UFU - Universidade Federal de UberlândiaDissertação (Mestrado)Programação Orientada a Objetos (POO) é uma disciplina bastante complexa queexige o conhecimento de vários conceitos como herança, encapsulamento e polimorfismo.Esses conceitos são muito importantes para o aprendizado de conceitos mais avançados,como padrões de projeto e refatoração de código. Alguns conceitos quando aplicados demaneira incorreta podem levar ao surgimento de falhas dedesign, também conhecidascomodesign smells.Design smellssão estruturas desoftwareque podem indicar proble-mas de código oudesignque tornam complexo o processo de evolução e manutenção dosoftware. Aprender como evitar essas falhas e como refatorá-las é uma das habilidadesmais importantes para se tornar um bom desenvolvedor orientado a objetos. Dessa forma,esse trabalho tem como objetivo o desenvolvimento de umplug-inpara o ambiente de de-senvolvimento Eclipse, para tornar a identificação desmellsem códigos OO mais simplese rápida. Nosso método foi testado contra 4 ferramentas de propósito similar(DECOR,JDeodorant, CheckStyle e PMD), executando todas elas em 3 projetosopen-source(JU-nit, Log4J e ArgoUML) com a finalidade de identificação de 4design smells(InsufficientModularization, Long Method, Long Parameter List e Deficient Encapsulation). Logoapós, realizamos uma análise por amostragem com o objetivo de demonstrar o poder deexpressividade da utilização de ontologias ao identificar todos os 14design smellspro-postos nesse trabalho. Os resultados obtidos mostraram que nossa ferramenta apresentouacurácia de 100% em todos os testes, resultados estes que se igualaram a algumas ferra-mentas em alguns casos ou foi superior a elas em outros.Universidade Federal de UberlândiaBrasilPrograma de Pós-graduação em Ciência da ComputaçãoDorça, Fabiano Azevedohttp://lattes.cnpq.br/3944579737930998Maia, Marcelo de AlmeidaNunes, Bernardo PereiraSilva, Vinicius Jonathan Santos2020-01-13T12:37:47Z2020-01-13T12:37:47Z2019-09-23info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfSILVA, Vinicius Jonathan Santos. 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. 2019. 80 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. DOI http://doi.org/10.14393/ufu.di.2019.2566.https://repositorio.ufu.br/handle/123456789/28290http://doi.org/10.14393/ufu.di.2019.2566porhttp://creativecommons.org/publicdomain/zero/1.0/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFU2020-01-14T06:10:57Zoai:repositorio.ufu.br:123456789/28290Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2020-01-14T06:10:57Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false
dc.title.none.fl_str_mv 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
A smart approach to support automatic detection and classification of design smells in object-oriented software systems through ontologies.
title 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
spellingShingle 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
Silva, Vinicius Jonathan Santos
Aprendizado
Refatoração
Programação orientada a objetos
Engenharia de Software
Design smells
Computação
Learning
Refactoring
Object-oriented programming
Software Engineering
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short 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
title_full 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
title_fullStr 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
title_full_unstemmed 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
title_sort 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
author Silva, Vinicius Jonathan Santos
author_facet Silva, Vinicius Jonathan Santos
author_role author
dc.contributor.none.fl_str_mv Dorça, Fabiano Azevedo
http://lattes.cnpq.br/3944579737930998
Maia, Marcelo de Almeida
Nunes, Bernardo Pereira
dc.contributor.author.fl_str_mv Silva, Vinicius Jonathan Santos
dc.subject.por.fl_str_mv Aprendizado
Refatoração
Programação orientada a objetos
Engenharia de Software
Design smells
Computação
Learning
Refactoring
Object-oriented programming
Software Engineering
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Aprendizado
Refatoração
Programação orientada a objetos
Engenharia de Software
Design smells
Computação
Learning
Refactoring
Object-oriented programming
Software Engineering
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description 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.
publishDate 2019
dc.date.none.fl_str_mv 2019-09-23
2020-01-13T12:37:47Z
2020-01-13T12:37:47Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv SILVA, Vinicius Jonathan Santos. 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. 2019. 80 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. DOI http://doi.org/10.14393/ufu.di.2019.2566.
https://repositorio.ufu.br/handle/123456789/28290
http://doi.org/10.14393/ufu.di.2019.2566
identifier_str_mv SILVA, Vinicius Jonathan Santos. 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. 2019. 80 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2019. DOI http://doi.org/10.14393/ufu.di.2019.2566.
url https://repositorio.ufu.br/handle/123456789/28290
http://doi.org/10.14393/ufu.di.2019.2566
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv http://creativecommons.org/publicdomain/zero/1.0/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/publicdomain/zero/1.0/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Uberlândia
Brasil
Programa de Pós-graduação em Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Uberlândia
Brasil
Programa de Pós-graduação em Ciência da Computação
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFU
instname:Universidade Federal de Uberlândia (UFU)
instacron:UFU
instname_str Universidade Federal de Uberlândia (UFU)
instacron_str UFU
institution UFU
reponame_str Repositório Institucional da UFU
collection Repositório Institucional da UFU
repository.name.fl_str_mv Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)
repository.mail.fl_str_mv diinf@dirbi.ufu.br
_version_ 1813711444032618496