Logo após a análise das formas de visualizações dos modelos de fatures, como descrito na Seção 2.5, foi possível concluir que a visão em árvore é de mais fácil compreensão e entendimento, por esse motivo a visualização foi focada em ser desenvolvida nesse formato. A visão em lista hierarquizada antes apresentada pela DyMMer ainda permanece na ferramenta como opção para o usuário, apresentada ao lado esquerdo da Figura 30, podendo ser ilustrada acessando o botão “Change type of Tree", localizado na parte superior da Figura 30.
Figura 30 – Visualização em Lista Hierárquica do modelo de features.
Fonte: Elaborada pelo autor
A nova árvore de modelos de features foi desenvolvida utilizando a biblioteca Prefuse9, a mesma que a ferramenta S2T2 Configurator, mostrada na Seção 2.5.3, utiliza. Com essa biblioteca pode-se criar visualizações de dados ricas em interações. As Figuras 31 e 32 ilustram exemplos da nova árvore. Pode-se observar que a visualização tem várias orientações, são elas: (i) Left Right, direciona-se da esquerda para direita; (ii) Right Left, direciona-se da direita para esquerda; (iii) Top Bottom, direciona-se de cima para baixo; e (iv) Bottom Top, direciona-se de baixo para cima.
Figura 31 – Visualização em árvore do modelo de features Left Right.
Fonte: Elaborada pelo autor
As várias orientações que a árvore pode tomar, fazem com que haja uma melhor visualização dos itens que um modelo de features apresenta, de acordo com a preferência do usuário da ferramenta.
Figura 32 – Visualização em árvore do modelo de features Top Bottom.
Fonte: Elaborada pelo autor
Na visualização da árvore criada, também é possível: (i) realizar buscas de palavras em todo o modelo de features representado, como ilustrado na Figura 33, a palavra ”internet” é
buscada, e o nó da árvore que contém a palavra é marcada com a cor rosa. Para isso ser realizado é necessário selecionar o campo de busca, encontrado na parte inferior à direita da árvore, e logo após digitar a palavra que deseja ser buscada; (ii) verificar o caminho de um nó até a raiz da árvore, como ilustrado na Figura 33 um item da árvore é selecionado, com isso um percurso é traçado do nó selecionado até a raiz da árvore; e (iii) aplicar zoom na árvore, a diferença pode ser percebida entre a Figura 31 e 32, em que a primeira está mais aproximada que a segunda.
As funcionalidades que a nova árvore proporciona ajudam na melhora da usabilidade da ferramenta, pois o usuário passa a encontrar itens perdidos em uma árvore muito extensa com a função de busca, por exemplo, e também visualizar quais features influenciam na ativação de um determinada das features até a raiz da árvore.
Figura 33 – Funcionalidades da nova árvore do modelo de features.
Fonte: Elaborada pelo autor
5.4 Validação das Visualizações Propostas
Um questionário foi aplicado para os mesmos engenheiros de domínio que responderam ao questionário apresentado na Subseção 5.2, que teve como objetivo validar as visualizações desenvolvidas, ilustradas na Subseção 5.2. Essa validação buscou assegurar se as visualizações foram adequadas e se atendem às necessidades dos engenheiros de domínio, ou seja, a confirmação de que estes consigam responder as suas perguntas, já apresentadas na Subseção 5.2.
As visualizações foram dispostas para os participantes e foram realizadas perguntas, como: “Você concorda que a visualização acima responde a pergunta: “Qual a variabilidade dinâmica do modelo de features?””, cada pergunta poderia ser respondida com as seguintes alternativas: concordo plenamente, concordo parcialmente, não compreendi e discordo. Para cada pergunta, também existe a possibilidade de realizar observações, as mesmas podem ser usadas para obter opiniões dos participantes. (ver Apêndice B).
A seguir são representadas as perguntas para cada visualização e seu nível de aceitação.
1. Extensibilidade dos Modelos
Figura 34 – Você concorda que a visualização mostra qual modelo de features é de fácil extensibilidade?
Fonte: Elaborada pelo Autor.
a) Observação 1: Fácil visualização 2. Variabilidade Dinâmica
Figura 35 – Você concorda que a visualização reponde a pergunta: “Qual a variabilidade dinâmica do modelo de features?”
Figura 36 – Você concorda que a visualização responde a pergunta: “Qual dos contextos presentes em um modelo de features, possui mais dinamicidade em termos de ativação e desativação?”
Fonte: Elaborada pelo Autor.
a) Observação 1: Se variabilidade corresponde apenas ao número de features ativadas, a primeira pergunta responde totalmente isso. Entretanto, se há o desejo de saber “quais” features foram ativadas, então não.
b) Observação 2: No exemplo dado, temos apenas 3 contextos, e se por acaso o modelo tiver muitos contextos? Este tipo de visualização pode não ser viável.
3. Complexidade Estrutural de um modelo de features
Figura 37 – Você concorda que a visualização responde a pergunta: “Qual a complexidade do modelo de features?”
Fonte: Elaborada pelo Autor.
4. Complexidade Estrutural de um conjunto de versões de um modelo
Figura 38 – Você concorda que a visualização responde a pergunta: “Qual o impacto que a linha sofreria ao estender uma determinada feature?”
Figura 39 – Você concorda que a visualização responde a pergunta: “Qual o impacto a linha de produtos sofrerá quando uma mudança ocorre no modelo de features?”
Fonte: Elaborada pelo Autor.
Figura 40 – Você concorda que a visualização responde a pergunta: “Qual a evolução da complexidade do modelo de features quando uma featureé adicionada e removida?”
Fonte: Elaborada pelo Autor.
a) Observação 1: Acho que a segunda pergunta engloba a primeira. 5. Variabilidade Estática
Figura 41 – Você concorda que a visualização responda a pergunta: “Qual o aumento no número de configurações a partir da inclusão de novas features?”
Fonte: Elaborada pelo Autor.
Após a observação dos resultados da validação das visualizações, foi possível perceber que o nível de aceitação dos participantes é alto, com um total de três observações negativas em duas visualizações e um não compreendimento em uma visualização.
Para a visualização “Extensibilidade dos Modelos”, pode-se observar que seu nível de aceitação é máxima, contendo apenas uma observação positiva: (i) “Fácil visualização".
Para a visualização “Variabilidade Dinâmica”, pode-se observar que para a primeira pergunta o nível de aceitação é alta, com três respostas em “Concordo plenamente” e duas respostas em “Concordo parcialmente”. Não foi deixado nenhuma observação do porquê dos votos aplicados em “Concordo parcialmente”. Já para a segunda pergunta, o nível de aceitação é alto, com apenas uma resposta “Concordo parcialmente”, e quatro respostas “Concordo plenamente”. Duas observações foram deixadas para essas perguntas, são elas: (i) “Se variabilidade corresponde apenas ao número de features ativadas, a primeira pergunta responde totalmente isso. Entretanto, se há o desejo de saber “quais” features foram ativadas, então não.”, essa observação reflete a falta de uma característica na visualização, que seria a possibilidade de verificar quais features estão ativadas no modelo, contudo as medidas dos modelos de qualidade não nos trazem quais features estão ativadas, trazem apenas valores, como o número de features ativadas, por exemplo; e (ii) “No exemplo dado, temos apenas 3 contextos, e se por acaso o modelo tiver muitos contextos? Este tipo de visualização pode não ser viável.”, essa observação remete a questão de uma possível quantidade alta de contextos em um modelo, afetando a legibilidade da visualização, por existir muitos dados a serem visualizados, contudo isso não é um problema para essa visualização, pois o TreeMap é uma visualização que suporta muito níveis de dados. Na visualização desenvolvida na ferramenta é possível aplicar zoom nas camadas do TreeMap, isso pode ser utilizado para visualizar dados comprimidos que possam dificultar a leitura dos dados do TreeMap, a figura 42 ilustra a possibilidade de aplicar o zoom, em que é utilizada no contexto “C1”. O erro que possivelmente levou o participante a escrever essa observação foi a falta de uma ilustração que representa a funcionalidade de zoom para essa visualização.
Figura 42 – Zoom aplicado a uma camada do TreeMap desenvolvido.
Fonte: Elaborada pelo Autor.
Para a visualização “Complexidade Estrutural de um modelo de features”, pode-se observar que seu nível de aceitação é máxima.
Para a visualização “Complexidade Estrutural de um conjunto de versões de um modelo”, pode-se observar que para a primeira pergunta o nível de aceitação é alta, com quatro respostas “Concordo plenamente” e um “Não compreendi”. Já para a segunda e terceira o nível de aceitação é máxima. Uma observação foi deixada para essas perguntas: (i) “Acho que a segunda pergunta engloba a primeira.”, essa observação remete a questão de que a segunda pergunta é bem parecida com a primeira, essa problema poderia ter sido evitado se nos resultados obtidos no questionário A, houvesse um filtro nas perguntas para a verificação das que remetem ao mesmo significado.
Para a visualização “Variabilidade Estática”, pode-se observar que seu nível de aceitação é máxima.
Para a validação da visualização da nova árvore, foi adicionado no mesmo questionário ilustrações que comparam a árvore antiga em relação a mais atual, e logo após são realizadas as seguintes perguntas: (i) “Você concorda que houve melhoras no entendimento em relação a antiga representação?”; (ii) “Você concorda que as novas funcionalidades garantem uma melhor usabilidade?”; (iii) “Você concorda estar satisfeito com a nova árvore de visualização?”; e (iv) “Considerações sobre a visualização e/ou as respostas acima”. Com as seguintes faixas de respostas: concordo plenamente, concordo parcialmente, não compreendi e
discordo.
A seguir temos a relação das perguntas e respostas obtidas da validação realizada para a nova árvore do modelo de features.
Figura 43 – Você concorda que houve melhoras no entendimento em relação a antiga representação?
Fonte: Elaborada pelo Autor.
Figura 44 – Você concorda que as novas funcionalidades garantem uma melhor usabilidade?
Fonte: Elaborada pelo Autor.
Figura 45 – Você concorda estar satisfeito com a nova árvore de visualização?
Fonte: Elaborada pelo Autor.
Após a observação dos resultados da validação da nova árvore, foi possível perceber que o nível de aceitação é alto, com um total de 14 “Concordo plenamente” e apenas um “Concordo parcialmente” aplicada a primeira pergunta.
As perguntas dois e três tiveram aceitação máxima dos participantes, diferente da primeira que obteve um voto “Concordo parcialmente” e quatro votos “Concordo plenamente”; não foi realizada nenhuma observação para o voto realizado em “Concordo parcialmente”.