Identificando e Analisando Interesses de Software a partir de Metadados de Componentes de Terceiros

Banca de DEFESA: LUIS PAULO DA SILVA CARVALHO

Uma banca de DEFESA de DOUTORADO foi cadastrada pelo programa.

DISCENTE : LUIS PAULO DA SILVA CARVALHO

DATA : 16/11/2020

HORA: 08:30

LOCAL: Defesa Remota - meet.google.com/iae-yrzo-tkq

TÍTULO:

Identificando e analisando interesses de software a partir de metadados de componentes de terceiros



PALAVRAS-CHAVES:

Mineração de Repositórios de Software, Interesses, Componentes, Análise Estática de Codigo



PÁGINAS: 177

RESUMO:

Modularidade é um conceito chave no desenvolvimento de sistemas de software. Sistemas bem modularizados são mais fáceis de manter e evoluir. No entanto, não é fácil atingir uma boa modularidade em sistemas de software. Sistemas devem ser modularizados sob diversas perspectivas e, frequentemente, existem interesses importantes que ficam espalhados ou entrelaçados entre vários módulos, os chamados interesses transversais. Logging, Acesso a Banco de Dados e Automação de Testes são exemplos de interesses transversais. Apesar de serem importantes, eles geralmente não são centrais às regras de negócio e, por esta razão, não são foco de modularização. A análise de interesses transversais tende a se tornar trabalhosa e complexa quando realizada em larga escala. Os estudos sobre interesses frequentemente recorrem à identificação manual dos mesmos. Infelizmente, a identificação manual tende a ser subjetiva e imprecisa, além de exigir muito esforço. Documentos de Arquitetura de Software (SADs) podem ser usados como recursos auxiliares na análise de interesses, mas os SADs não são comuns. E, quando disponíveis, não há garantia de que contenham informações relevantes sobre os interesses sendo investigados. Como consequência, idealmente, os desenvolvedores precisam confiar na automação para identificar e processar informações sobre interesses transversais a partir de código fonte. Abordagens automáticas são essenciais quando a base de código é extensa e necessita-se analisar como estes interesses evoluiram ao longo do histórico do sistema. Nesse contexto, este trabalho utiliza a injeção de componentes em projetos de software para definir um método de localização de informações sobre interesses transversais em projetos de software. Em sistemas modernos, os desenvolvedores implementam módulos para lidar com as regras de negócios centrais, mas geralmente injetam componentes de terceiros na base de código para materializar interesses relacionados aos aspectos secundários do sistema. Por exemplo, os anteriormente citados, Logging, Acesso ao Banco de Dados e Automação de Testes são interesses que geralmente são implementadas com a ajuda de componentes externos. Por serem estes os tipos de interesse que mais se dispersam e se entrelaçaam nos módulos dos sistemas, vimos a oportunidade de propor um método para apoiar a sua identificação e análise através dos dados e meta-dados de sua injeção no sistema. Nosso método, primeiramente, identifica os interesses a partir dos metadados que os desenvolvedores usam para injetar componentes de terceiros em seus sistemas. Em seguida, ele avalia como estes interesses se espalham e evoluem ao longo do tempo na base de código. Desenvolvemos uma ferramenta chamada Architectural Knowledge Suite (AKS) para automatizar o metodo. Usamos essa ferramenta para conduzir um estudo de pesquisa-ação com a ajuda de especialistas em desenvolvimento de software para avaliar a confiabilidade de nosso método e refiná-lo. Também executamos três outros estudos processando o código-fonte de sistemas de informação reais para caracterizar e entender como os desenvolvedores implementam interesses no mundo real. Entre os resultados obtidos, destacamos que o método correspondeu moderadamente às expectativas dos especialistas. Notamos que é possível otimizar a captura de interesses a partir do código fonte de sistemas, se eles forem agrupados considerando similaridades entre seus contextos de uso. Percebemos que, durante a evolução dos sistemas, artefatos de código tendem a não se dedicar à implementação de interesses específicos. Identificamos oportunidades de adaptação do método para tornar possível sua aplicação sob diferentes cenários de utilização de tecnologias de desenvolvimento.



MEMBROS DA BANCA:

Presidente - 1674550 - MANOEL GOMES DE MENDONCA NETO

Interno - 1710389 - CLAUDIO NOGUEIRA SANT ANNA

Interno - 1678446 - LAIS DO NASCIMENTO SALVADOR

Externo à Instituição - PAULO CAETANO DA SILVA - UNIFACS

Externo à Instituição - SÉRGIO CASTELO BRANCO SOARES - UFPE

Data da Defesa: 
16/11/2020 - 08:30
Tipo de Defesa: 
Defesa de Doutorado