• Nenhum resultado encontrado

Análise de ferramentas de transformação

5.1 Avaliação Experimental

Devido à nossa ferramenta de transformação ser também uma LDE, foi aplicada uma ava- liação experimental de modo a obter feedback por parte do público alvo e assim avaliar o seu sucesso. Esta avaliação consistiu na criação de um cenário de teste de modo a perceber o que foi atingido e o que poderia ser melhorado ao nível da interacção pessoa máquina nesta ferramenta. De forma a obter resultados mais relevantes para a análise da usabilidade da ferramenta desen- volvida em relação às existentes, utilizamos também a ferramenta Moflon como plataforma de comparação, segundo os mesmos critérios. Esta ferramenta foi escolhida devido à sua interface gráfica de definição de regras, obtendo por isso uma usabilidade que se julgaria próxima da ferramenta desenvolvida.

5.1.1 Factores de sucesso

De forma a podermos analisar o êxito do DSLTranslator foi necessário identificar um va- riado conjunto de factores de sucesso de LDEs. Estes factores de sucesso foram encontrados através de trabalhos já efectuados na área da experimentação de LDEs nomeadamente em [41] e

[42]. Estes factores de sucesso foram obtidos considerando especificamente o desenvolvimento de LDEs, não considerando assim factores de índole geral.

Os factores utilizados são os seguintes:

Aprendizagem (L) Os utilizadores da linguagem desenvolvida têm que aprender uma nova linguagem o que requer tempo e esforço, daí este ser um factor de sucesso, ou não, de uma nova linguagem. Uma linguagem que consiga uma curva de aprendizagem suave terá uma mais valia na adopção da mesma por parte dos utilizadores,assim como, facilita uma futura actualização de utilizadores antigos à medida que o domínio muda e a LDE evolui naturalmente.

Familiaridade (F) Devido ao facto de os utilizadores necessitarem de aprender uma nova lin- guagem, o facto de estes reconhecerem aspectos familiares aos que já conhecem pode influenciar a aprendizagem e futura adopção da mesma como ferramenta de trabalho. Usabilidade (U) A interacção das ferramentas associadas à linguagem, nomeadamente do seu

editor com o utilizador, deve ser fácil e intuitiva de modo a que se evitem erros derivados à utilização das mesmas e deste modo evitar perdas de produtividade.

Eficiência (E) Uma LDE pretende reduzir esforço e tempo de desenvolvimento, para isso é im- portante automatizar grande parte do processo de desenvolvimento contribuindo também para uma menor percentagem de erros.

Expressividade (EX) Uma LDE é por norma uma linguagem que limita a expressividade a um determinado domínio para assim obter ganhos em produtividade e eficiência, no entanto é necessário verificar se a linguagem desenvolvida contém um nível de expressividade suficiente para o contexto em que esta deve ser utilizada.

5.1.2 Utilizadores

Para a escolha dos utilizadores a utilizar nesta avaliação experimental foi necessário ter em conta que esta linguagem se trata de uma linguagem de transformação de modelos. Opta- mos então por separar os utilizadores em dois grupos, sendo estes “utilizadores experientes” ou “utilizadores não experientes”. Todos os utilizadores, no entanto, teriam que ter uma base de conhecimento relativo alargado ao nível de conhecimentos informáticos e também de progra- mação de modo a estarem identificados com as ferramentas e conceitos utilizados na execução do cenário proposto.

As diferenças entre os grupos são então na experiência de cada utilizador no uso de ferra- mentas de transformação de modelos. Deste modo é possível avaliar a ferramenta em relação às funcionalidades esperadas por parte dos utilizadores com algum conhecimento de outras ferra- mentas assim como avaliar o esforço necessário para novos utilizadores capturarem os conceitos introduzidos.

5.1. Avaliação Experimental

No total foram convidados a efectuar esta avaliação 16 pessoas, as quais sabíamos que teriam conhecimentos de programação com um mínimo de 3 anos de experiência a nível aca- démico. Destas 16 pessoas responderam-nos 12 sendo que 6 nunca tiveram contacto com fer- ramentas de transformação e as restantes 6 já tinham contactado com pelo menos 1 ferramenta de transformação.

Embora o número de utilizadores seja bastante reduzido e não obtenha assim qualquer rele- vância estatística, segundo um grande especialista em usabilidade Jakob Nielsen, este é um nú- mero razoável1para a detecção da grande maioria dos erros de utilização de uma ferramenta[43].

5.1.3 Cenário de avaliação

O cenário apresentado para este estudo é bastante simples, pois queríamos deixá-lo aces- sível não só aos utilizadores experientes em transformações mas também para aqueles que as encontram pela primeira vez. Este cenário utiliza dois metamodelos muito restrito de UML (diagramas de classes) e Java, designados SimpleUML e SimpleJava sendo ambos fornecidos. Como o principal objectivo deste estudo é avaliar a usabilidade da nossa ferramenta, são indi- cadas as transformações a indicar com as respectivas condições a manter no modelo de saída, para que o utilizador possa traduzi-los na nossa sintaxe concreta.

