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.