Вы находитесь на странице: 1из 6

IV Congresso Brasileiro de Computao CBComp 2004

Engenharia de Software

Aplicabilidade de Padres de Engenharia de


Software e de IHC no Desenvolvimento de
Sistemas Interativos
Andr Constantino da Silva1, Jnia Coutinho Anacleto Silva, Rosngela Aparecida Dellosso Penteado,
Srgio Roberto Pereira da Silva.
Abstract -- A Pattern is a way to express knowledge using
words and sketches in a structured form. The knowledge
expressed by the pattern is a success solution for a recurrent
problem in a determined context. It has many characteristics and
two main advantages: 1) it supplies a vocabulary between their
users and 2) it captures experience. Patterns can be used in
Software Engineering and Human-Computer Interaction to
transfer knowledge and to improve the communication between
the development team, resulting in a better participation of users
of interactive systems. Therefore, to better use the patterns
potential in these areas, it is necessary that its use dont be adhoc.
Thus, studies are necessary to point out better ways to use
patterns in an interactive system development process. For the
first step, potential patterns uses in the many process models
proposed by these areas were identified, include for them
integration.
Index Terms -- Computing Patterns, Human-Computer
Interaction, Interactive systems, Software engineering, User
interfaces.

I. INTRODUO

uas reas da Cincia da Computao se destacam no


desenvolvimento de sistemas interativos: a Engenharia de
Software (ES) e a Interao Humano-Computador (IHC).
Entretanto, essas reas divergem quanto ao foco dado durante
o desenvolvimento de tais sistemas. Enquanto o foco de ES
mais voltado para a tecnologia utilizada, o de IHC so os
aspectos da interao entre o ser humano e a mquina [1].
Apesar dessas duas reas divergirem quanto ao foco, ambas
propem o desenvolvimento de sistemas interativos de forma
sistemtica, definindo modelos de processo, mtodos e
tcnicas. Pode-se citar como modelos de processo propostos
pela ES o Cascata [2], o Incremental [3], a Prototipao [3], o
Espiral [3], o Rapid Application Development (RAD) [3], o
Rational Unified Process (RUP) [4] e os mtodos geis como
o Extreme Programming (XP) [5]. Como modelos de processo
propostos pela IHC cita-se o Projeto Centrado no Usurio
(PCU) [6], o Estrela [7], a Engenharia de Usabilidade [8] e o
A. C. da Silva (e-mail: andrecons@dc.ufscar.br), J. C. A. Silva (e-mail:
junia@dc.ufscar.br) and R. A. D. Penteado (e-mail: rosangel@dc.ufscar.br)
are with Federal University of So Carlos, Departamento de Computao,
Rod. Washington Luis, km 235, Caixa Postal 676, So Carlos-SP CEP 13565905.
S. R. da Silva (e-mail: srsilva@din.uem.br) is with State University of
Maring, Departamento de Informtica, Av. Colombo, 5790, zona 07,
Maring PR, CEP 87020-900.
1
A. C. da Silva bolsista financiado pela CAPES.

Design Participativo (DP) [9]. Alm da apresentao de tais


prticas, ambas as reas esto identificando e aplicando
padres (patterns) para o processo de desenvolvimento [10][14].
Embora os modelos de processo, mtodos e tcnicas
expressem o foco da rea que a prope, percebe-se que
possvel desenvolver sistemas interativos considerando
prticas de ambas as reas atravs da considerao dos
aspectos relevantes ES em conjunto aos considerados pela
IHC, objetivando o desenvolvimento de sistemas de forma
mais abrangente. Logo, considerando os aspectos dessas duas
reas durante o desenvolvimento, possvel construir sistemas
que no somente sejam de fcil manuteno, e que satisfaam
o usurio quanto ao prazo de entrega e ao custo, mas que
tambm o tornam mais confivel e de fcil utilizao pelo
usurio. Esses resultados so desejveis, pois o mercado est
se tornando cada vez mais competitivo, sendo a interface com
o usurio um diferencial de produto [15].
A integrao de ES e IHC no uma tarefa fcil embora
traga benefcios ao processo de desenvolvimento,
principalmente devido s divergncias de focos e de formao
dos profissionais. Para transpor essa dificuldade, necessrio
que ocorra uma identificao mais detalhada das tarefas a
serem realizadas durante o processo de desenvolvimento, no
se limitando somente a responsabilizar o engenheiro de
software pela parte tecnolgica e o especialista em IHC pela
interao e interface com o usurio. Essa diviso no
suficiente, pois aspectos de interao e tecnologia se
influenciam mutuamente.
Outra questo a ser considerada na integrao entre a ES e
a IHC a necessidade de uma boa comunicao entre os
especialistas das duas reas durante o desenvolvimento do
sistema. A falta de comunicao influencia no produto
construdo, como por exemplo, a adio de funcionalidades
no necessrias, cdigo de difcil compreenso e manuteno.
Nesse contexto, padres so considerados como uma
soluo para amenizar os problemas citados. Padres so
usados aqui como uma forma de expressar conhecimento
atravs de textos e esboos em um formato estruturado, cujo
conhecimento expresso como uma soluo de sucesso para
um problema que ocorre freqentemente em um determinado
contexto [16].
Padres podem ser utilizados para melhorar a comunicao
entre os profissionais das diferentes reas, permitindo tambm
que eles expressem conhecimentos obtidos durante o
118

