Por ANTÔNIO MENDES DA SILVA FILHO

Doutor em Ciência da Computação

 

O papel de protagonistas no desenvolvimento de sistemas interativos

 

O computador tem ao longo dos anos deixado de ser um instrumento de trabalho exclusivo dos especialistas de Informática e tem tornado-se em ferramenta de apoio a diversos profissionais nas mais variadas atividades de trabalho. A variedade de perfis de usuários e tarefas impõe desafios para o projeto de sistemas computacionais e, mais especificamente, para os sistemas interativos. Melhorar a usabilidade de sistemas interativos é uma das principais metas dos projetistas de interface de usuário.  A usabilidade de um sistema é determinada pela facilidade de aprendizado e uso deste. Contudo, alcançar esta meta não é tarefa fácil.

Hoje, vivemos na era da informação. Nesta era, a pessoas podem realizar diversas atividades sem considerar a localização geográfica. Dentro deste contexto, é possível interagir com colegas, compartilhar dados e recursos computacionais, acessar informações em bibliotecas digitais, dentre várias aplicações. Isto tem acontecido em função da união de tecnologias de comunicação e  computação. Observe que todas essas atividades envolvem a colaboração entre diferentes parceiros. Por exemplo, pesquisadores podem trabalhar cooperativamente em Co-laboratórios de Física conforme relatado por Agarwal et al (1998).

Outro exemplo é um co-laboratório orientado a registros virtuais, que permite a profissionais da área de saúde trabalharem juntos de forma mais efetiva, disponibilizando uma assistência médica de melhor qualidade, relatado por Kilman e Forslund (1997). Há ainda um sistema colaborativo orientado para Web, chamado de Digital Agora apresentado por Watters et al (1998), que oferece suporte ao aprendizado na área de Ciências Sociais. Os usuários são, tipicamente, estudantes, docentes e/ou outros funcionários de uma instituição. Outras aplicações englobam as bibliotecas digitais e sistemas de entretenimento baseado na Web, tais como os jogos multi-usuários. Estes exemplos ilustram cenários onde os participantes atuam colaborativamente num ambiente de trabalho compartilhado. Note que nos exemplos mencionados acima, existe tanto um grupo de participantes quanto um conjunto de objetos sobre os quais os participantes atuam.

Aliado ao exposto acima, usuários de sistemas computacionais, comumente, buscam aplicações que possuam interfaces ditas amigáveis, isto é, que sejam fáceis de aprender e usar, independente dos recursos funcionais oferecidos pelo sistema. Entretanto, o desenvolvimento de interfaces de qualidade exigem que aproximadamente 50% do tempo e recursos sejam alocados para a interface de usuário. Assim, concomitante com a meta de melhorar a usabilidade dos sistemas interativos, tem-se também a necessidade de minimizar o custo de desenvolvimento. Atender tais metas torna-se ainda mais difícil quando lidando com aplicações de natureza cooperativa. Vale ainda ressaltar que a recente popularidade da Web requer um maior suporte das técnicas de especificação do projeto de Interação Humano-Computador (IHC). Estes sistemas possuem problemas de usabilidade específicos não encontrados anteriormente quando lidando com apenas uma única máquina como, por exemplo, um computador pessoal. Os browsers da Internet escondem detalhes de infraestrutura das redes de computadores não familiares aos usuários. A falta deste conhecimento impossibilita qualquer previsão e/ou diagnóstico por parte do usuário. Isto ocorre porque sem este tipo de informação torna-se difícil determinar se os comandos de acesso/recuperação obtiveram sucesso. Por exemplo, uma falha em um servidor remoto na rede impedirá que a informação solicitada seja entregue ao usuário. Adicionalmente, a existência de estrangulamento em uma via de comunicação pode retardar a transmissão de dados entre servidores remotos e o browser do usuário. Portanto, estas questões também precisam ser consideradas durante o projeto de IHC.

As questões supracitadas destacam a importância e necessidade de identificar processos de sistemas interativos que levem em consideração tanto a necessidade de minimizar o esforço de desenvolvimento, envolvendo tempo e custo, como também a preocupação em oferecer suporte a um atributo essencial de qualidade nessa categoria de sistemas, a usabilidade. Dentro desse contexto, a seguir um processo de desenvolvimento de sistemas interativos orientado a protagonista é discutido.

Desenvolvimento de Sistemas Interativos orientado a Protagonistas

