Please use this identifier to cite or link to this item: https://repositorio.ufu.br/handle/123456789/20130
Full metadata record
DC FieldValueLanguage
dc.creatorVale, Liliane do Nascimento-
dc.date.accessioned2017-12-27T12:49:38Z-
dc.date.available2017-12-27T12:49:38Z-
dc.date.issued2017-11-13-
dc.identifier.citationVALE, Liliane do Nascimento. Key classes in object-oriented systems: detection and use. 2017. 169 f. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Uberlândia, Uberlândia, 2017.pt_BR
dc.identifier.urihttps://repositorio.ufu.br/handle/123456789/20130-
dc.description.abstractSeveral object-oriented systems, such as Lucene, Tomcat, Javac have their respective design documented using key-classes, defined as important/central classes to understand the object-oriented design. Considering this fact, and considering that, in general, software architecture is not formally documented to help developers understanding and assessing software design, Keecle is proposed as an approach based on dynamic and static analysis for detection of key classes in a semi-automatic way. The application of filtering mechanisms on the search space of the dynamic data is proposed in order to obtain a reduced set of key classes. The approach is evaluated with fourteen proprietary and open source systems in order to verify that the found classes correspond to the key classes of the ground-truth, which is defined from the documentation or defined by the developers. The results were analyzed in terms of precision and recall, and have shown to be superior to the state-of-the-art approach. The role of key classes in assessing design has also been investigated. The organization of the key classes in a dependency graph, which highlights explicit dependency relations in the source code, was evaluated to be adequate for design comprehension and assessment. Key classes were evaluated whether they are more prone to bad smells, and whether specific types of bad smells are associated with different levels of cohesion and coupling metrics. In addition, the ownership of key classes was shown to be more concentrated in a reduced set of developers. Finally, we conducted an experimental study with students and a survey with developers to evaluate documentation based on key classes. The results indicate that the documentation based on key classes are a feasible alternative for use as complementary documentation to the existing one, or for use as main documentation in environments where documentation is not available.pt_BR
dc.description.sponsorshipFAPEG - Fundação de Amparo à Pesquisa do Estado de Goiáspt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal de Uberlândiapt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectReverse engineeringpt_BR
dc.subjectKey-classespt_BR
dc.subjectDesignpt_BR
dc.subjectSmellspt_BR
dc.subjectExperimentpt_BR
dc.titleKey classes in object-oriented systemspt_BR
dc.title.alternativeClasses-Chave em sistemas orientados a objetos: detecção e usopt_BR
dc.typeTesept_BR
dc.contributor.advisor1Maia, Marcelo de Almeida-
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4915659948263445pt_BR
dc.contributor.referee1Valente, Marco Túlio-
dc.contributor.referee1Latteshttp://lattes.cnpq.br/2147157840592913pt_BR
dc.contributor.referee2Kulesza, Uirá-
dc.contributor.referee2Latteshttp://lattes.cnpq.br/0189095897739979pt_BR
dc.contributor.referee3Dorça, Fabiano Azevedo-
dc.contributor.referee3Latteshttp://lattes.cnpq.br/3944579737930998pt_BR
dc.contributor.referee4Silva, Flávio de Oliveira-
dc.contributor.referee4Latteshttp://lattes.cnpq.br/3190608911887258pt_BR
dc.description.degreenameTese (Doutorado)pt_BR
dc.description.resumoVários sistemas orientados a objetos, tais como Lucene, Tomcat, Javac tem seus respectivos projetos (designs) documentados usando classes-chave, definidas como sendo classes importantes/centrais para compreender o projeto de sistemas orientados a objetos. Considerando este fato, e considerando que geralmente a arquitetura não é formalmente documentada para auxiliar os desenvolvedores a entenderem e avaliarem o projeto do software, é proposta Keecle, uma abordagem baseada em análise dinâmica e estática para detecção de classes-chave de maneira semi-automática. É proposta a aplicação de mecanismos de filtragem no espaço de busca dos dados dinâmicos, para obter um conjunto reduzido de classes-chave. A abordagem é avaliada com quatorze sistemas de código aberto e proprietários, a fim de verificar se as classes encontradas correspondem às classes-chave definidas na documentação ou definidas pelos desenvolvedores. Os resultados foram analisados em termos de precisão e recall e são superiores às abordagens da literatura. O papel das classes-chave para avaliar o projeto também foi investigado. Foi avaliado se a organização das classes-chave em um grafo de dependências, o qual destaca relações de dependência explícitas no código fonte, é um mecanismo adequado para avaliar o design. Foi analisado estatisticamente, se classes-chave são mais propensas a bad smells, e se tipos específicos de bad smells estão associados a diferentes níveis de métricas de coesão e acoplamento. Além disso, a propriedade (ownership) das classes-chave foi analisada, indicando concentração em um conjunto reduzido de desenvolvedores. Por fim, foram conduzidos um estudo experimental com estudantes e um survey com desenvolvedores para avaliar a documentação baseada em classes-chave. Os resultados demonstram que a documentação baseada em classes-chave apresenta resultados que indicam a viabilidade de uso como documentação complementar à existente ou como documentação principal em ambientes onde a documentação não está disponível.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.programPrograma de Pós-graduação em Ciência da Computaçãopt_BR
dc.sizeorduration169pt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpt_BR
dc.identifier.doihttp://dx.doi.org/10.14393/ufu.te.2017.32pt_BR
Appears in Collections:TESE - Ciência da Computação

Files in This Item:
File Description SizeFormat 
KeyClassesObject.pdfTese7.36 MBAdobe PDFThumbnail
View/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.