• Nenhum resultado encontrado

Segundo Pussinen (2002), enquanto a evolução na Engenharia de Software clássica ocorre na fase de manutenção, LPSs evoluem ao longo de todo o seu ciclo de vida. No caso da evolução do modelo de features, ela ocorre quando algumas mudanças são realizadas na estrutura do modelo (incluindo suas restrições), tais como: adição ou remoção de features; adição ou remoção de relacionamentos entre features; adição ou remoção de restrições; e modificação da variabilidade do modelo (GAMEZ; FUENTES, 2011).

Entretanto, a experiência envolvendo LPSs mostra que o relacionamento entre as especificações representadas no modelo de features e os produtos derivados da linha tende a se desgastar ao longo do tempo, no sentido de que este modelo torna-se excessivamente complexo e surgem inconsistências entre o modelo de features e os produtos derivados da linha. O modelo de featurese a própria LPS evoluem e crescem juntos (LOTUFO et al., 2010). Desta forma, também existe um relacionamento entre o modelo de features e os demais artefatos intermediários da linha. Este relacionamento também se torna mais complexo à medida que linha evolui.

Assim, é de fundamental importância que a avaliação da qualidade de modelos de features seja realizada ao longo de todo o processo de evolução da LPS, a fim de garantir a qualidade do modelo de features ao longo do tempo em suas diferentes versões.

Contudo, avaliar a qualidade do modelo de features ao longo de toda a sua evolução pode configurar-se em uma atividade bastante complexa e custosa em termos financeiros. Por este motivo, decidiu-se explorar neste estudo apenas uma característica de qualidade: a manute- nibilidade. Esta escolha deve-se à grande relevância desta característica de qualidade. Segundo a norma SQuaRE (ISO/IEC, 2011), descrita na Seção 3.2.1, a característica de qualidade de

manutenibilidade é composta pelas seguintes subcaracterísticas: modularidade, reusabilidade, analisabilidade, modificabilidade e testabilidade. Contudo, a literatura apresenta outras subcarac- terísticas relacionadas à manutenibilidade, tais como: complexidade cognitiva, extensibilidade, flexibilidade, complexidade estrutural e variabilidade.

Para a execução deste estudo exploratório, foram utilizadas as 21 medidas e 16 mode- los de features com suas respectivas versões do dataset AFFOgaTO, descrito na Seção 6.4. Essas 21 medidas cobrem as principais subcaracterísticas relacionadas à manutenibilidade dos modelos de features (BEZERRA et al., 2015), mais precisamente: analisabilidade (NLeaf), complexidade cognitiva (CogC), extensibilidade (FEX), flexibilidade (FoC), modularidade (SCDF e MCDF), complexidade estrutural (CyC, ComC, CTC, CoC, DT, NF, NTop) e variabilidade (MHoF, RNoF, SHoF, RoV, NVF, NVC, NO, NA). As medidas de manutenibilidade são importantes para avaliar quão bem modelos de features podem ser entendidos, alterados e analisados. Neste capítulo, um conjunto de versões de um mesmo modelo de features, ordenadas pela ordem cronológica de sua criação, é denominado “evolução”.

Este estudo, embora ainda seja uma investigação inicial, pode ser útil para melhorar o entendimento de como os modelos de features evoluem ao longo do tempo. Este estudo, discute, por exemplo, as subcaracterísticas de qualidade que tendem a permanecer estáveis durante a evolução de um modelo de features e aquelas que sofrem maiores variações.

7.2 Planejamento do Estudo Exploratório

Os estudos exploratórios são muito utilizados para realizar uma investigação pre- liminar acerca do tema principal da pesquisa que será realizada, permitindo ao pesquisador familiarizar-se com o fenômeno que está sendo estudado, de modo que a pesquisa subsequente possa ser concebida com uma maior compreensão e precisão. Além disso, permite ao pesquisador definir o seu problema de pesquisa, formular a sua hipótese com mais precisão, selecionar as técnicas mais adequadas para suas pesquisas e decidir sobre as questões que mais necessitam de atenção e investigação detalhada (PETTERSEN et al., 2004).

Um estudo exploratório envolve o levantamento bibliográfico e/ou a análise de um conjunto de exemplos que estimulem a compreensão do tema da pesquisa. Assim, as pesquisas exploratórias visam proporcionar uma visão geral de um determinado problema. Em geral, um estudo exploratório é realizado sobre um problema ou questão de pesquisa que tem poucas ou nenhuma pesquisa anterior a seu respeito. O objetivo desse tipo de estudo é procurar

padrões, ideias ou hipóteses. A ideia não é testar ou confirmar uma determinada hipótese. Uma das principais técnicas utilizadas nas pesquisas exploratórias é o estudo de caso. Um estudo exploratório avalia quais teorias ou conceitos existentes podem ser aplicados a um determinado problema ou se novas teorias e conceitos devem ser desenvolvidos (ROBSON, 2002; RUNESON P. E HÖST, 2009).

O estudo exploratório descrito neste capítulo teve por objetivo investigar se a manu- tenibilidade do modelo de features tende a aumentar ou diminuir ao longo do seu processo de evolução. Para esta investigação, alguns fatores foram considerados importantes para a manute- nibilidade do modelo de features, tais como: analisabilidade, modificabilidade, complexidade estrutural, variabilidade e flexibilidade dos modelos de features.

Para guiar este estudo exploratório foram definidas 6 questões de pesquisa (QPs), as quais são ilustradas na Tabela 14. As questões de pesquisa são relacionadas a evolução estrutural dos modelos de features baseado em medidas de tamanho, complexidade e variabilidade. Essas mudanças estruturais do modelo podem impactar diretamente a manutenibilidade do modelo de features.

Tabela 14 – Questões de pesquisa do estudo exploratório. ID Descrição das Questões de Pesquisa

QP1 O número de features tende a aumentar com a evolução do modelo de features?

QP2 O número de features filhas envolvidas nos relacionamentos alternativo (XOR) ou OR tende a aumentar com a evolução do modelo de features?

QP3 A profundidade do modelo de features tende a aumentar com a evolução do modelo? QP4 A largura do modelo de features tende a aumentar com a evolução do modelo? QP5 A variabilidade tende a aumentar com a evolução do modelo de features? QP6 A complexidade cresce com a evolução do modelo de features?

Para responder essas questões de pesquisa, foi utilizado o catálogo de medidas COfFEE e também o dataset AFFOgaTO (ver Seção 6.4).