IV Congresso Brasileiro de Computao CBComp 2004


desenvolvimento de sistemas, de tal forma que possam ser
reaproveitados em outros projetos, permitindo diminuir custos
e aumentar a qualidade dos sistemas desenvolvidos.
Conceitos envolvendo padres so apresentados na Seo
II, e nas Sees III e IV discutida a aplicabilidade de
padres nos modelos de processos propostos pela ES e pela
IHC, respectivamente. Na Seo V discutida a aplicabilidade
dos padres de ES e de IHC no desenvolvimento de sistemas
interativos. Finalmente, na Seo VI so apresentados as
consideraes finais e trabalhos futuros com a aplicao de
padres.
II. PADRES
Padres podem ser vistos como uma forma de expresso,
contendo informaes textuais e esboos, que surgiram
durante o Renascimento, no sculo XV, quando Francesco di
Giorgio expressou alguns de seus projetos em um formato que
permitisse que outras pessoas aproveitassem suas solues em
outros projetos [10].
O mais antigo estudo em larga escala envolvendo padres
ocorreu durante as dcadas de 60 e 70, na Arquitetura, com o
trabalho de Chistopher Alexander [16][17]. Alexander definiu
um padro como uma soluo para um problema em um
contexto e apresentou diversas caractersticas dos padres,
alm de observar que os padres no esto isolados.
A seguir so revisadas algumas das caractersticas gerais de
padres reunidas por Fincher [18]. As definies apresentadas
tentam integrar definies da ES e da IHC:
1) Formato de Apresentao: padres so descritos
dividindo sua apresentao em um determinado nmero de
elementos. Os elementos so escolhidos de acordo com a
nfase e os detalhes que o autor deseja destacar no padro.
Logo, percebe-se que no existe um formato nico [19][20];
2) Captura da Prtica: um padro apresenta uma
soluo para um problema existente na prtica cuja soluo
pode ser aplicada, de modo eficiente, a diversos casos;
3) Abstrao: os padres no podem ser abstratos
demais e nem muito especficos. Quando um padro muito
abstrato, o usurio do padro necessita redescobrir como
aplicar a soluo, impedindo um melhor aproveitamento da
soluo do padro. Padres especficos demais tambm no
so desejveis, pois impediria uma maior aplicao do padro;
4) Princpio de Organizao: Alexander observou que
os padres no esto isolados, existe um relacionamento entre
eles [16]. Padres atualmente so organizados seguindo um
dos dois princpios:
Catlogo de Padres: apresenta um conjunto de
padres;
Linguagem de Padres: apresenta um conjunto
estruturado de padres, o relacionamento entre eles e
informaes relevantes sobre o domnio e a aplicabilidade da
linguagem. Na linguagem, os padres que a compem devem
cobrir todos os aspectos importantes de um dado domnio
[21];
5) Facilidade de Compreenso: um padro escrito de
forma compreensvel, simples e coesa para facilitar a sua

