Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo
A teoria semitica revela que uma das possveis causas da baixa usabilidade dos sistemas computacionais que
desenvolvedores e usurios possuem vises distintas da aplicao. Os usurios possuem uma viso externa,
obtida a partir da interface de usurio, enquanto desenvolvedores possuem uma viso interna que obtida a partir
de linguagens de especificao ou de programao. Estas linguagens so baseadas em modelos computacionais e
descrevem o funcionamento do sistema. Diversos pesquisadores argumentam que preciso introduzir no
desenvolvimento de software a atividade de design na qual designers e usurios compartilhem a mesma viso do
produto [Winograd 96]. A Engenharia Semitica uma abordagem que considera que o design de software um
processo metacomunicativo no qual o designer envia uma mensagem para os usurios cujo contedo o modelo
conceitual da aplicao [De Souza 93]. A expresso desta mensagem composta todas as mensagens trocadas
entre usurio e sistema atravs da interface de usurio. Neste trabalho vamos mostrar que o design de software
deve ser conduzido como um processo comunicativo e deve possibilitar que ambos compartilhem o mesmo
modelo conceitual da aplicao. Neste processo o designer deve representar elementos do domnio da aplicao
no como tipos de dados de uma linguagem de programao, mas como signos de interface. A funcionalidade do
software determinada pelo repertrio de funes de aplicao que operam sobre objetos. Objetos e funes de
aplicao so comunicados ao usurio atravs dos signos de interface que formam a mensagem do designer.
Palavras-chaves: Design de Software, Design de Interfaces de Usurio, Semitica Computacional, Interao
Humano-Computador.
1. Introduo
A utilidade de um sistema computacional deve ser considerada em trs nveis distintos. No
nvel do computador a nfase est no hardware e software do sistema. preciso definir como
os procedimentos podem ser automatizados e como as informaes podem ser codificadas.
Neste nvel importante avaliar a qualidade dos diversos elementos do computador como
confiabilidade, segurana, eficincia dentre outras.
No nvel da interao humano-computador a nfase est nas atividades que os usurios devem
fazer e na forma como as informaes so percebidas ou produzidas por eles. Neste nvel, as
tarefas do domnio devem determinar metas para cada usurio que devem poder ser realizadas
utilizando o sistema. neste nvel tambm que se avalia a usabilidade do sistema, isto , a
facilidade de uso e de aprendizado, produtividade e satisfao do usurio, dentre outras
qualidades.
No nvel do contexto todos o componentes podem ser visualizados de forma integrada. Neste
nvel o hardware e o software so visto como um componente nico que interage com os
diversos usurios de maneira a permitir que as tarefas do domnio possam ser realizadas.
Neste nvel avalia-se o quanto o sistema resolve os problemas da organizao, isto , a sua
aplicabilidade.
O foco da cincia da computao est no nvel do computador. Na engenharia de software,
tradicionalmente um campo cientfico pertencente cincia da computao, alguns mtodos e
tcnicas de desenvolvimento abordam apenas o conhecimento necessrio para o
desenvolvimento com foco no nvel do computador sem dar a devida importncia ao nvel da
interao e do contexto. Na dcada de 80, alguns autores ressaltaram a importncia de
desenvolver sistemas centrado-no-usurio com o objetivo de produzir sistemas que
atendessem s necessidades de usurios e melhorassem a sua usabilidade [Norman & Draper
86].
Recentemente diversos autores argumentaram sobre a necessidade de trazer para o
desenvolvimento de software a atividade de design, no mesmo sentido do papel que a
atividade de design industrial desempenha para o desenvolvimento de artefatos em geral, ou
que a arquitetura desempenha para a construo civil [Winograd 86]. Segundo David Liddle,
"o design de software o ato de determinar a experincia do usurio com um pedao de
software. No tem nada a ver sobre como o cdigo opera internamente ou se ele grande ou
pequeno. A tarefa do designer especificar de forma completa e no ambgua a experincia
global do usurio" [Liddle 86]. Neste sentido, design compreende as atividades de concepo,
especificao e prototipagem de um artefato interativo cuja matria prima so os signos que o
formam. A experincia do usurio surge da interao com o sistema atravs destes signos.
Na perspectiva de design o software deve ser visto como um artefato virtual e como tal ele
um produto a ser aplicado com utilidade num certo contexto e por isso chamado de aplicao
de software. Este artefato virtual algo que possui um modelo conceitual prprio a sua
funcionalidade e a sua interatividade. A funcionalidade determina aquilo o que ele faz e que o
torna til para resolver problemas dos usurios. A interatividade determina a maneira como o
usurio dever utilizar o software. A perspectiva de design precisa ampliar o foco e considerar
no apenas o computador, mas tambm os nveis da interao e do contexto.
Este trabalho discute a importncia da perspectiva de design de software e apresenta um
framework conceitual que orienta como esta atividade deve ser desempenhada. No framework
o design de software compreende a concepo, especificao e prototipagem da partes
externas, internas e conceituais do software. A parte externa compreende a interface de
usurio. A parte interna compreende a arquitetura de componentes de software e os algoritmos
e estruturas de dados que implementam estes componentes. A parte conceitual corresponde
aos modelos mentais obtidos das diferentes perspectivas que usurios, programadores e
designers possuem quando interpretam o software. O framework permite o design do software
em termos dos seus elementos externos, internos e conceituais, possibilitando a integrao das
diferentes perspectivas.
Nosso trabalho est fundamentado em teoria semitica e segue a abordagem denominada de
Engenharia Semitica [de Souza 93]. Ele faz parte de um contexto mais amplo que aplica
teoria semitica no design de interfaces e programao para usurio-final. Modelos e
formalismo para o design de interfaces forma descritos em [Leite 98].
Na seo seguinte vamos apresentar um exemplo que mostra diferentes perspectivas de uma
aplicao, diferenciando a importncia da perspectiva de design. Na seo 3 apresentamos a
fundamentao terica que explica estas diferentes perspectivas e discutimos as suas
conseqncias para o design. A seo 3 introduz a abordagem da Engenharia Semitica para
o design de software. Na seo 4 apresentamos o framework conceitual para o design que
distingue os elementos conceituais, computacionais e de interface, de acordo com a teoria
estudada. Na ltima seo discutiremos a importncia da perspectiva de design e da teoria
semitica na engenharia de software.
2. As diferentes perspectivas em um software
Usurios e programadores normalmente possuem diferentes perspectivas de um software. A
perspectiva do usurio de uma aplicao de software est em como ele pode resolver os
problemas do usurio. A perspectiva de um programador est em como uma certa soluo
resolvida por algoritmos. No design centrado-no-usurio o designer precisa ter uma
perspectiva que seja a mais prxima possvel daquela que o usurio tem do sistema. Nesta
seo vamos discutir as perspectivas do usurio e do programador. Na seo 4 discutiremos a
perspectiva do designer.
Para exemplificar as diferentes perspectivas do usurio e do programador, vejamos o exemplo
de um programa simples que, com pequenas alteraes no programa que no alteram a
essncia do algoritmo, pode ser visto como aplicaes de software de distintas.
Vamos supor que um usurio esteja utilizando uma aplicao de software. Vejamos o seguinte
trecho de interao entre o usurio (U) e o sistema (S).
S: Fornea um nmero:
U: 5.3
S: Voc deve digitar apenas nmeros inteiros:
U: 5
S: Fornea outro nmero:
U: 8
S: O resultado 3
Observando a interao do usurio com o sistema podemos concluir que o software realizou
uma subtrao. Assim, a funcionalidade deste software realizar subtraes de dois nmeros
inteiros. Vejamos, agora o algoritmo que poderia gerar este software.
escreva("Fornea um Nmero:");
leia A;
enquanto A no for inteiro faa
escreva(Voc deve digitar apenas nmeros inteiros:)
leia A;
escreva("Fornea outro Nmero:");
leia B;
C = A - B;
escreva("O resultado ", C);
E
Expresso
I Interpretante
Objeto
O
Programa fonte,
em linguagem de Signos da
programao. E Interface de
Usurio E
Compreenso
e utilizao do
I I modelo
Transformao
Compreenso do conceitual da
de estados de Modelo conceitual
funcionamento aplicao
dados e espaos da aplicao
do programa.
de memria. subtrao
O O
Figura 2: Signos da Aplicao Subtrao: (a) interpretado pelo programador e (b) interpretado pelo usurio
Com base na discusso da seo anterior podemos concluir que a atividade de design de
software, no sentido mencionado na introduo, requer notaes que permitam ao designer
uma perspectiva prxima daquela que o usurio ter. Isto significa que os modelos conceituais
adquiridos pelo usurio e pelo designer devem ser bastante semelhantes.
Os mtodos de design de software devem utilizar-se apenas de modelos que permitam
antecipar a usabilidade. Os cenrios, esboos e prottipos so exemplos de modelos que
auxiliam o designer a compartilhar a mesma perspectiva do usurio. Notaes mais
tradicionais da engenharia de software como diagramas da arquitetura do software, algoritmos
descritos em linguagem natural estruturada, modelos grficos de estruturas de dados,
linguagens de especificao funcional, dentre outras, visam descrever abstratamente o
funcionamento e no a usabilidade.
Entretanto, no basta apenas utilizar a mesma notao que ser utilizada pelo usurio.
preciso ter a garantia de que mesmo utilizando expresses iguais, as interpretaes do
designer e do usurio sero compatveis entre si.
Para atingirmos este objetivo o processo de design de software deve ser visto como um
processo comunicativo no qual o designer elabora uma mensagem expressa atravs da
interface de usurio cujo contedo o modelo conceitual da aplicao. Ser preciso utilizar
uma notao para a elaborao do modelo conceitual e regras que permitam correlacionar
elementos do modelo com os signos da interface de usurio.
5. A Engenharia Semitica
A Engenharia Semitica uma abordagem na qual sistemas so considerados como artefatos
de metacomunicao [de Souza 93]. Nesta perspectiva a interface vista como uma
mensagem unidirecional e indireta de designers para usurios. Esta mensagem se caracteriza
pela sua capacidade de, ela prpria, enviar e receber mensagens durante o processo de
interao entre o usurio e o sistema.
Quando o usurio entra em contato visual (ou, mais genericamente, sensorial) com a interface,
ele realiza um esforo de interpretao e compreenso a respeito do significado de todos os
seus dispositivos e da informao que eles veiculam. O conceito de signo como apresentado
por Peirce mostra-nos que a mensagem que o designer envia para os usurios tm como
expresso a interface de usurio e como contedo a funcionalidade e o modelo de interao
definidos pelo programa que implementa o sistema [Peirce 31]. O interpretante deste signo ,
para o usurio, o modelo conceitual que ele adquire a partir da interpretao da interface - que
a expresso do sistema - durante o processo de interao.
Por exemplo, o usurio, quando observa um widget na interface, precisa saber como pode
utiliz-lo e qual ser o comportamento do sistema aps a sua ao. O que est sendo
interpretado pelo usurio, mesmo sem perceber, o que o designer quis dizer sobre aquele
widget. A interpretao que a Engenharia Semitica oferece para este processo a de que a
interface est transmitindo uma mensagem para o usurio, do tipo Eis aqui um boto.
Aperte-o e ele realizar tal operao. A interface, isto , os diversos elementos que a
formam (mouse, teclado, widgets, menus, caixas de dilogo, instrues, avisos, comandos,
etc) , pois, uma mensagem formada por outras mensagens.
A abordagem da engenharia semitica nos mostra que as perspectivas do designer e do
usurio podem ser aproximadas pela utilizao de signos de interfaces que gerem as mesmas
interpretaes. Neste processo comunicativo preciso formular o contedo e gerar a
expresso que permita ao designer interpretar o mesmo contedo. Neste caso preciso que o
designer especifique o modelo conceitual da aplicao e que possa mape-lo em signos de
interface. Neste caso temos uma correlao semntica entre expresso e contedo, no qual
signos de interface tm como significado elementos do modelo conceitual. O modelo
conceitual da aplicao funciona como uma representao da semntica do software.
Usurio
Signos de Interface
Signos Conceituais
Designer
Signos Computacionais
Programador
1 representa 1
Arquivo de usurios Tabela de registros
armazena
0..*
Registro de usurio 0..* representa Formulrio de usurio
1 1 1 1 1 1 1 1
nome livros Campo Boto
Boto
emprestados Nome emprestimo
cancelar
matricula
Campo Boto
Matricula gravar
Figura 4: Signos conceituais para a aplicao cadastrar cliente usando diagramas de classes UML
O diagrama de classes permite uma viso abstrata e esttica dos objetos da aplicao. Para
visualizarmos o modelo de interao preciso diagramas que possibilitam uma viso
dinmica. O diagrama de atividades utilizado para descrever as atividades do usurio e do
sistema durante o processo de cadastramento. O diagrama de atividades UML descrito na
figura 5 o elemento conceitual que descreve a funcionalidade e o modelo de interao desta
funo da aplicao cadastrar cliente.
Sistema Usurio
Escolher cadastrar
usurio
exibir formulrio
de usurio
Fornecer dados
Pressionar gravar
Ler registro usurio
do formulrio
Figura 5: Signos conceituais para a aplicao cadastrar cliente usando diagramas de atividades UML
Os signos conceituais descrevem de forma abstrata os objetos que devero ser percebidos pelo
usurio do sistema atravs de signos de interface. A figura 6 mostra dois possveis signos de
interfaces associados aos objetos tabela de registro e formulrio de registro e seus respectivos
componentes. Os outros objetos como arquivos de clientes e registro e cliente so possuem
signos de interfaces correspondentes uma vez que no so visualizados pelo usurio.
Tabela de registro de clientes
Nome:
Matrcula:
Sim No
Gravar Cancelar
Para que a aplicao seja implementada, os signos conceituais e os signos de interface devem
ser codificados como signos computacionais de uma linguagem de programao. Os objetos
da aplicao Tabela de registros, Registro de cliente e Formulrios de registro de cliente -
descritos anteriormente na forma de signos conceituais e de interface podem ser descritos
como estruturas de dados em uma linguagem de programao (estilo linguagem C), como
mostra a figura 7.
Struct Tabela {
Registro cliente;
Struct Form {
} TabelaRegistros[100]; Textbox CampoNome;
Struct Registro { Numbox CampoMatricula;
Char nome; RadioButton Emprstimos;
Int matricula; PushButton Gravar;
Boolean emprstimos; PushButton Cancelar;
} } Formulrio registro;
7. Concluso
Este artigo mostrou um framework que descreve como incorporar a atividade de design no
desenvolvimento de software de maneira a integrar as diferentes perspectivas que usurios,
designers e programadores possuem em relao a uma aplicao. Discutimos com base em
teoria semitica que a perspectiva de programao inadequada ao design, pois a
interpretao obtida do cdigo fonte do programa descreve o funcionamento da aplicao.
Usurios interpretam a aplicao a partir de signos veiculados pela interface de usurio.
Durante este processo de interao o usurio adquire o modelo conceitual da aplicao.
Para que a atividade de design seja realizada adequadamente, designer e usurios precisam
compartilhar modelos conceituais semelhantes.
A Engenharia Semitica uma abordagem na qual o design visto como um processo de
produo de signos. Ela considera que o sistema computacional veicula uma mensagem
atravs da interface, compostas por signos de interface, cujo contedo o modelo conceitual
da aplicao. Neste processo comunicativo o designer deve formular o modelo conceitual e
expressa-lo atravs dos signos de interface.
O framework apresentado neste trabalho mostra que o processo de produo de signos durante
do design envolve a especificao dos signos conceituais que descrevem o modelo conceitual
e dos signos de interface que sero vistos pelo usurio. Os signos de interface devem estar
semanticamente relacionados com os primeiros uma vez que a interpretao do usurio deve
convergir em torno do modelo conceitual pretendido pelo designer.
Em [Leite 98] apresentamos uma Linguagem para Especificao da Mensagem do Designer
(LEMD) que permite a descrio da interface de maneira abstrata como sendo uma mensagem
enviada do designer para o usurio. Mostramos ainda como os elementos desta descrio
podem ser mapeados em signos de interface disponveis nas principais interfaces grficas,
como botes, caixa de texto, menus e vrios outros.
Atualmente estamos aplicando este mtodo no re-design de uma aplicao de software para
telemarketing. Vamos comparar esta verso com a j existente atravs de testes de usabilidade
com o objetivo de avaliar as vantagens de nosso framework.
Nosso prximo objetivo desenvolver uma ferramenta de apoio ao design que permita ao
designer integrar os diferentes signos conceituais, com signos de interface e signos
computacionais. Esta ferramenta inclui ainda recursos para a construo de modelos de tarefas
e cenrios de uso.
8. Referncias
Booch, G.; Rumbaugh, J. & Jacobson, I. The Unified Modeling Language, Addison-Wesley, 1999.
De Souza, C.S. The Semiotic Engineering of User Interface Languages. International Journal of
Man-Machine Studies 39. Academic Press. 1993. pp. 753-773.
Eco, U. A Theory of Semiotics. Bloomington, IN. Indiana University Press. 1976. Edio brasileira:
Tratado Geral de Semitica, coleo estudos 73, ed. Perspectiva, 2a. Edio, So Paulo 1991.
Leite, J. Modelos e Formalismos para a Engenharia Semitica de Interfaces de Usurio. Tese de
doutorado, Pontifcia Universidade Catlica do Rio de Janeiro, 1998.
Liddle D. Design of the Conceptual Model in Winograd, T. (Ed.) Bringing Design to Software.
Addison-Wesley, 1996.
Meyer B. A Theory of Programming Languages. Prentice-Hall, 1986.
Peirce, C.S. 31-58. Collected Papers (1931-1958). Edio brasileira: Semitica. So Paulo, Ed.
Perspectiva (coleo estudo, n.46) 1977.
Winograd, T. (Ed.) Bringing Design to Software. Addison-Wesley, 1996.