14
Ferramenta para Modelagem de Interação e Interface de Usuário Renato B Lavôr 1 , Jair C Leite 1 1 Universidade Federal do Rio Grande do Norte Caixa Postal 1524, CEP 59072-970, Natal-RN, Brasil [email protected] [email protected] Abstract. This paper presents a tool for modeling user interface and interaction in computing systems using ALaDIM, which is a diagrammatic domain specific language (DSL) that can be integrated with user interface prototypes. We use DSL Tools in an exploratory research to investigate if the language helps the designer or usability expert to identify potential usability problems by analyzing the structure and dynamics of interaction. We also investigate the use of interaction patterns as a way of mapping the visual elements of the interface to the elements of the interaction model. Keywords: Modeling Interaction, User Interface, DSL Tools, DSL, Model- Driven Development. 1 Introdução Desde o surgimento das primeiras interfaces de usuário gráficas, nos anos 80, foram desenvolvidos diversos tipos de ferramentas com o intuito de auxiliar o trabalho de designer e desenvolvedores a alcançar um sistema com boa usabilidade. Podemos identificar duas categorias de ferramentas de design e desenvolvimento principais. A primeira são as ferramentas de programação visual que permitem o desenvolvimento de protótipos de baixa ou alta fidelidade. Exemplos dessas ferramentas são Microsoft Visual Studio, Adobe FireWorks, Netbeans, Balsamiq. Algumas dessas ferramentas permitem a criação de modelos de comportamento e simulação da interação. A segunda categoria de ferramentas inclui aquelas que são baseadas em modelos, tais como o Sistemas Gerenciadores de Interfaces de Usuário (SGIU), os Ambientes de Desenvolvimento de Interfaces de Usuário Baseado em Modelos (ADIUBM) e as ferramentas baseadas em Linguagens de Descrição de Interfaces de Usuário (LDIU). Os SGIU, por exemplo, propostos nos anos 80 foram uma das primeiras tentativas de automatizar o design da interface a partir de modelos [1, 2]. Já na década de 90, diversos ADIUBM foram criados para auxiliar os designers no desenvolvimento de IUs. Esses ambientes permitiam que os designers produzissem suas interfaces através

Ferramenta para Modelagem de Interação e Interface de Usuáriocibse.inf.puc-rio.br/CIBSEPapers/artigos/artigos_CIBSE11/cibse... · TV Digital, Web, etc.) os ADIUBMs passaram a ser

  • Upload
    ngodieu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Ferramenta para Modelagem de Interação e Interface

de Usuário

Renato B Lavôr1, Jair C Leite

1

1Universidade Federal do Rio Grande do Norte

Caixa Postal 1524, CEP 59072-970, Natal-RN, Brasil

[email protected]

[email protected]

Abstract. This paper presents a tool for modeling user interface and interaction

in computing systems using ALaDIM, which is a diagrammatic domain specific

language (DSL) that can be integrated with user interface prototypes. We use

DSL Tools in an exploratory research to investigate if the language helps the

designer or usability expert to identify potential usability problems by analyzing

the structure and dynamics of interaction. We also investigate the use of

interaction patterns as a way of mapping the visual elements of the interface to

the elements of the interaction model.

Keywords: Modeling Interaction, User Interface, DSL Tools, DSL, Model-

Driven Development.

1 Introdução

Desde o surgimento das primeiras interfaces de usuário gráficas, nos anos 80, foram

desenvolvidos diversos tipos de ferramentas com o intuito de auxiliar o trabalho de

designer e desenvolvedores a alcançar um sistema com boa usabilidade. Podemos

identificar duas categorias de ferramentas de design e desenvolvimento principais. A

primeira são as ferramentas de programação visual que permitem o desenvolvimento

de protótipos de baixa ou alta fidelidade. Exemplos dessas ferramentas são Microsoft

Visual Studio, Adobe FireWorks, Netbeans, Balsamiq. Algumas dessas ferramentas

permitem a criação de modelos de comportamento e simulação da interação.

A segunda categoria de ferramentas inclui aquelas que são baseadas em modelos,

tais como o Sistemas Gerenciadores de Interfaces de Usuário (SGIU), os Ambientes

de Desenvolvimento de Interfaces de Usuário Baseado em Modelos (ADIUBM) e as

ferramentas baseadas em Linguagens de Descrição de Interfaces de Usuário (LDIU).

Os SGIU, por exemplo, propostos nos anos 80 foram uma das primeiras tentativas de

automatizar o design da interface a partir de modelos [1, 2]. Já na década de 90,

diversos ADIUBM foram criados para auxiliar os designers no desenvolvimento de

IUs. Esses ambientes permitiam que os designers produzissem suas interfaces através

do uso de modelos declarativos [3]. Com a possibilidade de desenvolvimento de