Engenharia de Software
leitura e aplicao.
Atravs dessas caractersticas, padres possuem,
basicamente, duas vantagens:
Fornecimento de um Vocabulrio: padres podem ser
utilizados para melhorar a comunicao entre a equipe de
desenvolvimento ou, tambm, permitir que os usurios
(clientes da equipe de desenvolvimento) opinem e se
expressem melhor. A segunda alternativa foi explorada pelos
trabalhos de Alexander;
Captura da Experincia: como padres apresentam
solues de sucesso que foram identificadas e evoludas ao
longo do tempo, eles capturam a experincia. Logo, padres
podem ser utilizados para a transferncia de conhecimento
entre pessoas de nveis de experincia diferentes. A utilizao
de padres para transferncia de conhecimento amplamente
explorada e utilizada pela ES.
Diante dessas caractersticas e vantagens, os padres
possuem uma ampla aplicabilidade no desenvolvimento de
sistemas interativos. Essa aplicabilidade de padres, tanto na
ES quanto na IHC, ser discutida nas prximas sees.
III. APLICABILIDADE DOS PADRES NOS MODELOS DE
PROCESSO DE ENGENHARIA DE SOFTWARE
Com a experincia em desenvolvimento de sistemas, mais
precisamente durante a elaborao do projeto, Gamma, Helm,
Johnson e Vlissides publicam, em 1995, um livro contendo
uma coleo de padres de projeto de sistemas orientados a
objetos [11]. Segundo esses autores, o objetivo da sua coleo
de padres fornecer meios de tornar o sistema mais reusvel,
e tambm anular alternativas que comprometam a reutilizao.
Entretanto, esse trabalho se destaca devido utilizao de
padres para a transferncia de experincia entre profissionais
de nveis de conhecimento diferentes, ignorando a
participao do usurio do sistema durante o desenvolvimento
na etapa de projeto. Segundo Fincher [22], Gamma et al.
desconsideraram a participao do usurio do sistema
motivados pela no necessidade dos usurios conhecerem
internamente o sistema.
Alm dos padres de projeto de Gamma et al., diversos
outros padres da ES foram identificados. Em 1996,
Buschmann et al. [12] publicaram um livro contendo diversos
padres. Nesse livro, os padres da ES so divididos em trs
categorias:
Padres Arquiteturais: expressam o esquema ou
organizao estrutural para sistemas de software ou hardware,
dividindo o sistema em componentes ou em subsistemas, e
apresentando o relacionamento entre eles;
Padres de Projeto: fornecem um esquema para refinar
os subsistemas ou componentes de um sistema de projeto de
software;
Padres de Programao ou Idiomas: so padres de
baixo nvel, especficos para uma linguagem de programao,
que descrevem como implementar aspectos particulares dos
componentes ou a relao entre eles usando caractersticas de
uma determinada linguagem.
Alm destas trs categorias definidas por Buschmann et al.,
119

IV Congresso Brasileiro de Computao CBComp 2004


existem outras categorias, entre elas pode-se citar:
Padres de Anlise: descrevem solues para problemas
de anlise de sistemas;
Padres de Interface: so casos particulares de padres
de projeto e definem solues para problemas comuns no
projeto de interface de sistemas;
Padres de Processo: define solues para os problemas
encontrados nos processos envolvidos na ES, como por
exemplo, desenvolvimento, gerenciamento de configuraes e
testes;
Padres Organizacionais: descrevem abordagens
provadas e de sucesso para organizar e gerenciar pessoas
envolvidas com os processos na ES.
Analisando as categorias acima definidas pode-se notar a
relao existente entre as fases de desenvolvimento de um
sistema e o melhor uso de padres em cada uma delas. Na fase
de especificao de requisitos pode-se aplicar padres de
anlise. Essa fase ocorre:
- na etapa de anlise de requisitos no modelo de processo
Cascata ou Incremental;
- na etapa de engenharia do produto no modelo de processo
Prototipao;
- na atividade de engenharia no modelo de processo
Espiral;
- no workflow de anlise e projeto no modelo de processo
RUP; ou
- na etapa de iteraes e lanamentos no modelo de
processo XP.
Exemplos de padres de anlise so os contidos na
linguagem de padres para Gesto de Recursos de Negcio
(GRN) [23], cujos padres auxiliam na especificao de
requisitos do domnio de gesto de recursos, como: locar,
vender, manter recursos.
Na elaborao do projeto, os padres arquiteturais podem
ser utilizados para apoiar a escolha da arquitetura do sistema.
Isso acontece:
- durante a etapa de projeto de sistemas e de software no
modelo Cascata;
- na atividade de Engenharia do modelo Espiral;
- na etapa de Projeto do Incremental;
- no workflow anlise e projeto do RUP; ou
- ao obter o projeto simplificado ou durante a construo da
metfora do sistema no XP.
A escolha ser realizada atravs da comparao entre os
requisitos do sistema com as foras apresentadas pelo padro.
O padro arquitetural escolhido ir apresentar quais so os
componentes a serem utilizados e como se realiza a
comunicao entre eles. Padres de projeto da ES so
aplicados para refinar esses componentes e a comunicao
entre eles. Por exemplo, no caso de sistemas interativos,
poderia ser utilizado o padro arquitetural Model-ViewController (MVC) ou o padro arquitetural PresentationAbstraction-Control (PAC), podendo utilizar os padres de
projeto de Gamma et al. para refinar os componentes e a
comunicao entre eles considerando a reusabilidade do
sistema, pois esses padres, segundo seus autores, tornam o