O processo de desenvolvimento de sistemas interativos compreende várias atividades de projeto. Dentre elas, duas que possuem papéis importantes na qualidade obtida do produto final são o projeto IHC e o projeto de software de interface de usuário (IU). Estas fases do processo de desenvolvimento de sistemas interativos nortearão as principais tópicos cobertos  neste projeto.

Nesse sentido, a PAN - Protagonist Action Notation (SILVA FILHO; BARROS; LIESENBERG, 2001)  oferece aos projetistas uma técnica de especificação do projeto de IHC, representando ações dos protagonistas de um sistema em desenvolvimento (SED). Exemplos de protagonistas são usuários e componentes de software do sistema. Com a PAN, busca-se identificar quais são os protagonistas que têm papéis relevantes na interação homem-computador. As etapas iniciais do processo do desenvolvimento de um sistema interativo é ilustrada na Figura 1.

 

Figura 1 – Projeto de IHC orientado a protagonistas.

 

Juntamente com estas fases, tem-se a necessidade de uso técnicas de especificação formal. O meio pelo qual o projetista de interação comunica o projeto IHC ao projetista de software (ou engenheiro de software) é comumente realizada através de especificações, i.e., um conjunto formal de instruções sobre o projeto a partir do qual o código será desenvolvido. 

Objetivando auxiliar o processo do projeto de interação, Gould, Boies e Lewis (1991) apresentam os seguintes princípios:

  • O desenvolvimento deveria incluir teste empírico inicial e  contínuo centrado em usuários apropriados que realizem tarefas representativas;

  • A medida que o desenvolvimento procede, ele deveria incorporar subseqüentes procedimentos através de refinamento interativo e análise custo/benefício para determinar as modificações mais efetivas sob o ponto de vista do custo a serem realizadas no projeto de interação.

Por outro lado, o projeto de software de interface de usuário visa transformar o projeto do domínio do problema em um programa de computador. Nesta etapa do desenvolvimento, é feito, por exemplo, o projeto das estruturas de dados e de algoritmos. 

O processo de desenvolvimento de interface de usuário, envolvendo projeto de interação e projeto de software de interface de usuário, constitui-se num desafio. As razões pelas quais a interface é vista como sendo a parte mais difícil e desafiadora do desenvolvimento de um sistema interativo é, em parte, porque ela requer uma combinação de diversas áreas de conhecimento respectivos especialistas para desenvolver uma interface de qualidade. É importante observar que desenvolver interface de usuário não é simplesmente desenvolver uma fatia do software do sistema. Ela requer, além disso, outras atividades, tais como:

  • Projeto da comunicação entre usuários e computador;

    Identificação e representação de tarefas dos usuários e informações pertinentes;

  • Projeto gráfico e textual da interface;

    Projeto de software IU através do qual outras decisões de projeto serão implementadas;

  • Avaliação da interface.

Observe que o desenvolvimento de uma interface de usuário é a parte do sistema que mais requer do projeto tanto em termos de tempo de desenvolvimento quanto na proporção de software dedicada a esta fatia do sistema. Neste sentido a metodologia de desenvolvimento de sistemas interativos baseda no Mapeamento PAN-Xchart (MPX) (SILVA FILHO; BARROS; LIESENBERG, 2000) pode prover suporte a estas necessidades. Isto é ilustrado na Figura 2. Cabe salientar que a etapa do projeto de IHC orientado a protagonistas contida na Figura 2 é detalhada na Figura 1.

Figura 2 – Processo de desenvolvimento de sistemas interativos usando MPX.

 

