ToffA-DAS: an approach to conduct trade-off analysis for dynamically adaptable software - Carvalho, Michelle Larissa Luciano (2020)
Os processos de engenharia das linhas de produtos de software dinâmico (LPSD) visam projetar software dinamicamente adaptável (SAD), aumentando a flexibilidade para a geração de um grande número de configurações. Isso resulta em uma explosão de espaço de configuração do software, tornando a análise mais difícil e complicando o trabalho do desenvolvedor. Nesse sentido, os engenheiros de software precisam encontrar uma combinação de funcionalidades do sistema que possam satisfazer simultaneamente as restrições especificadas em modelos de funcionalidades e de contexto, requisitos não funcionais (RNFs) e preferências das partes interessadas. Isso significa que eles têm que medir várias configurações até encontrar as viáveis, caracterizando o processo de configuração do produto em um problema de otimização complexo. A maioria dos estudos existentes não focam nas interações entre as informações contextuais e os RNFs ao lidar com a seleção de funcionalidades para atender aos objetivos de qualidade desejados. Além disso, tais estudos não usam nenhuma estratégia de planejamento para apoiar o processo de seleção de configuração. Com base nessas lacunas de pesquisa, propomos uma abordagem que (i) gerencia as funcionalidades e contextos do sistema; (ii) facilita a compreensão de como os produtos de uma LPSD podem se comportar a partir de uma determinada mudança de contexto, e (iii) permite realizar análise trade-off a fim de encontrar configurações válidas e viáveis, que atendam as restrições e as interações entre as informações contextuais e RNFs. Com o objetivo de apoiar a modelagem de variabilidade de contexto, propusemos a técnica estendida de model game de funcionalidade sensível ao contexto (eCFM) para lidar com restrições entre contextos. Em seguida, definimos a abordagem Análise Trade-off para SAD (ToffA-DAS) para lidar com o processo de seleção de configuração que abrange as interações entre as informações contextuais e os RNFs. Também propusemos uma estratégia para analisar as mudanças de contexto, a fim de definir modelos de adaptação para cada priorização das funcionalidades do sistema, contextos e RNFs. Por fim, evoluímos nossa abordagem e chamamos de ToffA-DAS PLUS (ToffA-DAS+). O ToffA-DAS é baseado na técnica de programação linear inteira, enquanto o ToffA-DAS + usa um algoritmo genético. Realizamos um conjunto de estudos empíricos a fim de avaliar a proposta desta tese. Primeiramente, realizamos uma pesquisa para avaliar o eCFM do ponto de vista da expressividade para modelar as restrições de contexto e facilidade de uso. Na verdade, a análise foi focada na compreensibilidade da modelagem de variabilidade contextual. Em seguida, realizamos um estudo baseado em simulações para reunir evidências iniciais sobre a viabilidade do uso do ToffA-DAS. Esse estudo é baseado em como conduzir uma análise de trade-off e definir modelos de adaptação a partir das configurações viáveis encontradas na análise. Também realizamos um estudo exploratório para avaliar como as configurações obtidas pela execução do ToffA-DAS afetam o nível de satisfação geral dos RNFs. Por fim, avaliamos a evolução da nossa abordagem em comparação com a versão anterior. Como resultado do primeiro estudo, o eCFM foi considerado uma técnica com grande expressividade para representar regras de adaptação entre contextos e funcionalidades do sistema, além da facilidade de uso e organização com o agrupamento de contextos. Portanto, concluímos que os engenheiros de software podem levar em consideração o uso da técnica eCFM para modelar SAD. No segundo estudo, ToffA-DAS apresentou resultados consistentes de acordo com os cenários do mundo real, satisfez os valores de utilidade estimados e as restrições do modelo. O terceiro estudo mostrou que o conjunto de configurações gerado pela execução do ToffA-DAS proporciona altos níveis de satisfação dos RNFs. No último estudo, coletamos evidências de que o ToffA-DAS+ sugere mais soluções a partir de possíveis configurações válidas do modelo. Com base nos estudos mencionados acima, evidenciamos que nossa abordagem pode ser útil quando os engenheiros de software precisam de ajuda na compreensão de como projetar uma variedade de opções configuráveis para LPSD. É baseado no princípio de que cada opção de configuração deve ser viável para atender a certas mudanças contextuais sem perder a qualidade do serviço. Com o uso de nossa abordagem, os engenheiros de software podem analisar e simular exaustivamente uma solução antes de implementá-la.