aplicações para múltiplas plataformas (computadores pessoais, dispositivos móveis,

TV Digital, Web, etc.) os ADIUBMs passaram a ser utilizados na geração de

interfaces para essas diferentes plataformas a partir de modelos descritos em

Linguagens de Descrição de Interface de Usuário (LDIU) [4].

Algumas destas abordagens foram bem sucedidas na geração de interfaces finais,

tais como processos [8], desenvolvimento de interfaces para múltiplas plataformas

[9][10] e utilização de Linguagens Específicas de Domínio, conhecidas pelo pela sigla

DSL, para o desenvolvimento de IU [11]. Esses trabalhos têm, entre outras

características, a geração automática da IU através de transformações entre modelos

em diferentes níveis de abstração, com o objetivo de reduzir custos e esforços no

desenvolvimento da IU.

No entanto, elas não geram aplicações completas. Isto ocorre porque os modelos

utilizados nas ferramentas de design de IU limitam-se a representar os aspectos de

interface, tais como diálogo e interação usuário-sistema [12], Sketches e protótipos

[13], entre outros. Os aspectos funcionais são deixados de fora dos modelos e devem

ser codificados manualmente [14,15].

Outras abordagens e ferramentas de desenvolvimento dirigidas por modelos

(DDM) [5] têm sido utilizadas para reduzir os esforços na construção do software. Os

principais casos de sucesso desta abordagem ocorrem em sistemas para domínios

específicos [6], onde os modelos são construídos com as linguagens específicas de

domínio (DSL) [7]. No entanto, essas abordagens ou ferramentas geralmente não dão

o apoio necessário para a construção da IU, com modelos focados na funcionalidade

do software e deixam a construção da IU em segundo plano. Assim, as interfaces

derivadas destes modelos funcionais perdem em qualidade principalmente quanto a su

usabilidade.

Para aprimorar essas limitações esse trabalho tem como objetivo apresentar a

UIIMT - Ferramenta para Modelagem de Interação e Interface de Usuário, que

permite a modelagem de interação e interface representadas em uma DSL visual

(diagramática), fundamentada nos conceitos da linguagem ALaDIM (Abstract

Language for Description of a Interactive Message). Seu principal objetivo é permitir

a elaboração de um modelo de interação que possa ser integrado com ferramentas de

design de interface, ou seja, que permita ao designer de interfaces visualizar de forma

integrada o modelo de interação com protótipos de interface, permitindo assim

identificar problemas de usabilidade. Dessa forma, espera-se que o designer, através

do modelo presente na UIIMT, tenha uma visão dos elementos utilizados nos

protótipos, ao mesmo tempo que pode visualizar o comportamento do sistema durante

a interação.

A seguir, são descritos os principais conceitos que fundamentam o

desenvolvimento desse trabalho. Na seção 2, é dada uma visão geral sobre DDM,

ADIUBM e também será apresentado os conceitos sobre DSLs e como elas podem

apoiar o desenvolvimento das IUs. Na seção 3 os trabalhos correlatos. Na seção 4 é

apresentada a ALaDIM, linguagem utilizada para a criação da DSL presente na

UIIMT. Nas seções 5 e 6 é apresentado o uso de padrões de interação na UIIMT

através do seu modelo de interação e a visualização do modelo integrado com os

protótipos de interface. Por fim na seção 7 as conclusões do trabalho são listadas

assim como direcionamentos para trabalhos futuros.

2 Desenvolvimento Dirigido por Modelos - DDM

A abordagem de desenvolvimento de software dirigido por modelos (DDM) consiste

em uma metodologia de desenvolvimento de sistemas que possui o objetivo de

oferecer aos desenvolvedores um alto nível de abstração para o desenvolvimento do

software, aliada a possibilidade de geração automatizada de código executável do

sistema. Essa abordagem visa oferecer um maior reuso de artefatos de software, uma

vez que separa a tarefa de modelagem do sistema em diferentes níveis de abstração,

desde níveis que consideram apenas requisitos lógicos do sistema, até requisitos

específicos de uma plataforma computacional alvo [5]. Hoje em dia existem diversas

linhas de desenvolvimento dirigido a modelos, tais como: MDA (Model-Driven

Architecture) [5], Fábricas de Software [28], Desenvolvimento de Interface de

Usuário Baseado em Modelos (DIUBM) [3, 20, 21]

O uso de DDM no desenvolvimento de software apresenta grandes vantagens para

a equipe e para o ciclo de produção de software. Pensar no software através de seu

domínio de atuação volta o foco do problema para o contexto do domínio em que o

cliente trabalha, deixando de lado os problemas mais técnicos que sempre estão

presentes no meio tradicional de desenvolvimento. Ao criar um modelo adequado e

que represente um domínio especifico, esse modelo se torna um artefato que pode ser

compartilhado por todos os envolvidos no projeto. Este modelo é essencial e

indispensável, pois é a partir dele que serão gerados todos os outros artefatos

