Ferramenta para Modelagem de Interação e Interface de Usuário



Documentos relacionados
Table 1. Dados do trabalho

ENGENHARIA DE SOFTWARE I

Interface Homem-Computador

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Transformação de um Modelo de Empresa em Requisitos de Software

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Prototipação de Software

Modelagemde Software Orientadaa Objetos com UML

Processos de Desenvolvimento de Software

Engenharia de Software III

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Introdução à Engenharia de Software

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Requisitos Estudo de Caso

Feature-Driven Development

02 - Usando o SiteMaster - Informações importantes

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

UML - Unified Modeling Language

4 O Workflow e a Máquina de Regras

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Wilson Moraes Góes. Novatec

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Fase 1: Engenharia de Produto

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Análise de Dados do Financeiro

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Concepção e Elaboração

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Apresentação 24/12/2014. Professor Wilker Bueno

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

2 Diagrama de Caso de Uso

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

ISO/IEC 12207: Gerência de Configuração

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Noções de. Microsoft SQL Server. Microsoft SQL Server

Requisitos de Software

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA

Documento de Arquitetura

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Semântica para Sharepoint. Busca semântica utilizando ontologias

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Figura 1 - Arquitetura multi-camadas do SIE

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Dadas a base e a altura de um triangulo, determinar sua área.

Projeto de Sistemas I

Microsoft Office PowerPoint 2007

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Frameworks. Pasteur Ottoni de Miranda Junior

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Processo de Desenvolvimento Unificado

BPMN Business Process Modeling Notation

2. Sistemas Multi-Agentes (Multi-Agent System - MAS)

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Sistemas de Informação I

Persistência e Banco de Dados em Jogos Digitais

agility made possible

Aspectos técnicos do desenvolvimento baseado em componentes

CASE Orientada a Objetos com Múltiplas Visões e Implementação Automática de Sistemas - MVCASE

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Um processo para construção de software mais transparente

Formalismos de Grafos de Interação (Surveys)

Projeto de Arquitetura

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

Modelo Cascata ou Clássico

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

O Processo Unificado: Captura de requisitos

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Fábrica de Software 29/04/2015

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

A aplicação da Engenharia Semiótica no design da interface de usuário do software ASK2000

UFG - Instituto de Informática

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Criando Quiz com BrOffice.impress

Organização e Arquitetura de Computadores I. de Computadores

Transcrição:

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 renato@ppgsc.ufrn.br jair@dimap.ufrn.br 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ódigofonte 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 subseqüê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áriosistema 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)