Banca de DEFESA: DJAN ALMEIDA SANTOS

Uma banca de DEFESA de DOUTORADO foi cadastrada pelo programa.
DISCENTE : DJAN ALMEIDA SANTOS
DATA : 28/03/2023
HORA: 08:00
LOCAL: Conferência web
TÍTULO:

Compreensibilidade de Código Fonte com Dependência entre Features em Sistemas Configuráveis


PALAVRAS-CHAVES:

Sistemas configuráveis, compreensibilidade de código fonte, dependência entre features, estudos experimentais


PÁGINAS: 112
RESUMO:

Compilação condicional é frequentemente utilizada para implementar variabilidade em código fonte de sistemas configuráveis. Compilação condicional utiliza #ifdefs para delimitar o código de uma funcionalidade (feature). Estudos anteriores mostraram que #ifdefs podem dificultar a compreensão do código. No entanto, esses estudos não levaram explicitamente em conta as dependências entre features. A dependência entre feature ocorre quando diferentes features se referem ao mesmo elemento de programa, como por exemplo, uma variável. A compreensibilidade de código fonte de sistemas configuráveis pode ser ainda mais afetada na presença de dependência entre features, pois o desenvolvedor deve raciocinar sobre diferentes cenários que afetam a mesma variável. Nosso objetivo é, portanto, entender como a dependência entre features afeta a compreensibilidade do código fonte de sistemas configuráveis. Para isso, realizamos quatro estudos experimentais complementares. No Estudo 1, quarenta e seis desenvolvedores responderam a uma pesquisa online. Eles executaram tarefas nas quais tiveram que analisar programas contendo #ifdefs com e sem dependências entre features. No entanto, as dependências entre features podem ser de tipos diferentes, dependendo do escopo da variável compartilhada. No Estudo 1, não nos preocupamos com diferentes tipos de dependência. Assim, no Estudo 2, realizamos um experimento no qual 30 desenvolvedores depuraram programas com diferentes tipos de dependência entre features. Cada programa incluiu um tipo diferente de dependência entre features: global, intraprocedural ou interprocedural. Usamos um dispositivo de rastreamento ocular para registrar os movimentos do olhar dos desenvolvedores enquanto depuravam os programas. No entanto, as dependências entre features não diferem umas das outras apenas em termos de tipos. Eles também podem apresentar diferenças em termos de número de variáveis dependentes e grau de variabilidade, entre outros. Para atender a essas características, complementamos os Estudos 1 e 2 por meio dos Estudos 3 e 4. No Estudo 3, realizamos um experimento controlado com 12 participantes que analisaram programas com diferentes números de variáveis dependentes. No Estudo 4, realizamos um experimento no qual 12 desenvolvedores analisaram programas com diferentes graus de variabilidade. Nossos resultados mostram que: (i) analisar programas contendo #ifdefs e dependência entre features exigiu mais tempo do que programas contendo #ifdefs, mas sem dependência entre features, (ii) depurar programas com #ifdefs e dependência global ou interprocedural exigiu mais tempo e maior esforço visual do que programas com dependência intraprocedural, (iii) quanto maior o número de variáveis dependentes, mais difícil foi para entender programas com dependência entre features e (iv) o grau de variabilidade não afetou a compreensibilidade de programas com dependência entre features. Em resumo, nossos estudos mostraram que #ifdefs afetaram a compreensibilidade de sistemas configuráveis em diferentes graus, dependendo da presença ou não de dependência entre features, do tipo de dependência entre features e do número de variáveis dependentes.


MEMBROS DA BANCA:
Presidente - 1710389 - CLAUDIO NOGUEIRA SANT ANNA
Interno - 4769482 - IVAN DO CARMO MACHADO
Interno - 1708936 - EDUARDO SANTANA DE ALMEIDA
Externo à Instituição - FLÁVIO MOTA MEDEIROS - IFAl
Externo à Instituição - ROHIT GHEYI - UFCG
Notícia cadastrada em: 22/03/2023 13:42
SIGAA | STI/SUPAC - - | Copyright © 2006-2024 - UFBA