Professional Documents
Culture Documents
Engenharia de Software
I. INTRODUO
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
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
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
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
Engenharia de Software
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
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