necessários para o funcionamento da aplicação [16].

Normalmente, no método de desenvolvimento tradicional, sem usar técnicas de

DDM, o modelo de projeto do sistema serve apenas como referência para a

implementação. Tanto o próprio modelo quanto os mecanismos de automatização

existentes são limitados e praticamente todo o sistema deve ser codificado

manualmente. Com isso, à medida que a implementação do sistema avança, esse

modelo vai perdendo seu valor, pois normalmente as alterações realizadas durante a

implementação não são nele refletidas. Embora o modelo de referência tenha um

papel importante no desenvolvimento, o esforço nele gasto não é reaproveitado na

implementação do sistema, pois os mecanismos de automatização para gerar código-

fonte são limitados. Com a introdução do DDM, o modelo passa a ter um valor maior

durante o desenvolvimento do sistema, pois alterações realizadas no modelo implicam

alterações automatizadas no código-fonte. Entretanto, o DDM não especifica, por

exemplo, como esses modelos devem ser usados para tratar a interação com o usuário,

o que é fundamental para definição da IU.

2.1 Ambientes de Desenvolvimento de Interfaces de Usuário Baseado em

Modelos - ADIUBM

A expressão Ambientes de Desenvolvimento de Interfaces de Usuário Baseado em

Modelos (ADIUBM) refere-se a um ambiente de software que apóia o

desenvolvimento de IU utilizando-se de vários modelos que guiam o processo [17].

Os modelos representam os aspectos associados a um sistema em diferentes níveis de

abstração, tais como os propostos no framework de Puerta e Eisenstein [18]. Neste

framework, estão previstos modelos de IU em cinco categorias: modelo de tarefas,

modelo de domínio, modelo de usuário, modelo de apresentação e modelo de diálogo.

Em [3] é apresentado um comparativo entre quatorze ADIUBMs, que são

comparados através de um framework definido pelo autor, denominado User

Interface Model Framework. O framework foi definido para permitir uma melhor

comparação entre os processos de design, abordagens, integração entre modelos,

modelos utilizados pelas ferramentas entre outras características. No trabalho em

questão foram definidos quatro modelos básicos para esse framework utilizado para a

comparação, são eles [3]:

Modelo de Aplicação: descreve as propriedades da aplicação para a IU;

Modelo de Tarefa-Diálogo: descreve as tarefas que os usuários são capazes de

executar usando o aplicativo, bem como a forma como as tarefas estão

relacionadas umas as outras;

Modelo de Apresentação Abstrato: fornece uma descrição conceitual da estrutura e

do comportamento dos elementos visuais da interface do usuário;

Modelo de Apresentação Concreto: descreve em detalhes as partes visuais da IU.

Apresentando como a IU é composta em termos de widgets.

Em alguns ADIUBMs, os desenvolvedores são capazes de especificar, gerar e

executar interfaces de usuário para plataformas específicas [3], além de permitir a

integração entre esses modelos. As três principais vantagens na utilização desses

ADIUBMs, são [3]:

Eles podem fornecer uma descrição mais abstrata da IU do que as descrições de IU

fornecidas por outras ferramentas de desenvolvimento de IU;

Eles facilitam a criação de métodos para projetar e implementar a IU de uma forma

sistemática, uma vez que oferecem as possibilidades: (1) modelar IU utilizando

diferentes níveis de abstração; (2) aperfeiçoar os modelos de forma incremental; e

(3) re-utilizar as especificações de IU;

Eles fornecem a infra-estrutura necessária para automatizar tarefas relacionadas

com o processo de concepção e implementação da IU.

Algumas desvantagens também são apontadas:

A complexidade dos modelos e notações, que muitas vezes são difíceis de aprender

e usar;

As interfaces geradas através dos modelos em algumas ferramentas podem ser

manualmente refinadas a fim de se chegar a interface final. Mas esses refinamentos

não são replicados nos modelos previamente gerados;

Apesar de conceitualmente os modelos representarem a mesmas características,

tais como tarefas, diálogo. Geralmente um modelo gerado em uma ferramenta não

pode ser aproveitado em outro ambiente, devido principalmente á falta de

padronização das notações utilizadas nos modelos.

Como visto, abordagens e ferramentas dirigidas por modelos, voltadas para o

desenvolvimento de software ou especificamente para a IU, tem suas vantagens e

desvantagens, dentro desse contexto as DSLs podem ser utilizadas para apoiar essas

abordagens ou ferramentas ou até para suprir algumas dessas desvantagens.

2.2 Linguagens Específicas de Domínio - DSL

Linguagens específicas de domínio (DSLs) são linguagens para um propósito

especial, projetadas para resolver uma determinada abrangência de problemas

relacionados a um domínio [19]. Exemplos comuns de DSLs são: HTML, projetada

para representar o layout de páginas da Web, SQL, destinadas a consultar e atualizar