Engenharia de Software
sistema mais reutilizvel. Nessa etapa de desenvolvimento
tambm possvel aplicar os padres de interface para auxiliar
na definio de interfaces do sistema em desenvolvimento
com outros sistemas.
No caso de sistemas orientados a objetos (OO), quando se
deseja utilizar um banco de dados no OO para a persistncia
dos dados, existem padres que auxiliam a isolar do
engenheiro de software os detalhes relacionados com a
implementao da persistncia, como o caso do padro
Persistent Layer [24]. Tambm se pode utilizar um outro
padro que auxilie na definio e distribuio de
responsabilidades relacionadas a operaes de leitura e escrita
de dados no banco de dados, como o caso do padro CRUD
[24]. Este padro mapeia funcionalidades da classe a
operaes possveis de serem realizadas em banco de dados
relacionais. Padres tambm podem ser utilizados para
projetar o banco de dados relacional e otimiz-los, como o
caso dos padres de [25] e [26].
Padres de processo e organizacionais podem ser aplicados
em todas as etapas do processo de desenvolvimento de
sistemas interativos. Exemplos de padres de processo so
apresentados por Ambler [27], que apresenta tambm uma
discusso de como e quando esses padres podem ser
aplicados durante o desenvolvimento.
Outros exemplos de padres de processo so os de testes,
que podem ser utilizados pelos engenheiros de software na
criao de casos de testes, apresentando quais das tcnicas de
testes poderiam ser aplicadas para um determinado problema.
Logo, padres de testes podem ser aplicados:
- na etapa de implementao e teste de unidade e na etapa
de integrao e teste de sistemas do modelo Cascata;
- na atividade de construo e entrega do Espiral;
- na fase de teste e entrega do modelo RAD;
- na etapa de teste do Incremental;
- no workflow de testes do RUP; ou
- na fase de iteraes e lanamentos do XP, mais
precisamente na atividade de testes.
Alm dessas aplicaes de padres da ES, padres podem
ser aplicados na conduo de processos de reengenharia.
Recchia [28] elaborou uma famlia de padres de processo
para a realizao de engenharia reversa de sistemas legados
Clipper, e padres para conduzir a engenharia avante desses
sistemas para sistemas em Delphi.
A aplicao de padres durante o processo de
desenvolvimento pode trazer diversos benefcios. Por
exemplo, pode tornar o cdigo do sistema menos pessoal, o
que auxilia em modelos de processo como o XP, que
padroniza tal tipo de cdigo, pois o mesmo compartilhado
por toda a equipe de desenvolvimento.
Outro benefcio da aplicao de padres no
desenvolvimento de sistema a melhora na comunicao entre
a equipe de desenvolvimento, atravs do fornecimento de um
vocabulrio comum. Esse benefcio se torna til em modelos
de processo que exigem uma ampla comunicao entre a
equipe de desenvolvimento, como o modelo de processo RAD
e os modelos de processo geis como o XP.
120

IV Congresso Brasileiro de Computao CBComp 2004


