Escolar Documentos
Profissional Documentos
Cultura Documentos
faz diferena!
19.02.08
18:15:13
magazine
Engenharia de Software
Saiba seu significado e para que serve
Edio Especial
Requisitos
Especial
Projeto
Processos
EDITORIAL
Impresso no Brasil
Corpo Editorial
Colaboradores
Rodrigo Oliveira Spnola
rodrigo@sqlmagazine.com.br
Marco Antnio Pereira Arajo
Eduardo Oliveira Spnola
Diagramao
Gabriela de Freitas - gabrieladefreitas@gmail.com
Capa
Romulo Araujo - romulo@devmedia.com.br
Na Web
www.devmedia.com.br/esmag
Apoio
Parceiros:
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se voc tiver algum problema no recebimento do seu exemplar ou precisar de
algum esclarecimento sobre assinaturas, exemplares anteriores, endereo de
bancas de jornal, entre outros, entre em contato com:
(rodrigo@sqlmagazine.com.br)
Doutorando em Engenharia de Sistemas e Computao (COPPE/UFRJ). Mestre em
Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Cincias da Computao
(UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), tendo
ministrado cursos na rea de Qualidade de Produtos e Processos de Software,
Requisitos e Desenvolvimento Orientado a Objetos. Consultor para implementao
do MPS.BR. Atua como Gerente de Projeto e Analista de Requisitos em projetos de
consultoria na COPPE/UFRJ. Colaborador da Engenharia de Software Magazine.
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
(21) 2220-5375
Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
Kaline Dolabella
publicidade@devmedia.com.br
voc gostaria de ler, que artigo voc mais gostou e qual artigo voc menos gostou. Fique a
vontade para entrar em contato com os editores e dar a sua sugesto!
Se voc estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
entre em contato com os editores, informando o ttulo e mini-resumo do tema que voc
gostaria de publicar:
Rodrigo Oliveira Spnola - Colaborador
editor@sqlmagazine.com.br
Caro Leitor,
Para esta edio, temos um conjunto de 3 vdeo aulas. Estas vdeo aulas esto disponveis para download no
Portal da Engenharia de Software Magazine e certamente traro uma significativa contribuio para seu aprendizado. A lista de aulas publicadas pode ser vista abaixo:
NDICE
08 - Melhoria de Processo de Software no Desenvolvimento gil
Clio Santana e Cristine Gusmo
14 - Implantao de Processo
Edite Martins
20 - Gerncia de Configurao
Thas Miranda Cia
58 - Ontologias
Monalessa Perini Barcellos
6 SQL Magazine
Cristine Gusmo
cristine@dsc.upe.br
M etodologias geis
Histrico
Para melhor entendermos o contexto do MPS em ambientes
tradicionais, devemos entender o que aconteceu com o rumo
que a Qualidade de Software tomou a partir daquela reunio
da OTAN em 1968 onde o termo Engenharia de Software
foi utilizado pela primeira vez por F. L. Bauer.
Naquela reunio foi utilizado tambm o termo Crise do
Software para definir a situao em que a indstria do software atravessava naquele momento. E a crise foi atribuda
complexidade de desenvolver sistemas cada vez maiores, bem
como falta de gerenciamento no processo de desenvolvimento
de software.
A partir da, engenheiros de software tentaram imitar a
engenharia convencional, para resolver problemas de qualidade e falhas em sistemas de informao. Uma quantidade
significativa de experincia foi obtida atravs de processos de
garantia da qualidade praticados na indstria de manufatura
e essa adaptao para a indstria de software foi, em alguns
casos, um fracasso e, em outros, um sucesso, como, por exemplo, a utilizao de controle estatstico de processo (base do
Six Sigma) para avaliao de processos de software.
Ainda no fim da dcada de 1980, o controle de qualidade
existente na indstria de software era centrado no produto
final e com utilizao de mtodos corretivos em inspees no
fim da linha de produo, e se mostrava pouco efetivo para a
soluo de problemas gerenciais como prazos e custos.
No incio da dcada de 1990, o mercado substitua aquele
controle de qualidade pela Garantia da Qualidade com um
foco centrado no processo e que utilizava auditorias durante
todo o ciclo de vida de desenvolvimento. A partir da, foram
surgindo normas (ISO 9000-3, ISO 15504, ISO 12207), padres
(IEEE 1074, IEEE 1298) e Modelos (SW-CMM, CMMI) para
Qualidade de Software.
A partir da comearam a surgir os modelos para Melhoria
de Processos de Software. A maioria baseada no PDCA (PlanDo-Check-Action) de Eduard Deming. Os modelos para MPS
mais utilizados foram o IDEAL [Mcfeeley 1996], utilizado em
conjunto com o SW-CMM, e o Modelo DMAIC utilizado pelo
Six Sigma.
Com o advento da Garantia da Qualidade, a indstria de
software passou a ser centrada em documentao e orientada
a planejamento, e essa forma de desenvolvimento de software
ficou conhecida como modelo tradicional [Boehm 1988].
Nesse contexto, a Melhoria do Processo de Software
pode ser genericamente estereotipada com as seguintes
caractersticas:
i. Criao de grupo responsvel pelo programa de MPS, realizando atividades de levantamento de no conformidades e
avaliao de desempenho. Na viso do Modelo IDEAL tem-se
o Software Process Group Engineering (SEPG) e no DMAIC,
os Green Belts e Black Belts;
ii. Monitorao do processo atravs de indicadores, permitindo
a identificao das oportunidades de melhoria;
iii. Elaborao de projetos de melhoria com base nas oportunidades identificadas em (ii);
Entregar software funcionando frequentemente, entre poucas semanas a poucos meses, dando preferncia escala de
tempo mais curta;
Pessoas de software e de negcios devem trabalhar juntas
diariamente atravs do projeto;
Construa projetos em torno de indivduos motivados, d-lhes
o ambiente e apoio que necessitem, e confie neles para que o
trabalho seja feito;
A forma mais eficiente e efetiva de trazer informao para o
time, e dentro do mesmo, a comunicao face a face.
Software funcionando a primeira mtrica de progresso;
Processos geis promovem um ritmo sustentvel. Patrocinadores, desenvolvedores e usurios devem estar aptos a manter
o ritmo indefinidamente;
Ateno contnua, excelncia tcnica e bons projetos ajudam
a agilidade.
Simplicidade: a arte de maximizar a quantidade de trabalho
que no deve ser realizado essencial;
As melhores arquiteturas, requisitos e projetos surgem de
times auto-organizados;
Em intervalos regulares, o time deve refletir sobre como
se tornar mais efetivo, ento ajustar seu comportamento de
acordo com a reflexo.
O quarto e ltimo nvel do acordo seriam formados com o
passar do tempo. Ento foi acordado que esse nvel seria aquele
no qual cada abordagem gil deveria definir a si mesma. Algumas destas abordagens so: Extreme Programming (XP),
Scrum, Crystal Clear e Lean.
10
Esse processo padro apresenta todos os processos de uma organizao e critrios definidos de adaptao. Ou seja, a empresa
possui algumas boas prticas internas mapeadas e, no processo,
existem indicaes de quando usar cada uma delas.
Neste ponto o mais importante entender que todos os projetos da empresa sero executados baseados nesse processo
padro e que as lies aprendidas so incorporadas ao processo
padro da organizao, o que podemos definir como aprendizado organizacional. Para ajudar uma organizao a escolher
a melhor forma de aprender sobre si mesma existem alguns
modelos organizacionais para MPS [Deming 1990; Cohn &
Ford 2003; Boehm & Turner 2005]
2. PROCESSOS PADRES E AVALIAO DOS PROCESSOS
Alguns modelos para Maturidade de Melhoria de Processo,
como o CMMI e o MPS.Br, so hoje referncias no mercado para
a avaliao de processos. Esses modelos fornecem um conjunto
de boas prticas de como o processo pode ser melhorado e
fornecem tambm um mtodo de avaliao (SCAMPI para
o CMMI e o MA.MPS para o MPS.Br) que ajuda a medir a
evoluo do programa de MPS na organizao.
entendido aqui que todo programa de melhoria de processo
deve ser avaliado de forma objetiva seguindo critrios bem
definidos e no ambguos. No existe ainda nenhum mtodo de avaliao que se mostre melhor para todos os casos,
normalmente cada modelo criado adaptado de acordo com
a situao.
3. ADAPTAO DE PROCESSOS
Abordagens de software tradicionais vm sendo criticadas por
no possuir critrios para a sua aplicabilidade, ou no se mostrarem universalmente aplicveis [Malouin & Landry 1983].
Este ponto retrata uma questo na melhoria de processo
de software sobre como uma organizao, com um processo
padro rico em boas prticas e com uma variedade grande de
projetos, pode escolher quais so as melhores prticas para
maximizar o ROI de seus projetos. Este ponto do processo
de MPS conhecido como adaptao de processos. Basili e
Rombach (1987) apresentaram uma das primeiras propostas
para adaptar processos.
4. IMPLANTAO DE PROCESSOS
A implantao do processo uma instncia da MPS nas
organizaes. Ela pode incluir atividades como realizao
de projetos pilotos, mtodos e ferramentas como potenciais
solues para metas ou problemas existentes, e a avaliao dos
efeitos daquela mudana no desenvolvimento de software.
Nas abordagens tradicionais de desenvolvimento de software, mais comum que a melhoria aborde o processo organizacional como um todo, ao invs de questes de um determinado
processo em particular.
Basicamente, uma organizao pode escolher uma estratgia
Big-Ben ou por pedaos para implantar novos processos, mtodos e ferramentas. Enquanto o Big-Ben uma forma revolucionria que acredita que cada mudana sbita resulta em uma forma
M etodologias geis
11
Da mesma maneira informal com a qual a avaliao realizada, de forma subjetiva e sem a utilizao de indicadores,
tambm a forma com que se escolhe aquilo que deve ser
alterado no processo. No h uma maneira sistemtica
para decidir, ou avaliar, o que deve ser modificado e no
que est baseada a escolha, a no ser pela experincia do
prprio time.
O mtodo de avaliao que vem sendo aceito comumente
pelos times Scrum o Nokia Test [Vodde 2006]. Outra iniciativa
interessante que est se definindo como um padro na rea
das metodologias geis o IEEE 1648 (http://standards.ieee.
org/board/nes/projects/1648.pdf).
3. ADAPTAO DE PROCESSOS
Nas metodologias geis, os processos so adaptados com
mais freqncia e de forma no sistematizada. Contudo, o
desenvolvimento gil considera que processos que so criados para serem repetidos so falhos e consideram que cada
situao exige um processo diferente, uma vez que processos
repetitivos s funcionam com as mesmas pessoas, nos mesmos
ambientes, com as mesmas ferramentas, para solucionar os
mesmos problemas repetidas vezes.
De fato, o desenvolvimento gil precisa de adaptaes dentro
de projetos individuais dentro de uma organizao, e esse
processo continuamente melhorado a partir de pequenas
mudanas. Afinal, o desenvolvimento de software proposto
pelas metodologias geis no est baseado em processos preditivos em ambientes estveis para o desenvolvimento, e sim,
baseado em um ambiente de mudanas frequentes, que ainda
assim necessitam de qualidade.
4. IMPLANTAO DE PROCESSOS
A maioria das implantaes de processos no desenvolvimento
gil est mais voltada para a abordagem Big-Ben, onde grandes
mudanas podem ser sugeridas, no entanto no h critrios
para essas mudanas.
O maior desafio nestes tipos de implantao a falta de
transparncia entre os diversos nveis da organizao (hierarquia) em relao ao time auto-gerencivel, o que pode
resultar em um relacionamento fracassado entre as partes
interessadas de mais alto-nvel e o time. Mais dificuldades
sobre a implantao de processos em organizaes geis so
listadas em [Cohn & Ford 2003].
5. MEDIO
Boehm & Turner (2005) afirmam que a maioria das tcnicas
de medio tradicionais podem se tornar inadequadas para o
apoio aos mtodos geis. As razes mais comuns desta falha
provm da diferente forma como as estruturas analticas de
projeto (EAP) so construdas. Enquanto nos mtodos tradicionais essas EAPs so um conjunto de atividades e tarefas
normalmente exibidas em grficos de Gantt, nos mtodos
geis temos a manipulao de cartes de estrias (XP) ou itens
de Backlog (Scrum) que so detalhados em nvel satisfatrio
apenas quando so desenvolvidos.
12
M etodologias geis
Referncias
Estes trs tpicos so discutidos de acordo com a experincia de cada desenvolvedor e todos do a sua opinio sobre
cada idia surgida. Contudo, no h critrios ou indicadores
para justificar/avaliar cada uma das sugestes, ficando
apenas a critrio do time se a mudana ser incorporada
ou no ao processo.
As mudanas que forem aceitas pela equipe entram em vigor
j na iterao seguinte e, na prxima reunio de retrospectivas,
ela pode ser mantida, retirada ou at mesmo melhorada.
Consideraes Finais
sobre e
s
Feedback
eu
edio
ta
D
s
[Basili & Rombach 1987] Basili, V. R. & Rombach, H. D (1987) Tailoring the Software Process to
Project Goals and Environments. In: The proceedings of the 9th International Conference on
Software Engineering. March 1987. Monterey, CA. Pp. 345-357.
[Beck & Andres 2004] Beck, K. & Andres, C. (2004) Extreme Programming Explained: Embrace
Change. Second Edition. Addison-Wesley. Boston. pp 29.
[Boehm 1988] Boehm, B. (1988) A Spiral Model of Software Development and Enhancement
Computer, Vol. 21, 5 (5), May 1988, pp. 61-72.
[Boehm & Turner 2004] Boehm, B.; Turner, R. (2005) Balancing agility and discipline: A guide for
the perplexed (1st ed., pp. 165-194, Appendix A). Addison Wesley.
[Boehm & Turner 2005] Boehm, B. & Turner, R. (2005) Management Challenges to
Implementing Agile Processes in Traditional Development Organizations. IEEE Software, Vol.
22(5), SeptemberOctober. pp. 30-39.
[Cohn & Ford 2003] Cohn, M. & Ford, D. (2003). Introducing an Agile Process to an Organization.
Computer, Vol. 36 (6), June, pp. 74-78.
[De Marco 1982] De Marco,T. (1982) Controlling Software Projects: Management, Measurement
and Estimation. Yourdon Press. New York. pp-296.
[Deming 1990] Deming, W. E. (1990) Out of the Crisis. 10 Printing ed. Massachussetts Institute
of Technology, Center for Advanced Engineering Study. Cambridge. pp- 507.
[Fenton & Pfleeger 1997] Fenton, N. & Pfleeger, S. L. (199). Software Metrics: A Rigorous &
Practical Approach. Second Edition ed. PWS Publishing Company. Boston. pp- 63.
[Humphrey 1995] Humphrey, W. S (1995) A Discipline for Software Engineering. Addison
Wesley, Longman. pp. 242 .
[Koch 2005] Koch, A. S. (2005) Agile Software Development: Evaluating the Methods for Your
Organization. Artech House. Boston.
[Malouin & Landry 1983] Malouin, J. L. & Landry, M. (1983) The Miracle of Universal Methods in
Systems Design. Journal of Applied Systems Analysis, Vol. 10, pp. 4762.
[McFeeley 1996] McFeeley,R.(1996)IDEAL:A Users Guide for Software Process ImprovementCMU-SEI.
[Mnkandla & Dwolatzky 2004] Mnkandla, E.; Dwolatzky, B. (2004) Balancing the human and
the engineering factors in software development. Proceedings of the IEEE AFRICON 2004
Conference (pp. 1207-1210).
[Rico 2004] Rico, D. F. (2004) ROI of Software Process Improvement: Metrics for Project Managers
and Software Engineers. J. Ross Publishing. Florida, U.S.A. pp - 218.
[Salo 2007] Salo, O. (2007) Enabling Software Process Improvement in Agile Software
Development. PHD Thesis.
[Schuh 2004] Schuh, P. (2004) Integrating agile development in the real world (pp. 1-6). MA:
Charles River Media.
[Vodde 2006] Vodde, B. (2006) Nokia Networks and Agile Development: in EuroMicro Conference.
13
Implantao de Processo
Os desafios da implantao de um processo de software
A necessidade de um processo de
software
Edite Martins
edite.martins@dextra-sw.com
14
Processo
Definio do processo
A Dextra teve um crescimento muito expressivo nos anos
de 2006 e 2007 e com isso surgiu a necessidade da definio e
implantao de um processo mais formal. A empresa j contava
com o ProUD (Processo Unificado Dextra) que se baseava fortemente no RUP. A verso 1.0 do ProUD era bastante enxuta e
se aplicava muito bem ao tamanho e caractersticas da empresa
e de suas equipes de trabalho at ento.
O objetivo da evoluo e melhoria do processo da Dextra era
ter um nvel maior de formalizao das atividades e papis,
bem como coletar e analisar indicadores de projeto que dessem
a visibilidade necessria em relao qualidade do produto,
pontualidade nas entregas e previsibilidade de custo.
Diante disso, a estratgia da empresa foi novamente aplicar o
RUP, utilizando o feedback j obtido no uso do ProUD 1.0 em
diversos projetos. A principal meta da Dextra era definir um
processo que representasse o que a empresa fazia de melhor nos
seus projetos e corrigisse o que ainda poderia melhorar. Com
esse foco o plano de trabalho contou com a formao de grupos
de trabalho formados por membros das equipes de projetos. Os
lderes de cada grupo eram membros do SEPG Software Engineer Process Group e davam o direcionamento necessrio s
atividades. O resultado de um ano de trabalho foi o ProUD 2.0.
O processo foi dividido em quatro grandes fases, como se v na
Figura 1. Na verso 1.0 do ProUD, os nomes das fases eram exatamente iguais s do RUP Concepo, Elaborao, Construo e
Transio. Porm, com a utilizao do processo percebeu-se que
havia atividades que no RUP eram feitas na fase de Elaborao e
que na Dextra fazia mais sentido que fossem executadas na fase
de Construo e vice-versa. Desta forma, quisemos desvincular
as fases do ProUD das fases do RUP, criando fases e atividades
dentro delas que representam a realidade da empresa e a melhor
forma de trabalho de suas equipes. Segue abaixo uma breve
descrio de cada uma das fases:
Planejamento
Nesta fase ocorre a definio do escopo do projeto e de suas
fronteiras, assim como o planejamento detalhado de sua
execuo. So gerados todos os planos do projeto plano de
comunicao, riscos, infra-estrutura, recursos humanos, gesto
de configurao e etc. Todos os compromissos internos e com o
cliente so formalizados e aprovados. Esta fase recebe muitos
insumos da fase de proposta, que tambm segue um processo
bem definido e formal. Parte das atividades desta fase feita
durante a fase de Concepo do RUP.
Refinamento da Soluo
Nesta fase os requisitos levantados durante a fase de proposta
so detalhados, bem como a arquitetura final da soluo e os
aspectos de integrao com outros sistemas. Deve-se, tambm,
fazer uma extensiva anlise dos riscos do projeto associados
aos requisitos e tecnologia utilizada. O resultado desta fase
o detalhamento inicial dos requisitos, prottipos de telas e a
definio da arquitetura do sistema. As atividades desta fase
so executadas parte na fase de Concepo e parte na fase de
Elaborao do RUP.
Execuo
O foco nessa fase dado implementao das funcionalidades
do sistema. A implementao desenvolve-se de maneira iterativa
e incremental. A cada iterao implementado um conjunto de
casos de uso definidos previamente, tendo passado pelas fases
de anlise, projeto, codificao, testes e integrao.
O conceito de iteraes faz com que os riscos do projeto sejam
reduzidos, pois possvel liberar funcionalidades para os usurios antes de concluir todo o projeto, verificando a adequao
do sistema aos requisitos funcionais e tcnicos (escalabilidade,
segurana e confiabilidade).
Ainda nessa fase, os componentes de software desenvolvidos
devem ser implantados nos ambientes de homologao e de
produo do cliente. Os treinamentos planejados so preparados e aplicados aos usurios.
As atividades desta fase correspondem fase de Construo
e Transio do RUP.
Encerramento
Esta fase se inicia aps o aceite formal do cliente. So gerados
documentos de encerramento do projeto, indicadores, lies
aprendidas e reunio de fechamento com a equipe. Nesta fase
inicia-se a atividade de acompanhamento da operao (operao assistida) e o perodo de garantia do produto.
15
16
Processo
Para que o registro das demais informaes do projeto pudesse ser realizado atravs de tickets, estes foram customizados
em vrios tipos. Como o TRAC oferece a referncia cruzada
entre seus elementos, possvel definir e manter toda a rastreabilidade necessria ao projeto e tambm ao MPS.BR. As
seguintes informaes so registradas no TRAC em forma de
tickets: requisitos, casos de uso, riscos, mudanas, defeitos,
no-conformidades, aes gerenciais e tarefas (importadas do
MSProject ou criadas manualmente).
DET
A DET Dextra Estimating Tool uma ferramenta de desenvolvimento prprio para realizar as estimativas de todos
os projetos de desenvolvimento de software da empresa. As
estimativas so baseadas em tamanho funcional e o resultado
a estimativa de esforo para todas as atividades definidas no
processo. Alm disso, possvel tambm realizar a identificao de riscos, requisitos no-funcionais e atividades suplementares. A ferramenta exporta, seguindo templates padres,
a lista de requisitos funcionais e no-funcionais do projeto,
a lista de riscos e o cronograma detalhado do projeto. Estas
informaes so importadas no TRAC, onde sero gerenciadas
ao longo do projeto.
PMA
O PMA Sistema de Gesto de Projetos tambm uma
ferramenta de desenvolvimento prprio que gerencia o
apontamento de horas das equipes do projeto e o seu custo.
O apontamento realizado de acordo com as atividades do
processo, desta forma possvel extrair informaes sobre a
17
18
Gerncia de Configurao
Propsito: estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibiliz-los
a todos os envolvidos.
Apesar da empresa j utilizar o TRAC integrado ao subversion, o que j estabelece uma base bastante slida para
o gerenciamento de configurao e verso, a evoluo deste
processo no ProUD 2.0 foi grande, e com resultados surpreendentes para os projetos. Foi criado formalmente o papel de
Analista de Configurao e foram redefinidas as estruturas
de diretrio, padro de nomenclatura, registros de baselines,
regras de integrao de arquivos ao repositrio e checklists
para auditorias do sistema de configurao. O objetivo
principal deste processo manter o repositrio ntegro e
gerar informaes para que se possa extrair a rastreabilidade entre requisitos e cdigo fonte e vice-versa. Para que a
rastreabilidade seja construda e mantida necessrio que o
sistema de configurao esteja fortemente amarrado e com
regras rgidas de integrao de modificaes ao repositrio.
As customizaes realizadas no TRAC e a integrao com
o subversion foram fatores chave para que se alcanasse a
maturidade exigida neste processo.
Garantia da Qualidade
Propsito: assegurar que os produtos de trabalho e a execuo dos processos estejam em conformidade com os planos e
recursos predefinidos.
Este processo foi criado no ProUD 2.0. A definio do processo consistiu em criar as atividades de auditoria, definir
polticas, periodicidade e checklists de avaliao. As auditorias
so realizadas no decorrer do projeto e sempre que h entregas
para o cliente. As no-conformidades so registradas como
tickets no TRAC e tem uma mquina de estados definida para
seu acompanhamento. Todas as no-conformidades tm um
prazo definido para resoluo e caso no sejam solucionadas
so escaladas para alta gerncia da empresa.
As auditorias de qualidade so uma forma da empresa
garantir que os projetos esto seguindo o processo definido,
gerando os produtos de trabalho esperados e dentro dos padres estabelecidos. As auditorias de qualidade em produtos
de trabalho que sero entregues ao cliente so de extrema
importncia para a empresa, pois garantem uma uniformidade
em termos de documentao alm de aumentar a qualidade
do produto gerado.
Medio
Propsito: coletar, analisar e relatar os dados relativos aos
produtos desenvolvidos e aos processos implementados na
organizao e em seus projetos, de forma a apoiar os objetivos
organizacionais.
Todos os indicadores da empresa foram refeitos no ProUD 2.0.
Foi utilizado o mtodo GQM Goal Question Metrics, onde
a diretoria define os objetivos a serem alcanados, perguntas
so feitas sobre como os objetivos podem ser atingidos e medidas so identificadas a partir das questes. Foi montada uma
Processo
Links
Site do Softex Brasil www.softex.br/mpsbr/
Site onde possvel obter informaes sobre o RUP www.wthreex.com/rup/
Site da ferramenta TRAC trac.edgewall.org/
Site da ferramenta EPF Composer www.eclipse.org/epf/
Publicao da avaliao MPS.BR F realizada na Dextra em Maro/2009 www.softex.br/
mpsbr/_avaliacoes/avaliacao.asp?id=2465
Feedback
eu
www.devmedia.com.br/esmag/feedback
19
sobre e
s
D
s
edio
ta
Gerncia de Configurao
Definies Iniciais
De que se trata o artigo?
20
Projeto
Conceitos Fundamentais
O desenvolvimento de um software pode ser organizado de
vrias formas. A cada uma dessas formas de organizao d-se
o nome de um paradigma de ciclo de vida. Os paradigmas mais
estudados so o clssico, a prototipao, o modelo espiral, as
tcnicas de quarta gerao e os modelos evolutivos tais como
RUP e XP (Pressman, 2005).
Um processo de desenvolvimento de software, independente do paradigma de ciclo de vida adotado, inclui as fases
de engenharia de sistemas, anlise de requisitos, projeto
de software, codificao, testes e manuteno (Pressman,
2005). Na Tabela 1 apresentada uma breve descrio de
cada uma dessas fases.
Fases
Descrio
Engenharia de Sistemas
Anlise de Requisitos
Projeto de Software
Codificao
Testes
Manuteno
21
Existe uma poltica organizacional definida? Qual o grupo responsvel pelo controle da configurao? Quem ser responsvel pela elaborao
do plano de gerncia de configurao?
Identificao da Configurao
Controle da Configurao
Quem tem a responsabilidade pela aprovao e pela determinao de prioridades para as mudanas? Como uma organizao controla as
vrias verses geradas pelas mudanas feitas antes e depois que o software liberado?
Qual o mecanismo usado para avisar outras pessoas sobre mudanas que so feitas?
Avaliao da Configurao
Como garantir que mdulos do sistema construdos por terceiros estejam corretos e coerentes com o restante do sistema?
22
Projeto
Tipo
Especificao do Sistema
Item
PROG
ES
Nome
1.1.0
Verso
PROG_ES_1.1.0
Nome completo
Plano de Trabalho
PROG
PT
1.1.0
PROG_PT_1.1.0
ER
1.1.0
PROG_ER_1.1.0
Especificao de Projeto
PROG
EP
1.1.0
PROG_EP_1.1.0
Executvel do Sistema
PROG
PF
EXE
1.1.0
PROG_PF_EXE_1.1.0
PROG
PROG
TT
PF
EXE
1.1.0
1.1.1
PROG_TT_1.1.0
PROG_PF_EXE_1.1.1
23
b) Controle de Verses
Um item, ao ser desenvolvido, evolui at que atinja um estado em que atenda aos propsitos para o qual foi criado. Isso
implica em diversas alteraes, gerando uma verso do item
a cada estado (Munch, 1996). Para estabelecer o controle sobre
as diversas verses, todas as verses devem ser armazenadas
e identificadas. Isso, geralmente, feito com o auxlio de uma
ferramenta.
A verso do item pode ser includa no esquema de identificao ou ser acessvel a partir de uma tabela parte.
conveniente que o esquema de identificao das verses dos
itens seja feito em forma de rvore, pois ao mesmo tempo
em que mantm um histrico das verses dos itens, permite
identificao nica e ramificaes a partir de qualquer verso
(Figura 3 (Pacheco, 1997)).
Quando um item existe simultaneamente em duas ou mais
formas diferentes que atendam a requisitos similares, temos
variantes do item, representados por ramificaes na rvore.
Um exemplo seria o de duas sub-rotinas para retornar a data do
sistema operacional: uma para Unix e outra para DOS (verses
2.1.1 e 2.2.1 na Figura 3).
Para minimizar o espao de armazenamento das verses
utiliza-se o conceito de delta, ou seja, so armazenadas uma
verso completa e as diferenas entre as verses (Brown, 1991;
Humphrey, 1989). H duas variaes desse conceito: delta
negativo e delta positivo. Com o delta negativo, armazena-se
integralmente a verso mais recente e as diferenas (deltas)
existentes at ento. Com o delta positivo, armazena-se a verso
mais antiga e, para montar as verses mais recentes, processamse as diferenas (deltas) armazenadas (Clemm, 1999)
Os sistemas atuais de gerncia de verses utilizam o conceito
de delta negativo no tronco, por ser mais comum a utilizao
de verses mais recentes do item de configurao (Berczuk,
2003). A Figura 3 representa um caso em que se utiliza delta
24
Projeto
Referncias
(Pressman, 2005) PRESSMAN, R. S. Software Engineering: a practitioners approach. Mc Graw
Hill Higher Educational, 6. Edio. 2005.
(Mahler, 1994) MAHLER, A. Variants: Keeping things together and telling them apart. In
Configuration Management, Vol. 2 of Trends in Software, Wiley, New York, 1994.
(Bersoff, 1979) BERSOFF, E. H.; Henderson, V. D. e Siegel, S.G. Software Configuration
Management: A tutorial. Los Alamos, Califrnia. IEEE Computer. v.12, n.1, 1979.
(IEEE Std 828, 1998) IEEE for Software Configuration Management Plans. 1998.
(Tuscany, 1987) TUSCANY. P. A. Software development environment for large switching
projects. In Proceedings of Software Engineering for Telecommunications Switching Systems
Conference,1987.
(Bersoff, 1984) Bersoff, E. H. Elements of Software Configuration Management. IEEE Transactions
on Software Engineering, v.se-1.0, n.1, 1984.
(Pacheco, 1997) PACHECO, R. F. Uma Forma de Implantao de Gerenciamento de Configurao
de Software em Empresas de Pequeno Porte. Dissertao (Mestrado) Instituto de Cincias
Matemticas de Computao, Universidade de So Paulo, So Carlos, 1997.
(Mackay, 1995) MACKAY, S. A. The state-of-the-art in concurrent, distributed configuration
management. In Software Configuration Management: Selected Papers SCM-4 and SCM-5
(Seattle, WA, April), J. Estublier, 1995.
(Leblang, 1997) LEBLANG, D.B.: Managing the Software Development Process with
ClearGuide, in Software Configuration Management - ICSE97 SCM-7 Worhxhop, LNCS 1235,
Springer, Berlin, 1997.
(Honda, 1988) HONDA M. Support for parallel development in the Sun network software
environment. In Proc. 8nd International Workshop on Computer-Aided Software
Engineering, 1988.
(Rigby, 2003) RIGBY, K. Software Configuration Management Template. Rigby Publishing
Limited, 2003.
(Munch, 1996) MUNCH, B. HiCOV: Managing the version space. In Software Configuration
Management:ICSE96 SCM-6 Workshop (Berlin,March), Sommerville, 1996.
(Brown, 1991) BROWN, H. Like a Version. Computer Languages, v.8, n.8, 1991.
Feedback
eu
www.devmedia.com.br/esmag/feedback
25
sobre e
s
D
s
Concluses
Maintenance of Existing Systems. Software Maintenance: Research and Practice, v.6, 1994.
edio
ta
26
Este artigo apresentar uma viso geral das principais mudanas ocorridas entre a terceira e quarta
edio do PMBOK.
Planejamento
O Standard for Portfolio Management descreve um conjunto de processos geralmente aceitos no gerenciamento de
portflios. Portflio uma coleo de projetos e/ou programas
que possam ser agrupados para facilitar o gerenciamento do
trabalho para atingir objetivos estratgicos do negcio.
Os dois padres citados acima foram elaborados como uma
expanso da terceira edio PMBoK, por essa razo, houve a
preocupao em alinhar seus conceitos. Os primeiros captulos do PMBoK falam sobre portflio e programas, em muitos
momentos o contedo apresentado muito parecido com o
contedo presente nos padres.
Na quarta edio houve uma mudana geral no quesito
da apresentao, diversos diagramas foram atualizados. Os
diagramas dos processos foram reformulados e deixam mais
claros como funciona o fluxo de entradas e sadas entre os
processos e as dependncias ou relaes entre os processos.
A estrutura de captulos permaneceu inalterada. Os captulos
esto na mesma ordem e apresentam os mesmos objetivos. Para
facilitar a explicao das mudanas, a seguir sero detalhadas as
principais mudanas de cada um dos captulos do PMBoK.
27
28
Planejamento
Apndice
um fato que os conhecimentos e necessidades do gerenciamento de projetos evoluem com o tempo. Nesse contexto,
as atualizaes do PMBoK so necessrias e tm se mostrado
alinhadas com as novas necessidades e experincias.
O novo processo Coletar Requisitos apresenta um uso direto para
atividades de anlise de requisitos de desenvolvimento de software.
Ao observar o RUP (Rational Unified Process), este processo
alinhado com as atividades existentes na disciplina de requisitos. As sadas deste processo so anlogas a diversos artefatos
presentes no RUP tambm. Por exemplo, o plano de gerenciamento de requisitos pode incluir o processo de priorizao de
requisitos, que uma das principais atividades do RUP.
Sob a perspectiva do CMMI, diversas prticas recomendadas na terceira edio PMBoK auxiliavam na implementao
de alguns de seus processos. A adio do processo Coletar
Requisitos traz o PMBoK ainda mais prximo do CMMI, pois
auxilia na implementao do processo Desenvolvimento de
Requisitos deste modelo de qualidade.
Finalmente, a expanso dos tipos de relacionamento entre fases
do projeto alinhada com necessidades ou opes de desenvolvimento comuns no desenvolvimento de software. O modelo iterativo de relacionamento entre fases til para projetos em ambientes
volteis, com incertezas, ou muito indefinidos. Sua dificuldade o
planejamento de longo prazo ou o controle de escopo. Em muitos
casos, estes cenrios so encontrados quando empregamos em
mtodos geis de desenvolvimento, por exemplo.
Se o PMBoK j era um guia com aplicao direta ao desenvolvimento de software, as suas atualizaes tornam claro que a
quarta edio apresenta uma srie de melhorias com benefcios
diretos para o gerenciamento deste tipo de projetos. Porm, importante ter em mente que sua aplicao no precisa ser uniforme
em todos os projetos. Dependendo da organizao ou do projeto,
seus processos e documentos devem ser adaptados para serem
apropriados para a cultura ou necessidades envolvidas.
D seu feedback sobre esta edio!
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
Feedback
eu
www.devmedia.com.br/esmag/feedback
29
sobre e
s
A quarta edio apresenta um novo apndice sobre habilidades interpessoais. Nesse apndice esto informaes consideradas pelos autores como importantes para o gerenciamento de
um projeto, porm que no eram consistentes com as intenes
de um padro. As habilidades apresentadas so:
Liderana: desenvolver uma viso e uma estratgia e motivar
as pessoas para que alcancem essa viso e essa estratgia;
Montagem de Equipe: capacidade de montar a equipe considerando os perfis adequados ao trabalho do projeto;
Concluso
D
s
edio
ta
Ativos de Processos Organizacionais: Eventuais lies aprendidas em projetos anteriores, ou tipos de partes interessadas conhecidas, registros de partes interessadas de projetos anteriores.
Fatores Ambientais da Empresa: Cultura e estrutura organizacional, ou padres governamentais ou de indstria.
D
Felipe La Rocca Teixeira
felipe.lt@pjf.mg.gov.br
30
Este artigo procura apresentar processos que garantam um controle completo das modificaes
em todo o clico de vida de um projeto de TI, realizando-a com um risco mnimo, permitindo assim,
um aumento da qualidade e a reduo dos riscos e
custos relativos a estes projetos.
projeto
31
reas de Conhecimento:
As reas do gerenciamento de projetos descrevem o gerenciamento em termos de seus processos componentes. Esses processos
esto organizados em nove grupos integrados (ver Figura 2).
O Gerenciamento da Integrao define os processos necessrios
para assegurar a integrao de todas as demais reas de conhecimento. Seu objetivo estruturar todo o projeto de modo a garantir
que os diversos elementos do projeto sejam adequadamente coordenados. Seus processos constantes so: desenvolver o termo de
abertura do projeto, desenvolver a declarao do escopo preliminar do projeto, desenvolver o plano de gerenciamento do projeto,
orientar e gerenciar a execuo do projeto, monitorar e controlar o
trabalho do projeto, controle integrado de mudanas (esse ser mais
bem detalhado no decorrer deste artigo) e encerrar o projeto.
O Gerenciamento do Escopo responsvel pelos processos
necessrios para garantir que o projeto contemple somente
aquilo que necessrio para ser concludo com sucesso, sem
abandonar nenhuma funo estabelecida no objetivo do projeto. Seus processos so: o planejamento do escopo, definio
do escopo, criar a estrutura analtica do projeto, verificao
do escopo e controle do escopo.
O Gerenciamento do Tempo consiste em processos necessrios para garantir que o projeto termine dentro do seu prazo
estipulado. Trabalha na definio da atividade, sequenciamento de atividade, estimativa de recursos da atividade, estimativa
de durao da atividade, desenvolvimento do cronograma e
controle do cronograma.
O Gerenciamento do Custo define processos necessrios
para assegurar que o capital disponvel seja suficiente para
concluir o projeto dentro do oramento previsto. Seus principais processos so: estimativa de custos, oramento e o
controle de custos.
O Gerenciamento dos Recursos Humanos so os processos necessrios para garantir o melhor uso das pessoas envolvidas no
projeto. Os processos constantes so: planejamento de recursos
humanos, contratar ou mobilizar a equipe do projeto, desenvolver a equipe de projeto e gerenciar a equipe do projeto.
O Gerenciamento dos Riscos define os processos relacionados
identificao, anlise e resposta aos riscos do projeto. responsvel pelos processos de planejamento do gerenciamento
de riscos, identificao de riscos, anlise qualitativa de riscos,
anlise quantitativa de riscos, planejamento de respostas a
riscos e monitoramento e controle de riscos.
O Gerenciamento das Comunicaes responsvel em
assegurar que todas as informaes do projeto cheguem s
pessoas certas de forma adequada e no tempo certo. Seus
processos so: planejamento das comunicaes, distribuio
de informaes, relatrio de desempenho e gerenciamento das
partes interessadas.
O Gerenciamento das Aquisies so os processos necessrios para garantir a aquisio de bens e servios fora da
organizao. Seus processos constantes so: planejar compras
e aquisies, planejar contrataes, solicitar respostas de fornecedores, selecionar fornecedores, administrar contratos e o
encerramento do contrato.
32
Gerenciamento de Mudanas
Ao longo de todo o ciclo de vida de um projeto, diversos
desafios so encontrados. Mtodos, processos, tcnicas e
ferramentas devem ser integrados no intuito de apoiar o
desenvolvimento de um projeto de TI, como por exemplo,
o desenvolvimento de software. O processo de mudanas
algo inevitvel em um projeto, e isto deve ser gerenciado de
forma efetiva atravs de planejamento, ou seja, preciso detalhar como o processo de mudanas ir acontecer. Para que
isso ocorra da maneira correta, algumas questes devem ser
respondidas, tais como:
Como solicitar mudanas no projeto?
Para onde encaminhar as solicitaes?
Quem as analisa?
Com que freqncia?
De que forma?
Sem um gerenciamento definido de mudanas impossvel
garantir que as alteraes propostas estejam de acordo com os
objetivos do projeto. Segundo o PMBoK, o processo Controle
Integrado de Mudanas (pertencente rea de conhecimentos Gerenciamento da Integrao do Projeto) tem como seu
objetivo principal a aprovao de mudanas solicitadas, de
no-conformidades recomendadas e de reparos de defeitos
recomendados, observados nas fases de monitoramento e
controle do projeto.
Entretanto, o gerenciamento de mudanas em um ambiente
de servios TI, controlada pelo processo de Gerenciamento
de Alteraes pertencente rea de Suporte de Servios da
ITIL. Este processo trata da requisio, avaliao, autorizao e
implementao de mudanas em servios de TI, visando gerar
o menor impacto possvel para a organizao em relao a mudanas e minimizar possveis interrupes destes servios.
projeto
33
Em relao s ferramentas e tcnicas utilizadas neste processo, pode-se destacar o sistema de informaes de gerenciamento de projetos. O uso de ferramentas, no intuito de automatizar
esse processo, utilizado pela equipe de gerenciamento de
projetos para auxiliar na implementao de um processo de
controle integrado de mudanas do projeto, facilitar o feedback
do projeto e controlar as mudanas em todo o projeto.
34
Ao utilizar o Rational ClearQuest, primeiramente devese criar um repositrio de dados comum, visando oferecer
s equipes de desenvolvimento acesso rpido e seguro s
informaes referentes ao projeto. Para este exemplo, ser
necessrio definir duas bases de dados para a gravao
das informaes, uma para a base principal e outra para
a base de exemplo, configurada pela prpria ferramenta. Para isso, deve-se ir ao menu Iniciar > IBM Rational
ClearQuest > Ferramenta de Manuteno do ClearQuest
e, na tela IBM Rational ClearQuest Maintenance Tool,
clicar no boto Create para criar um novo repositrio de
dados, nome-lo como Stage e fazer as configuraes
apresentadas na Figura 4. No campo Feature Level deve-se
informar qual verso do Rational ClearQuest est sendo
usado, nesse caso, a verso 7.1. No campo Vendor devese definir qual o tipo de banco de dados ser utilizado
para a gravao dos dados, desta forma, deve-se definir o
Microsoft Access. Por ltimo, no campo Physical Database
Name deve-se informar o nome para o banco de dados
como Master.mdb.
projeto
As equipes de desenvolvimento utilizam controles de mudanas para registrar defeitos, pedidos de aprimoramento para
recursos existentes e pedidos de novos recursos, sendo que o
Rational ClearQuest armazena estes controles como registros
em um banco de dados. Desta forma, para que se possa registrar um defeito, deve-se selecionar Arquivo > Novo > Defect.
Nesta janela, pode-se destacar que atribudo um nmero ID
de registro para esse controle de mudana e seu estado por
default aparece como Submetido, alm dos nomes de campos
obrigatrios aparecem em vermelho.
Assim, para poder cadastrar um registro de defeito, devese digitar as informaes levantadas, conforme Figura 6. Na
aba Main, em Headline, deve-se definir o ttulo do defeito
como Valores totais incorretos no relatrio de Vendas. Nos
campos Priority e Severity sero definidas as prioridades e
severidades desse defeito, onde os valores esto ordenados
do estado mais crtico para o menos crtico, neste caso,
deve-se selecionar 2-Give High Attention e 2-Major,
pois o defeito no ir causar uma interrupo do sistema,
mas pode ocasionar problemas por disponibilizar uma
informao errada.
Tambm possvel acrescentar informaes adicionais ao
registro do defeito como no campo Keywords, que fornece uma
35
Aps ter designado um desenvolvedor ao registro do defeito, o prximo estado deste ser de Opened, isto significa,
36
projeto
37
38
Feedback
eu
sobre e
s
D
s
Concluses
Referncias
edio
ta
projeto
39
Eros Viggiano
eros.viggiano@arkhi.com.br
40
Figura 3. Relao entre produto e ciclo de vida de projeto (Fonte: PMBOK [1])
41
Em um tpico projeto de desenvolvimento de software, as atividades do grupo I (Iniciao) coincidem com as fases iniciais do projeto
e caracterizam o incio dos trabalhos arquiteturais. Os grupos D
(Definio) e E (Edificao) se intercalam nas fases intermedirias,
sendo que D visa definir e validar arquiteturas candidatas e, em E,
procura-se garantir que as arquiteturas esto sendo adequadamente
realizadas. Enfim, as atividades do grupo A (Anlise) ocorrem no fim
do projeto e tem por objetivo analisar e aprender com os resultados,
objetivando a melhoria de processos e prticas arquiteturais.
A Figura 5 representa a projeo do ciclo de vida de um projeto
tpico sobre o ciclo de vida da gesto de arquitetura de software.
Grupo
Iniciao
Atividade
Definir a viso arquitetural
Produtos de trabalho
Viso arquitetural
Diretrizes arquiteturais
Anlise de viabilidade tcnica
Estratgia arquitetura
Plano arquitetural
Modelar a arquitetura
Modelo da arquitetura
De uma forma geral, a literatura especializada trata principalmente das atividades relacionadas definio da arquitetura, em especial, da modelagem e da avaliao arquiteturais.
Entretanto, na prtica, a disciplina de arquitetura de software
requer uma gesto mais complexa. As atividades do arquiteto
tendem a envolver questes mais estratgicas que merecem ser
contextualizadas no ciclo de vida do projeto.
Dentre aqueles que defendem uma participao mais estratgica do arquiteto de software, destacamos os mtodos
arquiteturais VAP [2] de Dana Bredemeyer e o CFCAR [3] de
Gerrit Muller. A iniciativa de arquitetura de software do SEI,
denominada SAT, tambm ressalta o envolvimento do arquiteto no alinhamento estratgico do produto e trata o business
case como um insumo para a arquitetura de software.
O ciclo de vida IDEA serve como uma espcie de moldura
para instanciar processos de arquitetura de software. Para
projetos que visam o desenvolvimento de um novo produto, o
escopo do nosso artigo, sugerimos o processo diagramado na
Figura 6. Repare que, em termos gerais, o processo arquitetural
segue o ciclo de PDCA (Plan, Do, Check, Act).
A Tabela 1 enumera as atividades e os produtos de trabalho
sugeridos pelo IDEA.
Na seo Atividades da gesto em arquitetura de software,
exemplificaremos as atividades e seus produtos de trabalho
com um nvel um pouco maior de detalhes.
Definio
Avaliar a arquitetura
Avaliao da arquitetura
Edificao
Arquitetura executvel
Anlise
Lies aprendidas
Sugestes de melhorias
Figura 7. Projeo hipottica do ciclo IDEA sobre o ciclo de vida de um projeto dirigido pelo RUP
42
Mito
Realidade
Mtodos geis aceitam mudanas a qualquer momento, tendo impacto ou no sobre a arquitetura. O
cliente deve sempre estar ciente das consequncias de uma mudana no requisito (arquitetural ou no).
Vrios mtodos geis prescindem de papis. Mesmo que ningum na equipe tenha o papel
ou cargo de arquiteto de software, convm planejar a arquitetura.
O arquiteto deve respeitar a natureza do projeto. Se o mtodo prescreve prove com cdigo
sempre que possvel, interessante realizar a arquitetura em software executvel mesmo
que no esteja completamente modelada.
Figura 8. Projeo hipottica do ciclo IDEA sobre o ciclo de vida de um projeto gil
43
Viso Arquitetural
A viso arquitetural nasce a partir da viso do produto e dos
princpios tcnicos do projeto, isto , os objetivos primrios da
arquitetura de software. Por exemplo, no nosso contexto bancrio poderamos ter o conjunto de princpios da Figura 10.
Impacto
atual
Uma soluo
de TI bem
sucedida
seria
Benefcios
esperados
Prioridade
Caractersticas
Alta
Usabilidade facilitada
Solicitao de Emprstimo
Abertura de emprstimo
Acompanhamento de emprstimo
Simulaes de financiamento
Anlise de risco
Concesso de Emprstimo
Acompanhamento de Pagamentos
Eliminao de
formulrios manuais
Alta
Portal para
dispositivos mveis.
Baixa
Planejamento
para Liberao
1.0
1.0
2.0
2.0
Abertura e acompanhamento
de solicitaes de emprstimo
por conveniados
Tabela 4. Definio das principais necessidades de crdito consignado
do banco Optimus
Interface EDI para
conveniados
Baixa
Iniciao
As tarefas iniciais do time de arquitetura devem garantir o alinhamento tcnico da arquitetura de software com a viso do produto
e demais premissas organizacionais (restries oramentrias e
temporais, conhecimentos da equipe e cultura organizacional). Para
isso, devemos desenvolver a viso e estratgia arquiteturais.
44
Estratgia Arquitetural
A formulao da estratgia arquitetural a outra atividade
do grupo de iniciao do IDEA. Em suma, o arquiteto deve
realizar uma anlise estratgica e desenvolver a estratgia da
arquitetura de software.
Um dos produtos de trabalho da formulao estratgica
a identificao das diretrizes arquiteturais. As diretrizes
arquiteturais so os requisitos em alto nvel significativos para o time de arquitetura de software e refletem
decises que so difceis de serem revertidas. Diretrizes
arquiteturais devem ser identificadas explicitamente pelo
time de arquitetura de software com apoio dos analistas
de negcio, analistas de requisitos e demais interessados
tcnicos do projeto.
Geralmente no encontramos um nmero muito grande
de diretrizes arquiteturais no incio de um projeto de
software (valores tpicos entre 5 a 20). Essas diretrizes
normalmente refletem o subconjunto de requisitos prioritrios (na tica dos interessados do produto) e de alta
complexidade tcnica. interessante notar que as diretrizes arquiteturais podem advir de requisitos funcionais,
de requisitos no-funcionais (atributos de qualidade) e de
restries tecnolgicas.
No nosso exemplo, foram identificadas as seguintes diretrizes arquiteturais (As diretrizes foram propositadamente
simplificadas e contm palavras ambguas como excelente e
alta disponibilidade. Em projetos reais, mtodos de verificao
da qualidade de escrita de requisitos como o SMART ou mtodos de desenvolvimento formais de requisitos arquiteturais
como o SEI QAW poderiam ser usados para apoio ao time de
arquitetura):
Suporte a 1000 usurios simultneos em perodos de pico;
Tempo de resposta inferior a sete segundos;
Alta disponibilidade em horrio comercial;
Solicitao de emprstimo;
Simulaes de financiamento;
Anlise de risco de emprstimo;
Portal para a hospedagem de pginas e elementos visuais;
Portal para dispositivos mveis;
Operao em plataforma .NET;
Segurana com autenticao baseada em LDAP/Kerberos e
transporte seguro para comunicao com clientes;
Suporte aos navegadores Internet Explorer 6.0/7.0 e Firefox 3.0;
Interoperabilidade com SGBD Sybase;
Interoperabilidade com plataforma alta (CICS/COBOL).
O time de arquitetura deve tambm elencar e analisar os
principais riscos tcnicos do projeto que, na nossa abordagem,
chamamos de riscos arquiteturais. Exemplos de riscos que
poderiam compor o problema:
Conhecimento da equipe na plataforma .NET no avanado;
Conhecimento da equipe na plataforma .NET para ambientes
mveis precrio;
No existe experincia prvia do Banco Optimus em integrao com plataforma alta (CICS/COBOL).
Metfora
Sistmica
Definio
A definio o grupo de atividades do IDEA que lida com
anlise e desenho arquitetural dos requisitos sob anlise.
Grande parte do trabalho que arquitetos usualmente praticam,
principalmente a modelagem arquitetural, est situada neste
grupo de atividades. No artigo corrente, abordaremos a definio arquitetural com um nvel muito superficial de detalhes.
A definio no IDEA, entretanto, tende a ser mais ampla e
lida com:
O planejamento das atividades de definio da arquitetura
para a iterao ou fase atual do projeto. Arquiteturas de software so naturalmente evolucionrias (o conceito de arquiteturas
evolucionria descrito em processos como o OpenUP ou no
45
A Figura 13 apresenta uma visualizao lgica, que captura os grandes agrupamentos do domnio da aplicao.
Cada grande elemento capturado como um pacote UML,
que pode apresentar ou requerer dependncias de outros
pacotes. Esta viso fornece um primeiro diagrama de
contexto para iniciados no projeto e tambm permitir
expressas dependncias para a montagem de um cronograma de trabalho.
A Figura 14 apresenta uma visualizao de componentes (que
so elementos fsicos como DLLs Windows ou .JARs em Java).
Esta viso captura a gesto de configurao dos elementos
centrais a serem produzidos pelo time de projeto e dependncias para a sua operao em produo. Por exemplo, vemos
nesta figura que o domnio que cuida do processo de negcio
de consignao de crdito depende do servidor de integrao
(MS BizTalk), que por sua vez depende de um adaptador de
fila de mensagens para que as mensagens sejam enviadas ao
sistema do Banco Central do Brasil.
Finalmente, vemos uma viso de provisionamento (mquinas
e servidores de infra-estrutura) do nosso software na Figura 15.
Vemos, por exemplo, que teremos um servidor dedicado para
hospedar o banco de dados e um servidor dedicado para
hospedar o cdigo.
Estes modelos, em verdade, seriam um pequeno fragmento
de uma soluo completa para este exemplo hipottico. Um
modelo arquitetural completo no apresentado aqui, naturalmente, por questes de espao.
No mundo real, um dos trabalhos de um arquiteto de sistemas
definir que vises so ou no aplicveis conforme os riscos
tcnicos e requisitos do projeto sendo endereado.
46
As atividades do grupo de definio arquitetural so encadeadas em um ciclo. Cada execuo do ciclo produz uma arquitetura candidata que, potencialmente, pode ser realizada em
cdigo (atividade do grupo de Edificao). O ciclo se repete at
que se considere que uma arquitetura estvel foi atingida.
Nota do DevMan
Ciclo PDCA
O ciclo PDCA, tambm conhecido por ciclo de Shewhart ou ciclo de Deming, um
processo em quatro passos para soluo de problemas. O PDCA foi criado por Walter
Shewhart e popularizado por W. Edwards Deming. Resumidamente, as fases significam:
Plan (planejamento): estabelece objetivos e processos para atingir os resultados;
Do (execuo): execuo das atividades planejadas;
Check (verificao): monitorao ou estudo peridico dos resultados, consolidando-os com o planejado;
Act (ao): agir conforme o estudo promovido pela verificao com fins de melhorar a qualidade, a eficincia e a eficcia.
47
Edificao
At este momento temos normalmente uma arquitetura
candidata, i.e, uma arquitetura baseada em estudos e experincia do time e tambm na anlise de alternativas. Entretanto,
devemos provar a arquitetura com cdigo robusto.
O IDEA prope, neste particular, um conjunto de atividades
de edificao. A edificao realiza a arquitetura, isto , fornece
evidncias concretas atravs de cdigo executvel que a arquitetura acomoda os requisitos do projeto.
A edificao realizada atravs do esforo conjunto do
time de arquitetura do projeto (arquiteto e desenvolvedores
especialistas). O resultado da edificao uma arquitetural
executvel, que poderia ser gerada em pequenos incrementos
(builds) nas fases iniciais de um projeto.
No nosso exemplo, poderamos elencar um plano de builds
(cdigos com maturidade Alfa - um produto alfa um cdigo executvel, mas que ainda no possui estabilidade de
produo. Ele pode (e deve) ser usado para validar requisitos
arquiteturais com usurios chave, estabelecer nveis maiores de confiana e reduzir riscos tcnicos do projeto) a ser
construdo para provar aspectos da arquitetura com cdigo
executvel. Seis builds so mostrados para exemplificar nosso
produto bancrio:
Alfa 1 Prova de Conceito Single Sign On Kerberos;
Alfa 2 Prova de conceito com o fluxo de solicitao, abertura
e acompanhamento de emprstimos;
Alfa 3 Prova de conceito de interoperabilidade e troca de informaes (EDI) com Microsoft MQSeries para o Banco Central;
Alfa 4 Prova de conceito de escalabilidade para 1000 usurios simultneos;
Alfa 5 Implementao do conjunto de casos de uso de
solicitao e abertura de emprstimo;
Alfa 6 - Implementao do conjunto de casos de uso de
simulaes de financiamento.
Ao final do ciclo de atividades de edificao, temos uma
arquitetura provada para os mecanismos centrais elencados
na fase de definio.
O trabalho de arquitetura no se encerra ao termos uma
arquitetura executvel e estvel. muito fcil quebrar uma
arquitetura definida e, portanto, o arquiteto deve acompanhar
o time na resoluo contnua de dvidas e na verificao do
cdigo sendo construdo.
Alm do trabalho junto ao time de desenvolvimento, o arquiteto tambm apia outros profissionais como o engenheiro de testes, o analista
de integrao, gerente de configurao, etc. O objetivo garantir que
todos compreendam perfeitamente a arquitetura definida.
Concluses
A disciplina de arquitetura de software tende a ser mais
eficaz se aplicada em um contexto mais amplo e responsvel
a gesto da arquitetura de software. IDEA, o ciclo de vida
da gesto da arquitetura de software, encadeia as atividades
de arquitetura de software de uma forma compreensvel e
organizada.
O artigo corrente concentrou-se no processo de arquitetura
de software para a criao de um produto, mas, de uma forma
anloga, os conceitos podem ser aplicados para famlias de
produtos e arquiteturas de referncia.
Referncias
1. Project Management Institute. [PMBOK] A Guide to the Project Management Body of
Knowledge. s.l.: Project Management Institute, 2004.
2. Malan, Ruth and Bredemeyer, Dana. Architecture as a Business Competency. [Online] http://
www.bredemeyer.com/pdf_files/WhitePapers/ArchitectureAsBusinessCompetency.PDF.
3. Muller, Gerrit. CAFCR: A Multi-view Method for Embedded Systems Architecting; Balancing
Genericity and Specificity. [Online] http://www.gaudisite.nl/info/Thesis.info.html.
4. IBM. IBM Rational Unified Process 7.5. s.l.: IBM.
5. Rozanski, Nick and Woods, Eoin. Software Systems Architecture: Working with Stakeholders
Using Viewpoints and Perspectives. s.l.: Addison-Wesley Professional, 2005.
6. Ambler, Scott. Big Modeling Up Front (BMUF) Anti-Pattern. Agile Modeling. [Online] 2007.
[Cited: 04 02, 2009.] http://www.agilemodeling.com/essays/bmuf.htm.
7. InfoQ. Paulo Merson on Documenting Application Architectures Using UML 2.0. [Online]
InfoQ, 11 27, 2008. [Cited: 04 02, 2009.] http://www.infoq.com/news/2008/11/paulo-mersonarchitecture.
8. IBM Rational Quality Manager. Entrevista: Grady Booch e Scott W. Ambler - Architecture?
Agile Dont Need No Architecture! [Online] 2009. [Cited: 04 02, 2009.] http://www.facebook.
com/video/video.php?v=1090941519721.
9. Grady, Robert. Practical software metrics for project management and process improvement.
Upper Saddle River, NJ, USA: Prentice-Hall, Inc., 1992. ISBN:0-13-720384-5.
10. ISO. Software Engineering -- Software product Quality Requirements and Evaluation
(SQuaRE) -- Guide to SQuaRE. ISO/IEC 25000:2005. [Online] 2005. http://www.iso.org/iso/
iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=35683.
11. Mannion, Mike and Keepence, Barry. SMART requirements. ACM SIGSOFT Software
Engineering Notes. 1995, Vol. 20, 2.
12. Bass, Len, Clements, Paul and Kazman, Rick. Software Architecture in Practice. 2nd. s.l. :
Addison-Wesley, 2003.
13. Kruchten, Phillippe. The 4+1 View Model of Architecture. IEEE Software. 6, 1995, Vol. 12, 6.
14. Clements, Paul, et al. Documenting software architectures: views and beyond. ICSE 03:
Proceedings of the 25th International Conference on Software Engineering . 2003.
Avaliao
www.devmedia.com.br/esmag/feedback
D
s
Feedback
eu
edio
ta
48
sobre e
s
49
50
arquitetura de software de um
sistema serve para definir a
organizao das funcionalidades desse sistema e propriedades ou
requisitos no funcionais suportados
pelo mesmo. Caractersticas peculiares
da arquitetura determinaro quais
propriedades sero preponderantes. A
necessidade da arquitetura de software
prover suporte a um conjunto de requisitos, geralmente conflitantes, requer que
uma anlise arquitetural seja realizada,
tema tratado neste artigo.
Desenvolvimento de Sistemas de
Software
O processo de desenvolvimento de sistemas de software, similarmente a outros
sistemas, compreende trs fases genricas
definio, desenvolvimento e manuteno conforme ilustrado na Figura 1.
Definio
Desenvolvimento
Manuteno
Entretanto, note que no tarefa fcil validar uma arquitetura de software quanto ao suporte que oferece a um
conjunto de requisitos. muitas vezes difcil associar novas
arquiteturas a atributos de qualidade. Observa-se, geralmente, que os desenvolvedores concentram-se nos aspectos
funcionais das arquiteturas. Assim, o principal propsito da
anlise arquitetural verificar se os requisitos arquiteturais
tm sido levados em conta durante o desenvolvimento de
um sistema de software.
A arquitetura de software uma parte essencial de um sistema de software complexo. Com a crescente complexidade de
sistemas de software, a especificao global do sistema, ou seja,
sua arquitetura passa a ser um aspecto de maior significado
quando comparado escolha de algoritmos ou estruturas de
dados. Um sistema possui um conjunto de requisitos arquiteturais, envolvendo atributos de qualidade (ou requisitos no
funcionais) e atributos de projeto. Esses requisitos constituem
propriedades desejadas ou apresentadas por uma arquitetura de software. Dentre esses requisitos, uma arquitetura de
software apresenta propriedades importantes que podem ser
vistas como intrnsecas a ela. Tais propriedades so: eficincia,
integridade e flexibilidade
A eficincia pode ser descrita como a quantidade de recursos
computacionais necessrios para que um programa realize
suas funes. Esses recursos computacionais podem ser vistos
em termos da capacidade de armazenamento e processamento.
Um dos principais requisitos associados eficincia o desempenho. O desempenho um requisito no funcional essencial
para um sistema de software e constitui num enorme desafio
51
lidar com tal requisito durante o desenvolvimento de um sistema. Por exemplo, seria possvel ter os seguintes requisitos
de desempenho quando do desenvolvimento de um sistema
de software para administrao de cartes de crdito:
Obter um bom tempo de resposta para autorizao de vendas com carto de crdito. O termo bom poderia ser traduzido
em 7 segundos.
Obter um bom uso de memria para armazenar as informaes de um cliente. Poderia ser especificado o mximo de 10
Kb para armazenar as informaes de cada cliente.
A eficincia uma propriedade de suma importncia
nas decises de projeto e tem forte influncia na anlise
arquitetural de um sistema. Perceba que a forma na qual os
componentes de uma arquitetura encontram-se distribudos,
bem como os mecanismos de comunicao entre eles, so
determinantes do desempenho e, portanto, da eficincia do
sistema. Essa propriedade, s vezes, atua em conflito com
outros requisitos do sistema, exigindo que compromissos
sejam assumidos em termos de custo e desempenho de um
sistema de software.
Outra importante propriedade a integridade. Aqui, a
noo de integridade refere-se integridade em termos da
unificao do projeto em nveis distintos. A arquitetura de
software descreve a organizao de um sistema de software
num nvel mais elevado, objetivando a unificao do projeto, ou seja, serve de referncia para o projeto, conforme
ilustrado na Figura 4.
requisitos
requisitos
arquitetura de software
Implementaes
mtodos
(a)
implementaes
(b)
52
Descrio de
arquitetura
Desenvolvimento
de cenrios
Avaliao de
cada cenrio
Av aliao de cenrios e
da interao de cenrios
Determinao da
interao de cenrios
Gerente de
dilogo
Apresentao
Controlador
de dilogo
Banco de
dados ativo
53
Gerente de
dilogo
notao arquitetural
Controlador
de dilogo
Componentes
Conectores
processo
Banco de
dados ativo
componente
computacional
NF
IF
IL
Aplicao
Apresentao
(a)
fluxo de dados
(uni)bidirecional
repositrio de
dados passivo
fluxo de controle
uni/bidirecional
repositrio de
dados ativo
(b)
54
A arquitetura Serpent foi redesenhada fazendo uso da notao arquitetural apresentada na Figura 7b. As funes bsicas
de um software de interface com usurio foram mapeadas
na estrutura inicial da arquitetura Serpent (vide Figura 6),
resultando a arquitetura ilustrada na Figura 7a. Algumas
observaes podem ser feitas:
No h separao arquitetural entre as funes IL e IF no
processo de apresentao;
Tambm, no existe separao arquitetural entre as funes
de ANF e D no processo do controlador de dilogo;
Exceto o gerenciador de dilogo, todos os componentes de
Serpent so monolticos. Em outras palavras, eles no oferecem
suporte arquitetural para subdiviso de funcionalidade dentro
de um componente.
Considerando a arquitetura Serpent, vamos supor que se
deseja efetuar uma modificao como, por exemplo, adicionar
uma nova opo de menu. Vamos avaliar o grau no qual essa
arquitetura suporta essa modificao. Perceba que a arquitetura Serpent separou o controlador de dilogo e, portanto, fcil
verificar que a modificao proposta (adicionar uma opo de
menu) dever ser feita nesse processo. O controlador de dilogo
possui dois componentes: o gerente de dilogo, responsvel por
comandar o comportamento do dilogo, e o banco de dados
ativo, o qual mantm o estado do dilogo. Esse cenrio, no
qual se deseja fazer uma modificao (adio de nova opo
de menu), est associado mudana no comportamento do
dilogo e, portanto, est isolado no gerente de dilogo. Adicionalmente, o gerente de dilogo subdividido em componentes
menores associados a partes especficas do comportamento do
dilogo como, por exemplo, um menu. Desse modo, pode-se
concluir que a arquitetura Serpent fornece suporte apropriado
a este tipo de cenrio envolvendo modificao no aspecto de
um sistema interativo.
qualquer empresa. Geralmente, as metas de qualidade e conjunto de funcionalidades constituem os principais motivadores de
um sistema. Considere, por exemplo, um fabricante de centrais
telefnicas que esteja desenvolvendo um projeto de uma nova
central. Assim, pode ser especificado que a central deve ser
capaz de rotear ligaes telefnicas, prover suporte a diversos
tipos de tons, redirecionar ligaes, gerar contas telefnicas de
usurios com discriminao de ligaes efetuadas, dentre outras
funcionalidades. Entretanto, para que o sistema alcance sucesso
na prestao de servios para seus assinantes, ele deve tambm
operar com elevado nvel de desempenho, facilitar quaisquer
modificaes (em termos de adio ou alterao de caractersticas), possuir bom nvel de disponibilidade e ter baixo custo.
Como essas metas de qualidade podem ser alcanadas?
A arquitetura do sistema um meio pelo qual podemos determinar se essas metas de qualidade podem ser realizveis ou
no. SAAM e outros mtodos constituem respostas a essa questo. Perceba que essa necessidade de prever o comportamento
de atributos de qualidade num sistema requer conhecimento
de estilos arquiteturais provveis de serem empregados no
sistema. Um estilo arquitetural inclui:
Descrio de tipos de componentes e sua topologia;
Descrio de padro de interao (no nvel de dados e controle) entre os componentes;
Descrio informal das vantagens e desvantagens na adoo
do estilo.
Estilos arquiteturais permitem ao arquiteto de software
distinguir classes de projeto atravs de evidncias existentes
de como cada classe tem sido utilizada juntamente com o
raciocnio qualitativo para explicar porque certas classes tm
determinadas propriedades. Assim, por exemplo, pode-se
adotar o estilo arquitetural de pipes e filtros quando se deseja
obter reuso e no h restrio quanto ao desempenho.
Agora, pode ser feito um mapeamento de um estilo arquitetural em um conjunto de modelos de atributos de qualidade.
Estes modelos de atributos de qualidade ajudam a prever o
comportamento desses atributos. Esta noo de mapeamento
de decises e propriedades arquiteturais em modelos de atributos de qualidade ilustrada na Figura 8.
decises
arquiteturais
propriedades
arquiteturais
parmetros de modelos
de atributo de qualidade
estmulos
comportamento
exibido
modelos de atributo
de qualidade
comportamento
desejado
comportamento
previsto
importante observar que decises arquiteturais influenciam direta e indiretamente no comportamento apresentado
pela arquitetura. Como poderamos caracterizar esse comportamento? Considere, por exemplo, a alocao de funcionalidade
a um conjunto de processos. Isto requer que o arquiteto ou
engenheiro de software tome decises arquiteturais. Disto
resulta que tais processos precisam ser alocados a processadores, requerendo ainda mais decises arquiteturais. Note que,
associado a eles, temos um conjunto de tempos de execuo
de processo, os quais constituem propriedades arquiteturais.
Dessa forma, as propriedades arquiteturais, em conjunto com
estmulos (tais como taxa de chegada de mensagens), nos leva
a um comportamento de desempenho exibido pelo sistema.
importante observar que, para avaliar uma arquitetura em
funo de requisitos no funcionais, necessrio expressar esses
requisitos ou atributos de qualidade em termos mensurveis, denominado de medidas de atributos de qualidade. Tais medidas
dependem de propriedades da arquitetura ou parmetros de
atributos de qualidade e dos estmulos. Considere como atributo
de qualidade o desempenho. Esse requisito pode ser expresso
em termos das seguintes medidas de atributo de qualidade:
Latncia - tempo da ocorrncia de um evento at a resposta
quele evento, dado em unidades de tempo;
Throughput taxa na qual o sistema pode responder a eventos, dada em transaes por unidades de tempo.
Os estmulos podem ser vistos como mudanas de estado ao
qual a arquitetura deve responder. Se, novamente, considerarmos o desempenho, temos o padro de chegada de um evento
que pode ser peridico, espordico ou probabilstico. Se um
estmulo ocorre, ento o sistema deve responder fazendo uso
de seus recursos para realizar alguma computao.
Note que analisar uma arquitetura uma atividade investigativa
na qual o avaliador busca saber quo bem uma arquitetura tem
sido projetada em relao aos requisitos no funcionais desejados
para o sistema. Tais requisitos esto intrinsecamente associados
qualidade do sistema. Um arquiteto de software, ao tomar decises
de projeto, busca maximizar os benefcios obtidos com o sistema
e, ao mesmo tempo, minimizar os custos de implementao do
projeto. Note que as metas de negcios de uma empresa tambm
tm influncia sobre decises arquiteturais tomadas pelo projetista.
Essas decises tm implicaes tcnicas e econmicas.
As implicaes tcnicas compreendem as caractersticas do
sistema de software e os atributos de qualidade desejados. As
implicaes econmicas referem-se ao custo de implementar o
sistema. A Figura 9 ilustra o contexto das decises arquiteturais
e implicaes associadas.
Considerando a Figura 9, tem-se que a determinao dos
custos e benefcios associados s decises arquiteturais pode
ser obtida atravs de:
Avaliao da importncia dos requisitos no funcionais;
Quantificao dos escores de benefcios dos requisitos no
funcionais;
Quantificao dos custos dos requisitos no funcionais;
Escolha de cenrios e estratgias de projeto arquitetural.
55
influenciadores
metas de
negcios
cenrios
desempenho
Decises
arquiteturais
confiabilidade
benefcios
segurana
custos
...
56
Feedback
eu
sobre e
s
D
s
Concluso
edio
ta
importante observar que, para quantificar e compreender de uma forma consistente o impacto que as estratgias
de projeto arquitetural tm sobre os atributos de qualidade, os influenciadores necessitam de uma representao
mais concreta dos atributos de qualidade. Para este propsito, cenrios devem ser utilizados. Durante a anlise
arquitetural, a elicitao e anlise de cenrios permitem
a caracterizao de atributos de qualidade. Esses cenrios especificam caractersticas envolvendo estmulos e
respostas concretizando os atributos de qualidade. Isto
permite que os influenciadores possam avaliar os efeitos
desses atributos. Esta avaliao centrada na premissa de
maximizar os benefcios obtidos com a arquitetura de um
sistema e, ao mesmo tempo, minimizar os custos associados
com sua implementao.
AMIGO
Existem coisas
que no
conseguimos
ficar sem!
Renove J!
www.devmedia.com.br/renovacao
Para mais informaes:
www.devmedia.com.br/central
57
Ontologias
Filosofia aplicada Engenharia de Software?
De que se trata o artigo?
Este artigo apresenta uma introduo ao tema
Ontologias, destacando seus principais conceitos e
aplicaes na Engenharia de Software.
N
Monalessa Perini Barcellos
monalessa@inf.ufes.br
58
Histrico
59
Ontologia de
Fundamentao
Ontologia de
Domnio
Ontologia de
Tarefa
Ontologia de
Aplicao
Figura 2. Relacionamentos entre os tipos de ontologias segundo Guarino.
Conforme ilustrado na Figura 2, ontologias de Fundamentao devem ser utilizadas como base para a construo de
ontologias de Domnio e de Tarefa e essas, por sua vez, devem
ser utilizadas como base para construo de ontologias que
tratam de aplicaes especficas.
Ontologia de Fundamentao
Uma ontologia de fundamentao (tambm chamada ontologia genrica ou ontologia de nvel superior) , teoricamente,
uma conceituao abstrata sobre elementos genricos demais
para fazer parte de um domnio especfico, como espao, tempo, matria, objeto, evento e ao. Essas ontologias podem ser
utilizadas como meta-modelo para ontologias de domnio e
tarefa, visto que cada conceito ou propriedade de uma dessas
ontologias pode ser mapeado em um conceito de uma ontologia
de fundamentao. Na Figura 3 apresentado um fragmento
hipottico de uma ontologia de fundamentao.
Tipos de Ontologias
Vrias so as classificaes de ontologias encontradas na
literatura. Aqui apresentada a classificao definida por
Nicola Guarino (1998).
Nicola Guarino um dos pesquisadores de ontologias que,
ao analisarem a aplicao das ontologias em Computao,
ressaltam que alm dos aspetos tcnicos inerentes a essa rea,
h tambm aspectos filosficos, cognitivos e lingusticos envolvidos. Esses aspectos devem ser levados em considerao
no momento de construir as ontologias, caso contrrio sua
utilizao ser limitada.
60
Ontologia de Domnio
Uma ontologia de domnio um artefato de Engenharia de
Software que expressa conceituaes de domnios particulares
(por exemplo: medicina, turismo e petrleo). Uma ontologia
de domnio deve especificar formalmente as relaes, regras
e excees de todos os elementos presentes na conceituao
da parte da realidade por ela mapeada.
Conforme mencionado anteriormente, ontologias de domnio
constituem a maior parte das aplicaes das ontologias na Engenharia de Software. Exemplos de ontologias definidas nesse
contexto so: ontologias de processo de software, ontologias
relacionadas manuteno de software, ontologias relacionadas qualidade de software, ontologias para requisitos de
software e ontologias relacionadas ao desenvolvimento de
software baseado em componentes.
O exemplo ilustrado na Figura 1 pode ser considerado um substrato
hipottico de uma ontologia para o domnio Ensino Universitrio.
Ontologia de Tarefa
Uma ontologia de tarefa similar a uma ontologia de domnio, porm, ao invs de mapear os conceitos de um domnio
particular, mapeia conceitos de uma tarefa ou atividade especficos (por exemplo: diagnstico, venda e matrcula).
Ontologia de Aplicao
Uma ontologia de aplicao descreve conceitos que so dependentes de um domnio e de uma tarefa particulares e, assim,
combina especializaes de conceitos presentes nas ontologias
de domnio e de tarefa.
Concluso
Apesar de ter uma abordagem predominantemente filosfica,
as ontologias tm sido eficientemente utilizadas em Engenharia de Software, principalmente quando se busca reutilizao
e interoperabilidade.
Muitas vezes, a integrao ou reutilizao de sistemas e/ou
componentes no possvel devido a problemas relacionados
semntica (e no tcnica) de alguns dos conceitos envolvidos.
Alm disso, limitaes em relao semntica do mundo real
tambm dificultam a integrao.
Algumas das caractersticas diretamente responsveis pela
reutilizao e interoperabilidade semntica entre sistemas so
a fidedignidade realidade e a clareza conceitual dos modelos
conceituais utilizados.
61
www.devmedia.com.br/esmag/feedback
62
sobre e
s
Feedback
eu
edio
ta
D
s
Em resumo, quanto mais completos e claros forem os modelos conceituais utilizados, maiores sero as possibilidades
de reutilizao e interoperabilidade em sistemas. Sendo as
ontologias de domnio modelos conceituais, quando definidas
adequadamente, servem como arcabouos de referncia para o
alcance da reutilizao e interoperabilidade semntica.
Tendo em vista os benefcios da aplicao de princpios filosficos aos modelos conceituais da Computao, mais uma vez
temos que dar o brao a torcer e concordar que nossa cincia
exata, na verdade, no to exata assim.
Referncias
FALBO, R. A., GUIZZARDI, G., DUARTE, K. C., 2002, An Ontological Approach to Domain
Engineering, In Proceedings of the 14th International Conference on Software Engineering
and Knowledge Engineering, Ischia, Italy, pp. 351 358.
GRUBER, T. R., 1993, A Translation Approach to Portable Ontologies, Knowledge Acquisition,
Volume 5 (2), pp. 199-220.
GUARINO, N., 1998,Formal Ontology and Information Systems, In Proceedings of International
Conference in Formal Ontology and Information Systems - FOIS98, Trento, Italy, pp. 3-15.
GUIZZARDI, G., 2005, Ontological Foundations for Structural Conceptual Models, Universal
Press, The Netherlands, ISBN 90-75176-81-3.
GUIZZARDI, G., FALBO, R. A., GUIZZARD, R. S. S., 2008, Grounding Software Domain Ontologies
in the Unified Foundational Ontology (UFO): The case of the ODE Software Process Ontology,
In Proceedings of the XI Iberoamerican Workshop on Requirements Engineering and Software
Environments, Recife Brasil.
MEALY, G., 1967, Another Look at Data, In American Federation of Information Processing
Societies, Fall Joint Computer Conference, Volume 31.
PRESSMAN, R. S., 2004,Software Engineering: A Practitioners Approach, McGraw-Hill Science/
Engineering/Math, 6th edition.
63
64