bancos de dados.

A DSL tem, em sua essência, a qualidade de reduzir o tamanho dos problemas. Por

exemplo, a linguagem SQL permite que vários usuários simultâneos possam

estabelecer, consultar e combinar grandes listas de dados. Sem ela, seria uma enorme

tarefa de programação. Sem expressões algébricas e lógicas, a pesquisa de sub-

seqüências dentro do texto implicaria escrever um programa complicado [19].

O uso de DSLs para a modelagem, ao invés de linguagens de propósito geral como

a Unified Modeling Language (UML), permite expressar soluções no idioma e no

nível de abstração do domínio do problema, contribuindo para a redução dos esforços

de tradução dos conceitos desse domínio para o domínio da solução [23]. Assim os

modelos tornam-se mais específicos e completos, e recursos tais como: frameworks,

padrões de projeto e componentes, podem ser incluídos na modelagem com o objetivo

de gerar maior quantidade de código e com melhor qualidade [24].

As linguagens de descrição de interface de usuário (LDIU). são exemplos de DSL

que possibilitam especificar as características de uma IU. Hoje em dia, diversos

dispositivos existentes, tais como telefones celulares, caixas eletrônicos, e assim por

diante, tem interfaces complexas. Estas interfaces são geralmente organizadas através

de regras que fazem a interface previsível, como uma regra que, ao pressionar um

botão para cancelar sempre o leva de volta a um estado conhecido, ou introduzir o

texto segue sempre o mesmo conjunto de regras. Uma DSL pode ser criada para a

concepção de tais sistemas, onde a aparência gráfica da linguagem corresponde à

aparência da IU que está sendo projetado, e as regras de interação da interface são

capturadas na estrutura da linguagem.

Algumas LDIUs são linguagens baseadas em esquema XML. Como exemplos de

LDIU pode-se destacar a UsiXML (USer Interface eXtensible Markup Language)

[20] e a IMML (Interactive Message Modeling Languange) [21].

A UsiXML é uma linguagem de descrição de interfaces de usuário que utiliza

vários níveis de abstrações, que permitem especificar múltiplos modelos envolvidos

no projeto de uma interface de usuário como: tarefa, domínio, apresentação, diálogo e

contexto de uso, o qual é decomposto em usuário, plataforma e ambiente.

A IMML é uma LDIU fundamentada nas bases teóricas da Engenharia Semiótica

[22], que possibilita descrever de forma abstrata a interface do usuário além de

possibilitar o desenvolvimento da IU baseado em modelos.

Os benefícios no uso das DSLs podem ser consideráveis. Alterações nos requisitos

podem ser representadas por alterações no modelo e, desse modo, rapidamente

implementadas. As alterações na plataforma tecnológica podem ser incorporadas pela

manipulação da etapa de integração do padrão, sem modificar a representação

modelada. O volume de códigos a ser atualizado é menor e os erros de código gerado

podem ser reparados corrigindo-se o gerador do código [19].

Reduzir custos no desenvolvimento de novas DSLs é o objetivo de uma categoria

de ferramentas denominadas Language Workbenches [25]. Uma Language

Workbench pode ser descrita como um conjunto de ferramentas destinadas

especificamente à criação e à implantação de novas DSLs em ambientes de

desenvolvimento existentes, tal como a DSL Tools, que será utilizada para o

desenvolvimento da ferramenta proposta, assim como para a elaboração da DSL que

representará o modelo de interação e interface.

2.2.1 DSL Tools

As DSL Tools fazem parte do Visual Studio SDK que facilita muito a implementação

de uma DSL ou, melhor dizendo, para construir uma ferramenta de modelagem

específica de domínio. Com as DSL Tools, o autor da DSL define os conceitos da

linguagem, as formas usadas para processar esses conceitos na superfície de edição

diagramática e os vários componentes auxiliares usados para carregar e salvar o

modelo para integrar a nova ferramenta no Visual Studio e para gerar o código e os

outros artefatos dos modelos criados com a ferramenta [19]. A versão do Visual

Studio utilizada para o desenvolvimento do trabalho juntamente com as DSL Tools é

a 2010 Ultimate.

Com a utilização da DSL Tools, foi realizado a construção de um metamodelo com

os conceitos da linguagem ALaDIM. Também foi elaborada a representação

diagramática e as regras de validação sintática e semântica da linguagem da DSL .

É possível, também, através do suporte de templates (T4 - Text Template

Transformation Toolkit), gerar qualquer tipo de documento, desde códigos em C#,

XML, a documentos de texto.

3 Trabalhos Correlatos

Trabalhos recentes têm demonstrado a utilização de ferramentas e abordagens DDM

para o desenvolvimento de IU. Botterweck [9] apresenta uma abordagem denominada

MANTRA (Model-bAsed eNgineering of multiple interfaces withTRAnsformations),