A aplicao de padres tambm pode aumentar a clareza
no projeto e no cdigo do sistema, desde que sua aplicao
seja facilmente identificada no artefato. O engenheiro de
software, habituado com os padres, compreender a
documentao de modo mais eficiente, pois j reconhece o
problema que o padro trata, alm das foras que estavam em
conflito e levaram aplicao do padro.
Percebendo os benefcios da aplicao de padres, diversos
padres esto sendo identificados e utilizados no
desenvolvimento de sistemas pelos engenheiros de software
[11][12][23][28]. Esses padres podem ser aplicados durante
as diversas etapas do desenvolvimento de sistemas.
Entretanto, percebe-se que tal aplicao aleatria, podendo
ser til uma forma sistemtica para melhor aproveitar os
benefcios da aplicao de padres.
IV. APLICABILIDADE DOS PADRES NOS MODELOS DE
PROCESSO DE INTERAO HUMANO-COMPUTADOR
Em 1998, Tidwell apresenta sua linguagem de padres
voltada para o desenvolvimento do projeto da interao entre
o homem e a mquina, considerando aspectos de IHC [13].
Segundo Fincher [18], esse trabalho se destaca devido ao seu
pioneirismo e tambm por ser a maior em escala e influncia
em IHC. Entretanto, esse trabalho no est finalizado, pois
alguns padres no esto totalmente escritos e outros no
foram escritos, mesmo tendo sido identificados.
Diversos outros padres de IHC foram propostos, entre
eles se destacam os identificados por Welie e Trtteberg [29],
cujos padres so voltados para o projeto da interao e
interfaces com o usurio. No formato proposto por esses
autores existe um elemento chamado Princpio de
Usabilidade, que descreve quais princpios de usabilidade o
padro est conectado. Esses princpios esto relacionados de
acordo com as categorias de problemas do usurio do sistema
propostas por Norman [30]. Esses autores tambm apresentam
no elemento Razo (Rationale), quais aspectos mensurveis
de usabilidade so incrementados ao aplicar o padro.
Outro trabalho que se destaca na identificao de padres
de IHC o de Borchers [10]. Borchers apresenta uma
linguagem de padres de IHC, mais especificamente para
projeto, focando a interao com quiosques e fornecendo certo
grau de transparncia da interao. Alm de padres de IHC,
Borchers tambm apresenta padres arquiteturais da ES e
padres especficos do domnio da aplicao, que em seu
campo de estudo a msica.
Em 2003, Tidwell divulga uma coleo de padres voltada
especificamente para a construo de interfaces com o usurio
[31]. Baseando-se em sua experincia na identificao e na
aplicao de padres no desenvolvimento de sistemas, Tidwell
[32] discute que Exemplos, Aplicabilidade e Evidncia
so os elementos mais importantes para os usurios dos
padres.
Logo, enfatizando essas caractersticas, em
detrimento de alguns aspectos formais, como a completude, o
formato, e a diferena entre uma tcnica e um padro, a
apresentao dos padres na sua coleo no uniforme.
Segundo Tidwell [32], os padres de Welie foram escritos

Engenharia de Software
apresentando explicaes do porqu o padro funciona e a
razo de se utilizar a soluo do padro do que uma outra. Ela
tambm considera a especificao e a aplicabilidade
caractersticas chaves desse trabalho. Diversos padres de
IHC foram identificados por Welie [14], e so apresentados
tanto padres para a interao na Web quanto padres para
interfaces grficas com o usurio (GUI) e tambm para a
interao com sistemas mveis. Alm da identificao de
padres de IHC, Welie e Veer prope a diviso de seus
padres nas seguintes categorias [33]:
Metas de Negcio: descrevem propsitos ou razes para
a existncia do sistema;
Padres de Postura: descrevem a estrutura que
comumente usada por sistemas relacionados;
Padres de Experincia: descrevem as principais metas
e tarefas do usurio;
Padres de Tarefas: apresentam solues para pequenos
problemas do usurio;
Padres de Ao: especifica o uso de widgets bem
conhecidos ou descrevem widgets customizveis.
Assim como na ES, no existe uma classificao bem
definida para os padres de IHC, pois o assunto ainda est
evoluindo nessas reas. Segundo Alpert [34], h indcios que
existam duas categorias de padres na IHC:
Padres de IHC: relacionados com assuntos de alto
nvel, e possivelmente com guidelines, envolvendo a
psicologia do usurio do sistema, podendo incluir tambm
padres arquiteturais;
Padres de Interface com o Usurio: relacionados com
problemas de interao especficos, sendo sua soluo baseada
em componentes de interface com o usurio.
Alm das categorias citadas, possvel encontrar na
literatura outros tipos de padres, como os padres para
Hipermdia, padres de usabilidade, padres para Web e
padres para avaliao de usabilidade.
Padres podem ser utilizados para detalhar tarefas
realizadas pelos usurios do sistema e como o sistema pode
suport-las. Esta atividade ocorre:
- na etapa de projeto do modelo de processo Projeto
Centrado no Usurio (PCU);
- na etapa de anlise de sistemas/ tarefas/ usurios/
funcionalidades do modelo Estrela; ou
- no estgio de conhecer o usurio no modelo Engenharia
de Usabilidade.
Deste modo, uma linguagem de padres para refinar as
solues propostas para as tarefas til, tendo como produto
final a especificao da interao e da interface com o usurio.
Quando existe a necessidade de se apresentar diversas
solues, como no caso do estgio de projeto detalhado da
Engenharia de Usabilidade, padres podem ser utilizados para
oferecer uma base para as diversas solues. Como os padres
no limitam a criatividade do projetista [35], diversas solues
iro ser propostas, entretanto com caractersticas em comum
definidas pelos padres escolhidos antes do incio das
atividades desse estgio.
Outro benefcio da no limitao da criatividade do
121

