Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2015. / Submitted by Fernanda Percia França (fernandafranca@bce.unb.br) on 2016-06-15T18:11:05Z
No. of bitstreams: 1
2015_MarcosCésardeOliveira.pdf: 2100208 bytes, checksum: afd0bf07cd06fda6ddc2ab3603c8bea0 (MD5) / Approved for entry into archive by Raquel Viana(raquelviana@bce.unb.br) on 2017-02-14T19:20:43Z (GMT) No. of bitstreams: 1
2015_MarcosCésardeOliveira.pdf: 2100208 bytes, checksum: afd0bf07cd06fda6ddc2ab3603c8bea0 (MD5) / Made available in DSpace on 2017-02-14T19:20:43Z (GMT). No. of bitstreams: 1
2015_MarcosCésardeOliveira.pdf: 2100208 bytes, checksum: afd0bf07cd06fda6ddc2ab3603c8bea0 (MD5) / O desenvolvimento de software orientado a características (FOSD) é um paradigma que pode ser usado, entre outros, para estruturar um sistema de software em torno de características que podem representar pequenas funcionalidades do software bem como requisitos não funcionais. Além do seu papel na estruturação do software, o uso de FOSD habilita a ativação e desativação de features individuais em uma dada configuração de software. Essa vantagem pode ser útil em cenários onde a variabilidade do software é necessária. Por outro lado, a adoção da abordagem FOSD pode ser feita em um sistema de software existente, torna-se necessária a aplicação de alguma técnica de engenharia reversa para extração de features de uma base de código legada, bem como o mapeamento dessas features para suas implementações. Essa dissertação apresenta uma nova abordagem para auxiliar nessa atividade de engenharia reversa, a qual relaciona dados históricos extraídos de sistemas de controle de tarefas de desenvolvimento e de mudanças em código-fonte. A abordagem se baseia em técnicas de Mineração de Repositórios de Software (MSR), especificamente o agrupamento baseado em dependências evolucionárias entre elementos do código-fonte, que leva ao descobrimento de grupos de co-mudança. Assim, o objetivo deste trabalho é descobrir as propriedades dos grupos de co-mudança que podem ser úteis no processo de extração de features. Especificamente, um conjunto de termos, associados com os grupos, que revelam conceitos que podem ajudar a identificar features. De acordo com os resultados obtidos, os grupos de co-mudança não possuem vantagem quando usa- dos como unidades de modularização, mas podem revelar novas dependências que são ocultas ao desenvolvedor. Também mostram que os grupos de co-mudança possuem coesão conceitual, e que podem ser usados para extrair conceitos e termos associados com eles. Por fim, os conceitos extraídos dos grupos de co-mudança podem ser usados para construir um mapeamento entre eles e o código-fonte, e que podem ser usados como uma lista de sementes de entrada para métodos de expansão de features. / Feature-oriented software development (FOSD) is a paradigm that can be used, among others, to structure a software system around the feature concept that can represents small functionalities and non-functional requirements. Besides their role in software structure, FOSD enables the activation and deactivation of individual features in a given configuration of the software. This advantage can be useful in scenarios where the variability of the software is required. On the other hand, the adoption of FOSD can be done for an existing software system, thus, becomes necessary to apply some reverse engineering technique to extract features from a legacy code base, and also the mapping between these features and their implementations. This dissertation presents a new approach to aid in the reverse engineering activity, that relates historical data from issue tracking systems and source-code changes. The approach relies upon Mining Software Repositories (MSR) techniques, specifically the clustering based on co-evolutionary dependencies between source-code elements, which leads to the discover of co-change clusters. Thus, the goal of this work is to discover the properties of the co-change clusters that can be useful in a feature extraction process. Specifically, a set of terms, associated with the clusters, which reveal concepts that can help to identify features. According to the study results, co-change clusters have no advantage when used as a modular unit, but can reveal new dependencies that is hidden to the developer. They also show that the co-change clusters have conceptual cohesion, and can be used to extract concepts and the terms associated with them. In the end, the concepts extracted from co-change clusters can be used to build a mapping from them and the source-code, and that can be used as a input seed list to feature expansion methods.
Identifer | oai:union.ndltd.org:IBICT/oai:repositorio.unb.br:10482/22533 |
Date | 03 September 2015 |
Creators | Oliveira, Marcos César de |
Contributors | Ramos, Guilherme Novaes, Almeida, Rodrigo Bonifácio de |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Source | reponame:Repositório Institucional da UnB, instname:Universidade de Brasília, instacron:UNB |
Rights | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.bce.unb.br, www.ibict.br, http://hercules.vtls.com/cgi-bin/ndltd/chameleon?lng=pt&skin=ndltd sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra disponibilizada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data., info:eu-repo/semantics/openAccess |
Page generated in 0.0034 seconds