onde são realizadas especificações de IU em diferentes níveis de abstração, para

através de um processo de transformações entre modelos gerar IUs concretas para

diferentes plataformas, com o objetivo de reduzir o esforço durante o

desenvolvimento. Dessa forma, gerando interfaces para desktop (GUI – Graphical

User Interface), Web (WUI – Web User Interface) e Mobile (MUI – Mobile User

Interface). O trabalho apresentou resultados satisfatórios para a geração de interfaces

para as múltiplas plataformas.

Costa Neto et. al. [10] verificaram a viabilidade de utilizar estratégias de

desenvolvimento de IU baseados em modelos (DIUBM) com métodos e tecnologias

dirigidas por modelos. Foi apresentada uma proposta para desenvolvimento de

interfaces para múltiplas plataformas baseada em modelos, mais especificamente

utilizando modelos da IMML [21] com as tecnologias DDM. Nesse mesmo trabalho

foi desenvolvido um experimento para geração de IUs para plataformas desktop

(GUI) e Web (WUI) a partir da especificação de modelos abstratos.

Esses trabalhos têm entre outras características a geração automática da IU através

de transformações entre modelos baseados em modelos de IU ou linguagens de

descrição de IU em diferentes níveis de abstração, com o objetivo de reduzir custos e

esforços no desenvolvimento da IU.

Vernazza [11] apresenta uma ferramenta que visa proporcionar uma abordagem

baseada em DSLs que permite a modelagem de IU em um alto nível de abstração e

que gera o códgo dela sem a necessidade do designer realizar qualquer tipo de

codificação. A ferramenta funciona integrada ao Visual Studio 2005. Uma das

propostas da ferramenta é que o designer tenha acesso a padrões de design de forma

rápida, diminuindo tempo de programação dos mesmos, evitando consulta externa a

definição de tais padrões. Isso é possível porque a ferramenta permite que o designer

possa manter um repositório não só de padrões, mas como também de layouts e

controles utilizados na interface. A ferramenta gera interfaces apenas para a

plataforma Web.

4 Uma Linguagem para Descrição do Modelo de Interação

A UIIMT é a primeira ferramenta que utiliza a linguagem ALaDIM (Abstract

Language for Description of Interactive Message). A ALaDIM vem sendo

desenvolvida pelo Grupo de IHC do Departamento de Informática e Matemática

Aplicada da Universidade Federal do Rio Grande do Norte (DIMAp - UFRN). A

ALaDIM está fundamentada na teoria da Engenharia Semiótica [22].

Essa linguagem é representada de forma visual (diagramática) e descreve o

processo de interação usuário-sistema usando uma abordagem baseada nas ações do

usuário e reações do sistema, onde o usuário interage com o sistema através de

espaços de interação. Essa linguagem foi escolhida por permitir ao designer de

interfaces analisar a estrutura de interação e assim identificar possíveis problemas de

usabilidade. Ela permite representar de forma diagramática a interação usuário-

sistema e os elementos funcionais do sistema. Neste trabalho, o foco é apenas o

modelo de interação, onde os aspectos funcionais são descritos apenas como uma

caixa preta. Os detalhes deste modelo serão descritos em um trabalho futuro.

4.1 Espaços de interação

Um espaço de interação oferece os mecanismos que permite ao usuário acionar as

funções do sistema e perceber os seus resultados. O conceito de espaço de interação,

em nosso modelo, está diretamente associado a uma função do sistema. Cada função é

a implementação de um requisito funcional. Dessa forma, espera-se deixar mais claro

para os envolvidos que para utilizar uma função, o espaço de interação oferece os

recursos necessários para a sua execução e para a avaliação dos resultados.

Para entender melhor alguns conceitos da linguagem vamos mostrar um exemplo

simples de modelo de interação (Fig. 1), para um cenário onde um usuário deseja

realizar a função de copiar arquivos, acompanhar a execução desta função e, se

desejar, cancelar o processo.

Em ALaDIM, os espaços de interação são locais utilizados pelo designer para

descrever um conjunto de interações básicas que serão realizadas pelo usuário afim de

utilizar uma função do sistema. Na ferramenta UIIMT, sua representação gráfica é um

retângulo de cantos arredondados, na Fig. 1 é apresentado dois exemplos, o Copiar

Arquivo e Copiando Arquivos. O espaço de interação Copiar arquivo indica as

possibilidades ação para executar o sistema. Associado a este espaço de interação

temos a função copiar arquivo um outro espaço de interação (Copiando arquivo) no

qual informa o estado de execução.

Fig. 1. Modelo de Interação na ferramenta UIIMT.

4.2 Elementos de interações básicas

Os espaços de interação oferecem elementos de interações básicas que podem ser

agrupados e organizados por meio de operadores de interação. Esse conjunto de

interações básicas é usado para permitir a entrada de informações, controlar a

execução de uma função de domínio, ou visualizar o progresso e os resultados da