IV Congresso Brasileiro de Computao CBComp 2004


projetista a possibilidade de explorar alternativas de projeto,
pois a aplicao do padro no implica em uma nica soluo.
Isso ocorre devido liberdade de criatividade, oferecida
atravs do grau de abstrao. Essa aplicao de padres til
durante a realizao do estgio de projeto paralelo da
Engenharia de Usabilidade.
Percebe-se que os padres podem ser utilizados seguindo a
idia de Alexander: fornecer um vocabulrio que permita uma
maior participao do usurio no desenvolvimento. Essa idia
se difere da ES, que utiliza padres para transferncia de
conhecimento. Logo, em modelos de processo de IHC que
exigem uma ampla comunicao entre a equipe de
desenvolvimento e o usurio, como o caso do Design
Participativo, padres podem ser utilizados como um
vocabulrio entre a equipe de desenvolvimento e os usurios
finais, tornando a comunicao entre eles mais efetiva.
Existe tambm a possibilidade de expressar o feedback do
usurio do sistema atravs de padres, desde que se permita
ao usurio o acesso a eles. Os usurios poderiam indicar quais
padres eles acreditam que seriam uma melhor alternativa
para o problema identificado no sistema. Esse emprego til
durante o retorno etapa de projeto no modelo de processo
PCU, aps a etapa de avaliao, ou na etapa de avaliao de
usabilidade do modelo Estrela, ou na Engenharia de
Usabilidade, no estgio de coleta de feedback de estudo de
campo.
Outro modo de aplicao de padres o seu uso no
planejamento e na conduo de avaliaes, durante o processo
de desenvolvimento. Avaliaes ocorrem no modelo PCU
durante a etapa de avaliao, ou na etapa de avaliao de
usabilidade do modelo Estrela, ou nos estgios de teste
emprico e projeto interativo na Engenharia de Usabilidade.
Um exemplo de padres para avaliaes a linguagem
proposta por Gellner e Forbrig [36] que voltada ao
planejamento e conduo de avaliaes de usabilidade, e que,
segundo seus autores, pode ser utilizada independentemente
do modelo de processo seguido.
Do mesmo modo como padres podem auxiliar no
planejamento e conduo de avaliaes, eles tambm podem
ser utilizados para construir cenrios mais realsticos para
essas avaliaes.
Alm
dessas
aplicabilidades
no
processo
de
desenvolvimento, padres esto sendo utilizados para
expressar melhor os guidelines e as heursticas propostas por
especialistas em IHC. Como os guidelines podem no possuir
exemplos, no serem construtivos e serem conflitantes entre
si, e como as heursticas tambm no possuem exemplos, no
so construtivas e so muito abstratas [10][37], padres,
atravs de seu formato e de suas caractersticas, podem
expressar melhor essas ferramentas.
Percebe-se, ento, que padres podem ser aplicados nas
diversas atividades para o desenvolvimento de um sistema
interativo seguindo as prticas da IHC. Essa aplicao traz
como benefcio o uso de conhecimento de projetos anteriores,
e auxilia na garantia dos princpios de alguns modelos de
processo dessa rea, como o caso do princpio de

