• Nenhum resultado encontrado

A.1 Estudos primários versus ciclo de controle autônomo MAPE-K

2.7 Pesquisa Preliminar por Dependability e Tolerância a Falhas em DSPLs

2.7.2 Método de Pesquisa

O método de pesquisa utilizado no SMS realizado foi baseado nas recomendações pro- postas por Kitchenham et al. [111], e a classificação dos resultados obtidos seguiu a metodologia proposta por Petersen et al. [151]. Além disso, foi realizado um estudo comparativo dos resultados obtidos.

Mapeamentos sistemáticos são projetados para fornecer uma visão geral de uma área de pesquisa, para estabelecer se as evidências de pesquisa existem sobre um tema e para

35Nesta tese, o termo “dependability ” será mantido em inglês, pois não há uma tradução direta consen-

sual. A tradução comumente utilizada é “confiabilidade”, porém o termo “confiabilidade” será utilizado como tradução de “realiability”.

36Do inglês, fault prevention. 37Do inglês, fault tolerance. 38Do inglês, fault removal. 39Do inglês, fault forecasting.

fornecer uma indicação da quantidade de evidências. Os resultados de um mapeamento sistemático podem identificar áreas adequadas para a realização de uma SLR e também áreas onde um estudo preliminar é mais apropriado [111]. As atividades relacionadas com o planejamento e a realização do mapeamento sistemático são descritas a seguir. Para a realização do SMS, seguiu-se o processo definido por Kitchenham et al. [111], ilustrado na Figura 2.10.

Figura 2.10: Etapas e atividades do processo de revisão.

Estágio 1 – Planejamento da Revisão

Para a execução do SMS, foi desenvolvido um protocolo que definiu as metas de mapea- mento, as questões de pesquisa e os procedimentos a serem seguidos. Segundo Kitchenham et al. [111], a parte mais importante de qualquer revisão ou estudo sistemático é a especi- ficação das questões de investigação. Portanto, foram definidas três questões de pesquisa (QP-1, QP-2 e QP-3) para mapear as soluções baseadas em DSPL que oferecem apoio à dependability, listadas a seguir:

QP-1: Que soluções baseadas em DSPL e que apoiam dependability foram propostas?

Esta é uma questão fundamental, pois visa à identificação e descrição dos estudos primários na área. Ao responder à QP-1, é possível construir um quadro amplo de soluções existentes para a dependability em SASs usando DSPLs. O resultado obtido para esta pergunta é detalhado na Seção 2.7.3.

QP-2: Quais são as principais contribuições e limitações das soluções existen- tes para a dependability em SASs utilizando DSPLs?

Esta questão de pesquisa tem como objetivo identificar as contribuições e limitações para SASs utilizando DSPLs. Ao responder essa questão, é possível identificar as princi- pais contribuições e desvantagens das soluções existentes para a dependability em SASs

usando DSPLs, sugerindo oportunidades para um maior progresso relacionado com a con- cepção e implementação de SASs e DSPLs confiáveis. A resposta desta pergunta também é detalhada na Seção 2.7.3.

QP-3: Que atributos de dependability foram abordados por soluções existentes para SASs e DSPLs? Quais os atributos mais frequentemente implementados nas soluções existentes? Quais os meios para se alcançar esses atributos de dependability?

Esta questão tem como principal objetivo definir quais atributos de dependability são considerados em soluções de SASs e DSPLs. Além disso, identificar os estudos que estão usando cada um desses atributos e como esses estudos alcançam cada atributo. A Seção 2.7.3 também detalha a resposta obtida a esta pergunta.

Ressalta-se que o termo DSPL ainda não está totalmente estabelecido na literatura e, portanto, é comum encontrar o termo Linha de Produtos de Software (SPL) associado com outros termos para denotar dinamicidade, como dynamic variability, late variability, runtime variabilitye runtime decision. Por conseguinte, a sequência de busca inclui termos que denotam dinamicidade, além de termos de: (i) o objetivo principal desta revisão; (ii) a questão de pesquisa; e (iii) sinônimos significativos e grafias alternativas, como sugerido por Kitchenham et al. [111].

Inicialmente, a sequência de busca foi estruturada contendo os atributos de dependa- bility considerados por Pullum em [157] e Avizienis et al. em [23], que são: availability, confidentiality, integrity, maintainability, reliability e safety. Entretanto, alguns termos são largamente utilizados em outros contextos, sem referência a dependability, como por exemplo, “maintainability” (manutenibilidade). O mesmo ocorre com o termo “variants” (variantes), que é largamente utilizado no contexto de SPL. Por essa razão, foi necessária a preparação da sequência de busca, evitando os termos que resultavam em um conjunto demasiadamente grande de resultados irrelevantes. A Figura 2.11 apresenta a sequên- cia de busca utilizada, onde os termos de pesquisa são estruturados por meio de uma composição de operações lógicas, como AND e OR.