5.1.3.1 Metamodelos SimpleUML

O metamodelo SimpleUML abrange as entidades base dos diagramas de classes com pa- cotes, classes, operações e atributos descritos pela OMG e simplificado apenas para fins de transformação.

SimpleJava

O SimpleJava é a nossa linguagem alvo e consiste num JavaModel que é o elemento raiz e irá suportar todo o nosso modelo. O JavaModel contém pacotes que contém JavaClasses e PrimitiveTypes. Cada JavaClass pode conter Fields e Methods que também pode ter outros Fields, sendo neste contexto os argumentos dos métodos. Finalmente, campos e métodos têm a referência a um tipo que pode ser um PrimitiveType ou um JavaClass.

5.1.3.2 Especificação das Regras

Aqui enunciamos as regras de transformação que se pretende implementar neste cenário de avaliação para transformar um modelo UML num modelo Java, sendo elas as seguintes:

• Para cada instância Package em UML, tem que ser criado uma instância Package em Java. Os seus nomes têm que corresponder.

• Para cada instância de Class em UML, tem que ser criado uma instância JavaClass.

Figura 5.1: Metamodelo da linguagem SimpleUML utilizada no cenário de avaliação

5.1. Avaliação Experimental

Os seus nomes têm que corresponder.

A referência para o Package tem que corresponder. Os modificadores têm que corresponder.

• Para cada instância DataType em UML, tem de ser criado uma instância PrimitiveType em Java.

Os seus nomes têm que corresponder.

A referência para o Package tem que corresponder.

• Para cada instância de Attribute em UML, tem de ser criado uma instância de Field em Java.

Os seus nomes têm que corresponder. Os seus tipos têm de corresponder. Os modificadores têm que corresponder.

As classes a que pertencem têm que corresponder.

• Para cada instância Operation em UML, tem de ser criado uma instância de Method em Java.

Os seus nomes têm que corresponder. Os seus tipos têm de corresponder. Os modificadores têm que corresponder.

As classes a que pertencem têm que corresponder.

• Para cada instância de Parameter em UML, tem de ser criado uma instância de Field em Java.

Os seus nomes têm que corresponder. Os seus tipos têm de corresponder.

A Operation/Method proprietário tem que corresponder. 5.1.4 Questionários de avaliação

Cada questão do questionário final de avaliação relaciona-se com cada um destes factores de desenvolvimento de uma linguagem de domínio específico, pois é essencial que as questões es- tejam directamente relacionadas com os objectivos desta avaliação. Foram também adicionadas perguntas de resposta aberta de modo a obter maior informação sobre a opinião dos utilizadores e assim aprofundar os resultados obtidos através dos mesmos.

Em seguida apresentamos uma visão geral do questionário utilizado discutindo os factores de sucesso e respectivas questões utilizadas para medi-los. A tabela 5.1 apresenta o questioná- rio sobre o cenário apresentado enquanto na tabela 5.2 é mostrado um questionário de âmbito mais geral sobre a linguagem desenvolvida e respectiva ferramenta de edição. Estes questioná- rios fornecem uma visam geral sobre o questionário utilizado, não sendo no entanto a versão completa do mesmo. A versão completa do questionário utilizado nesta avaliação encontra-se no anexo A adaptada de [42].

O questionário está dividido em duas partes, em que uma está directamente relacionada com o cenário utilizado e a outra incide sobre a opinião dos utilizadores na utilização da ferramenta de uma forma mais genérica. O questionário termina com uma zona destinada aos utilizadores experientes, de forma a que possam expressar-se sobre as diferenças, boas ou más, entre a nossa proposta e as já utilizadas anteriormente.

5.1.4.1 Questionário sobre o cenário

Factor Questão

Aprendizagem

L3 Com que frequência teve necessidade de consultar a documentação? L4 Com que frequência efectuou questões ao supervisor?

Facilidade de Utilização

U2 Que nível de confiança sentiu durante a execução do cenário? U3 Com que frequência se confundiu durante a execução do cenário? U5 Quão mentalmente exigente foi o cenário?

O que achou mais complicado de perceber ou executar? Eficiência

EF1 O que achou da correcção do cenário aplicado? Expressividade

EX1 Que achou da extensão do cenário realizado?

Tabela 5.1: Questionário sobre o cenário de avaliação 5.1.4.2 Questionário final

Factor Questão

Conhecimento do Utilizador

B1 Tem conhecimentos de programação?

Como os classifica?

5.1. Avaliação Experimental

B2 Com que frequência utiliza ferramentas para modelação de LDEs? Por quanto tempo utilizou-a?

Apreciou a experiência? Para que foi utilizado? Aprendizagem

L1 Com que facilidade aprendeu os conceitos? L2 Quão útil foi o exemplo fornecido?

Familiaridade

F1 Como identificou os símbolos que representam os conceitos? Qual achou inadequado?

F2 Como identificou o texto que representam os conceitos? Qual achou inadequado?