Engenharia de Software
envolvimento ativo do usurio do sistema no modelo de
processo PCU e DP.
V. APLICABILIDADE DOS PADRES DE ENGENHARIA DE
SOFTWARE E DE INTERAO HUMANO-COMPUTADOR PARA
DESENVOLVIMENTO DE SISTEMAS INTERATIVOS
Em processos de desenvolvimento de sistemas interativos
que consideram os aspetos tanto da ES como da IHC, a
comunicao entre os integrantes da equipe de
desenvolvimento e tambm entre essa e os usurios do sistema
de fundamental importncia para o sucesso do produto.
Devido ao fornecimento de um vocabulrio comum favorecer
o aumento da comunicao entre os envolvidos no processo, e
tambm devido facilidade de compreenso, padres podem
ser utilizados para melhorar a comunicao entre a equipe e os
usurios do sistema. Neste contexto, padres permitem um
maior envolvimento dos usurios no processo de
desenvolvimento fornecendo-lhes um vocabulrio para
expressar suas opinies. Esses usurios tambm podem
utilizar os padres para expressar seus requisitos como, por
exemplo, atravs de padres de anlise, e refinar os requisitos
atravs de padres de tarefas do usurio.
A caracterstica de facilidade de compreenso tambm
pode ser explorada no sentindo de permitir que especialistas
de uma rea compreendam as decises tomadas pelos
especialistas da outra rea envolvida no processo de
desenvolvimento. Esse conhecimento desejvel, pois facilita
as tomadas de decises que envolvam opinies dos
especialistas das diferentes reas.
Devido natureza dos padres em fornecer uma soluo
para um problema que formado por foras em conflito, eles
podem ser utilizados para expressar solues para os conflitos
entre engenheiros de software e especialistas de IHC que
ocorrem de forma recorrente no desenvolvimento de sistemas.
VI. CONSIDERAES FINAIS E TRABALHOS FUTUROS
Atravs da aplicao de padres possvel desenvolver o
sistema de modo mais abrangente, considerando e tratando os
aspectos relevantes de ES e de IHC. Entretanto, necessrio
que os padres no sejam aplicados de modo aleatrio, para
que se possa aproveitar melhor o seu potencial no processo.
Isso ocorre devido a enorme quantidade de padres j
identificados, e a crescente identificao de novos padres.
Um estudo necessrio para que os padres j identificados e
usados pelas reas relacionadas com o desenvolvimento de
sistemas sejam mais bem explorados. Uma alternativa
identificada a composio dos padres relacionados com o
desenvolvimento de sistemas interativos em uma coleo mais
abrangente do que as propostas pelos autores dos padres.
Essa coleo dever reunir os diversos padres existentes e
fornecer diretivas mais especficas relacionadas a sua
aplicao durante o processo de desenvolvimento.

122

IV Congresso Brasileiro de Computao CBComp 2004

Engenharia de Software

VII. REFERNCIAS BIBLIOGRFICAS


[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]

[22]
[23]
[24]
[25]

[26]

[27]
[28]

J. Brown, Methodologies for the Creation of Interactive Software,


Victoria University of Wellington., Wellington, Nova Zelndia, Tech.
Rep. CS-TR-96/1, May. 1996.
I. Sommerville, Engenharia de Software, 6.ed. So Paulo: AddisonWesley Pub. Co., 2003, p. 592.
R. S. Pressman, Engenharia de Software, 5.ed. Rio de Janeiro: McGrawHill, 2002, p. 843.
P. Kruchten, The Rational Unified Process An introduction. 2.ed.
Nova Jersey: Addison-Wesley Pub. Co., 2000, p. 320.
Extreme
Programming.
[Online].
Available:
http://www.extremeprogramming.com .
J. Preece, A Guide to Usability: Human factors in computing. USA:
Addison-Wesley Pub. Co., 1993, p. 143.
D. Hix, H. R. Hartson, Developing User Interface: Ensuring Usability
Through Product & Process. USA: Wiley & Sons Inc., 1993, p. 381.
J. Nielsen, Usability Engineering. California: Academic Press, 1993, p.
362.
A. J. Dix, J. E. Finlay, G. D. Abowd, R. Beale, Human-Computer
Interaction, 2.ed. England: Prentice Hall Europe, 1998, p. 454.
J. Borchers, A Pattern Approach to Interaction Design. England: John
Wiley & Sons Ltd., 2001, p. 246.
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns:
Elements of Reusable Object-Oriented Software. Boston: AddisonWesley, 1995, p. 395.
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, E. Stal, PatternOriented Software Architecture. Volume 1: A System of Patterns, Vol. I.
England: John Wiley & Sons Ltd., 1996, p. 476.
J. Tidwell, Commond Ground: a Pattern Language for HumanComputer Interface Design, presented at the 5th PLoP, Monticello,
USA, 1998.
M. Van Welie, Pattern in Interaction Design. [Online]. Available:
http://www.welie.com .
X. Ferr, Approaches to HCI Integration into Software Engineering
Processes: How Much We Still Need to Do, in Proc. Workshop WIHCES. in CLICH 2003, pp. 11-17.
C. Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahlking, S. Angel, A Pattern Language: Towns, Buildings, Construction.
Oxford: Oxford University Press, 1977, p. 1216.
C. Alexander, The Timeless Way of Building. Oxford: Oxford
University Press, 1979, p. 568.
S. Fincher, What is a Pattern Language?, presented at the 16th CHI,
Pittsburgh, USA, 1999.
S. Fincher. HCI Pattern-Form Gallery. [Online]. Available:
://www.cs.kent.ac.uk/people/staff/saf/patterns/gallery.html .
W. Cunningham, Wiki Wiki Web. [Online]. Available:
http://c2.com/cgi/wiki?WelcomeVisitors .
J. O. Coplien, "Software Design Patterns: Common Questions and
Answers," in The Pattern Handbook: Techniques, Strategies, and
Applications, L. Rising, Ed. New York: Cambridge University Press,
1998, pp. 311-320.
S. Fincher, What is a Pattern Language?, Presented at INTERACT99.
[Online].
Available:
http://media.informatik.rwthaachen.de/patterns/tiki/tiki-download_file.php?fileId=11.
R. T. V. Braga, F. S. R. Germano, P. C. Masiero, A Pattern Language
for Business Resource Management, presented at the 6th PLoP,
Monticello, USA, 1999.
J. W. Yoder, R. E. Johnson, Q. D. Wilson, Connecting Business
Objects to Relational Database, presented at the 5th PLoP, Monticello,
USA, 1998.
K. Brown, B. Whitenack, Crossing Chasms: A Pattern Language for
Object-RDBMS Integration, in Pattern Languages of Programming
Design, vol. 2, J. M. Vlissides, J. O. Coplien, N. L. Kerth, Eds. Reading,
MA: Addison-Wesley Pub. Co., 1996, pp. 227-238.
W. Keller, J. Coldewey, Accessing Relational Databases: A Pattern
Language, in Pattern Languages of Programming Design, vol. 3, R.
Martin, D. Riehle, F. Buschmann, Eds. Reading, MA: Addison-Wesley
Pub. Co., 1998, pp. 313-343.
S. W. Ambler, Process Patterns: Building Large-Scale Systems Using
Object Technology, United Kingdom: Cambridge University Press,
1998, 582 p.
E. L. Recchia, R. A. D. Penteado, Uma Famlia de Padres para
Reengenharia Orientada a Objeto, in Proc. of The Second Latin