função.

O espaço de interação está associado a uma função de sistema. Nesse caso, pelo

menos uma interação básica será responsável pela ativação da função. Outros

elementos de interação básica podem existir para realizar outros controles da função,

tais como suspender, retomar, parar, cancelar. As interações básicas que disparam

algum processamento por parte do sistema são de ações, esse conceitos serão

detalhados a seguir.

4.3 Operadores de interação do usuário

Os operadores de interação do usuário são abstrações através dos quais o design

indica como o usuário deve interagir. Dessa forma, ele é responsável por organizar o

comportamento dos usuários nos espaços de interação. Os operadores possuem os

seguintes significados:

sequence: usado para especificar que o usuário deverá executar as interações de

maneira ordenada;

repeat: é usado quando o usuário precisa repetir várias vezes as interações;

choose: usado quando o usuário precisa escolher uma dentre várias interações para

ser executada;

combine: usado quando duas ou mais interações têm alguma dependência entre si;

join: usado para agrupar interações que têm algum relacionamento, mas não

requerem uma ordem de realização.

Vale ressaltar que os operadores além de agrupar as interações básicas podem

agrupar a si mesmos, recursivamente. O modelo apresentado na Fig. 1 utiliza os

operadores sequence, join e choose.

As interações básicas representam as ações básicas que o usuário pode executar

sobre a IU de um sistema. São abstrações para ações como clicar num botão, marcar

um checkbox, selecionar uma opção no combo-box, etc. As interações básicas são as

seguintes:

perceiveInformation: usado para especificar uma interação básica de percepção de

informação, como um texto ou figura, por exemplo;

enterInformation: usado para especificar uma interação básica de entrada de

informação, como uma caixa de texto, por exemplo;

selectInformation: usado para especificar uma interação básica de seleção de

informação, como uma lista, por exemplo;

activate: usado para especificar uma interação básica de ativação de um controle,

como um botão ou link, por exemplo.

navigate: usado para especificar uma interação básica de ativação de um controle,

como um botão ou link, por exemplo, que irá levar o usuário a outro espaço de

interação, sem disparar a execução de algum processo.

No modelo construído com a UIIMT, as interações básicas que requerem algum

processamento do sistema, terão setas, rotuladas com seus respectivos nomes,

podendo sair do espaço de interação ou da própria interação básica em direção a

função do sistema correspondente. Na Fig.1 são utilizadas algumas interações básicas

distribuídas nos espaços de interação Copiar Arquivos e Copiando Arquivos.

4.4 Funções de sistema

As funções de sistema são usadas para representar os processos que desempenham

as regras (ou lógica) de negócios da aplicação, ou seja, um processo executado pelo

computador, capaz de mudar o estado da aplicação, através da manipulação de

informações fornecidas pelos usuários a partir dos espaços de interação, podendo

produzir novas informações e retornar aos espaços de interação para informar o

usuário dos resultados do processo. A Fig. 1 apresenta uma função de sistema (Copiar

Arquivos), representada por um retângulo com no centro do diagrama.

4.5 Fluxos de controle de apresentação

Para representar os aspectos dinâmicos do modelo de interação, a linguagem

permite descrever os fluxos de controle de apresentação que determinam como os

diversos espaços de interação são apresentados. Os fluxos de controle de apresentação

entre os espaços de interação e as funções de sistema são representadas por setas

direcionais, cujas direções indicam respectivamente uma ação do usuário (saindo do

espaço de interação e provocada por alguma interação básica) e reações do sistema

(saindo da função de sistema, finalizando o processamento, devolvendo o controle do

processo interativo ao usuário e/ou levando resultados para o espaço de interação).

As reações podem ser bem sucedidas ou não, sendo representadas respectivamente

pela linha cheia ou tracejada. Outro relacionamento presente no modelo de interação é

sincronismo, destinado exclusivamente para representar uma ligação síncrona entre o

espaço de interação e a função de sistema.

Os elementos presentes no modelos também serão utilizados para produzir uma

biblioteca de padrões de interação como será descrito a seguir.

5 Utilizando uma biblioteca de padrões

A UIIMT possibilita ao designer acessar uma biblioteca com elementos do modelo de

interação, que representam um conjunto de padrões de interação, de forma que seja

possível fazer o (re)uso dessas estruturas na construção de modelos de interação para

aplicações nas quais o designer busca garantir usabilidade à IU.

Para representarmos esse conjunto de padrões, optamos por selecionar aqueles que

segundo Folmer [26], trazem impactos consideráveis à arquitetura do software, caso

seja necessário acrescentá-los depois da arquitetura já ter sido definida. Estes padrões

estão disponíveis na UIIMT para o designer utilizar quando considerar necessário,

assim como outros padrões. A Fig. 2 apresenta a toolbox com a lista dos padrões.

Assim, quando o designer selecionar um padrão e adicioná-lo à área de edição, a