(“software product line” OR “product famil*” OR “software famil*” OR “feature model” OR “software variabilit*” OR “variation point” OR “architectural variabilit*” OR

“architecture variabilit*” OR “product line architecture”) AND

(dependability OR dependable OR availability OR reliable OR reliability OR safety OR “fault tolerance” OR “fault tolerant” OR resilient)

AND

(adaptation OR “self-adaptive” OR dynamic OR autonomic OR adaptive OR “self-configuring” OR “self-healing” OR “self-optimizing” OR ”self-protecting"OR

“software adaptability”)

Figura 2.11: Sequência de busca.

A busca por estudos primários foi executada utilizando bases de dados eletrônicas de buscas e bibliotecas digitais de pesquisa em engenharia de software. Em particular, foram

Tabela 2.1: Conferências, Simpósios e Workshops considerados no SMS realizado.

Título Acrônimo

International Software Product Line Conference* SPLC

International Workshop on Variability Modelling of Software-intensive Systems VAMOS

Self-Adaptive and Self-Organizing Systems Conference SASO

International Conference on Dependable, Autonomic and Secure Computing DASC Workshop on Dependability in Adaptive and Self-Managing Systems WDAS Annual IEEE/IFIP International Conference on Dependable Systems and Networks DSN

European Dependable Computing Conference EDCC

Symposium Software Engineering for Adaptive and Self-Managing Systems SEAMS IEEE International Symposium on Software Reliability Engineering ISSRE

International Symposium on Reliable Distributed Systems SRDS

International Conference on Computer Safety, Reliability and Security SafeComp

International Conference on Service Oriented Computing ICSOC

International Conference on Web Services ICWS

International Conference on Service Systems and Service Management ICSSSM

International Conference on Services Computing SCC

International Conference on Service Oriented Computing & Applications SOCA International Workshop on Service-Oriented Computing: Consequences for Enginee-

ring Requirements

SOCCER * incluindo os workshops co-alocados.

adotadas as bases Scopus40, IEEE Xplore Digital Library41, Compendex/Engineering Vil-

lage42, Web of Science43 e Computers and Applied Sciences Complete (EBSCO)44. Tais

bibliotecas são as mais relevantes para o contexto desta pesquisa e que possuem parceria com a Universidade Estadual de Campinas (Unicamp) e a Universidade Federal de Mato Grosso do Sul (UFMS), instituições nas quais foi desenvolvido o trabalho descrito nesta tese. Para cada base de pesquisa, foi necessário adaptar a sequência de busca para abordar os condicionalismos específicos. Além disso, foram realizadas buscas manuais nos eventos mais relevantes da área, incluindo conferências, simpósios e workshops, listados na Tabela 2.1. Além disso, juntamente com a conferência SPLC (International Software Product Line Conference), foram incluídos os seus workshops co-alocados como, por exemplo, o DSPL (International Workshop on Dynamic Software Product Lines).

Foram adotados critérios de inclusão para identificar estudos que fornecessem evidên- cia direta sobre as questões de pesquisa, selecionando os trabalhos, estudos técnicos, white papers e workshops em que o tema principal foi dependability em SASs utilizando DSPLs ou SPLs com decisão de variabilidade em tempo de execução. Além disso, foram selecio- nados apenas estudos publicados a partir do ano 2000. Também foram definidos alguns critérios de exclusão, como:

1. Estudos nos quais dependability não é o assunto principal ou estudos cujos atributos de dependability são mencionados vagamente e/ou de forma escassa;

2. Contribuições utilizando SASs, mas sem conter qualquer atributo de dependability;

40 http://www.scopus.com/ 41 http://ieeexplore.ieee.org/ 42 http://www.engineeringvillage.com/ 43 http://apps.webofknowledge.com/ 44 http://search.ebscohost.com/

3. Estudos que lidam com SPL, mas não possuem decisões de variabilidade em tempo de execução;

4. Contribuições focadas em DSPL ou SPL com decisões de variabilidade em tempo de execução, mas fora do tema de dependability; e

5. Estudos que não citam explicitamente o uso de DSPLs ou SPLs com decisões de variabilidade em tempo de execução.

Estágio 2 – Condução da Revisão

Ao final da etapa de busca, foram encontrados 343 (trezentos e quarenta e três) trabalhos. Seguindo o processo de seleção de estudos proposto por Kitchenham et al. [111], os critérios de inclusão e exclusão definidos foram aplicados aos resultados encontrados em cada etapa, conforme ilustrado na Figura 2.12. Assim, foram selecionados nove (9) estudos primários, que estão listados na Tabela 2.2.

Figura 2.12: Resultado do processo de seleção de estudos.

Estágio 3 – Relatório da Revisão

O protocolo utilizado e os resultados obtidos no estudo de mapeamento sistemático foram apresentados em detalhes em um relatório técnico publicado no IC/Unicamp [74] e em artigo publicado [73] como resultado da pesquisa. A Seção 2.7.3 apresenta as principais conclusões do SMS com a análise dos dados e os resultados obtidos.