F3 Com que frequência cometeu erros devido à semelhança entre símbolos? F4 Com que frequência cometeu erros devido ao vocabulário ambíguo?

Facilidade de Utilização U1 O que pensa da ferramenta?

U4 Qual a dificuldade sentida para aplicar alterações? Eficiência

EF2 O resultado reflecte o que estava à espera? Expressividade

EX2 Com que frequência não conseguiu expressar o que pretendia? Porquê?

Impressões Gerais

G1 Qual a apreciação global da linguagem proposta? G2 Que mudanças ou melhorias propõe para a ferramenta? G3 Acredita que é uma mais-valia em comparação com outras?

Porquê?

G4 Sentiu-se mais produtivo do que com outra linguagem de programação? Porquê?

Tabela 5.2: Questionário final da avaliação proposta 5.1.5 Execução da avaliação

O teste de avaliação ocorreu de forma assíncrona, sendo que o questionário foi disponibili- zado online assim como todas as instruções para executar o cenário proposto. Isto tornou mais fácil a execução da avaliação, pois esta foi feita segundo a disponibilidade de cada utilizador. Foi fornecido também o manual da ferramenta, com um exemplo de transformação incluído de forma a introduzir os utilizadores à nova linguagem com que se depararam. Esta opção invalida ainda a possível ajuda dada pela equipa de desenvolvimento que poderia influenciar os próprios resultados de cada utilizador.

5.1.6 Resultados

Nesta secção apresentamos os resultados da avaliação devidamente separados pelos factores de sucesso identificados anteriormente.

5.1.6.1 Aprendizagem

Pudemos observar que os utilizadores experientes não tiveram grandes dificuldades na apre- ensão dos conceitos das linguagens utilizadas, tanto para DSLTrans como para Moflon. No entanto, como visível pela figura 5.3, os utilizadores não experientes tiveram uma maior faci- lidade a aprender os novos conceitos em DSLTrans do que em Moflon. Talvez o facto deste ultimo grupo de utilizadores não estar tão familiarizado com as ferramentas de transformação leve a uma maior dificuldade na aprendizagem da ferramenta Moflon, levando-nos a concluir que o DSLTrans introduz os conceitos da sua linguagem de forma mais simples e compreensí- vel.

Figura 5.3: Resultados da questão L1 - Com que facilidade aprendeu os conceitos?

5.1.6.2 Familiaridade

Neste factor de desempenho da linguagem os utilizadores não diferenciaram de forma evi- dente as duas ferramentas em análise, embora os utilizadores não experientes indiquem um maior número de erros na ferramenta Moflon devido à semelhança de símbolos como apresen- tado na figura 5.4.

5.1.6.3 Usabilidade

A usabilidade da ferramenta, sendo uma característica fundamental no nosso trabalho, as- sume uma importância elevada nesta avaliação nomeadamente através dos utilizadores expe- rientes pois estes conhecem os ambientes de transformação existentes e têm uma ideia mais concreta sobre o que existe e o que podia ser melhorado. Desta forma obtivemos uma resposta

5.1. Avaliação Experimental

Figura 5.4: Resultados da questão F3 - Com que frequência cometeu erros devido à semelhança entre símbolos?

positiva por parte de todos os utilizadores, ainda que o facto de os utilizadores não experientes não conhecerem a realidade das ferramentas de transformação mais utilizadas possa ter con- tribuído para uma menor satisfação da usabilidade assim como mostra os gráficos da figura 5.5. Este resultado é ainda mais satisfatório se considerarmos que os utilizadores experientes consideram a ferramenta DSLTrans mais usável do que a Moflon.

Figura 5.5: Resultados da questão U1 - O que pensa da ferramenta?

5.1.6.4 Eficiência

Neste aspecto, a eficiência do processo de transformação é reconhecido pela maioria dos utilizadores como demonstra a figura 5.6. A maior satisfação dos utilizadores em relação ao DSLTrans neste caso estará, essencialmente, relacionada com o facto da execução da transfor- mação ser feita de forma simples, sem a necessidade de geração de código e migração desse código para outros interpretadores/ferramentas para que se obtenha o resultado pretendido, con- trariamente ao que acontece com a ferramenta Moflon.

Figura 5.6: Resultado da questão EF2 - O resultado reflecte o que estava à espera? 5.1.6.5 Expressividade

A figura 5.7 indica que os utilizadores experientes não identificaram grandes diferenças na expressividade entre as duas ferramentas em análise. Um aspecto que pode indicar este resultado poderá ser a dimensão do cenário proposto. Embora suficiente para os utilizadores não experientes terem contacto com a linguagem, este não mostra todo o seu poder aos utilizadores habituados a expressões mais complicadas, não permitindo-lhes uma percepção total das suas potencialidades.

Figura 5.7: Resultados da questão EX2 - Com que frequência não conseguiu expressar o que pretendia?

5.1.7 Ameaças à validade

Aqui apresentamos possíveis ameaças que podem invalidar alguns dos resultados obtidos através do processo de avaliação apresentado.

Documentos relacionados