Artigo - EnG Software
Artigo - EnG Software
Artigo - EnG Software
Abstract -- A Pattern is a way to express knowledge using Design Participativo (DP) [9]. Além da apresentação de tais
words and sketches in a structured form. The knowledge práticas, ambas as áreas estão identificando e aplicando
expressed by the pattern is a success solution for a recurrent padrões (patterns) para o processo de desenvolvimento [10]-
problem in a determined context. It has many characteristics and [14].
two main advantages: 1) it supplies a vocabulary between their
Embora os modelos de processo, métodos e técnicas
users and 2) it captures experience. Patterns can be used in
Software Engineering and Human-Computer Interaction to expressem o foco da área que a propõe, percebe-se que é
transfer knowledge and to improve the communication between possível desenvolver sistemas interativos considerando
the development team, resulting in a better participation of users práticas de ambas as áreas através da consideração dos
of interactive systems. Therefore, to better use the pattern’s aspectos relevantes à ES em conjunto aos considerados pela
potential in these areas, it is necessary that its use don’t be adhoc. IHC, objetivando o desenvolvimento de sistemas de forma
Thus, studies are necessary to point out better ways to use
mais abrangente. Logo, considerando os aspectos dessas duas
patterns in an interactive system development process. For the
first step, potential pattern’s uses in the many process models áreas durante o desenvolvimento, é possível construir sistemas
proposed by these areas were identified, include for them que não somente sejam de fácil manutenção, e que satisfaçam
integration. o usuário quanto ao prazo de entrega e ao custo, mas que
também o tornam mais confiável e de fácil utilização pelo
Index Terms -- Computing Patterns, Human-Computer usuário. Esses resultados são desejáveis, pois o mercado está
Interaction, Interactive systems, Software engineering, User se tornando cada vez mais competitivo, sendo a interface com
interfaces.
o usuário um diferencial de produto [15].
A integração de ES e IHC não é uma tarefa fácil embora
I. INTRODUÇÃO
traga benefícios ao processo de desenvolvimento,
118
IV Congresso Brasileiro de Computação – CBComp 2004 Engenharia de Software
desenvolvimento de sistemas, de tal forma que possam ser leitura e aplicação.
reaproveitados em outros projetos, permitindo diminuir custos Através dessas características, padrões possuem,
e aumentar a qualidade dos sistemas desenvolvidos. basicamente, duas vantagens:
Conceitos envolvendo padrões são apresentados na Seção • Fornecimento de um Vocabulário: padrões podem ser
II, e nas Seções III e IV é discutida a aplicabilidade de utilizados para melhorar a comunicação entre a equipe de
padrões nos modelos de processos propostos pela ES e pela desenvolvimento ou, também, permitir que os usuários
IHC, respectivamente. Na Seção V é discutida a aplicabilidade (clientes da equipe de desenvolvimento) opinem e se
dos padrões de ES e de IHC no desenvolvimento de sistemas expressem melhor. A segunda alternativa foi explorada pelos
interativos. Finalmente, na Seção VI são apresentados as trabalhos de Alexander;
considerações finais e trabalhos futuros com a aplicação de • Captura da Experiência: como padrões apresentam
padrões. soluções de sucesso que foram identificadas e evoluídas ao
longo do tempo, eles capturam a experiência. Logo, padrões
II. PADRÕES podem ser utilizados para a transferência de conhecimento
Padrões podem ser vistos como uma forma de expressão, entre pessoas de níveis de experiência diferentes. A utilização
contendo informações textuais e esboços, que surgiram de padrões para transferência de conhecimento é amplamente
durante o Renascimento, no século XV, quando Francesco di explorada e utilizada pela ES.
Giorgio expressou alguns de seus projetos em um formato que Diante dessas características e vantagens, os padrões
permitisse que outras pessoas aproveitassem suas soluções em possuem uma ampla aplicabilidade no desenvolvimento de
outros projetos [10]. sistemas interativos. Essa aplicabilidade de padrões, tanto na
O mais antigo estudo em larga escala envolvendo padrões ES quanto na IHC, será discutida nas próximas seções.
ocorreu durante as décadas de 60 e 70, na Arquitetura, com o
trabalho de Chistopher Alexander [16][17]. Alexander definiu III. APLICABILIDADE DOS PADRÕES NOS MODELOS DE
um padrão como uma solução para um problema em um PROCESSO DE ENGENHARIA DE SOFTWARE
contexto e apresentou diversas características dos padrões, Com a experiência em desenvolvimento de sistemas, mais
além de observar que os padrões não estão isolados. precisamente durante a elaboração do projeto, Gamma, Helm,
A seguir são revisadas algumas das características gerais de Johnson e Vlissides publicam, em 1995, um livro contendo
padrões reunidas por Fincher [18]. As definições apresentadas uma coleção de padrões de projeto de sistemas orientados a
tentam integrar definições da ES e da IHC: objetos [11]. Segundo esses autores, o objetivo da sua coleção
1) Formato de Apresentação: padrões são descritos de padrões é fornecer meios de tornar o sistema mais reusável,
dividindo sua apresentação em um determinado número de e também anular alternativas que comprometam a reutilização.
elementos. Os elementos são escolhidos de acordo com a Entretanto, esse trabalho se destaca devido à utilização de
ênfase e os detalhes que o autor deseja destacar no padrão. padrões para a transferência de experiência entre profissionais
Logo, percebe-se que não existe um formato único [19][20]; de níveis de conhecimento diferentes, ignorando a
2) Captura da Prática: um padrão apresenta uma participação do usuário do sistema durante o desenvolvimento
solução para um problema existente na prática cuja solução na etapa de projeto. Segundo Fincher [22], Gamma et al.
pode ser aplicada, de modo eficiente, a diversos casos; desconsideraram a participação do usuário do sistema
3) Abstração: os padrões não podem ser abstratos motivados pela não necessidade dos usuários conhecerem
demais e nem muito específicos. Quando um padrão é muito internamente o sistema.
abstrato, o usuário do padrão necessita redescobrir como Além dos padrões de projeto de Gamma et al., diversos
aplicar a solução, impedindo um melhor aproveitamento da outros padrões da ES foram identificados. Em 1996,
solução do padrão. Padrões específicos demais também não Buschmann et al. [12] publicaram um livro contendo diversos
são desejáveis, pois impediria uma maior aplicação do padrão; padrões. Nesse livro, os padrões da ES são divididos em três
4) Princípio de Organização: Alexander observou que categorias:
os padrões não estão isolados, existe um relacionamento entre • Padrões Arquiteturais: expressam o esquema ou
eles [16]. Padrões atualmente são organizados seguindo um organização estrutural para sistemas de software ou hardware,
dos dois princípios: dividindo o sistema em componentes ou em subsistemas, e
Catálogo de Padrões: apresenta um conjunto de apresentando o relacionamento entre eles;
padrões; • Padrões de Projeto: fornecem um esquema para refinar
Linguagem de Padrões: apresenta um conjunto os subsistemas ou componentes de um sistema de projeto de
estruturado de padrões, o relacionamento entre eles e software;
informações relevantes sobre o domínio e a aplicabilidade da • Padrões de Programação ou Idiomas: são padrões de
linguagem. Na linguagem, os padrões que a compõem devem baixo nível, específicos para uma linguagem de programação,
cobrir todos os aspectos importantes de um dado domínio que descrevem como implementar aspectos particulares dos
[21]; componentes ou a relação entre eles usando características de
5) Facilidade de Compreensão: um padrão é escrito de uma determinada linguagem.
forma compreensível, simples e coesa para facilitar a sua Além destas três categorias definidas por Buschmann et al.,
119
IV Congresso Brasileiro de Computação – CBComp 2004 Engenharia de Software
existem outras categorias, entre elas pode-se citar: sistema mais reutilizável. Nessa etapa de desenvolvimento
Padrões de Análise: descrevem soluções para problemas também é possível aplicar os padrões de interface para auxiliar
de análise de sistemas; na definição de interfaces do sistema em desenvolvimento
• Padrões de Interface: são casos particulares de padrões com outros sistemas.
de projeto e definem soluções para problemas comuns no No caso de sistemas orientados a objetos (OO), quando se
projeto de interface de sistemas; deseja utilizar um banco de dados não OO para a persistência
• Padrões de Processo: define soluções para os problemas dos dados, existem padrões que auxiliam a isolar do
encontrados nos processos envolvidos na ES, como por engenheiro de software os detalhes relacionados com a
exemplo, desenvolvimento, gerenciamento de configurações e implementação da persistência, como é o caso do padrão
testes; Persistent Layer [24]. Também se pode utilizar um outro
• Padrões Organizacionais: descrevem abordagens padrão que auxilie na definição e distribuição de
provadas e de sucesso para organizar e gerenciar pessoas responsabilidades relacionadas a operações de leitura e escrita
envolvidas com os processos na ES. de dados no banco de dados, como é o caso do padrão CRUD
Analisando as categorias acima definidas pode-se notar a [24]. Este padrão mapeia funcionalidades da classe a
relação existente entre as fases de desenvolvimento de um operações possíveis de serem realizadas em banco de dados
sistema e o melhor uso de padrões em cada uma delas. Na fase relacionais. Padrões também podem ser utilizados para
de especificação de requisitos pode-se aplicar padrões de projetar o banco de dados relacional e otimizá-los, como é o
análise. Essa fase ocorre: caso dos padrões de [25] e [26].
- na etapa de análise de requisitos no modelo de processo Padrões de processo e organizacionais podem ser aplicados
Cascata ou Incremental; em todas as etapas do processo de desenvolvimento de
- na etapa de engenharia do produto no modelo de processo sistemas interativos. Exemplos de padrões de processo são
Prototipação; apresentados por Ambler [27], que apresenta também uma
- na atividade de engenharia no modelo de processo discussão de como e quando esses padrões podem ser
Espiral; aplicados durante o desenvolvimento.
- no workflow de análise e projeto no modelo de processo Outros exemplos de padrões de processo são os de testes,
RUP; ou que podem ser utilizados pelos engenheiros de software na
- na etapa de iterações e lançamentos no modelo de criação de casos de testes, apresentando quais das técnicas de
processo XP. testes poderiam ser aplicadas para um determinado problema.
Exemplos de padrões de análise são os contidos na Logo, padrões de testes podem ser aplicados:
linguagem de padrões para Gestão de Recursos de Negócio - na etapa de implementação e teste de unidade e na etapa
(GRN) [23], cujos padrões auxiliam na especificação de de integração e teste de sistemas do modelo Cascata;
requisitos do domínio de gestão de recursos, como: locar, - na atividade de construção e entrega do Espiral;
vender, manter recursos. - na fase de teste e entrega do modelo RAD;
Na elaboração do projeto, os padrões arquiteturais podem - na etapa de teste do Incremental;
ser utilizados para apoiar a escolha da arquitetura do sistema. - no workflow de testes do RUP; ou
Isso acontece: - na fase de iterações e lançamentos do XP, mais
- durante a etapa de projeto de sistemas e de software no precisamente na atividade de testes.
modelo Cascata; Além dessas aplicações de padrões da ES, padrões podem
- na atividade de Engenharia do modelo Espiral; ser aplicados na condução de processos de reengenharia.
- na etapa de Projeto do Incremental; Recchia [28] elaborou uma família de padrões de processo
- no workflow análise e projeto do RUP; ou para a realização de engenharia reversa de sistemas legados
- ao obter o projeto simplificado ou durante a construção da Clipper, e padrões para conduzir a engenharia avante desses
metáfora do sistema no XP. sistemas para sistemas em Delphi.
A escolha será realizada através da comparação entre os A aplicação de padrões durante o processo de
requisitos do sistema com as forças apresentadas pelo padrão. desenvolvimento pode trazer diversos benefícios. Por
O padrão arquitetural escolhido irá apresentar quais são os exemplo, pode tornar o código do sistema menos pessoal, o
componentes a serem utilizados e como se realiza a que auxilia em modelos de processo como o XP, que
comunicação entre eles. Padrões de projeto da ES são padroniza tal tipo de código, pois o mesmo é compartilhado
aplicados para refinar esses componentes e a comunicação por toda a equipe de desenvolvimento.
entre eles. Por exemplo, no caso de sistemas interativos, Outro benefício da aplicação de padrões no
poderia ser utilizado o padrão arquitetural Model-View- desenvolvimento de sistema é a melhora na comunicação entre
Controller (MVC) ou o padrão arquitetural Presentation- a equipe de desenvolvimento, através do fornecimento de um
Abstraction-Control (PAC), podendo utilizar os padrões de vocabulário comum. Esse benefício se torna útil em modelos
projeto de Gamma et al. para refinar os componentes e a de processo que exigem uma ampla comunicação entre a
comunicação entre eles considerando a reusabilidade do equipe de desenvolvimento, como o modelo de processo RAD
sistema, pois esses padrões, segundo seus autores, tornam o e os modelos de processo ágeis como o XP.
120
IV Congresso Brasileiro de Computação – CBComp 2004 Engenharia de Software
A aplicação de padrões também pode aumentar a clareza apresentando explicações do porquê o padrão funciona e a
no projeto e no código do sistema, desde que sua aplicação razão de se utilizar a solução do padrão do que uma outra. Ela
seja facilmente identificada no artefato. O engenheiro de também considera a especificação e a aplicabilidade
software, habituado com os padrões, compreenderá a características chaves desse trabalho. Diversos padrões de
documentação de modo mais eficiente, pois já reconhece o IHC foram identificados por Welie [14], e são apresentados
problema que o padrão trata, além das forças que estavam em tanto padrões para a interação na Web quanto padrões para
conflito e levaram à aplicação do padrão. interfaces gráficas com o usuário (GUI) e também para a
Percebendo os benefícios da aplicação de padrões, diversos interação com sistemas móveis. Além da identificação de
padrões estão sendo identificados e utilizados no padrões de IHC, Welie e Veer propõe a divisão de seus
desenvolvimento de sistemas pelos engenheiros de software padrões nas seguintes categorias [33]:
[11][12][23][28]. Esses padrões podem ser aplicados durante • Metas de Negócio: descrevem propósitos ou razões para
as diversas etapas do desenvolvimento de sistemas. a existência do sistema;
Entretanto, percebe-se que tal aplicação é aleatória, podendo • Padrões de Postura: descrevem a estrutura que é
ser útil uma forma sistemática para melhor aproveitar os comumente usada por sistemas relacionados;
benefícios da aplicação de padrões. • Padrões de Experiência: descrevem as principais metas
e tarefas do usuário;
IV. APLICABILIDADE DOS PADRÕES NOS MODELOS DE • Padrões de Tarefas: apresentam soluções para pequenos
PROCESSO DE INTERAÇÃO HUMANO-COMPUTADOR problemas do usuário;
Em 1998, Tidwell apresenta sua linguagem de padrões • Padrões de Ação: especifica o uso de widgets bem
voltada para o desenvolvimento do projeto da interação entre conhecidos ou descrevem widgets customizáveis.
o homem e a máquina, considerando aspectos de IHC [13]. Assim como na ES, não existe uma classificação bem
Segundo Fincher [18], esse trabalho se destaca devido ao seu definida para os padrões de IHC, pois o assunto ainda está
pioneirismo e também por ser a maior em escala e influência evoluindo nessas áreas. Segundo Alpert [34], há indícios que
em IHC. Entretanto, esse trabalho não está finalizado, pois existam duas categorias de padrões na IHC:
alguns padrões não estão totalmente escritos e outros não • Padrões de IHC: relacionados com assuntos de alto
foram escritos, mesmo tendo sido identificados. nível, e possivelmente com guidelines, envolvendo a
Diversos outros padrões de IHC foram propostos, entre psicologia do usuário do sistema, podendo incluir também
eles se destacam os identificados por Welie e Trætteberg [29], padrões arquiteturais;
cujos padrões são voltados para o projeto da interação e • Padrões de Interface com o Usuário: relacionados com
interfaces com o usuário. No formato proposto por esses problemas de interação específicos, sendo sua solução baseada
autores existe um elemento chamado “Princípio de em componentes de interface com o usuário.
Usabilidade”, que descreve quais princípios de usabilidade o Além das categorias citadas, é possível encontrar na
padrão está conectado. Esses princípios estão relacionados de literatura outros tipos de padrões, como os padrões para
acordo com as categorias de problemas do usuário do sistema Hipermídia, padrões de usabilidade, padrões para Web e
propostas por Norman [30]. Esses autores também apresentam padrões para avaliação de usabilidade.
no elemento “Razão” (Rationale), quais aspectos mensuráveis Padrões podem ser utilizados para detalhar tarefas
de usabilidade são incrementados ao aplicar o padrão. realizadas pelos usuários do sistema e como o sistema pode
Outro trabalho que se destaca na identificação de padrões suportá-las. Esta atividade ocorre:
de IHC é o de Borchers [10]. Borchers apresenta uma - na etapa de projeto do modelo de processo Projeto
linguagem de padrões de IHC, mais especificamente para Centrado no Usuário (PCU);
projeto, focando a interação com quiosques e fornecendo certo - na etapa de análise de sistemas/ tarefas/ usuários/
grau de transparência da interação. Além de padrões de IHC, funcionalidades do modelo Estrela; ou
Borchers também apresenta padrões arquiteturais da ES e - no estágio de conhecer o usuário no modelo Engenharia
padrões específicos do domínio da aplicação, que em seu de Usabilidade.
campo de estudo é a música. Deste modo, uma linguagem de padrões para refinar as
Em 2003, Tidwell divulga uma coleção de padrões voltada soluções propostas para as tarefas é útil, tendo como produto
especificamente para a construção de interfaces com o usuário final a especificação da interação e da interface com o usuário.
[31]. Baseando-se em sua experiência na identificação e na Quando existe a necessidade de se apresentar diversas
aplicação de padrões no desenvolvimento de sistemas, Tidwell soluções, como no caso do estágio de projeto detalhado da
[32] discute que “Exemplos”, “Aplicabilidade” e “Evidência” Engenharia de Usabilidade, padrões podem ser utilizados para
são os elementos mais importantes para os usuários dos oferecer uma base para as diversas soluções. Como os padrões
padrões. Logo, enfatizando essas características, em não limitam a criatividade do projetista [35], diversas soluções
detrimento de alguns aspectos formais, como a completude, o irão ser propostas, entretanto com características em comum
formato, e a diferença entre uma técnica e um padrão, a definidas pelos padrões escolhidos antes do início das
apresentação dos padrões na sua coleção não é uniforme. atividades desse estágio.
Segundo Tidwell [32], os padrões de Welie foram escritos Outro benefício da não limitação da criatividade do
121
IV Congresso Brasileiro de Computação – CBComp 2004 Engenharia de Software
projetista é a possibilidade de explorar alternativas de projeto, envolvimento ativo do usuário do sistema no modelo de
pois a aplicação do padrão não implica em uma única solução. processo PCU e DP.
Isso ocorre devido à liberdade de criatividade, oferecida
através do grau de abstração. Essa aplicação de padrões é útil V. APLICABILIDADE DOS PADRÕES DE ENGENHARIA DE
durante a realização do estágio de projeto paralelo da SOFTWARE E DE INTERAÇÃO HUMANO-COMPUTADOR PARA
Engenharia de Usabilidade. DESENVOLVIMENTO DE SISTEMAS INTERATIVOS
Percebe-se que os padrões podem ser utilizados seguindo a Em processos de desenvolvimento de sistemas interativos
idéia de Alexander: fornecer um vocabulário que permita uma que consideram os aspetos tanto da ES como da IHC, a
maior participação do usuário no desenvolvimento. Essa idéia comunicação entre os integrantes da equipe de
se difere da ES, que utiliza padrões para transferência de desenvolvimento e também entre essa e os usuários do sistema
conhecimento. Logo, em modelos de processo de IHC que é de fundamental importância para o sucesso do produto.
exigem uma ampla comunicação entre a equipe de Devido ao fornecimento de um vocabulário comum favorecer
desenvolvimento e o usuário, como é o caso do Design o aumento da comunicação entre os envolvidos no processo, e
Participativo, padrões podem ser utilizados como um também devido à facilidade de compreensão, padrões podem
vocabulário entre a equipe de desenvolvimento e os usuários ser utilizados para melhorar a comunicação entre a equipe e os
finais, tornando a comunicação entre eles mais efetiva. usuários do sistema. Neste contexto, padrões permitem um
Existe também a possibilidade de expressar o feedback do maior envolvimento dos usuários no processo de
usuário do sistema através de padrões, desde que se permita desenvolvimento fornecendo-lhes um vocabulário para
ao usuário o acesso a eles. Os usuários poderiam indicar quais expressar suas opiniões. Esses usuários também podem
padrões eles acreditam que seriam uma melhor alternativa utilizar os padrões para expressar seus requisitos como, por
para o problema identificado no sistema. Esse emprego é útil exemplo, através de padrões de análise, e refinar os requisitos
durante o retorno à etapa de projeto no modelo de processo através de padrões de tarefas do usuário.
PCU, após a etapa de avaliação, ou na etapa de avaliação de A característica de facilidade de compreensão também
usabilidade do modelo Estrela, ou na Engenharia de pode ser explorada no sentindo de permitir que especialistas
Usabilidade, no estágio de coleta de feedback de estudo de de uma área compreendam as decisões tomadas pelos
campo. especialistas da outra área envolvida no processo de
Outro modo de aplicação de padrões é o seu uso no desenvolvimento. Esse conhecimento é desejável, pois facilita
planejamento e na condução de avaliações, durante o processo as tomadas de decisões que envolvam opiniões dos
de desenvolvimento. Avaliações ocorrem no modelo PCU especialistas das diferentes áreas.
durante a etapa de avaliação, ou na etapa de avaliação de Devido à natureza dos padrões em fornecer uma solução
usabilidade do modelo Estrela, ou nos estágios de teste para um problema que é formado por forças em conflito, eles
empírico e projeto interativo na Engenharia de Usabilidade. podem ser utilizados para expressar soluções para os conflitos
Um exemplo de padrões para avaliações é a linguagem entre engenheiros de software e especialistas de IHC que
proposta por Gellner e Forbrig [36] que é voltada ao ocorrem de forma recorrente no desenvolvimento de sistemas.
planejamento e condução de avaliações de usabilidade, e que,
segundo seus autores, pode ser utilizada independentemente VI. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS
do modelo de processo seguido.
Através da aplicação de padrões é possível desenvolver o
Do mesmo modo como padrões podem auxiliar no sistema de modo mais abrangente, considerando e tratando os
planejamento e condução de avaliações, eles também podem
aspectos relevantes de ES e de IHC. Entretanto, é necessário
ser utilizados para construir cenários mais realísticos para
que os padrões não sejam aplicados de modo aleatório, para
essas avaliações.
que se possa aproveitar melhor o seu potencial no processo.
Além dessas aplicabilidades no processo de
Isso ocorre devido a enorme quantidade de padrões já
desenvolvimento, padrões estão sendo utilizados para identificados, e a crescente identificação de novos padrões.
expressar melhor os guidelines e as heurísticas propostas por
Um estudo é necessário para que os padrões já identificados e
especialistas em IHC. Como os guidelines podem não possuir
usados pelas áreas relacionadas com o desenvolvimento de
exemplos, não serem construtivos e serem conflitantes entre sistemas sejam mais bem explorados. Uma alternativa
si, e como as heurísticas também não possuem exemplos, não
identificada é a composição dos padrões relacionados com o
são construtivas e são muito abstratas [10][37], padrões,
desenvolvimento de sistemas interativos em uma coleção mais
através de seu formato e de suas características, podem abrangente do que as propostas pelos autores dos padrões.
expressar melhor essas ferramentas.
Essa coleção deverá reunir os diversos padrões existentes e
Percebe-se, então, que padrões podem ser aplicados nas
fornecer diretivas mais específicas relacionadas a sua
diversas atividades para o desenvolvimento de um sistema aplicação durante o processo de desenvolvimento.
interativo seguindo as práticas da IHC. Essa aplicação traz
como benefício o uso de conhecimento de projetos anteriores,
e auxilia na garantia dos princípios de alguns modelos de
processo dessa área, como é o caso do princípio de
122
IV Congresso Brasileiro de Computação – CBComp 2004 Engenharia de Software
VII. REFERÊNCIAS BIBLIOGRÁFICAS American Conference on Pattern Languages of Programing -
SugarLoafPlop, pp. 237-252.
[1] J. Brown, “Methodologies for the Creation of Interactive Software,” [29] M. Van Welie, H. Trætteberg, "Interaction Patterns in User Interfaces,"
Victoria University of Wellington., Wellington, Nova Zelândia, Tech. presented at the 7th PLoP, Monticello, USA, 2000.
Rep. CS-TR-96/1, May. 1996. [30] D. Norman, The Design of Every Things. USA: Basic Books, 1988, p.
[2] I. Sommerville, Engenharia de Software, 6.ed. São Paulo: Addison- 272.
Wesley Pub. Co., 2003, p. 592. [31] J. Tidwell, User Interface Patterns And Techniques. [Online]. Available:
[3] R. S. Pressman, Engenharia de Software, 5.ed. Rio de Janeiro: McGraw- http://time-tripper.com/uipatterns .
Hill, 2002, p. 843. [32] J. Tidwell, "Perspectives on HCI Patterns: Concepts an Tools," Position
[4] P. Kruchten, The Rational Unified Process – An introduction. 2.ed. paper presented at the Workshop on Perspectives on HCI Patterns in
Nova Jersey: Addison-Wesley Pub. Co., 2000, p. 320. 20nd CHI, Flórida, USA, 2003.
[5] Extreme Programming. [Online]. Available: [33] M. Van Welie, G. C. Van der Veer, “Pattern Languages in Interaction
http://www.extremeprogramming.com . Design: Structure and Organization, ” presented at the 9th. INTERACT,
[6] J. Preece, A Guide to Usability: Human factors in computing. USA: Zürich, Suíca, 2003.
Addison-Wesley Pub. Co., 1993, p. 143. [34] S. R. Alpert, “Getting Organized: Some Outstanding Questions and
[7] D. Hix, H. R. Hartson, Developing User Interface: Ensuring Usability Issues Regarding Interaction Design Patterns,” Position paper presented
Through Product & Process. USA: Wiley & Sons Inc., 1993, p. 381. at the Workshop on Perspectives on HCI Patterns in 20nd CHI, Flórida,
[8] J. Nielsen, Usability Engineering. California: Academic Press, 1993, p. USA, 2003.
362. [35] J. Vlissides, “Patterns: The Top Ten Misconceptions,” Object Magazine,
[9] A. J. Dix, J. E. Finlay, G. D. Abowd, R. Beale, Human-Computer 1997.
Interaction, 2.ed. England: Prentice Hall Europe, 1998, p. 454. [36] M. Gellner, P. Forbrig, “A Usability Evaluation Pattern Language,”
[10] J. Borchers, A Pattern Approach to Interaction Design. England: John presented at the 9nd INTERACT, Zürich, Suíça, 2003.
Wiley & Sons Ltd., 2001, p. 246. [37] M. Van Welie, G. C. Van der Veer, A. Eliëns, “Patterns as Tools for
[11] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: User Interface Design,” presented at the Int. Workshop on Tools for
Elements of Reusable Object-Oriented Software. Boston: Addison- Working with Guidelines, Biarritz, French, 2000.
Wesley, 1995, p. 395.
[12] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, E. Stal, Pattern-
Oriented Software Architecture. Volume 1: A System of Patterns, Vol. I. VIII. BIOGRAFIAS
England: John Wiley & Sons Ltd., 1996, p. 476.
[13] J. Tidwell, “Commond Ground: a Pattern Language for Human-
Computer Interface Design,” presented at the 5th PLoP, Monticello, André Constantino da Silva: graduado em Ciência da Computação pela
USA, 1998. Universidade Federal de Goiás, mestrando em Ciência da Computação pelo
[14] M. Van Welie, Pattern in Interaction Design. [Online]. Available: PPG-CC/UFSCar.
http://www.welie.com . Júnia Coutinho Anacleto da Silva: professora adjunta do Departamento de
[15] X. Ferré, “Approaches to HCI Integration into Software Engineering Computação da UFSCar, doutora em Física Computacional pelo IFSC/USP.
Processes: How Much We Still Need to Do,” in Proc. Workshop WIHC- Rosangela Aparecida Dellosso Penteado: professora adjunta do
ES. in CLICH 2003, pp. 11-17. Departamento de Computação da UFSCar, doutora em Física Computacional
[16] C. Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl- pelo IFSC/USP.
king, S. Angel, A Pattern Language: Towns, Buildings, Construction. Sérgio Roberto Pereira da Silva: professor do Departamento de Informática
Oxford: Oxford University Press, 1977, p. 1216. da UEM, doutor em Ciência da Computação pela PUC/RJ.
[17] C. Alexander, The Timeless Way of Building. Oxford: Oxford
University Press, 1979, p. 568.
[18] S. Fincher, “What is a Pattern Language?,” presented at the 16th CHI,
Pittsburgh, USA, 1999.
[19] S. Fincher. HCI Pattern-Form Gallery. [Online]. Available:
://www.cs.kent.ac.uk/people/staff/saf/patterns/gallery.html .
[20] W. Cunningham, Wiki Wiki Web. [Online]. Available:
http://c2.com/cgi/wiki?WelcomeVisitors .
[21] 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.
[22] S. Fincher, What is a Pattern Language?, Presented at INTERACT’99.
[Online]. Available: http://media.informatik.rwth-
aachen.de/patterns/tiki/tiki-download_file.php?fileId=11.
[23] 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.
[24] J. W. Yoder, R. E. Johnson, Q. D. Wilson, “Connecting Business
Objects to Relational Database,” presented at the 5th PLoP, Monticello,
USA, 1998.
[25] 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.
[26] 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.
[27] S. W. Ambler, Process Patterns: Building Large-Scale Systems Using
Object Technology, United Kingdom: Cambridge University Press,
1998, 582 p.
[28] E. L. Recchia, R. A. D. Penteado, “Uma Família de Padrões para
Reengenharia Orientada a Objeto,” in Proc. of The Second Latin
123