[29]
[30]
[31]
[32]
[33]
[34]

[35]
[36]
[37]

American Conference on Pattern Languages of Programing SugarLoafPlop, pp. 237-252.


M. Van Welie, H. Trtteberg, "Interaction Patterns in User Interfaces,"
presented at the 7th PLoP, Monticello, USA, 2000.
D. Norman, The Design of Every Things. USA: Basic Books, 1988, p.
272.
J. Tidwell, User Interface Patterns And Techniques. [Online]. Available:
http://time-tripper.com/uipatterns .
J. Tidwell, "Perspectives on HCI Patterns: Concepts an Tools," Position
paper presented at the Workshop on Perspectives on HCI Patterns in
20nd CHI, Flrida, USA, 2003.
M. Van Welie, G. C. Van der Veer, Pattern Languages in Interaction
Design: Structure and Organization, presented at the 9th. INTERACT,
Zrich, Suca, 2003.
S. R. Alpert, Getting Organized: Some Outstanding Questions and
Issues Regarding Interaction Design Patterns, Position paper presented
at the Workshop on Perspectives on HCI Patterns in 20nd CHI, Flrida,
USA, 2003.
J. Vlissides, Patterns: The Top Ten Misconceptions, Object Magazine,
1997.
M. Gellner, P. Forbrig, A Usability Evaluation Pattern Language,
presented at the 9nd INTERACT, Zrich, Sua, 2003.
M. Van Welie, G. C. Van der Veer, A. Elins, Patterns as Tools for
User Interface Design, presented at the Int. Workshop on Tools for
Working with Guidelines, Biarritz, French, 2000.

VIII. BIOGRAFIAS
Andr Constantino da Silva: graduado em Cincia da Computao pela
Universidade Federal de Gois, mestrando em Cincia da Computao pelo
PPG-CC/UFSCar.
Jnia Coutinho Anacleto da Silva: professora adjunta do Departamento de
Computao da UFSCar, doutora em Fsica Computacional pelo IFSC/USP.
Rosangela Aparecida Dellosso Penteado: professora adjunta do
Departamento de Computao da UFSCar, doutora em Fsica Computacional
pelo IFSC/USP.
Srgio Roberto Pereira da Silva: professor do Departamento de Informtica
da UEM, doutor em Cincia da Computao pela PUC/RJ.

123