UIIMT apresentará a modelagem mínima necessária para a definição do padrão no

modelo de interação. A Fig. 2 apresenta como exemplo o padrão cancel [26, 27].

6 Integração entre o modelo de interação e protótipos de

interface

Neste trabalho mostramos como o usuário pode construir um modelo de interação,

assim como a utilização de padrões usando a UIIMT, outro recurso oferecido é a

visualização de forma integrada de um ou mais modelos de interação com protótipos

de IU.

Durante a modelagem o designer pode relacionar outros modelos de interação com

espaços de interação específicos presentes em um determinado modelo, isso é

importante no caso de um único modelo não ser suficiente para representar todas os

espaços de interação possíveis dentro de um cenário de uso mais complexo. Os

protótipos de interface também poderão ser relacionados aos espaços de interação

presentes no modelo, onde o designer através das propriedades do espaço de interação

presente na UIIMT poderá vincular imagens (.jpg) dos protótipos desenvolvidos.

Fig. 2. Padrão Cancel.

A partir desse momento, o designer ao acessar a opção "visualizar modelos e

protótipos" na área de edição do modelo poderá visualizar, através de páginas HTML,

os modelos com a descrição dos seus espaços de interação e os protótipos de interface

relacionados aos mesmos, na Fig. 3 é apresentado um exemplo.

Essas páginas HTML são geradas automaticamente a partir de templates (T4) que

capturam a imagem dos modelos, assim como suas informações e as imagens dos

protótipos vinculados aos espaços de interação. Dessa forma, o designer pode

visualizar e navegar através de links, por todos os modelos e seus espaços de

interação visualizando os protótipos de interface desenvolvidos.

Na Fig.3 é apresentado um modelo de interação para autenticação de um usuário,

na parte superior da imagem é exibido o modelo de interação criado na UIIMT, e logo

abaixo são listados seus espaços de interação (Autenticacao e Area Restrita) e sua

Função de Domínio (Efetuar Autenticação).

Todos os espaços de interação possuem páginas especificas que podem ser

acessadas a partir dos seus nomes presentes na página. Na Fig.3, ao acessar o link

"Autenticacao" referente ao espaço de interação presente no modelo, o designer é

direcionado para outra página onde poderá visualizar a sua descrição, o protótipo de

interface vinculado e a navegação a partir desse espaço de interação. Ou seja, a partir

dos relacionamentos referentes a esse espaço de interação ele pode acessar os outros

espaços de interação relacionados. Também é apresentado o nome das funções de

sistema.

Fig. 3. Visualização dos modelos integrados aos protótipos de interface.

7 Conclusão

Este trabalho apresentou a UIIMT, uma ferramenta com o objetivo de apoiar o

designer no desenvolvimento de interfaces de usuário utilizando uma DSL para

modelagem de interação e interface, seguindo abordagem dirigida a modelos. As

principais contribuições são: a visualização dos protótipos de interface em conjunto

com os modelos de interação e a análise da estrutura de interação usuário-sistema,

para a detecção de possíveis problemas de usabilidade ainda em tempo de projeto. A

UIIMT é também a primeira ferramenta a usar a linguagem ALaDIM que modela a

interface com um processo de comunicação do designer para o usuário conforme a

teoria da Engenharia Semiótica [22]. Tudo isso afim de obter melhores resultados

quanto ao desenvolvimento de interfaces de sistemas interativos.

A ferramenta ainda está sendo desenvolvida. Devido a isso ainda estão sendo

realizados estudos de caso para validação da ferramenta e sua abordagem de

desenvolvimento. Como trabalhos futuros espera-se permitir a geração de IU para

múltiplas plataformas, a partir da inclusão de outros modelos que apresentem

características diferentes sobre a IU ou outros aspectos do sistema como um todo.

Outro objetivo futuro é avaliar de forma qualitativa se a abordagem utilizada trouxe

ganhos quanto a diminuição de esforços no desenvolvimento da IU.

Referências

1. Silva, P.P., Paton, N.: User Interface Modelling with UML, Departament of computer

Science, Universaty of Manchester, UK (2000)

2. Silva, P.P., Paton N.: Improving UML Support for User Interface Design: A Metric

Assessment of UML. Proceedings of ICSE-2003 Workshop on Bridging the Gaps Between

Software Engineering and Human-Computer Interaction, R. Kazman, L. Bass and J. Bosch

(Eds.), Portland, OR, IFIP, pages 76-83. USA (2003)

3. Silva, P.P.: User Interface Declarative Models and Development Environments: A Survey.

Departament of computer Science, Universaty of Manchester, UK (2000)

4. Souchon, N., Vanderdonckt, J.: A review of XML-compliant user interface description

languages. In Proceedings of DSV-IS 2003, pages 377-391. Springer-Verlag (2003)

5. MDA - Object Management Group MDA Specifications.

