Análise e Modelagem de Tarefas Marco A. A. Winckler1, Marcelo Soares Pimenta2 IHC2004 (Tutorial)* 1 2 LIIHS-IRIT (Université Paul Sabatier, Toulouse 3), 118 route de Narbonne, 31062 Toulouse CEDEX 4, France Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brasil [email protected] ,[email protected] Resumo. O objetivo geral deste tutorial é apresentar aos participantes os conceitos fundamentais de Análise e Modelagem de Tarefas. Em particular, pretende-se: i) apresentar fundamentos de Análise de Tarefas e Modelagem de Tarefas; ii) apresentar alguns modelos de tarefas existentes; pretende-se em particular demonstrar o uso da notação CTT (Concurrent Task Tree) e do ambiente CTTE (CTT Environment), um dos ambientes mais difundidos e utilizados na atualidade para modelagem de tarefas; e iii) discutir os possíveis usos de modelos de tarefa em algumas etapas do ciclo de desenvolvimento de uma aplicação interativa. Estudos de casos reais serão preferencialmente utilizados para exemplificar os conceitos apresentados. Mais do que ter a pretensão de ser um tutorial exaustivo, nossa intenção é dar uma visão panorâmica sobre o assunto PALAVRAS-CHAVE: Interação Homem-Computador, Modelos de Tarefa, Análise de tarefa, Modelo CTT e Ambiente CTTE, Usos de Modelos de tarefa. 1. Introdução Hoje há um consenso entre os desenvolvedores de software de que a qualidade do desempenho do usuário no uso de um sistema interativo está ligada à usabilidade, um critério de qualidade associado ao componente conhecido como Interface com o Usuário (IU) deste sistema. Sistemas computadorizados são projetados para auxiliar as pessoas a executarem tarefas. Logo, tarefas deveriam ser de interesse central para os desenvolvedores de software [Johnson, 1992]. De fato, diversos autores da comunidade IHC (Interação Homem-Computador) convergem para a idéia central de que para projetar sistemas com maior usabilidade devemos compreender melhor as tarefas executadas pelas pessoas de modo a aplicar nosso entendimento das tarefas no desenvolvimento de aplicações [Preece 02, Bodart 94, Diaper 89, Johnson 92]. * Este material de apoio foi confeccionado como complemento ao material (slides, software, etc) usado pelos ministrantes durante o tutorial. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas A principal meta dos enfoques de projeto de IHC é aumentar a qualidade da interface com o usuário produzindo sistemas interativos não só funcionais e confiáveis mas também usáveis. Os enfoques de projeto baseados em modelos (model-based) permitem representar várias informações da interface e de seu design em um alto nível de abstração. Isto permite várias vantagens como acoplamento a um enfoque metodológico de concepção, rastreabilidade e reuso de modelos, geração de (partes de ) interfaces a partir destes modelos, e melhor reflexão sobre as decisões e exploração de alternativas do design. Entre os modelos comumente presentes nestes enfoques há modelos de usuário, diálogo, apresentação, domínio, contexto, plataforma tecnológica e tarefas para citar apenas alguns. Em particular, o uso de Análise de tarefas e Modelos de Tarefas visa um melhor entendimento de propriedades das tarefas realizadas pelos usuários em suas atividades e a aplicação deste entendimento no processo de construção da interface. O objetivo geral deste tutorial é apresentar aos participantes os conceitos fundamentais de Análise e Modelagem de Tarefas. Em particular, pretende-se: i) apresentar fundamentos de Análise de Tarefas e Modelagem de Tarefas; ii) apresentar alguns modelos de tarefas existentes; pretende-se em particular demonstrar o uso da notação CTT (Concurrent Task Tree) e do ambiente CTTE (CTT Environment), um dos ambientes mais difundidos e utilizados na atualidade para modelagem de tarefas; e iii) discutir os possíveis usos de modelos de tarefa em algumas etapas do ciclo de desenvolvimento de uma aplicação interativa. Estudos de casos reais serão preferencialmente utilizados para exemplificar os conceitos apresentados. Este tutorial está estruturado da seguinte forma. Após esta introdução, a seção 2 estabelece algumas definições de tarefa, análise de tarefa e modelos de tarefa. As seções 3 e 4 apresentam respectivamente uma introdução sobre análise de tarefa e modelagem de tarefas. A seção 5 contém uma descrição mais detalhada da notação CTT (Concurrent Task Tree) e do ambiente CTTE (CTT Environment) . Na seção 6 discutem-se possíveis usos de modelos de tarefas no ciclo de desenvolvimento de sistemas interativos. 2. Definições Inicialmente, é preciso considerar a significação do termo “tarefa” que pode assumir uma interpretação diferente segundo vários autores [Draper 85] [Benyon 92] [Storrs 95] [Bodart 94], [Preece 2002]. A existência de várias definições de tarefa implica na existência de diferentes métodos para Análise de tarefa e de diferentes modelos de tarefa para representar seus resultados segundo estas diferentes perspectivas. Neste tutorial adotamos a definição de [Storrs 95], primeiramente por que ela explicita a importante relação entre ações, objetivos e contextos, mas também por que ela foi formulada para unificar a terminologia sobre o assunto. “Uma tarefa é um objetivo associado a um conjunto ordenados de ações que podem satisfazer tal objetivo nos contextos apropriados” [Storrs 95]1 Assim, embora seja aparentemente similar a conceitos como “função” ou “processo”, o termo “tarefa” incorpora uma ênfase intencional (relacionada a intenção, objetivo) da perspectiva do usuário (o quê o usuário quer fazer). Um objetivo pode ser 1 Do original inglês: ‘A task is a goal together with the ordered sets of tasks and actions that would satisfy it in the appropriate contexts.’ IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas definido como um estado (de uma situação ou de um sistema) que o usuário deseja alcançar. Genericamente, então, o conjunto de ações são os procedimentos que o usuário deve realizar para alcançar este estado. A Análise de Tarefa (AT) emergiu da Ergonomia como um método empírico que permite descrever e analisar como as pessoas realizam suas atividades. “Análise de Tarefa (AT) é o termo genérico para um conjunto de métodos para descrever as tarefas das pessoas visando entender melhor os procedimentos para sua realização.[UsabGlossary] O enfoque básico da AT é descrever a tarefa como tendo um objetivo determinado e um conjunto de passos envolvidos na sua realização. O nível de detalhe desta descrição é determinado pelas intenções da AT. A prática usual da Ergonomia adota AT basicamente para entender as tarefas de um ambiente de trabalho de forma a ter informações para discutir causas e soluções dos problemas encontrados na sua realização e possivelmente determinar quais são as necessidades de treinamento. Logo ficou evidente a possibilidade de usá-la para prover informações para a concepção de suporte computadorizado a estas tarefas. É com esta intenção que a comunidade IHC se interessa primordialmente por AT. Uma melhor compreensão de tarefas pode auxiliar a delimitar um problema coletando informações de modo sistemático sobre um problema, organizar as informações coletadas, fazer predições de tempo de execução de tarefas, prevenir erros (identificando procedimentos difíceis e/ou confusos), auxiliar a identificar as fontes de problemas e gerar hipóteses para solucioná-los. Esta diversidade de intenções tem motivado um grande número de métodos e técnicas de análise de tarefa sendo o denominador comum entre elas a descrição de tarefas em termos de unidades de atividade identificáveis. A análise da tarefa em um domínio específico pode produzir uma descrição explícita de tarefas chamada Modelo da Tarefa. Muitos modelos da tarefa são usados para representar os resultados da análise de tarefa, cada modelo enfatizando uma perspectiva. “Modelo de Tarefa (MT)é uma descrição lógica das atividades a serem executadas para alcançar os objetivos do usuário.”[Paternó 2001] Aqui, estamos interessados com a descrição em que objetivos e as atividades para alcançá-los são explicitamente definidos, para permitir um entendimento mais detalhado dos passos e dos relacionamentos entre eles. Esta definição explícita do objetivo permite refletir sobre os procedimentos para que ele possa ser mais eficientemente alcançado. Muitas vezes, isto permite analisar, criticar e re-elaborar estes procedimentos, aumentando sua simplicidade, eficácia e usabilidade. Uma boa referência sobre o uso de modelo de tarefas (MT) no ciclo de desenvolvimento de sistemas interativos é [Paternó2001]. Geralmente, um MT descreve certos conceitos relacionados de forma a representar aspectos relevantes das tarefas e dos usuários. Alguns conceitos e relacionamentos são comuns e presentes em quase todos tipos de MT, enquanto outros são especificamente propostos e usados em um modelo em particular. Os conceitos e relacionamentos mais comuns de MT são: • Decomposição da tarefa, onde uma tarefa é tipicamente descrita de maneira hierárquica: o nível mais alto contém a tarefa principal sucessivamente dividida em IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas • subtarefas menores recursivamente até que, nos níveis mais baixos (chamado também de nível articulatório) são descritas ações físicas que não podem mais ser decompostas (tais ações são tipicamente associadas com a interação sobre um dispositivo); Relacionamentos causais/temporais, que descrevem o fluxo da tarefa, indicando a ordem em que as subtarefas são executadas, geralmente através de construtores típicos (seqüência , simultaneidade, entrelaçamento, etc); Além destes, há outros elementos que descrevem objetos (manipulados pelas tarefas), papéis e atores (responsáveis pelas tarefas), restrições (p.ex. pré- e póscondições) e propriedades (freqüência de realização, prioridade, etc.) associadas às tarefas. Mais detalhes sobre todos estes elementos estão presentes em [Welie98], [Balbo 2004] e [Limbourg 2001]. Outros trabalhos envolvem conceitos mais avançados de MT tais como padrões de tarefas (task patterns) [Breedvelt 97] [Paternó 2001], modelos de tarefa cooperativos [van der Veer 96] e templates de interação [Paquette 2004]. 3. Análise de tarefa O uso da Análise de tarefas (AT) começou na Ergonomia num esforço de descrever os comportamentos elementares envolvidos na execução de uma atividade de trabalho. Desta forma, AT era essencial para a Análise do Trabalho (Work Analysis): a expressão “conhecer o trabalho para modificá-lo” resume sua motivação. Uma excelente descrição sobre Análise (Ergonômica) do Trabalho é [Cybis 1996]. Logo surgiram diferentes métodos de AT, muitos recebendo influência da Psicologia Cognitiva, e que são distinguidos basicamente pela forma de coletar , classificar e interpretar os dados sobre a realização de tarefas em situações de trabalho. AT é um processo interativo e iterativo, com períodos alternados de coleta, classificação e de interpretação de dados. Várias famílias de métodos de AT existem e entre as principais estão a Análise Hierárquica de Tarefas – abreviada AHT (Hierarchical Task Analysis – HTA), e a Análise Cognitiva de tarefas (Cognitive Task Analysis). Figura 1 – Exemplo de AHT aplicada à tarefa “preparar chá” (make tea) AHT é a mais comumente utilizada, decompondo uma tarefa de modo top-down para formar uma hierarquia de subtarefas que por sua vez podem também ser IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas decompostas sucessivamente. Em geral, sugere-se que a decomposição acabe quando for atingido um nível baixo de descrição em termos de ações elementares nãodecomponíveis (em IHC, ações elementares são movimentos e cliques de mouse, pressionamento de teclas, etc). A figura 1 mostra um exemplo de uso de AHT. Claramente, a família de AHT está orientada a uma visão mais procedural da realização de uma tarefa de modo que a estrutura hierárquica corresponde a um plano para realização da tarefa. A Análise Cognitiva de tarefas por sua vez interessa-se mais por princípios psicológicos ou cognitivos relacionados à tarefa. Assim, investiga o conhecimento ou habilidade necessários para a realização da tarefa e por isto se concentra mais na análise (e possivelmente na predição) da performance do usuário e as razões de sua variabilidade. Os resultados da AT nem sempre são documentados, ou seja, nem sempre AT produz um MT ou uma representação explícita das tarefas analisadas. No entanto, em IHC a modelagem explícita de tarefas é fundamental para o processo de concepção e avaliação de sistemas interativos. Há vários autores que defendem o uso de MT mas não informam como é obtido. Talvez esta seja uma das razões para que a penetração da AT no mercado seja relativamente reduzida, não só no âmbito nacional mas também internacionalmente (Diaper 2001). Embora haja várias formas de realizar Análise de tarefa (AT), o processo pode de alguma forma ser resumido para fins didáticos em um procedimento genérico. Basicamente, AT consiste das seguintes etapas (adaptado de [Greenberg 2004]: 1. Inventariar tarefas: descobrir as tarefas que o usuário faz; Use diferentes técnicas de coleta: o ideal é observar e/ou entrevistar o usuário real ou seus representantes. Tente identificar objetivos gerais e construir uma lista de tarefas relacionadas a estes objetivos. Lembre-se que devem ser identificados objetivos genéricos e não específicos dependentes de uma tecnologia. Por exemplo, no contexto de um caixa eletrônico, “Identificar usuário” é um objetivo genérico enquanto “Digitar ID e senha” é um objetivo específico descrito em termos da tecnologia. 2. Selecionar tarefas a serem analisadas e descritas com mais detalhes: tipicamente as tarefas selecionadas incluem as mais freqüentemente realizadas ou as mais críticas. 3. Descrever as tarefas: decompor e ordenar as tarefas. Decompor significa detalhar as tarefas (descrevendo-as em termos de subtarefas e procedimentos, p.ex. se usarmos AHT) e ordenar significa definir o ordenamento causal e/ou temporal das tarefas (sequencia, entrelaçamento, simultaneidade, etc). Aqui é construído o modelo de tarefas (MT). 4. Validar as tarefas descritas: uma alternativa simples é apresentar o MT a alguém não envolvido na AT mas que conheça bem as tarefas para verificar sua consistência. 4. Modelos de tarefa De fato, há vários modelos de tarefa (e notações associadas) na literatura, cada um chamando atenção a um subconjunto de aspectos associados à maneira pela qual as pessoas fazem suas tarefas. Por exemplo, MAD [Scapin 89], TKS [Johnson 88] e ATOM [Walsh 89] focam respectivamente na decomposição hierárquica de tarefas, no IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas conhecimento necessário para realizar uma tarefa e às relações atores-objetos-ações associadas às tarefas. Em geral, uma notação está tipicamente direcionada a modelar/representar alguma perspectiva sobre a tarefa, entre as quais: • Modelos de tarefas cognitivas do usuário (também denominados de modelos cognitivos – “cognitive models”) representam o conhecimento que os usuários necessitam para a realização de uma tarefa (por exemplo Task Knowledge Structures - TKS [Johnson 88]); • Modelos de tarefas interativas (“interactive task model” também denominados modelos de interação ou modelos de diálogo) descrevem as ações que os usuário tem que realizar na operação de um sistema para atingir seus objetivos (por exemplo CLG [Moran 81], TAG [Payne 86], UAN [Siochi 91] [Hartson 90]); • Modelos de tarefas de usuário (“user tasks”) descrevem como as ações dos usuários se organizam no decorrer de suas atividades (por exemplo, MAD [Scapin 89]). Segundo a classificação de [Brun 95] os modelos genuinamente concebidos para análise de tarefa são MAD et CLG cuja origem é a Psicologia Cognitiva. Alguns outros formalismos frequentemente utilizados para modelagem de tarefa podem ser classificados também como modelos de performance (incluindo GOMS e Keystroke [Card 83]) ou como modelos de diálogo (incluindo UAN e XUAN [Siochi 91] [Hartson 90]). Os modelos de performance direcionam-se sobretudo à avaliação da performance do usuário incorporando técnicas para predizer o tempo de execução de tarefas e taxas de erros. GOMS [Card 83] e TAG [Payne 86] são exemplos de técnicas avaliativas que modelam respectivamente a performance e a competência de usuario. Os modelos de diálogo são uma maneira de representar o diálogo entre o usuário e o sistema a um nível de abstração baixo. Um exemplo é UAN (User Action Notation). Os modelos de tarefa são uma maneira adequada de considerar o ponto de vista do usuário na concepção pois a) representam conceitos relacionados à atividades (de trabalho ou lazer) que os usuários realizam; e por isto b) permitem que o usuário compreenda, valide e participa ativamente do processo de análise. Certos trabalhos não diferenciam entre “tarefas existentes” e “tarefas futuras”, isto é, entre tarefas que o usuário realiza atualmente e tarefas previstas e que poderão ser realizadas como a interação com um (novo) sistema. Claramente, estão situadas em diferentes espaços do processo de concepção do sistema: as primeiras são parte do espaço-problema e as segundas são parte do espaço solução. Além dos já citados, há vários outros modelos como TAKD [Diaper 89b] , ETAG [Tauber 90] , GTA [van der Veer 96] e mesmo trabalhos que estudam a interseção entre cenários e modelos de tarefas [Diaper 2002]. Entretanto neste trabalho, apresentaremos um resumo dos modelos de tarefa MAD, UAN, ICO, GOMS e KLM que consideramos representantes dos diferentes tipos de modelos de tarefa. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 4.1 Método Analítico de Descrição de tarefas2 (MAD) Método Analítico de Descrição de tarefas (MAD) (Scapin 89, Sebillotte, 1995; Rodriguez and Scapin, 1997; Scapin and Bastien, 2001) é uma notação e uma metodologia que visa a descrição de tarefas com o objetivo final de melhor inserir preocupações ergonômicas na concepção de interfaces com usuários. MAD se baseia na descrição do objeto-tarefa e na decomposição hierárquica de tarefas em subtarefas com auxílio de construtores pré-definidos que descrevem relações temporais e lógicas entre estas diferentes subtarefas. Uma tarefa ou subtarefa é representada como uma árvore cujos nodos são tarefas, subtarefas ou ações elementares, e assim sucessivamente. A descrição do objeto-tarefa consiste de um conjunto de propriedades que caracterizam esta tarefa: um estado inicial, um estado final, pré-condições, póscondições e atributos p.ex. sua prioridade , se a tarefa iterativa ou não, se é opcional ou obrigatória, se pode ser interrompida ou não. Construtores em MAD operam sobre os nodos filhos de uma mesma tarefa, o que às vezes leva à criação de nodos abstratos artificiais para permitir usar algum construtor. Os principais construtores de MAD são : SEQ – para encadeamento sequencial de tarefas, PAR para execução paralela entrelaçada de tarefas por um mesmo agente executor; SIM para execução simultânea de tarefas por agentes executores distintos; ALT para expressar possibilidade de escolha entre tarefas alternativas; LOOP (ou @) para tarefas iterativas e OP para tarefas opcionais. 4.2 User Action Notation - UAN “User Action Notation” (UAN) [Hartson et al. 1990, Siochi 91, Shneiderman 98] consiste em uma notação orientada a tarefas e ações do usuário para descrever o projeto de interfaces assíncronas de manipulação direta. UAN é utilizado tipicamente para descrever como o usuário executa uma tarefa interativa mas não como o sistema é implementado para interpretar o comportamento do usuário. UAN foi concebida para servir como uma forma de comunicar a lógica de operação da interface a um projetista de software visando sua implementação, e claramente não é adequada a comunicação com usuários finais. AÇÕES DO USUÁRIO ~(Lista de aeroportos destino) M∨ TAREFA: Selecionar aeroporto destino FEEDBACK DA INTERFACE ESTADO DA INTERFACE Lista de aeroportos destino aparece Nome de aeroporto ! ~(Item da lista de aeroportos destino) M∧ Nome do aeroporto permanece na no topo da lista Aeroporto destino é selecionado e o itinerário do vôo é atualizado Figura 2 - Exemplo de descrição em UAN, extraído de [Balbo et al. 2004] Em UAN, uma interface é representada como uma estrutura quase hierárquica de tarefas assíncronas. No seu mais baixo nível de abstração, UAN é uma notação orientada a tarefas que descreve ações do usuário, os correspondentes feedbacks da interface e a informação de estado. Níveis de abstração são usados para esconder estes 2 Do original em francês "Méthode Analytique de Description de tâches". IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas detalhes e representar a interface inteira. Em todos os níveis, ações do usuário e tarefas são combinadas com relações temporais (como por exemplo, sequenciamento, paralelismo, intercalação, etc) para descrever o ordenamento entre elas. As descrições em UAN são apresentadas na forma de tabelas, como é mostrado na figura 2. O sentido da leitura de uma tabela é de cima para baixo e da esquerda para a direita. Os símbolos de UAN foram escolhidos, em sua maior parte, com a dupla intenção de permitir o uso de editores de texto convencionais para escrever descrições de tarefas e para serem visualmente onomatopéicos. Visando esta segunda característica, por exemplo, o sinal de til (‘~’) sugere movimento e o sinal de exclamação (‘!’) sugere atrair a atenção. A tabela 1 resume os símbolos de UAN e seus significados. Tabela 1 - Símbolos de UAN e seus significados. Símbolo UAN (Ação) ~ [X] ~[X] ~[x,y] ~[x, y in A] ~[X in Y] [X]~ ∨ ∧ X∨ X∧ X∧∨ X”abc” X(xyz) () * {} AB OR & ⇔ || ; ! -! !! !-! n (!-!) @x, y @X Exibe(X) Apaga(X) X>~ X>>~ Contorno(X) Significado Move o cursor Contextodo objeto X, no qual ele é manipulado Move o cursor para o contexto do objeto X Move o cursor para uma posição arbitrária (x, y) Move o cursor para uma posição arbitrária (x, y) dentro do objeto A Move o objeto X para dentro do objeto Y. Move o cursor fora do contexto do objeto X. Pressionar Liberar Aperte o botão, chave ou interruptor X. Libere o botão, chave ou interruptor X. Clicar botão, chave ou interruptor X Entrada do literal “abc”, via teclado. Entrada de valores para as variáveis xyz via o dispositivo X Mecanismo de agrupamento de tarefas. Tarefa executada zero ou mais vezes. A tarefa é opcional (realizada zero ou mais vezes). Tarefas A e B devem ser executadas na ordem da esquerda para direita ou de cima para baixo (AB). Escolha de tarefa (útil para mostrar tarefas alternativas). Tarefas são independentes quanto à ordem de execução Tarefas X e Y podem ser intercaladas no tempo. Tarefas podem ser executadas simultaneamente. A tarefa não precisa necessariamente ser executada Destaca o objeto Não destaca o objeto Destaque especial para o objeto. Objeto piscando na tela Objeto piscando na tela n vêzes. Numa posição específica (x, y) Na posição onde se encontra o objeto X. Mostra o objeto X na tela Apaga o objeto x da tela. O objeto X é arrastado pelo cursor. O objeto X muda de tamanho enquanto segue o cursor Apresenta o contorno do objeto X na tela. Assim, a descrição da figura 2 pode ser interpretada da seguinte forma: Para o usuário realizar a tarefa (“selecionar aeroporto destino”) , ele deve mover o cursor para uma list-box “~(Lista de aeroportos destino)” e pressionar o botão do mouse (“Mv”). Como resultado desta ação, o sistema faz a lista de opções aparecer (“lista de aeroportos destino aparece”). A medida que o usuário move o cursor na lista, cada item da lista é destacado (“Nome do aeroporto !”), e após a liberação do botão do mouse (“M∧”), o nome do aeroporto escolhido fica no topo da lista exibido como a opção escolhida (“Nome do aeroporto permanece no topo da lista”). Note que a descrição linha-por-linha IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas associa o feedback da interface a correspondente ação do usuário. Este nível de precisão é perdido em outros tipos de descrição, quando a ação do usuário e o feedback são misturados. 4.3 Interactive Cooperative Objects (ICO) Interactive Cooperative Objects (ICO) [Palanque 93] é um formalismo baseado em Redes de Petri a Objetos para modelagem do comportamento de um sistema interativo e que pode servir também para modelar as tarefas interativas entre o usuário e o sistema [Palanque 1995, Bastide & Palanque 1999, Navarre et al. 2001] . O formalismo considera que um objeto ICO é composto de: • Estrutura de dados (atributos); • Conjunto de operações (serviços internos ou serviços disponíveis como mensagens); • Estrutura de controle do objeto (ObCS - Object Control Structure) para modelar seu comportamento definido através de uma rede de Petri de alto nível; • Apresentação para descrever sua aparência externa e que está estruturada como um conjunto de widgets tais como botões, checkboxes, etc.; e • Função de ativação que, a cada par (widget, ação sobre o widget) associa um serviço do ICO. Além disto, o sistema interativo é descrito através de um conjunto de ICOs e de uma rede de Petri para descrever o comportamento do sistema e as interações entre os ICOs (WSCS- Whole System Control Structure). O princípio básico de modelagem ICO é utilizar um protocolo cliente-servidor para assegurar, para cada ICO, que o conjunto de serviços solicitados aos outros objetos (a demanda) está inclusa no conjunto de serviços oferecidos por eles (a oferta). Para avaliar a cooperação com os usuários, cada usuário é considerado como um ICO. Assim, pode-se assegurar que a demanda do usuário está incluída na oferta do sistema. Com ICO pode-se verificar se o modelo de concepção do sistema suporta o modelo de tarefa do usuário. Como os 2 modelos têm uma base (e uma notação) comum pode-se através de técnicas formais associadas à teoria das redes de Petri: • Validá-los de maneira isolada, isto é, mostrar que cada ICO é capaz de fornecer seus serviços; e • Compará-los e validar sua cooperação. O uso de formalismos como ICO em IHC tem uma série de vantagens – ver uma discussão extensa em [Palanque & Paterno 1997] - mas a principal é a possibilidade de especificar o modelo de tarefa com precisão e rigor, sem ambiguidade e com isto permitir análise de características do modelo sem uma versão executável do sistema e sem a participação do usuário, antecipando alguns aspectos da avaliação para as fases iniciais do ciclo de desenvolvimento de modo a predizer alguns dos aspectos de usabilidade do sistema. Evidentemente, estes modelos formais não substituem outras práticas, como testes com usuários. No entanto, usar modelos formais pode nos habilitar a responder mais cedo e com menos esforço a certas questões de desenvolvimento de IU. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 4.4 GOMS O modelo GOMS (acrônimo de Goals, Operators, Methods and Selection rules) foi desenvolvido como um modelo preditivo do desempenho de um ser humano ao interagir com um sistema. O modelo GOMS original [Card 83] é o ancestral de uma família de modelos que variam basicamente em relação à granularidade dos aspectos de performance do usuário modelados e usados nas predições – incluindo [Grasy et al. 1992, Kieras 1996, John & Kieras 1996, Baumeister et al 2000]. Basicamente, GOMS é um modelo de conhecimento e dos processos cognitivos do usuário quando interage com sistemas e tem sido usado principalmente para predizer o desempenho de usuários ao comparar diferentes aplicações e equipamentos e para ajudar a análise da eficiência de novos sistemas sem a necessidade de envolver usuários. GOMS pode ser usado no design de (novas) tarefas e por isto a noção de método (o “M” de GOMS) é tão importante. Um método é uma seqüência de operadores que descreve a performance de uma tarefa. Operadores (o “O” de GOMS) são ações físicas (pressionar uma tecla, apontar um item com mouse, “clicar” o mouse, etc) e cognitivas (decidir qual comando usar, esperar, etc) que o usuário executa. Tarefas são realizadas para alcançar objetivos (o “G” de GOMS), estados que o usuário quer atingir, e podem ser decompostas em subtarefas, que correspondem a objetivos intermediários. Quando vários métodos existem para o mesmo objetivo, uma regra de seleção (o “S” de GOMS), com base no contexto de uso, é usada para escolher o método apropriado. GOMS não é freqüentemente usado em avaliação por envolver um conjunto muito limitado de tarefas de entrada de dados, por não modelar erros adequadamente e não levar em conta informações contextuais (interrupções nas tarefas, fadiga, etc) que podem mudar comportamentos e desempenhos previstos. 4.5 KLM Keystroke Level Model (KLM) faz parte da família GOMS, mas concentra-se em predições quantitativas do desempenho do usuário [Card 83]. Tarefas podem ser comparadas em termos de tempo para executá-las ao usar diferentes estratégias (diferentes métodos na nomenclatura GOMS). Cada método é uma seqüência de operadores físicos e cognitivos e como cada operador tem um tempo de execução associado - determinado com base em experimentos prévios e que pode ser consultado em uma tabela presente em [Preece 2002] -, pode-se predizer o tempo necessário para realizar uma tarefa. 5. Modelagem de tarefas com ConcurTaskTrees (CTT) Esta seção apresenta a notação para modelagem de tarefas Concurrent Task Trees ou resumidamente ConcurTaskTrees (CTT) [Paterno 1997]. Esta notação foi escolhida para ilustrar aqui o processo de modelagem de tarefas pela sua capacidade de expressão na modelagem de sistemas interativos e porque é uma notação que vem sendo muito difundida e utilizada pela comunidade internacional de IHC. Além disto, a existência de uma ferramenta de edição e de suporte a análise de modelos, chamada CTT Environment (CTTE) [Mori 2002] (ver seção 5), facilita a criação de modelos de tarefas. A seguir são apresentados os fundamentos do modelo CTT e os principais elementos da notação. 5.1 Introdução ao modelo CTT As principais características de CTT são: IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas • Foco nas atividades: permite que o projetista se concentre nas atividades que os usuários precisam realizar com a interface sem se preocupar com detalhes de como a tarefa será implementada pelo sistema; • Estrutura hierárquica: suporta a representação de vários níveis de abstração pela decomposição de tarefas complexas em subtarefas menores; • Representação gráfica: modelos são descritos graficamente na forma de uma árvore de tarefas; • Suporte a relacionamentos temporais: um vasto conjunto de operadores é disponível permitindo definir relacionamentos temporais entre tarefas; • Alocação de tarefas: permite descrever os agentes que realizam a tarefa (ex. usuário e/ou aplicação); • Objetos: permite indicar objetos do domínio do problema que são manipulados durante a execução da tarefa. Os elementos da notação CTT são definidos em torno da idéia de que o objetivo do usuário ao realizar uma tarefa pode ser traduzido como uma modificação do estado do sistema ou uma consulta a um recurso do sistema. Assim, os modelos criados em CTT podem ser interpretados como uma representação (de alto nível de abstração) dos estados possíveis do sistema e do usuário durante a realização de uma tarefa específica. Segundo esta abordagem, a execução de cada tarefa individual é capaz de modificar a configuração de estados do sistema. O comportamento do modelo de tarefas é definido em CTT pela adição de operadores temporais (tais como escolha, repetição, seqüência, etc.) entre as tarefas. A existência de tais operadores temporais torna possível a modelagem de tarefas em sistemas interativos. 5.2 Definição de tarefas e seus atributos Cada tarefa individual em CTT é descrita através dos seguintes atributos: • Nome: usado para identificar a tarefa; • Subtarefa de: indica o nome da tarefa-pai, caso existir; • Objetos: lista de possíveis objetos do domínio da aplicação que podem estar associados a tarefa; objetos podem ser do domínio da interface ou do domínio da aplicação (objetos conceituais); • Tipo: existem quatro tipos possíveis para uma tarefa de acordo com o agente que a realiza (usuário, aplicação, interativa, abstrata); Os atributos nome e subtarefa de são atributos básicos de modelos de tarefas que permitem respectivamente a identificação individual de cada tarefa e a construção de uma hierarquia de tarefas onde cada tarefa conhece o seu ancestral imediato. Os demais atributos são detalhados a seguir. 5.2.1 Objetos Os objetos são entidades manipuladas durante a realização de tarefas. Sobre estes objetos são realizadas ações que podem ser cognitivas, lógicas ou físicas. Objetos podem ser objetos perceptíveis, ou objetos internos. Objetos perceptíveis são aqueles com os quais o usuário pode interagir usando os sentidos (ex. menus, IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas botões, sinal sonoro, etc.). Objetos internos são entidades conceptuais representadas por objetos perceptíveis (ex. estado de uma consulta em um banco de dados; o próprio banco de dados). Cada objeto pode pertencer a uma ou mais tarefas. Durante o processo de decomposição de tarefas em subtarefas, objetos definidos no nível mais elevado da tarefa podem ser manipulados em subtarefas de duas maneiras: • Por decomposição (um objeto no nível da tarefa é decomposto em 2 ou mais objetos no nível das subtarefas); • Por refinamento (o conjunto de ações associadas com um objeto detalhado no nível das subtarefas). 5.2.2 Tipos de tarefas CTT identifica quatro tipos de tarefas de acordo com a alocação de tarefas, ou seja, quem a realiza como segue: • Usuário: são tarefas cognitivas ou físicas realizadas inteiramente pelo usuário; por exemplo: identificar o nome de um arquivo numa lista de arquivos de um diretório; • Aplicação: são tarefas completamente realizadas pelo sistema sem a intervenção do usuário. Tais tarefas podem receber informações do sistema e fornecer um resultado visível ao usuário. Exemplo: compilar um programa e enviar uma mensagem ao usuários cada vez que um erro é detectado. • Interativa: são tarefas que o usuário realiza com o sistema; as interações são ativadas pelo usuário e processadas pelo sistema; Exemplo: editar um diagrama ou formular uma consulta em um formulário; • Abstrata: são tarefas que requerem ações complexas e que devem ser decompostas em um subtarefas. Tarefas abstratas também são usadas para descrever tarefas que não cabem inteiramente em nenhum das categorias anteriores. O tipo das tarefas são representados graficamente na notação CTT. Dois tipos de representação de tipos de tarefas são possíveis, através de ícones ou de formas geométrica simples, como mostra a Figura 3. Figura 3 – Representações possíveis para tipo de tarefas. Neste trabalho, os exemplos de modelos de tarefas utilizam a representação por ícones. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 5.3 Relacionamentos temporais Operados temporais tais como seqüência, escolha e iteração, são fundamentais para modelar o comportamento de sistemas interativos. Tais operadores são utilizados para definir o relacionamento de tarefas em um mesmo nível. Os operadores usados em CTT para descrever tais relacionamentos entre tarefas são definidos como extensões aos operadores LOTOS [Bolognesi 87]. A lista de operadores temporais disponíveis em CTT é apresentada na Tabela 2. Tabela 2 – Operadores temporais entre tarefas. Operador Símbolo Forma3 escolha [] T1 [ ] T2 independência de ordem |=| T1 |=| T2 concorrência independente ||| T1 ||| T2 concorrência com troca de informações |[]| T1 |[]| T2 desativação [> T1 [> T2 suspende/ continua |> T1 |> T2 habilitação habilitação com passagem de informação >> T1 >> T2 [ ]>> T1 [ ]>> T2 Descrição é possível escolher uma tarefa, outras tarefas ficam indisponíveis até a tarefa escolhida terminar; ambas as tarefas devem ser realizadas, em qualquer ordem, mas deve-se esperar a finalização de uma delas para dar prosseguimento a tarefa seguinte tarefas podem ser executadas em qualquer ordem sem nenhuma restrição. Ex. Monitorar uma tela e falar em um microfone. as duas tarefas podem ser executadas em paralelo mas devem se sincronizar para trocar informações a primeira tarefa é definitivamente desativada quando a segunda tarefa inicia (ex. Seleção de botões) este operador da a possibilidade de interromper a primeira tarefa quando a segunda termina. Este operador pode ser usado para modelar um tipo de interrupção quando a T1 termina a T2 é ativada quando a T1 termina ela envia valores para a T2 antes que essa seja ativada Além de operadores relacionais entre tarefas, CTT inclui um conjunto de 3 operadores unários (aplicáveis a uma tarefa individualmente). A representação de um operador unário é exemplificado na figura 4 pelo operador iteração (*) que é associado a tarefa Modificar gráfico. A lista completa de operadores unários disponíveis em CTT é apresentada na Tabela 3. Tabela 2 - Lista de operadores unários em CTT. Operador Símbolo Forma iteração * T* opcionalidade [] [T] conexão entre modelos ↔ T ↔ Descrição a tarefa é iterativa, a tarefa termina apenas quando for desativada por outra tarefa uma tarefa representada entre colchetes ([ ]) é indicada como opcional indica que a tarefa sublinhada com o símbolo ↔ pode ser usada em modelo cooperativo onde participam vários usuários 5.4 O processo de construção de modelos Um modelo de tarefas CTT é construído em 3 etapas: 1. Decomposição hierárquica de tarefas e subtarefas; 2. Identificação de relações temporais entre tarefas no mesmo nível; 3 Os elementos T1 e T2 representam tarefas. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 3. Identificação de objetos associados a cada tarefa e ações que permitem que os objetos comuniquem entre si. 5.4.1 Decomposição hierárquica de tarefas e subtarefas O modelo de tarefas é construído como uma hierarquia de tarefas onde o primeiro elemento (chamado raiz) corresponde ao nível mais elevado de abstração. O elemento raiz é então decomposto em sub-tarefas que permitem refinar o modelo. A hierarquia é representada na forma de uma árvore invertida como mostra a Figura 4. O exemplo apresentado pela Figura 4 mostra um modelo de tarefas CTT para um programa simples de edição de gráficos. A tarefa Editar um gráfico é definida como um tarefa composta de três subtarefas: Abrir arquivo, Modificar gráfico e Salvar arquivo. As tarefas : Abrir arquivo e Modificar gráfico são ainda decompostas em um outro nível de subtarefas. Este processo de decomposição de tarefas termina quando o designer decide que o nível de representação é suficiente para compreender completamente a tarefa. Figura 4– Modelo CTT para um programa simples de edição de gráficos. 5.4.2 Identificação de relações temporais As tarefas em CTT se relacionam entre si através de relacionamentos de filiação (hierarquia entre os diferentes níveis) ou através de relacionamentos temporais entre tarefas pertencendo a um mesmo nível. Tais relacionamentos são necessários para definir o comportamento do modelo de tarefas. Considerando o exemplo dado pela tarefa Editar um gráfico (Figura 4), a ordem de precedência entre estas tarefas é representada pelo operador >>, como indicado entre as tarefas Mostrar lista de arquivos, escolher arquivo e Selecionar arquivo; isto significa que a tarefa Escolher arquivo somente será realizada depois que a tarefa Mostrar lista de arquivos for concluída. Para indicar a alternativa entre tarefas CTT emprega o operador [ ] como no relacionamento entre as tarefas Adicionar nodo, Adicionar vértice, Remover nodo, Remover vértice e Mover nodo. Isto significa que a tarefa Modificar gráfico pode ser completada pela realização de qualquer uma destas subtarefas. O operador iteração (*) associado a tarefa Modificar gráfico é usado para indicar que essa tarefa pode ser repetida várias vezes. De fato a tarefa Modificar gráfico pode ser completada pela realização de uma de suas subtarefas (Adicionar nodo, Adicionar vértice, Remover nodo, Remover vértice ou Mover nodo) ou por qualquer seqüência dessas; por exemplo, uma modificação de gráfico poderia necessitar a adição de um novo nodo e conexão deste nodo a um outro nodo do gráfico. Neste caso, o operador iteração (*) é usado para indicar a repetição da tarefa Modificar gráfico permitindo que diferentes seqüências de subtarefas sejam formadas para atender os diferentes cenários possíveis para a tarefa. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 5.4.3 Identificação de objetos associados a tarefas O processo de identificação de objetos e ações associados a tarefas é realizado nível por nível. Para cada tarefa pode ser associada a lista de objetos manipulados assim como seus atributos e as ações utilizadas. Geralmente, ações e objetos não são representados diretamente nas tarefas para evitar que a poluição visual da representação gráfica do modelo. A ferramenta CTTE, descrita na seção a seguir, auxilia a edição de objetos e ações associados a tarefas (ver detalhes na seção 5.2). 5.4.4 Solução de problemas de ambigüidade A simples utilização de operadores temporais durante a construção de modelos de tarefas com CTT pode levar a algumas ambigüidades. A Figura 5a poderia ser interpretada de duas maneiras: (T2 [] T3) ||| T4, ou T2 [] (T3 ||| T4). Para resolver esta ambigüidade pode-se aplicar a prioridade de operadores definida no padrão LOTOS (escolha > concorrência independente > desativação > habilitação) ou introduzir uma tarefa que elimine a ambigüidade da expressão. A figura 5b apresenta a segunda solução optando pela introdução da subtarefa TD. Figura 5 – Possível problema de ambigüidade entre tarefas (figura a) e sua respectiva solução gráfica (figura b). 5.4.5 Relacionamento entre tarefas na hierarquia A utilização de operadores relacionais dentro de um contexto de hierarquia de tarefas dá uma grande flexibilidade para a especificação de diferentes comportamentos. Por exemplo, a figura 6 apresenta duas variantes de um tarefa T1 composta de duas subtarefas T2 e T3 que podem ser realizadas iterativamente em qualquer ordem. No primeiro caso (figura 6a) o símbolo de iteração está associado a tarefa-pai T1, o que significa que as subtarefas podem ser realizadas em qualquer ordem mas ambas devem ser realizadas antes de iniciar a iteração seguinte. No segundo caso (figura 6b), após ter terminado T2 pode-se repetir várias vezes a tarefa antes de passar a tarefa T3. Figura 6 - Diferentes maneiras de especificar independência de ordem. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas Um exemplo típico de independência de ordem é a reserva de uma passagem aérea. O usuário deve informar a chegada e a saída, mas não necessariamente nesta ordem. Uma vez que uma reserva de vôo foi concluída, é possível realizar uma nova reserva. A mesma aplicação poderia apresentar concorrência contínua entre duas tarefas considerando a formulação de uma consulta no banco de dados e a introdução de novos vôos na base; eles podem ser executadas várias vezes sem nenhum limitação na ordem de execução. 5.5 Exemplos de especificações em CTT Esta seção apresenta alguns estudos de caso de modelagem de tarefas usando CTT. 5.5.1 Estudo de caso: terminal de auto atendimento bancário Atualmente, terminais de auto atendimento são disponíveis para quase todas a operações bancárias tais como saques, depósitos, transferências, retiradas de cheques, extratos, aplicações, etc. Contudo, por questões de espaço, nosso estudo de caso sobre terminais de auto atendimento resume-se à tarefa de saque. A figura 7 apresenta a modelagem da tarefa saque (denominada no modelo como Retirar dinheiro) usando a notação CTT. Figura 7 – Modelagem da tarefa Retirar dinheiro em um terminal bancário genérico. A modelagem de tarefas apresentada na figura 7 descreve uma tarefa de saque genérica. Esta tarefa, denominada Retirar dinheiro, é composta de quatro subtarefas: Identificar-se, Indicar montante, Verificar transação, e Terminar. Cada uma dessas subtarefas ainda é decomposta em um terceiro nível de detalhe. Considera-se que não existe uma ordem predeterminada para a execução das subtarefas Identificar-se e Indicar montante (note o operador |=|, independência de ordem, entre elas). De fato, do ponto de vista do usuário da aplicação, não existe uma seqüência fixa de tarefas, tanto faz se ele se identifica primeiro e em seguida indica o montante desejado do saque, ou vice-versa. Com freqüência, é a implementação de tais sistemas que impõem uma determinada ordem para estas tarefas por questões de segurança e/ou de escolhas de implementação que não estão de forma alguma relacionados com a realização do objetivo do usuário. A mesma análise com relação a independência de ordem de execução de tarefas pode ser observada nas subtarefas Recuperar cartão e Recuperar dinheiro que estão associadas a tarefa Terminar. 5.5.2 Estudo de caso: Anulação de comandos Modelos CTT são comumente usados para especificar a atividade de usuários com uma determinada aplicação. Uma situação bastante comum é a necessidade do usuário de poder cancelar uma modificação. A Figura 8 mostra uma modelagem CTT genérica para o cancelamento de um comando em uma aplicação. Após ter realizado a subtarefa modificar o usuário pode confirmar ou cancelar. Em ambos os casos a tarefa Editar é iterativa, assim o usuário é capaz de especificar uma nova modificação até que a tarefa Terminar aplicação seja realizada. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas As figuras 8a e 8b são equivalentes. Observa-se porém uma representação contraída ou simplificada da tarefa Modificar na figura 8a. A tarefa Modificar é expandida na figura 8b mostrando toda a decomposição de suas subtarefas. Este recurso gráfico pode ser usado para controlar o nível de detalhe de um modelo. Tarefa: modificar Figura 8 – Cancelamento de um comando. 5.6 Ambiente de suporte a edição e simulação de modelos CTT (CTTE) A edição e análise de modelos CTT é grandemente facilitada pela ferramenta CTTE (CTT Environment) que é publicamente disponível em http://giove.cnuce.cnr.it/ctte.html. Uma descrição desta ferramenta pode ser encontrada em (Mori, Paternò, e Santoro, 2002). Aqui nos contentamos em mostrar as principais facilidade oferecidas por essa ferramenta. 5.6.1 Edição de modelos Toda a edição de tarefas com CTTE é realizada graficamente. Todo modelo iniciase com uma tarefa abstrata (denominada root) que identifica a base da tarefa. Para criar subtarefas é necessário selecionar a tarefa-pai. Uma vez que o ponto de inserção na hierarquia foi selecionada (a tarefa-pai) pode-se selecionar um dos ícones na barra de ícones (a esquerda da janela); cada vez que o usuário clica em um ícone de tarefa, uma nova subtarefa é adicionada ao diagrama. A figura 9 apresenta uma visão da ferramenta ilustrando a edição de um modelo; observa-se que a tarefa principal Editar gráfico é representada com um retângulo que indica que ela esta atualmente selecionada. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas Figura 9 – CTTE : visão geral da zona de edição de diagramas e barra de ferramentas. A edição de relacionamentos também é feita da esquerda para direita. Seleciona-se a tarefa mais a esquerda no mesmo nível hierárquico e, em seguida seleciona-se um ícone de operador temporal a partir da paleta de operadores (situado logo abaixo dos ícones de tarefas). O relacionamento é aplicado entre a tarefa atualmente selecionada e a tarefa imediatamente a direita no mesmo nível. A seleção de um novo ícone de operador substitui o operador anterior no relacionamento. 5.6.2 Definição de objetos e ações associados a tarefas Objetos e ações podem ser especificados como associados a uma tarefa através da opção propriedades da tarefa selecionada. A figura 10 mostra o objeto File system associado a tarefa Abrir arquivo. Figura 10 – Definição de objetos e ações de uma tarefa usando CTTE. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas 5.6.3 Simulação de modelos e extração de cenários A simulação de um modelo de tarefas pode ser útil na análise da dinâmica dos modelos. Com freqüência, é necessário simular a execução de um modelo de tarefas para determinar se o comportamento especificado representa a realidade modelada. CTTE inclui uma simulador que permite visualizar graficamente todas as etapas da execução de um modelo de tarefas CTT. A idéia básica por traz deste simulador é que, a qualquer momento da simulação, é possível visualizar a lista de tarefas habilitadas. Apenas tarefas básicas (que não tem filhos) são consideradas. A figura 11 apresenta a janela do simulador de modelos; tarefas habilitadas são marcadas como selecionadas no gráfico e elas também aparecem na lista de tarefas que, de acordo com a ordem e o tipo de operadores definidos estão disponíveis para a execução. A seleção (por duplo-clique) de uma tarefa habilitada indica o termino da mesma e transfere o controle para o simulador que atualiza a lista de tarefas e a representação gráfica com a próxima configuração de tarefas. Lista de tarefas a serem executadas Figura 11 – Simulador de modelos CTT, parte do ambiente CTTE. A simulação de modelos de tarefas que usam operadores temporais permite a extração de inúmeros cenários de uso que descrevem a realização de uma tarefa em um contexto específico. A extração de cenários a partir de um modelo de tarefa é uma ferramenta útil para a verificação de aplicação e para registrar seqüências de tarefas que poderão ser utilizadas na escolha de opções de implementação ou na avaliação. Embora a extração de cenário não seja específica a CTT, o editor CTTE permite que tais cenários possam ser efetivamente executados graças a uma ferramenta de simulação integrada ao ambiente. Cada execução de um modelo de tarefas produz um cenário. A execução do mesmo modelo de tarefa Retirar dinheiro pode produzir cenários diferentes tais como os apresentados pela figura 12. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas Figura 12 – Cenários extraídos pela execução do modelo de tarefas Retirar dinheiro. Com base nestes fundamentos vistos até agora, durante o tutorial serão realizados vários exercícios de modelagem visando consolidar o conhecimento sobre CTT e o ambiente CTTE. 6. Usos de modelos de tarefa Uma vez que conhecemos os fundamentos de Análise e Modelagem de Tarefas, pode-se investigar como podemos usar os modelos criados para auxiliar o processo de desenvolvimento de sistemas interativos. Esta seção resumirá alguns dos usos possíveis. O leitor interessado pode obter mais detalhes nas referências apontadas. 6.1 Modelos de tarefa para definição de requisitos A Engenharia de Software (ES) tem usualmente priorizado sua atenção para os requisitos funcionais dando pouca ou nenhuma atenção aos requisitos de usabilidade ou de interação. Assim, a Engenharia de Requisitos de sistema interativos exige, além da compreensão e modelagem do domínio do problema (já existente nos enfoques tradicionais da Engenharia de Software) a compreensão do contexto de trabalho em que o sistema será utilizado. É neste ponto que é importante a Análise e a Modelagem de Tarefas para investigar e representar os procedimentos de trabalho, os automatismos desenvolvidos na realização de tarefas, os disfuncionamentos observados, as regras tácitas (sociais, políticas, comerciais) internas ao contexto organisacional analisado para chegar a um conjunto de requisitos. Estes requisitos podem ser Requisitos solicitados explicitamente pelo usuário definidos a partir das necessidades identificadas pela Análise da Tarefa. Com este conjunto inicial de requisitos definidos, o fio condutor do restante do processo pode ser o conceito de caso de uso [Jacobson 1992, Booch et al 1999]. Casos de uso são descrições narrativas do fluxo de eventos no uso de um sistema (ações do usuário e respostas do sistema a estas ações) e são usualmente utilizados em ES para modelar requisitos funcionais. Modelos de tarefa podem ser usados como ponto de partida na construção e no refinamento de casos de uso, a partir dos objetivos presentes no modelo de tarefas. Acreditamos que pode-se combinar modelos de tarefas e casos de uso, utilizando casos de uso essenciais [Constantine & Lockwood 1999]. Casos de uso essenciais são narrativas estruturadas consistindo de 3 partes: um nome que expressa a intenção final do usuário, uma descrição passo a passo das intenções do usuário e a correspondente descrição da responsabilidade do sistema associada a esta ação. Nenhuma descrição (de usuário ou sistema) é atrelada a uma tecnologia particular (daí o nome “essencial”), o IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas que torna o conceito adequado para discutir requisitos. Um exemplo de caso de uso essencial para a transação de saque num caixa eletrônico é ilustrado na figura 13 Realizar Saque Intenção do usuário Identificar-se Acionar Operação de Saque Fornecer Valor para Sacar Retirar cédulas e recibo Responsabilidade do Sistema Verificar Identificação Fornecer Opções de Operação Verificar Opção Acionada Solicitar valor de saque Verificar se valor é válido Verificar se há saldo disponível Processar saque da conta Disponibilizar cédulas e recibo Encerrar Operação Figura 13 – Caso de Uso Essencial para Realizar Saque num caixa eletrônico. A coluna das intenções do usuário pode totalmente ser construída a partir de um modelo de tarefas. Note que estes seriam passos que poderíamos sugerir a alguém que precisasse realizar um saque e não soubesse como proceder. Neste nível de descrição , não importam os detalhes operacionais que deverão ser definidos durante o design (“fornecer valor para sacar” pode ser feita através de seleção em menus exibidos em uma tela, pressionando teclas especiais com quantias pré-determinadas, digitação em um campo, etc) mas sim que estas intenções do usuário implicam na definição de responsabilidades do sistema que deve dar suporte a estas tarefas. Logo, ajudam a definir requisitos funcionais. Os requisitos não funcionais (incluindo os de usabilidade e interação) exigem uma definição mais sutil e podem ser estabelecidos também a partir das informações coletadas na Análise de Tarefas, mas não serão discutidos aqui. Mais informação sobre o uso de modelos de tarefas para definição de requisitos para sistemas interativos pode ser encontrada em [Johnson 1992, Wilson & Johnson 1996, SIGCHI Bulletin 1997, Constantine & Lockwood 1999]. Mais informações sobre requisitos não funcionais encontram-se em [Cysneiros et al. 2001 , Mylopoulos et al. 1992, Chung et al 2000]. 6.2 Modelos de tarefa para design de interfaces WIMP Uma interface com usuário é composta por dois componentes principais: o componente de apresentação – que indica como a interface exibe informações ao usuário – e o componente de diálogo que descreve como podem ser ordenadas as ações que o usuário e o sistema executam. Além da informação importante sobre os objetivos dos usuários – fundamental para a determinação dos requisitos do sistema – modelos de tarefa podem ser usados também no auxílio ao design de interfaces de sistemas interativos, em particular de interfaces de WIMP, típicas de plataformas desktop como PC e Mac. Neste caso, o objetivo é usar informações presentes explicitamente nos modelos de tarefa ou deriváveis a partir deles para identificar, selecionar ou gerar os componentes de apresentação e de diálogo mais adequados ao suporte das tarefas. O design da apresentação geralmente inclui 2 atividades, mesmo que nem sempre sejam executadas separadamente: a) definir quais os elementos (widgets) serão exibidos numa unidade de apresentação (janela, caixa de diálogo, etc ) a um determinado momento; e b) definir como estes elementos serão exibidos, ou seja, determinar os detalhes de apresentação (cor, formato, tamanho, realismo etc).No curso da interação do IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas usuário com o sistema, a apresentação muda para refletir as alterações decorrentes das ações do usuário e/ou do sistema. A partir do modelo de tarefa , podemos decidir sobre quais elementos e informações devem estar exibidos ao mesmo tempo. Como esta decisão depende do contexto de uso e dos usuários alvo, é preferível evitar o estabelecimento de regras ou mapeamentos rígidos entre o modelo de tarefa e o modelo de apresentação mas obviamente com base no modelo de tarefa pode-se restringir o número de alternativas adequadas. Ver mais detalhes sobre design de apresentação com base em modelos de tarefa em [Eisenstein & Rich 2002], [Bodart 1994], [Johnson et al. 1995] , [Paterno et al. 1998] e [Paterno 1999]. O modelo de diálogo depende diretamente da ordenação descrita no modelo de tarefa e das restrições causais/temporais entre as subtarefas. Analisando o modelo de tarefa, pode-se decidir quais ações são possíveis de serem realizadas num determinado instante e quais não são (o que implica talvez em habilitar/desabilitar seu acionamento), e em qual ordem o sistema permitirá o encadeamento (sequencial, entrelaçado, etc) da realização de ações. Ver mais detalhes sobre design de diálogo com base em modelos de tarefa em [Paterno 1999], [Birnbaum et al 1998] ,[Vanderdonckt & Bodart 1993], [Wilson & Johnson 1996] e [Paterno 2001]. 6.3 Modelos de tarefa para design de interfaces Web Embora o uso de MT para desenvolvimentode sistemas interativos não seja uma idéia recente, o uso de MT para design de aplicações web é ainda uma questão aberta. De fato, tanto a prática de design quanto os enfoques de Web Engineering não prevêem a integração de MT ao processo de design. Já há alguma preocupação com a usabilidade ou com a concepção da interação dos websites mas raros são os trabalhos que afirmam explicitamente usar MTs para isto e mais raros os que indicam como o fazem. O obstáculo principal é provavelmente o grande número de usuários potenciais e a consequente grande diversidade de modos de usar e interagir com a aplicação web. Isto torna muito complexo determinar o conjunto de tarefas a considerar para o design. De maneira simplificada, as tarefas dos usuários de aplicações web pertencem a 2 categorias principais: tarefas de alto nível e tarefas primitivas. Tarefas de alto nível geralmente são muito próximas aos objetivos do usuário e podem ser realizadas de várias formas. Este tipo de tarefa habilita os designers a entender os aspectos fundamentais da atividade do usuário (como os objetivos, seus subobjetivos e o ordenamento dos procedimentos para alcançá-los) e são usualmente independentes da forma de realização. Tarefas primitivas correspondem a uma atividade do usuário com o sistema. Estas tarefas são genéricas e podem ser encontradas na maior parte das aplicações web. Um conjunto inicial de tarefas primitivas é a taxonomia (“taskonomy”4) proposta por [Byrne et al. 1999], que inclui as seguintes categorias: usar informação de uma página, localizar algo na página, ir para um página, fornecer informação, configurar navegador e reagir ao ambiente. Vários enfoques baseados em modelos (model-based) para sistemas interativos têm sido propostos nos últimos anos mas o uso de modelos de tarefa para aplicações web é ainda incipiente [Szwillus & Bomsdorf 2002, Bomsdorf & Szwillus 2003, Szwillus & Bomsdorf 2003]. Grande parte dos modelos para descrever interfaces web investigados e propostos na área de Web Engineering concentram-se basicamente na perspectiva 4 O trocadilho do título do artigo é ótimo: taskonomy = taxonomy of tasks, uma taxonomia de tarefas. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas orientada a sistema da aplicação e não contemplam o uso de modelos de tarefa. De fato, atividades do usuário (user activities) são mais exploradas que modelos de tarefas [Newman & Landay 2000] e design centrado no usuário (UCD – User Centered Design) é ainda uma noção pouco usada para Web design, embora haja exceções [De Troyer & Leune 1998]. 6.4 Modelos de tarefa para avaliação de interfaces Um MT pode ser usado de várias formas em avaliação de interfaces, entre as quais [Paterno 2001]: • predizer (ou medir) o desempenho do usuário na realização de tarefas (como em KLM); O leitor interessado pode achar um bom exemplo de como realizar esta avaliação preditiva quantitativa no capítulo 14 de [Preece 2002]. • fornecer um modelo de referência para avaliação através de cognitive walkthrough ou da análise do log de interações do usuário; No primeiro, os avaliadores devem identificar uma seqüência de tarefas a executar e para cada uma delas devem tentar responder algumas questões - ver excelente descrição do cognitive walkthrough no capítulo 13 de [Preece 2002]. No segundo, pode-se analisar desvios na realização da tarefa com respeito ao inicialmente planejado pelos designers; • montar cenários ou conjuntos de amostras representativas de tarefas para realização de avaliações realizadas por usuários (testes com usuários como os ensaios de interação p.ex.) ou por especialistas (avaliação heurística); Há alguns trabalhos também relatando o uso de MT para avaliação de interfaces Web [Winckler et al 2002] e para avaliação automática de interfaces, tais como no projeto TRIDENT [Bodart et al 1995] e em [Lecerof & Paterno 1998]. No entanto, é um consenso que há limites sobre o que pode de fato ser avaliado automaticamente [Farenc et al 1996]. 7. Considerações Finais Neste tutorial destacamos alguns tópicos de AT e MT que consideramos merecer atenção. Modelos de tarefa devem a nosso ver fazer parte da teoria e da prática de design de sistemas interativos. Apresentamos alguns conceitos introdutórios, e fundamentos de técnicas para realizar AT e de alguns modelos existentes para representar tarefas. Os possíveis usos de MT foram também preliminarmente discutidos. Nossa ênfase aqui nos fundamentos de CTT e no CTTE permite sua adoção imediata. Evidentemente há muito material disponível na literatura e na Internet. A lista de bibliografia aponta apenas alguns que julgamos importantes. Nossa intenção era dar uma visão panorâmica sobre o assunto mais do que ter a pretensão de ser exaustivo. Mesmo assim, os autores esperam que este tutorial desperte a curiosidade e estimule mais e mais pessoas a conhecerem e colocarem em prática estas idéias. Bibliografia [Balbo et al. 2004 ] Sandrine Balbo, Nadine Ozkan & Cecile Paris. Choosing the right task modelling notation: A Taxonomy. In: Diaper, D. and Stanton, N. (Eds.), The Handbook of Task Analysis for Human-Computer Interaction, Lawrence Erlbaum Associates, Mahwah, 2004. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Bastide & Palanque 1999] Bastide, R., Palanque, P., A Visual and Formal Glue between Application and Interaction, International Journal of Visual Language and Computing, Academic Press, V.10, N. 6, 1999. [Baumeister et al. 2000] Baumeister L., John B., Byrne M., A Comparison of Tools for Building GOMS Models, Proceedings CHI’2000, pp.502-509, ACM Press, 2000. [Benyon 92] Benyon, D. Task Analysis and System Design: the Discipline of Data. Interacting with Computers, 4(2), 246-59, 1992. [Benyon 96] Benyon, D.; Palanque, P. Critical Issues in User Interface System Engineering.(s,l):springer Verlag, 1996. 294p. [Birnbaum et al. 1998] Birnbaum, L., Bareiss, R., Hinrichs, T., Johnson, C.: Interface Design Based on Standardized Task Models. In: Proc. of ACM Int. Conf. on Intelligent User Interfaces IUI’98 (San Francisco, January 1998). ACM Press, New York (1998) 65–72 [Bodart 94] Bodart, F. et alli. A Model-Based Approach to Presentation: A Continuum from task Analysis to Prototype. Proc. of International Eurographics Workshop on Design, Specification and Verification of Interactive Systems, Bocca di Magra (La Spezia), 8-10 juin 1994. (Bodart et al 1995) F. Bodart, A.-M. Hennebert, J.-M. Leheureux, I. Provot, B. Sacré, J. Vanderdonckt, Towards a Systematic Building of Software Architectures: the TRIDENT methodological guide, in Proc. of 2nd Eurographics Workshop on Design, Specification, Verification of Interactive Systems DSV-IS'95 (Toulouse, 7-9 juin 1995), Ph. Palanque & R. Bastide (eds.), Springer-Verlag, Vienne, 1995, pp. 262278. [Bolognesi 87] Bolognesi, T. and Brinksma, E. Introduction to the ISO Especification Language LOTOS. Computer Networks ISDN Systems 14: 25-59. 1987. [Bomsdorf & Szwillus 2003] vBomsdorf, Birgit; Szwillus, Gerd: User-Centered Modeling of Interactive Web Sites, Poster: In: CD-ROM Proceedings of WWW 2003, Budapest, May 2003, 2003 [Booch et al 1999] Booch, G., Rumbaugh, J., Jacobson, I., Unified Modeling Language Reference Manual, Addison Wesley, 1999. [Breedvelt 97] Breedvelt, I., Paternò, F. & Severiins, C., Reusable Structures in Task Models, Proceedings Design, Specification, Verification of Interactive Systems '97, Granada, June 1997, Springer Verlag, pp.251-265. the Navigational Structure of a User Interface, In Proceedings of INTERACT 2003, Sept. 2003, Zurich, IOS Press, pp.455-462. [Brun 95] Brun, P.; Beaudouin-Lafon, M. A taxonomy and evaluation of formalisms for the specification of interactive systems. HCI'95, 1995, Huddersfield (UK). People And Computers X – Proc, Huddersfield (UK): Cambridge University Press, Aug. p.197-212. [Byrne et al 1999] Byrne, M.; John, B. E.; Wehrle, N. S.; Crow, D. C. The Tangled Web We Wove: A Taskonomy of WWW Use. Proc. of CHI99 15-20 May, 1999. P. 544- 551. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Card 83] Card, S.; Moran, T.; Newell, A. The Psychology of Human Computer Interaction, Lawrence Erlbaum Associates, 1983. [Chase 94] Chase, J.D. et al. Development and Evaluation of Taxonomical Model of Behavioral Representation Techniques. In: Human Factor in Computing Systems, (CHI’94), 1994, Boston, Massachusetts –USA. Anais... Boston, Massachusetts – USA: Apr. P. 159-165. [Diaper 89] Diaper, D. (ed) Task Analysis for HCI, Ellis Worwood, Chichester, 1989. [Chung et al 2000] Chung L,Nixon B,Yu E,Mylopoulos J. Non-functional requirements in software engineering.Kluwer,Dordrecht,2000 [Constantine & Lockwood 1999] Constantine, L. L., and Lockwood, L. A. D. Software for Use: A Practical Guide to the Essential Models and Methods of Usage-Centered Design. Reading, MA: Addison-Wesley, 1999. [Cybis 1996] Ergonomia de Interfaces Homem-Computador , Apostila do Curso de Pós-Graduação em Engenharia de Produção da UFSC, 1996. Disponível em http://www.labiutil.inf.ufsc.br/apostila.htm. [Cysneiros et al. 2001] Cysneiros, L.M., Leite, J.C.S.P., ., Neto, J.M.S. A Framework for Integrating Non-Functional Requirements into Conceptual Models. IN: Requirements Engineering Journal: Vol. 6, N. 2, Pags. 97 -115, (2001), SpringerVerlag London Limited . [De Troyer & Leune 1998] O.M.F. De Troyer, C.J. Leune WSDM: A User Centered Design Method for Web Sites. Proceedings of the 7th International World Wide Web Conference, Elsevier, pp. 85 - 94, 1998. [Diaper 89a] Diaper, D. Task analysis for human-computer interaction. Chichester, England: Ellis Horwood, 1989. [Diaper 89b] Diaper, D. Task Analysis for Knowledge Descriptions (TAKD): The method and examples. In D. Diaper (Ed.), Task analysis for human-computer interaction (pp. 108–159). Chichester, England: Ellis Horwood. [Diaper 2001] Diaper, D. Task Analysis for Knowledge Descriptions (TAKD): a Requiem for a method. Behaviour and Information Technology 20(3), 199-212, 2001. [Diaper 2002] Diaper, D. Scenarios and Task Analysis, Interacting with Computers, 14 (2002) 379-395. [Draper 85] Draper, S.W.; Norman, D. Software Engineering for User Interfaces IEEE Transactions on Software Engineering, SE-11, 252-58, 1985. [Eisenstein & Rich 2002] Eisenstein, J. & Rich, C. Agents and GUIS from Task Models, Proc. of Inteligent User Interfaces IUI 2002, San Francisco, USA. [Farenc et al. 1996] Christelle FARENC, Véronique LIBERATI, Marie France BARTHET Automatic Ergonomic Evaluation : What are the Limits ? Proc. of CADUI'96 2nd International Workshop on Computer-Aided Design of User Interfaces - Namur, Belgique, 5-7 June 1996. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Gray et al. 1992] Gray, W., John, B., Atwood, M., Project Ernestine: A Validation of GOMS for Prediction and Explanation of Real-World Task Performance, HumanComputer Interaction, 8, 3, pp. 207-209, 1992. [Greenberg 2004]. Working Through Task-Centered System Design. In: . In: Diaper, D. and Stanton, N. (Eds.), The Handbook of Task Analysis for Human-Computer Interaction, Lawrence Erlbaum Associates, Mahwah, 2004. [Hartson et al 90] Hartson, R. et alli The User Action Notation: A User-Oriented Representation for Direct Manipulation Interfaces, ACM Transactions on Information Systems, V. 8, N. 3, 1990, 181-203. [Jacobson et al 1992] Jacobson, I. et al. Object Oriented Software Engineering – A UseCase Driven Approach, ACM Press, 1992. [John & Kieras 1996] John, B., Kieras, D., The GOMS Family of Analysis Techniques: Comparison and Contrast. ACM Transactions on Computer-Human Interaction, Vol.3, N.4, pp.320-351, 1996. [Johnson 88] Johnson, P.; Johnson, H.; Waddington, R. and Shouls,A. Task-Related Knowledge Structures: Analysis, Modelling and Application. In: D.M.Jones; R. Winder (eds.). People and Computers: From Research to Implementation, HCI’88, Cambridge University Press, pp 137-55. [Johnson 91] Johnson, H.; Johnson, P. Task Knowledge Structure: Psychological basis and Integration into System Design. Acta Psychologica, 78, 1991, pp 3-26. [Johnson 92] Johnson, P. Human-Computer Interaction: Psychology, Task Analysis and Software Engineering, Mc-Graw Hill, Maidenhead, UK, 1992. [Johnson et al. 1995] Johnson, P., Johnson, H., Wilson, S.: Rapid Prototyping of User Interfaces Driven by Task Models. In: Carroll, J.M. (ed.). Scenario-based Design: Envisioning Work and Technology in System Development. John Wiley, New York (1995) 209–246 [Kieras 1996] Kieras D.E., Guide to GOMS model usability evaluation using NGOMSL, in The Handbook of Human-Computer Interaction, 2nd edition, North Holland 1996. [Lecerof & Paterno 1998] Lecerof, A., Paternò, F., Automatic Support for Usability Evaluation, IEEE Transactions on Software Engineering, October, pp. 863-888, IEEE Press, 1998. [Limbourg 2001] Limbourg, Q.; Pribeanu, C.; Vanderdonckt, J. Towards Uniformised Task Models in a Model Based Approach, in Proc. of 8th International Workshop on Design, Specification, Verification of Interactive Systems DSV-IS'2001 (Glasgow, 13-15 juin 2001), Ch. Johnson (eds.), Lecture Notes in Computer Science, Vol. 2220, Springer-Verlag, Berlin, 2001, pp. 164-182. [Moran 81] Moran, T. The Command Language Grammar : A Representation for the User Interface of Interactive Computer Systems, International Journal of ManMachine Studies, v. 15, pp. 3-50, 1981. [Mori 02] Mori, G., Paternò, F. and Santoro, C. CTTE: Support for Developing and Analyzing Task Models for Interactive System Design. IEEE Transactions on Software Engineering: 797-813. 2002. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Mylopoulos et al 1992] Mylopoulos J,Chung L,Yu E,Nixon B. Representing and using non-functional requirements:a process-oriented approach. IEEE Trans Software Eng 1992;18(6):483 –497 [Navarre et al. 2001] Navarre, D.; Palanque, P.; Bastide, R.; Paternó, F.; Santoro, C. A tool suite for integrating task and system models through scenarios. IN: Proc. of 8th Eurographics workshop on Design, Specification and Verification of Interactive Systems, DSV-IS'2001, June 13-15, 2001, Glasgow, Scotland. [Newman & Landay 2000] Newman, M. W.; Landay, J. A. Sitemaps, storyboards, and specifications: a sketch of Web site design practice. Proceedings of DIS 2000, ACM Press New York, NY, USA. Pages: 263 – 274. [Palanque 95] Palanque, P.; Bastide, R.; SENGES, V. Task model – system model: towards an unifying formalism. In: International CONFERENCE ON HUMANCOMPUTER INTERACTION, (HCI international 95). Japan. 1995. [Palanque & Paterno 1997] Philippe Palanque & Fabio Paterno(Eds.) Formal Methods in Human-Computer Interaction Springer Verlag 1997. ISBN 3-540-76158-6. 376 pages. [Paquette 2004] Paquette, D.; Schneider, K. A. Interaction templates for construct-ing user interfaces from task models. In Fourth International Conference on ComputerAided Design of User Interfaces (2004), pp. 223–235. [Paterno 97] Paterno, Mancini, Meniconi. ConcurTaskTrees: a Diagrammatic Notations for Specifying Task Models, Proc. of INTERACT 97, pp 362-69, July 97, Sydney, Chapman&Hall. [Paterno et al. 1998] Paternò, F., Breedvelt-Shouten, I.M., de Koning, N.M.: Deriving Presentations from Task Models. In: Proc. of IFIP Workshop on Engineering the Human-Computer Interaction EHCI’98 (Creete, September 1998). Kluwer Academics Publisher, Dordrecht (1998) [Paterno 1999] Model-Based Design and Evaluation of Interactive Application. Springer Verlag, Berlin, 1999. [Paternó 2001] Paternó, F. Task models in interactive software systems. In Handbook of Software Engineering and Knowledge Engineering, S. K. Chang, Ed. World Scientific Publishing Co., 2001. [Payne 86] Payne, S.J.; Green, T.R. Task Action Grammar: a Model of the Mental Representation of Task Languages, Human-Computer Interaction, 2, pp 93-133, 1986. [Preece 02] Preece, J., Rogers, Y. & Sharp, H. (2002) Interaction Design: Beyond Human-Computer Interaction. New York, NY: John Wiley & Sons. (519 pages). [Rodriguez & Scapin 1997] Rodriguez, F. G. and Scapin, D. L. Editing MAD* task descriptions for specifying user interfaces, at both semantic and presentation levels. In Proceedings of theEurographics Workshop (DSV-IS'97): Design, Specification, and Verification of Interactive Systems '97. Granada, Spain. M. D. Harrison, J. C. Torres (Ed). Springer-Verlag/Wien. 193:208. [Scapin 89] Scapin, D.; Pierret-Golbreich, C. Towards a Method for Task Description: MAD. In: Work With Display Units'89, Amsterdam, Elseiver, 1989. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Scapin & Bastien 2001] Scapin, D. and Bastien, C. (2001) Analyse des tâches et aide ergonomique à laconception: l'approche MAD*. In Interactions Homme-Machine pour les Systèmesd'Information, Tome 1: Analyse et conception de l'IHM. C. Kolski (ed.). Hermès. [Sebillote 95] Sebillotte, S. Methodology guide to task analysis with the goal of extractingrelevant characteristics for interfaces. Technical report for Esprit project P6593. INRIA,Rocquencourt (France), 1995. [Shneiderman 98] Shneiderman, B. Designing the User Interface:Strategies for Effective Human-Computer Interaction. ed.3. USA:ADDISON-WESLEY, 1998. 639p. [SIGCHI Bulletin 1997] Human Computer Interaction and Requirements Engineering: Papers from an Interdisciplinary Workshop, ACM SIGCHI Bulletin, V. 29, N. 1, January 1997. [Siochi 91] Siochi, A. ; Hix, D. ; Hartson, H. R. The UAN: a Notation to Support UserCentered Design of direct Manipulation Interface. In: John Karat (Ed). Taking Software Design Seriously. New York: ACADEMIC PRESS, 1991. Cap. 9, p. 157194. [Storrs 95] Storrs, G. The Notion of Task un Human-Computer Interaction. In: Proc. of HCI 95- 10th Annual conference of the British Human-Computer interaction Group, University of Huddersfield, UK, August-september 1995. [Szwillus & Bomsdorf 2002] Szwillus, Gerd; Bomsdorf, Birgit: Models for TaskObject-Based Web Site Management, Paper. In: Proceedings of DSV-IS 2002, Rostock, Juni 2002, 2002 [Szwillus & Bomsdorf 2003] Szwillus, Gerd; Bomsdorf, Birgit: Task-Object Models for the Development of Interactive Web Sites, Proceedings of HCI International, June 2003, 2003 [Tauber 90] Tauber, M., ETAG: Extended Task Action Grammar—A language for the Description of the User’s Task Language, Proceedings INTERACT’90, pp.163-174, Elsevier, 1990. [van der Veer 96] van der Veer, G., Lenting, B., Bergevoet, B., GTA: Groupware Task Analysis—Modelling Complexity, Acta Psychologica, 91, pp. 297-322, 1996. [Vanderdonckt & Bodart 1993] Vanderdonckt, J., Bodart, F.: Encapsulating Knowledge for Intelligent Interaction Objects Selection. In: Proc. of ACM Conf. on Human Aspects in Computing Systems InterCHI’93 (Amsterdam, 24-29 April 1993). ACM Press, New York (1993) 424–429. [Walsh 89] Walsh, P. Analysis for Task Object Modelling (ATOM). .In: Diaper, D. (ed.) Task-Analysis for Human-Computer Interaction, Ellis Horwood, 1989. [Welie 98] van Welie M., van der Veer G.C., Eliëns A., An Ontology for Task World Models, Proceedings DSV-IS’98, pp.57-70, Springer Verlag, 1998. [Wilson & Johnson 1996] Wilson, S., & Johnson, P. (1996). Bridging the generation gap: From work tasks to user interface designs. In: J. Vanderdonckt (Ed.), Computeraided design of user interfaces (pp. 77–94). Namur, Belgium: Presses Universitaires de Namur. IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. Análise e Modelagem de Tarefas [Winckler et al. 2002] Winckler Marco, Palanque Philippe, Farenc Christelle, Pimenta Marcelo. Task-Based Assessment of Web Navigation Design. Proc. of TAMODIA'02 Task Models and Diagrams for User Interface Design 2002, Bucharest, Romania [UsabGlossary] Usability First: Usability Glossary http://www.usabilityfirst.com/glossary/index_terms.txl (Acesso 06/08/2004) IHC’2004 – Tutorial, Curitiba, PR. 17-20 Outubro de 2004. .