• Nenhum resultado encontrado

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

6.6 Avaliação

6.6.3 Execução do Estudo

Métricas da Versão JavaFX v1

Para obtenção das métricas, o sistema e-Shop JavaFX v1 foi executado em um computador portátil da marca Dell, modelo Inspiron 7520, que possui um processador Intel® Core™

i7-3612QM CPU @ 2.10GHz, memória RAM de 8GB, uma placa de vídeo dedicada AMD RADEON HD 7730m de 2GB e sistema Operacional Windows 10 Pro 64-bits. Os serviços do componente servidor foram executados em um computador desktop com processador Intel® Core™ Duo CPU E7300 @ 2.66GHz, memória RAM de 4GB e sistema operacional

Windows 10 Pro 64-Bits. Ambos os computadores estavam conectados na mesma rede local.

As medições foram executadas em duas etapas. A primeira etapa teve como objetivo verificar a capacidade de detecção de falhas pelo Reconfigurador e consistiu em respon- der à métrica M1. Para alcançar a esse objetivo, foram projetadas duas atividades, as quais foram aplicadas aleatoriamente durante três horas: (i) na primeira atividade, foi desativado algum serviço utilizado no momento e aguardou-se a reação do sistema e-Shop JavaFX v1 ao evento causado; e (ii) na segunda atividade, foi reativado apenas um serviço anteriormente desativado e aguardou-se a reação do sistema.

Ao analisar os registros gerados, verificou-se que o sistema e-Shop JavaFX v1 teve a sua configuração arquitetural alterada diversas vezes em resposta aos eventos causados. Além disso, não ocorreram atrasos significativos na detecção dos eventos por parte dos sensores, variando entre 1 a 7 segundos, com média de 3 segundos, de acordo com as oscilações de conexão de rede e do tempo que o Módulo de Decisão foi configurado para verificar o sistema (no caso utilizou-se o intervalo de 5 segundos).

A segunda etapa consistiu em medir o desempenho do Reconfigurador ao realizar uma adaptação na DSPL e-Shop JavaFX v1, obtendo as métricas M2, M3 e M4. Para simular diferentes ambientes nessa medição, foram criadas rotinas automatizadas que desativam e reativam os serviços, de forma controlada, periodicamente. Especificamente, nesta etapa, a medição foi realizada utilizando ambientes simulados, que foram construídos aleatoriamente a cada 5 minutos. Os dados foram coletados num intervalo de quatro horas, através da captura de registros de execução do sistema.

Nessa medição, foram coletados mais de 2.750 registros de análises do sistema, conside- rando o intervalo do ciclo do Módulo de Decisão, ou seja, o componente Monitor capturou informações dos sensores, disponibilizando tais dados para o componente Analyzer a cada 5 segundos. O resultado para a métrica M2 (Figura 6.19) mostra que o intervalo de tempo para executar a análise dos dados captados pelo monitoramento em tempo de execução é de aproximadamente 0,95 milissegundo.

Apesar da quantidade de análises executadas no sistema, foram detectadas apenas 45 ações do Módulo de Recomposição. Esses valores são devido ao fato de as ações do Mó- dulo de Decisão (componentes Monitor e Analyzer) ocorrerem constantemente, executando um ciclo regular, enquanto que as atividades do Módulo de Recomposição (componentes Planner e Executor) somente são disparadas quando é detectada uma falha que justifica uma adaptação. A Figura 6.20 mostra os valores obtidos para as métricas M3 e M4, que levaram em média, respectivamente, 5,64 milissegundos para executar a atividade de

0 250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 0 1 2 3 4 T emp o em ms An´alise (M2)

Figura 6.19: Intervalos de tempo para executar as atividades de análise da e-Shop JavaFX v1. 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 0 5 10 15 20 25 30 35 40 T emp o em ms

Planejamento (M3) Execu¸c˜ao(M4)

Figura 6.20: Intervalos de tempo para executar as atividades de planejamento e recom- posição na e-Shop JavaFX v1.