<http://www.omg.org/mda/specs.htm> (2010)

6. Kelly, S., Tolvanen, J.: Domain-­Specific Modeling: Enabling Full Code Generation. Wiley-

­IEEE Computer Society Press (2008)

7. Sadilek, D. A.: Prototyping domain-specific language semantics. Proc. of the Companion to

the ACM SIGPLAN Conference on Object-­Oriented Programming Systems Languages and

Applications, pages 895­896 (2008)

8. Cirilo, C. E., Prado, A. F., Zaina, L. A. M., Souza, W. L.: Model Driven RichUbi - Processo

Dirigido a Modelos para a Construção de Interfaces Ricas de Aplicações Ubíquas Sensíveis

ao Contexto. In: Simpósio Brasileiro de Engenharia de Software - SBES, 2010, Salvador.

Anais do Simpósio Brasileiro de Engenharia de Software - SBES (2010)

9. Botterweck, G. A.: Model-Driven Approach to the Engineering of Multiple User Interfaces.

MoDELS 2006 Workshop, LNCS 4364, pages 106-115. Springer-Verlag Berlin Heidelberg

(2006)

10.Costa Neto, M. A., Souza, A. J., Lavor, R.B., Silva, C. B., Leite, J. C.: Desenvolvendo

Interfaces de Usuário Multiplataformas utilizando MDA. In: 1a Conferência Sul-Americana

de Design de Interação, 2009, São Paulo. Anais do Congresso de Design de Interação. SP:

IXDA - SP, v. 1. pages 26-35 (2009)

11.Vernazza, L.: Himalia: Model-Driven User Interfaces Using Hypermedia, Controls and

Patterns. 1st International Workshop on Model-Driven User-Centric Design & Engineering

MDUCDE’07, Seul (2007)

12.Mori, G., Paternò, F., Santoro, C.: CTTE: Support for Developing and Analysing Task

Models for Interactive System Design. IEEE Trans. Software Eng., Vol. 28, No. 8, pages

797-813 (2002)

13. Microsoft Expression Blend, http://www.microsoft.com/expression

14.Kruchten, P.: The 4+1 View Model of architecture. IEEE Software 12, 6, pages 42-50

(1995)

15.Hofmeister, C., Nord, R., Soni, D.: Applied software architecture. Addison-Wesley

Longman Publishing Co., Inc. Boston, MA, USA (1999)

16.Langlois, B., Exertier, D., Bonnet, S.: Performance Improvement of DDM Tools. In

EDOCW ’06: Proceedings of the 10th IEEE on International Enterprise Distributed Object

Computing Conference Workshops. P. 19. IEEE Computer Society (2006)

17.Puerta, A. R.: A model-based interface development environment. IEEE Software,

14(4):40–47 (1997)

18.Puerta, A., Eisenstein, J.: Towards a general computational framework for model-based

interface development systems, Proceedings of the 4th International Conference on

Intelligent User Interfaces, ACM Press, pages.171–178 (1999)

19.Cook, S., Jones, G., Kent, S., Wills, A. C.: Domain-Specific Development with Visual

Studio DSL Tools. Addison-Wesley Professional (2007)

20.Vanderdonckt, J., Limbourg, Q., Michotte, B., Bouillon, L., Trevisan, D., Florins, M.:

USIXML: a User Interface Description Language for Specifying Multimodal User

Interfaces. W3C Workshop on Multimodal Interaction. Sophia Antipolis, 19-20 (2004)

21.Leite, J. C. Specifying the user interface as an interactive message. In Proceedings of

Human-Computer Interaction International (HCII’2003), volume 2, pages 716–720,

Heraklion, Creta. Lawrence Erlbaum Associates (2003)

22.de Souza, C. S.: The Semiotic Engineering of Human-Computer Interaction (Acting with

Technology). The MIT Press. (2005)

23.Chavarriaga, E., Macías, J.A.: A model-driven approach to building-­driven approach to

building modern semantic web-based user interfaces. Advances in Engineering Software,

vol. 40, n. 12, pages 1329-1334 (2009)

24.Greenfield, J., Short, K., Cook, S., Kent, S.: Software Factories: Assembling Applications

with Patterns, Models, Frameworks, and Tools. Wiley (2004)

25.Fowler, M.: Language workbenches: the killer-app for domain specific languages?,

http://www.martinfowler.com/articles/languageWorkbench.html. (2005)

26.Folmer, E: Software Architecture Analysis of Usability. Ph.D. thesis, University of

Groningen (2005)

27.Tidwell, J.: Designing Interfaces: Patterns for Effective Interaction Design.

http://www.designinginterfaces.com/ (2005)

28.Greenfield, J., Short, K., Cook, S., Kent, S., Crupi,J.: Software Factories: Assembling

Applications with Patterns, Models, Frameworks, and Tools. John Wiley. (2004)