Dentro do contexto apresentado acima, pode-se ainda ressaltar que o processo de desenvolvimento de sistemas interativos baseada no MPX poderá oferecer, dentre outras coisas:

  • Notação com abstração de alto nível, i.e. PAN, capturando intenções de protagonistas, onde protagonistas podem ser tanto usuários quanto outros componentes de software do sistema em desenvolvimento. Esta notação é centrada nas tarefas dos protagonistas do sistema e permite capturar o conjunto de tarefas de cada protagonista bem como o interrelacionamento entre eles. Ou seja, como as tarefas são realizadas por cada protagonista individualmente e também como as tarefas de um protagonista está relacionada às outras.

  • Linguagem de especificação de software de interface de usuário - Xchart - adequada para descrever o controle de diálogo de interfaces de usuário. Ele permite a criação e destruição de múltiplos clientes dinâmicamente bem como distribuídos. Ela adiciona vários aspectos necessários no projeto de interface os quais não são considerados pelas variantes de diagramas de transições de estados.

  • Integra IHC com Engenharia de Software(ES) - ISE faz uso de técnica de modelagem formal no desenvolvimento de sistema interativo a qual tem a vantagem de prover precisão e clareza no projeto. Observe que a linguagem Xchart possui semântica formalmente definida, conforme apresentado por Lucena, Harada e Liesenberg (1996).

  • O procedimento MPX que transforma um projeto de IHC, especificado na PAN, em projeto de software de interface de usuário, especificado em Xchart. Esta transformação automática reduz o tempo de desenvolvimento bem como suporta corretude, consistência e elimina ambigüidade. Note que desta forma, o projetista de interação atua de forma efetiva em seu respectivo domínio de atuação, i.e. comportamental. Por outro lado, após o uso do MPX, o projetista de software recebe a especificação do projeto de software de interface de usuário. A partir desta, pode-se ter  a geração automática de código bem como realização de testes. Note que o projetista ou engenheiro de software, também, atua de modo efetivo em seu respectivo domínio de conhecimento. Em outras palavras, tem-se que possíveis modificações nos requisitos a medida que as necessidades dos usuários evoluem são acompanhadas das respectivas mudanças no sistema tornando mais efetiva a realização do projeto. A atuação destes profissionais em seus respectivos domínios associado à transformação automática do projeto de IHC em projeto de software de interface de usuário contribuem para elevar a qualidade final do produto bem como minimizar o tempo de desenvolvimento.

Adicionalmente, pode-se considerar o desenvolvimento de sistemas interativos sob três perspectivas, isto é, funcional, arquitetural e estética. A perspectiva  funcional objetiva verificar se o projeto satisfaz a proposta pré-definida. Ela está relacionada às questões de usabilidade e ao total suporte às tarefas dos usuários. A perspectiva arquitetural  visa avaliar se o projeto foi construído de modo que o tornará confiável e eficiente para uso bem como poder ser facilmente extendido e/ou modificado. Ela ainda busca prover facilidade de desenvolvimento e considera o reuso de componentes existentes. Sob a perspectiva de estética, o projeto do sistema é checado quanto a sua conformidade com as noções aceitas de projeto artístico e quão agradável é sua aparência visual. Isto envolve o projeto de caracteres, figuras, layout de tela bem como posicionamento, forma e cor de botões, dentre outros ítens. Neste projeto, apenas as duas primeiras perspectivas são tratadas. A terceira perspectiva foge ao escopo principal deste artigo.

 

Clique e cadastre-se para receber os informes mensais da Revista Espaço Acadêmico

Referências

AGARWAL, D. A., SACHS, S. R. and JOHNSTON, W. E. The Reality of Collaboratories. Computer Physics Communications, 110(1-3):134-141, May 1998;

GOULD, J. D., BOIES, S. J. and LEWIS, C., Making Usable, Useful, Productivity-Enhancing Computer Applications, Communications of the ACM, 34(1), pp. 74-85, Jan., 1991;

KILMAN, D. and FORSLUND, D. W.  An International Collaboratory Based on Virtual Patient Records. Communications ofthe ACM, 40(8):110-117; Aug. 1997;

LUCENA, F., HARADA, M. and LIESENBERG, H. K. E., Operational Semantics of Extended Statecharts (Xchart), Proc. of 3rd Workshop on Logic, Language, Information and Computation , Brazil, May, 1996;

SILVA FILHO, A. M., BARROS, R. S. M. and LIESENBERG, H. K. E., Designing User Interface for Web Interactive Systems, Proc. of the 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology - ASSET 2000, Richardson, Texas, USA, March 2000;

SILVA FILHO, A. M., BARROS, R. S. M. and LIESENBER, H. K. E., Designing Multiple User Interfaces for Internet-based Interactive Systems, Proceedings of the French/British Conference on Human-Computer Interaction, Lille, France, 2001;

WATTERS, C., CONLEY, M. and ALEXANDER, C. The Digital Agora: Using Technology for Learning in the Social Sciences. Communications of the ACM, 41(1):50-57, Jan 1998.

clique e acesse todos os artigos publicados...

http://www.espacoacademico.com.br - Copyright © 2001-2005 - Todos os direitos reservados