planejamento e 9,24 milissegundos para implantar a nova configuração arquitetural.

Métricas da Versão Android

O sistema e-Shop Android foi executado em um smartphone da marca Asus, modelo Zenfone 2, com uma plataforma Android (Versão 5.0 API 21 Lollipop), sendo que os serviços (componente servidor) foram executados em um computador portátil da marca Dell, modelo Inspiron 7520, que possui um processador Intel® Core™ i7-3612QM CPU

@ 2.10GHz, memória RAM de 8GB, uma placa de vídeo dedicada AMD RADEON HD 7730m de 2GB e sistema Operacional Windows 10 Pro 64-bits.

A obtenção de métricas para a versão Android seguiu o mesmo planejamento em etapas executado para a JavaFX v1.

Na primeira etapa, ao analisar os registros gerados pelo sistema para a métrica M1, percebeu-se uma demora na percepção da falha por parte do Módulo de Decisão. O atraso variou em média 30 segundos. Esse atraso foi possivelmente causado pela plataforma An- droid, pois a mesma foi projetada para evitar que os aplicativos em execução percebam eventuais variações de conexão com a rede, mantendo a transparência dos serviços ofere- cidos como, por exemplo, os instantes em que o smartphone fica desconectado na troca de uma rede 3G para wi-fi e vice-versa.

A segunda etapa consistiu em obter valores para as métricas M2, M3 e M4, sendo executadas as mesmas rotinas para criação de ambientes aleatórios. Como resultado, pelo mesmo período de quatro horas, foram obtidos mais de 2.500 registros de execução do Módulo de Recomposição. Conforme apresentado na Figura 6.21, a atividade de análise do sistema levou em média 1,1 milissegundos.

0 250 500 750 1000 1250 1500 1750 2000 2250 2500 0 1 2 3 4 T emp o em ms An´alise(M2)

Figura 6.21: Intervalos de tempo para executar as atividades de análise da e-Shop An- droid.

Nesse mesmo período, o Módulo de Recomposição foi disparado 32 vezes. A Figura 6.22 apresenta os dados para as métricas M3 e M4. Para a métrica M3, a atividade de planejamento levou em média 13,9 milissegundos. Já a atividade de implantação da nova configuração arquitetural (métrica M3 ) levou em média 14,2 milissegundos para ser realizada. 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 0 5 10 15 20 25 30 35 40 T emp o em ms

Planejamento(M3) Execu¸c˜ao(M4)

Figura 6.22: Intervalos de tempo para executar as atividades de planejamento e execução na e-Shop Android.

Métricas de Escalabilidade

Foi realizada uma comparação entre as versões geradas e implementadas da DSPL e-Shop, sendo elas: (i) o código gerado pela ferramenta ISALYNE-IDE para todas as features da DSPL e-Shop, descrito na etapa 3 da Seção 6.5; (ii) a versão Android; (iii) a versão JavaFX v1, implementada com a configuração arquitetural equivalente à versão Android e

descrita na Seção 6.5; (iv) a versão JavaFX v2, que possui uma configuração intermediaria de features; e (v) a versão JavaFX v3, que corresponde à configuração de features mais completa da DSPL e-Shop. A Figura 6.23 apresenta um quadro comparativo de tamanho entre essas versões, incluindo o número de features dinâmicas, de componentes e de SLOC. Para as versões JavaFX, o tamanho do código-fonte é relativo ao número de componentes. No entanto, destaca-se que a versão Android possui um código-fonte maior em relação às demais versões, devido ao código-fonte gerado para as interfaces gráficas e os seus eventos.

Features dinˆamicas Componentes SLOC (x1000)

5 10 15 20 10 21 10.43 5 13 16.87 5 13 8.17 7 16 10.83 10 19 12.99 Quan tidade

Gerado e-Shop Android e-Shop JavaFX v1 e-Shop JavaFX v2 e-Shop JavaFX v3

Figura 6.23: Comparação de tamanho entre as versões da DSPL e-Shop.