Documente Academic
Documente Profesional
Documente Cultură
engenharia
Saiba seu significado e para que serve
magazine
de software
Edio Especial
Especial Processos
Melhore seus processos atravs da Veja como integrar conceitos de Veja como integrar o Processo
anlise de risco e conformidade Modelos Tradicionais e geis Unificado ao desenvolvimento Web
Atendimento ao Leitor
engenharia
magazine
A DevMedia conta com um departamento exclusivo para o atendimento ao
leitor. Se voc tiver algum problema no recebimento do seu exemplar ou
de software
precisar de algum esclarecimento sobre assinaturas, exemplares anteriores,
endereo de bancas de jornal, entre outros, entre em contato com:
Colaboradores Publicidade
Rodrigo Oliveira Spnola Para informaes sobre veiculao de anncio na revista ou no site entre
rodrigo@sqlmagazine.com.br em contato com:
Apoio Parceiros:
NDICE
NDICE
04 - Alguns Fundamentos da Engenharia de Software
Wilson de Pdua Paula Filho
10 - Melhorando Processos Atravs da Anlise de Risco e Conformidade
Rafael Espinha, Joo Sousa
38 - Arquitetura de Software
Antonio Mendes da Silva Filho
60 - Gesto de defeitos
Cristiano Caetano
68 - Introduo Inspeo de Software
Marcos Kalinowski e Rodrigo Oliveira Spnola
EDITORIAL
Engenharia de Software a aplicao de abordagens siste- Alguns Fundamentos da Engenharia de Software
mticas, disciplinadas e quantificveis no desenvolvimento Melhorando Processos Atravs da Anlise de Risco e Con-
e manuteno de software. Desta forma, se preocupa em formidade
como realizar as diversas atividades envolvidas no processo Agilidade ou Controle Operacional? Os dois!
de desenvolvimento de software de forma que se tenha um O Processo Unificado Integrado ao Desenvolvimento Web
produto elaborado com maior qualidade e menor custo. Arquitetura de Software: Desenvolvimento orientado para
Neste contexto, uma rea de conhecimento bastante arquitetura
abrangente envolvendo desde atividades mais tcnicas como Introduo Engenharia de Requisitos
programao at reas mais gerenciais como controle de Introduo a Teste de Software
qualidade nos processos utilizados. Gesto de defeitos: Ferramentas Open Source e melhores
Embora a Engenharia de Software seja um tema bastante prticas na gesto de defeitos
abordado em diferentes congressos de escopo nacional e in- Introduo Inspeo de Software: Aumento da
ternacional, a indstria brasileira ainda carente de conhe- qualidade atravs de verificaes intermedirias
cimento nesta rea. H carncia na difuso de conhecimento
em diferentes reas, por exemplo: engenharia de requisitos, Desejamos uma tima leitura!
gerncia de projetos, processo de desenvolvimento de sof-
tware, inspeo e teste de software, metodologias geis, Equipe Editorial Engenharia de Software Magazine
controle de qualidade.
Todos sabem que importante, mas o saber como fazer
ainda uma realidade um pouco distante, embora procurada.
Aliado a isso, no existe uma revista especializada no as-
sunto, e os detentores do conhecimento esto, na maioria
das vezes, em centros acadmicos. Se por um lado temos
o conhecimento necessrio concentrado em alguns profis-
sionais, por outro lado, temos um vasto campo, formado por Rodrigo Oliveira Spnola
profissionais e empresas que tm interesse no assunto, mas rodrigo@sqlmagazine.com.br
no tm acesso fcil a informaes tcnicas da rea. Doutorando em Engenharia de Sistemas e Computao (COPPE/UFRJ).
Mestre em Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em
Neste contexto a DevMedia - editora das revistas ClubeDel-
Cincias da Computao (UNIFACS, 2001). Colaborador da Kali Software
phi, .Net Magazine, SQL Magazine, Java Magazine e WebMo-
(www.kalisoftware.com), tendo ministrado cursos na rea de Qualidade
bile est lanando no mercado editorial brasileiro a Enge-
de Produtos e Processos de Software, Requisitos e Desenvolvimento Orien-
nharia de Software Magazine. Esta preencher uma lacuna
tado a Objetos. Consultor para implementao do MPS.BR. Atua como
que existe no mercado editorial brasileiro - Engenharia de Gerente de Projeto e Analista de Requisitos em projetos de consultoria na
Software Aplicada. O objetivo levar ao mercado brasileiro COPPE/UFRJ. Colaborador da Engenharia de Software Magazine.
de desenvolvimento de software conceitos e prticas asso-
ciadas ao uso da engenharia de software. As principais re-
as de conhecimento abordadas sero (no esto limitadas
a estas): Engenharia de Requisitos; Anlise de Sistemas;
Modelagem de Software; Metodologias de Desenvolvimento
de Software; Orientao a Objetos; UML Unified Modeling
Marco Antnio Pereira Arajo
(maraujo@devmedia.com.br)
Language; Processos de Desenvolvimento Software; Verifica-
Doutorando e Mestre em Engenharia de Sistemas e Computao pela
o, Validao e Teste; Projeto de Sistemas; Programao;
COPPE/UFRJ Linha de Pesquisa em Engenharia de Software, Especialista
Manuteno de Sistemas; Planejamento e Gerncia de Proje- em Mtodos Estatsticos Computacionais e Bacharel em Matemtica com
to; Qualidade de Software; Mtricas de Software; Ferramen- Habilitao em Informtica pela UFJF, Professor dos Cursos de Bacharelado
tas CASE; Modelos de Maturidade; Arquiteturas de Software; em Sistemas de Informao do Centro de Ensino Superior de Juiz de Fora
Componentes de Software; Padres de Projeto; Usabilidade; e da Faculdade Metodista Granbery, Analista de Sistemas da Prefeitura de
Refatorao de Cdigo. Juiz de Fora. editor da Engenharia de Software Magazine.
Aliada revista, ser lanado o Portal da Engenharia de
Software Magazine cujo objetivo complementar os assun-
tos abordados na revista atravs da publicao de artigos e
vdeo aulas.
O objetivo e principal motivador desta iniciativa termos no
Eduardo Oliveira Spnola
(eduspinola@gmail.com)
cenrio Nacional uma base de conhecimento em Engenharia
Editor das revistas Engenharia de Software Magazine, SQL Magazine,
de Software Aplicada. Vrios sero os beneficiados, desde
WebMobile. bacharel em Cincias da Computao pela Universidade
empresas e profissionais da rea de software at estudan-
Salvador (UNIFACS) onde atualmente cursa o mestrado em Sistemas e
tes em nvel de graduao e ps-graduao. Computao na linha de Engenharia de Software, sendo membro do GESA
Esta primeira edio traz nove artigos escritos por profis- (Grupo de Engenharia de Software e Aplicaes).
sionais altamente qualificados no mercado e nos centros de
pesquisa:
Cincia - Conjunto organizado de conheci- tes das Belas Artes, e valorizam critrios tosos, e, em certos casos, at riscos vida
mentos relativos a um determinado objeto, es- estticos na criao de seus programas. humana; muitas vezes empreendimentos
pecialmente os obtidos mediante a observao, a Isso pode ter conseqncias boas e ruins, de software so afetados por um contexto
experincia dos fatos e um mtodo prprio. do ponto de vista de gerar valor. Por um econmico, poltico ou social.
Engenharia - Arte de aplicar conhecimen- lado, a busca da elegncia pode levar
tos cientficos e empricos e certas habilitaes economia e simplicidade de formas, Produtos e Ciclos de Vida
especficas criao de estruturas, dispositi- fazendo com que resultados de melhor A ntima relao entre a Engenharia de
vos e processos que se utilizam para converter qualidade sejam obtidos de maneira mais Software e a noo de valor significa que
recursos naturais em formas adequadas ao produtiva. E, principalmente, levando essa profisso trata o software como pro-
atendimento das necessidades humanas. a escrever programas que possam ser duto. Esto fora do escopo da Engenharia
mais facilmente reutilizados, mantidos e de Software programas que so feitos
V-se que, pelas definies acima, a expandidos. Por outro lado, a auto-satisfa- com objetivo exclusivamente ldico: a
Cincia focaliza acumulao do conheci- o do programador pode ter como preo diverso do programador. Esto fora de
mento atravs do mtodo cientfico, com
base em experimentos e observaes. J
a Engenharia aplica esses conhecimen-
tos ao atendimento das necessidades A ntima relao entre a Engenharia de Software e a noo
humanas. Embora o conhecimento seja
certamente uma necessidade humana, de valor significa que essa profisso trata o software como
trata-se de uma entre vrias outras,
sejam necessidades materiais, como produto.
alimentao, moradia, segurana, ou
imateriais, como afeio ou auto-estima.
A tudo aquilo que satisfaz a necessidades,
atribui-se um valor. A Engenharia est, os interesses de quem est pagando pelo seu escopo tambm pequenos programas
portanto, ligada noo de valor, e a En- trabalho dele, ou de quem o usar. Seja, descartveis, feitos por algum apenas
genharia de Software busca gerar valor por exemplo, produzindo programas que para resolver um problema dessa pessoa,
com o processamento de informao. A ningum entende, seno o prprio autor e que no sero utilizados por outros.
noo de valor tem muitas conseqn- (e, depois de certo tempo, nem ele mesmo). Mas, se um desses programas interessar
cias prticas importantes, e, de fato, a Seja, como outro exemplo, introduzindo a outras pessoas, e assim passar a ter va-
teoria conhecida como Engenharia de funes que o autor achou interessantes, lor, aparecero demandas para melhorar
Software Baseada em Valor representa mas no so realmente necessrias, nem suas qualidades, aumentar suas funes,
uma importante escola de pensamento foram solicitadas. prolongar sua vida. E aparecer quem
dentro da rea. E muito prxima de Arte est a esteja disposto a investir nisso, com a
palavra Artesanato, que lembra pro- expectativa de ganhar dinheiro. Nesse
Arte, Tcnica, Artesanato, Indstria? duo caseira, em pequena escala, sem momento, o programa entrou no escopo
Outros termos constantes da definio a utilizao de mtodos industriais, que da Engenharia de Software e se tornou um
de Engenharia podem ser explorados so caracterizados pela padronizao e produto. Muitos dos produtos de software
de vrias formas, com conseqncias pela repetio. E, realmente, parece mais mais usados seguiram esse caminho.
interessantes. Por exemplo, usada a difcil aplicar esses mtodos industriais Todo produto tem usurios: aqueles que
palavra Arte, que o mesmo dicionrio na confeco de software, do que nos efetivamente usam o produto. Alguns
define como a capacidade que tem o ramos da engenharia do mundo material. produtos so feitos por encomenda de um
homem de pr em prtica uma idia, Nestes, as leis fsicas impem limites cliente: aquele que pagar por sua produ-
valendo-se da faculdade de dominar a claramente visveis ao que pode ser feito. o. Outros, chamados de produtos de
matria, ou a utilizao de tal capa- Na Engenharia de Software, a criativida- prateleira, so vendidos no mercado aber-
cidade, com vistas a um resultado que de no limitada por leis fsicas, e sim to, a quem se interessar. Neste caso, quem
pode ser obtido por meios diferentes. pela capacidade humana de entender e faz o papel do cliente quem define que
Na Engenharia de Software, a matria dominar a complexidade. recursos e funes se esperam do produto;
dominada pelas faculdades humanas Mas no se pode escapar do fato de que a talvez um departamento de vendas, ou de
consiste em mquinas de processamento Engenharia de Software tem que resolver marketing, ou de definio de produtos de
da informao, devidamente configura- muitos problemas de ordem industrial. uma organizao, ou at, para produtos
das e programadas. Nesse sentido, os Raramente possvel construir software menores, os prprios desenvolvedores, co-
conceitos de Arte e Tcnica so bem profissional sem envolver equipes, s ve- locando o chapu de investidores de risco.
prximos; alis, a palavra grega techn zes de dezenas ou at centenas de pessoas; E existem todos os casos intermedirios,
significa, exatamente, Arte. raramente possvel trabalhar na rea em que um produto parcialmente pronto
O termo Arte abre outras discusses. sem a presso de prazos e oramentos completado, adaptado ou incrementado,
No poucos programadores se conside- apertados; freqentemente defeitos de por encomenda de um cliente.
ram como artistas, no sentido de pratican- software podem acarretar prejuzos vul- Como todo produto industrial, o produ-
a ser executado pela equipe do projeto, na Engenharia de Software o CMMI Projeto - Conjunto gerido de recursos
para atingir os objetivos do projeto e (Capability Maturity Model Integration), que inter-relacionados, que entrega um ou mais
criar as entregas necessrias. Estruturas foi formulado pelo Software Engineering produtos a um cliente ou usurio, com incio
analticas de projeto podem ser apresen- Institute da Carnegie-Mellon University. O definido e que, tipicamente, opera conforme
tadas de muitas maneiras. Diagramas de CMMI foi encomendado e patrocinado um plano.
atividade so uma das representaes pelo Departamento de Defesa ameri- Estrutura analtica do projeto - Um ar-
mais usadas atualmente. Outro tipo cano, popularmente conhecido como ranjo dos elementos do trabalho e dos relaciona-
de representao usual fornecida por Pentgono, que o utiliza para avaliao mentos deles entre si e com o produto final.
planilhas e cronogramas, como aqueles da capacidade de seus fornecedores de
que so produzidos pela ferramenta Mi- software. Sendo o Pentgono provavel- Ao contrrio do PMBOK, o CMMI no
crosoft Project (Figura 2). mente a maior organizao compradora se limita aos conhecimentos sobre gesto
de software do mundo, o CMMI tem de projetos. Cobre tambm reas tcni-
Modelos de Referncia e Fatores de grande aceitao da indstria americana cas, e focaliza principalmente a aplicao
Produo de software, e considervel influncia no dos processos ao desenvolvimento de
O PMBOK um exemplo de modelo de resto do mundo. A rigor, suas prticas no produtos. Um processo, segundo o IEEE,
referncia: uma estrutura de conheci- so restritas indstria de software, po- uma seqncia de passos executados
mento que organiza conceitos, prticas dendo ser aplicadas ao desenvolvimento com um determinado objetivo; segundo
e padres de uma rea. No caso do de outros tipos de produtos. o PMBOK, um conjunto de aes e
PMBOK, a rea focalizada a gesto de Os conceitos do CMMI tm razes em atividades inter-relacionadas, realizadas
projetos de qualquer natureza, cobrindo comum com o PMBOK, como se pode para obter um conjunto especificado de
assuntos como integrao, escopo, tempo, observar pela similaridade das definies produtos, resultados ou servios.
custos, qualidade, recursos humanos, que adota: Um projeto representa a execuo de
comunicaes, riscos e aquisies. Produto - Resultado que se pretende entre- um processo, e um processo uma receita
Outro modelo de referncia importante gar a um cliente ou usurio. que seguida durante a realizao um
erros e, por isso, podem at se tornarem seu investimento est tendo o retorno
Treinamento e Consultoria
em Engenharia de Software
kalisoftware.com | info@kalisoftware.com
Melhorando Processos Atravs da Anlise de
Risco e Conformidade
U
m dos fatores importantes para ISO/IEC 15504 e 12207 definem um con-
a construo de um software junto de boas prticas e caractersticas
de qualidade o processo de que devem estar presentes em um pro-
desenvolvimento utilizado e como este cesso para que este possa ser gerenciado
implantado na organizao. A inexistn- e resulte na entrega de produtos de qua-
cia ou a no utilizao de processos bem lidade. Entretanto, como tm o objetivo
definidos e de boas prticas de desen- de serem aplicveis a quase todo tipo de
volvimento, mesmo que informais, faz organizao, estes modelos ou normas
Rafael Espinha com que o desenvolvimento de software muitas vezes no definem como estas
rafael.espinha@primeup.com.br seja realizado de forma ad-hoc, ficando boas prticas e caractersticas devem ser
Engenheiro de Computao e Mestre em altamente dependente da experincia e implementadas e implantadas. Uma das
Engenharia de Software pela PUC-Rio. Foi
do conhecimento das pessoas envolvidas. maiores dificuldades de organizaes
pesquisador do Laboratrio de Engenharia a
de Software da PUC-Rio e atualmente con- Este cenrio resulta na realizao de pro- que iniciam um programa de melhoria
sultor e diretor da PrimeUp, onde desenvolve jetos cujos resultados so imprevisveis, de processos enfrentam a dificuldade
projetos na rea de melhoria de processos e onde cada um realiza as suas atividades de adaptar este conjunto de boas prticas
qualidade de software. Possui cursos e certifi- da forma que lhe convm, e dificulta a para a sua realidade, identificando quais
caes em CMMI e MPS.BR.
reutilizao de boas prticas e de lies reas so mais relevantes e devem ser
aprendidas. abordadas com maior urgncia. Cada or-
Joo Sousa
joaomss@primeup.com.br Com a crescente demanda por qualida- ganizao possui polticas, crenas e uma
Bacharel em Informtica pela UERJ e ps- de dos produtos de software, a adoo cultura especfica, que deve ser levada em
graduado pela UFRJ. Possui mais de 15 anos de modelos de maturidade, normas de conta para que as melhorias sejam bem
de experincia no desenvolvimento de sis- qualidade e guias de boas prticas na aceitas e realmente contribuam com um
temas e melhoria de processos. Atualmente
definio de processos tem se tornado desenvolvimento mais eficiente.
consultor da PrimeUp, onde desenvolve
projetos na rea de melhoria de processos e cada vez mais freqente. Modelos como Para orientar a necessidade de adapta-
qualidade de software. CMMI-DEV e MPS.BR e normas como a o apresentada acima, utilizamos o con-
ceito de risco associado no utilizao tunidades de melhoria. Em geral, nesta A prxima seo apresenta alguns
das boas prticas de desenvolvimento fase realizado um estudo no qual um conceitos bsicos sobre riscos e como
de software nos projetos e processos da cenrio esperado definido e o cenrio este conceito utilizado neste domnio.
organizao. Consideramos tambm que atual avaliado segundo algum critrio Em seguida a estratgia e a ferramenta
a qualidade do produto (software) est de qualidade (Gap Analysis). O cenrio que compem a abordagem sero apre-
diretamente relacionada qualidade dos esperado pode ser definido a partir de um sentadas e um exemplo da sua utilizao
processos utilizados na sua produo e ou mais modelos ou normas de referncia, ser discutido.
ao conhecimento tcnico que os usurios como, CMMI-DEV 1.2 ou ISO 9001:2000.
deste processo tm sobre as prticas de- Dessa forma, obtm-se a diferena entre Anlise de Risco
finidas (institucionalizao do processo). o que se espera dos processos da organi- Risco a exposio chance de perdas
Partindo-se destas premissas pode-se zao e onde eles realmente esto. A partir ou danos. Embora exista tambm uma
concluir que qualquer risco qualidade e da, elaboram-se planos de ao para que chance de alguma coisa sair melhor do
institucionalizao do processo se refle- esta distncia seja diminuda ou elimina- que o esperado, o risco geralmente cos-
te em riscos na qualidade do produto que da, a partir da priorizao e seleo dos tuma ser associado a possveis perdas ou
ser entregue e, consequentemente, em planos de ao que sero implantados danos. O conceito de risco resulta da incer-
riscos para a organizao. Sendo assim, (fase de Estabelecimento). teza quanto a eventos futuros e parte de
aes de gerncia de risco nos processos
podem contribuir diretamente com a
garantia da qualidade do produto final
e fornecem dados que permitem identi- Por mais controlada e precisa que seja a execuo de uma
ficar quais aes devem ser tomadas com
maior urgncia. atividade de desenvolvimento, sempre existe o risco, mes-
Neste artigo apresentamos uma abor-
dagem de anlise de processos na qual mo que muito remoto, de algo dar errado.
identificado de forma customizada tanto
o nvel de conformidade (quantidade de
recomendaes do modelo de referncia A abordagem que apresentaremos todas as atividades de desenvolvimento.
implementadas nos processos da organi- facilita a realizao das fases de Diag- Um processo de desenvolvimento bem
zao) quanto o nvel de risco (quantidade nstico e Estabelecimento de um ciclo de definido e institucionalizado visa reduzir
de riscos presentes no processo de desen- melhoria contnua, identificando clara- a chance de ocorrncia de ameaas (perdas
volvimento devido s recomendaes no mente os riscos associados aos processos ou danos). Toda oportunidade de sucesso
implementadas) em cada rea de processo. definidos (Diagnstico) e fornecendo um sempre carrega consigo uma possibilidade
Dessa maneira, uma anlise dos processos critrio de priorizao destes riscos (Es- de falha, cabendo a cada empresa avaliar
da organizao fornece duas classes de tabelecimento). Para isso, so utilizadas a relao risco versus retorno e determinar
dados para a tomada de deciso e dire- uma estratgia de avaliao e atividades se estar sujeito a esta perda aceitvel,
cionamento de recursos, indicando o que de avaliao e melhoria de processos se este evento muito grave, ou ainda
deve ser feito para melhorar o processo de desenvolvimento de software. A se o procedimento para a mitigao no
(conformidade) e quais aes devem ser avaliao verifica tanto a dimenso de oferece um retorno satisfatrio.
tomadas primeiro (risco). conformidade entre o processo e modelos Por mais controlada e precisa que seja a
Uma das formas mais indicadas para a de maturidade ou normas de qualidade, execuo de uma atividade de desenvol-
definio e implantao de processos de quanto dimenso dos riscos que a no vimento, sempre existe o risco, mesmo
maneira eficiente a utilizao de um utilizao das boas prticas definidas que muito remoto, de algo dar errado.
ciclo de melhoria contnua. Esta forma nestas referncias oferecem qualidade Este fato decorre do grande nmero de
pode ser comparada ao desenvolvimento do produto desenvolvido pela organiza- variveis que podem influenciar no resul-
iterativo de um sistema, onde o processo o e aos seus objetivos de negcio. Esta tado final e da sua natureza muitas vezes
definido e implantado na organizao em ferramenta tambm indica como estes imprevisvel. A partir desse cenrio,
fases direcionadas pelas necessidades e pontos podem ser solucionados de forma torna-se necessrio aprender a conviver
caractersticas da organizao. O modelo que a organizao obtenha uma maior com riscos, minimizando suas possveis
IDEAL, desenvolvido pelo Software Engi- qualidade ou resultados a partir deste conseqncias negativas.
neering Institute (SEI), ilustra a utilizao ciclo. O diferencial desta abordagem a As principais atividades da disciplina
deste conceito. A implantao deste ciclo utilizao da anlise de risco como um de gerncia de riscos so:
de melhoria faz com que os processos de instrumento de priorizao das aes que Identificao corresponde identifi-
uma organizao sejam constantemente devem ser tomadas pelas empresas para cao dos riscos inerentes a uma etapa do
avaliados e melhorados. mitigar (reduzir as chances de ocorrn- desenvolvimento (fase, processo, itera-
No modelo IDEAL destacam-se duas cia) os riscos identificados durante a fase o). Isto feito atravs do levantamento
fases: Diagnstico e Estabelecimento. A de diagnstico fornecendo um critrio das ameaas presentes e do impacto que
fase de Diagnstico consiste em avaliar o concreto para definio do escopo de podem provocar caso se realizem.
ambiente produtivo e identificar as opor- cada ciclo de melhoria. Anlise corresponde reflexo so-
A grande maioria realiza inspees e de quando a avaliao foi realizada, a capacidade esperada e a avaliada, qual
anlises rigorosas, que abrangem todo o tornando obsoletos os dados relativos s deve receber os recursos?). A utilizao
modelo de referncia e geram relatrios reas de processos e as oportunidades de uma anlise de risco oferece um cri-
com uma grande quantidade de informa- de melhoria que no foram abordadas. trio de desempate ou uma opo para a
es sobre diversas reas da engenharia A utilizao de uma estratgia em duas priorizao de investimentos.
de software mas, na maioria dos casos, etapas permite identificar, atravs de
outra grande quantidade de informaes uma anlise menos elaborada, as reas Ferramenta de apoio avaliao
desperdiada. Uma avaliao indica mais relevantes e realizar uma anlise Para auxiliar a realizao da avalia-
o estado atual da organizao e aponta mais elaborada apenas nestas reas. o dos processos de uma organizao
as oportunidades de melhoria na im- Finalmente, o quarto princpio tem utilizamos uma ferramenta de apoio
plementao das diretivas do modelo como objetivo oferecer dados de um n- execuo de avaliaes.
de maturidade ou norma de qualidade vel de abstrao menos granular para a A metodologia de anlise de risco
utilizada como referncia. Entretanto, tomada de deciso. Embora a utilizao implementada pela ferramenta se baseia
devido a restries de oramento e ao da capacidade de processo e do nvel de na avaliao de caractersticas de ativos
impacto que elas representam no am- maturidade seja o parmetro mais utili- da organizao, que podem representar
biente produtivo, apenas uma pequena zado no direcionamento de recursos na pessoas da organizao, processos uti-
parte destas recomendaes pode ser rea de desenvolvimento de software, lizados, tecnologias e caractersticas do
implementada na prxima iterao do estes conceitos so um tanto abstratos ambiente de desenvolvimento. Cada ativo
programa de melhoria. Aps a implemen- e em muitos casos dificultam esta ativi- mapeado em componentes de negcio
tao da primeira iterao de melhoria, o dade (se vrios processos apresentam a (para o contexto de desenvolvimento de
estado da organizao j no o mesmo mesma capacidade e o mesmo gap entre software foram utilizados objetivos do
Controle Processo - CMMI Gerncia de Configurao Prtica 3.1 - 2 - As verses anteriores de um item de configurao devem ser passveis de recuperao.
Uma verso anterior de um item de configurao deve ser recuperada caso uma modificao no seja corretamente implementada, caso os arquivos atuais (na nova configurao
Justificativa do software) estejam corrompidos, caso seja efetuada uma juno (merge) incorretamente entre um ramo (linha temporria de desenvolvimento) e a linha principal de
desenvolvimento. Nestas situaes, pode ser apropriado restaurar uma verso anterior para que esta se torne a atual.
Probabilidade 4 Severidade 3
Std 1042 - IEEE Guide to Software Configuration Management, Institute of Electrical and Electronics Engineers, 1987.
ISO/IEC 12207 - Information technology - Software life cycle processes, International Organization for Standardization, 1995.
ISO/IEC 15504 - Information technology - Process Assessment, International Organization for Standardization, 2004.
Referncias
CMMI-Dev: rea de Processo: Gerncia de Configurao
Bibliografia de apoio:
H. R. Berlack, Software Configuration Management. New York: John Wiley & Sons, 1992.
Baixa manutenibilidade
Ameaas
Perda de controle de solicitaes de mudana
mentao de caractersticas espalhadas de um processo padro para a rea de ganizao, das pessoas, dos fornecedores
em vrios checklists. processo de definida em algum modelo ou do projeto ao qual ele pertence. Sendo
ou norma de referncia, como Gerncia assim, chegou-se a seguinte taxonomia
A Tabela 1 apresenta um exemplo de de Configurao e Soluo Tcnica do para os ativos:
controle de uma prtica de gerncia de CMMI, ou grupo de reas de processo, Processos representam fluxos de tra-
configurao. que ser utilizado como base para a balho, reas de processo ou disciplinas da
A avaliao consiste em responder aos elaborao das recomendaes de im- organizao. Cada checklists associado
checklists associados aos ativos e sele- plementao de controles. Esta atividade a este tipo de ativo possui o escopo de
cionados na configurao do projeto de possui tarefas de elaborao e reviso uma rea de processo do modelo de
avaliao. Estes podem ser respondidos de contedo e aderncia aos modelos ou maturidade ou norma de qualidade. A
diretamente ou atravs de questionrios normas de qualidade utilizadas como utilizao destes ativos define uma di-
enviados via WEB, onde o contedo dos referncia. Em seguida, atividades de menso da avaliao onde os processos
controles pode ser interpretado para um gerao e reviso de arquitetura dos che- so o principal fator para o alcance dos
domnio especfico, por exemplo, para cklists so executadas de forma iterativa objetivos da organizao e, consequen-
os diversos papis de uma organizao. e concorrente, at que um produto com temente, a principal fonte de evidncias
A utilizao dos questionrios permite
um ganho de escala e de cobertura da
avaliao, ao mesmo tempo em que di-
minui o impacto da avaliao e aumenta
A arquitetura do checklist consiste da identificao dos
a aceitao das melhorias no processo de
desenvolvimento uma vez que todos se
controles que sero desenvolvidos e dos questionrios que
sentem parte da avaliao e podem con-
tribuir com comentrios e sugestes.
sero utilizados como coletores automticos de dados.
Aps a coleta dos dados, gerado um
conjunto de relatrios contendo tabelas e
grficos que indicam o estado da imple- qualidade assegurada seja desenvolvido. da implementao do modelo ou norma
mentao das boas prticas e os riscos A arquitetura do checklist consiste da de referncia.
presentes na organizao e fornecem identificao dos controles que sero Pessoa representa os atores da orga-
dados para a tomada de deciso (o que e desenvolvidos e dos questionrios que nizao. Os checklists associados a este
como deve ser feito). Cada controle no sero utilizados como coletores autom- tipo de ativo verificam as diretivas da
implementado ou implementado parcial- ticos de dados. norma relativas a um papel da organi-
mente, contribui com um ndice de risco Tendo um conjunto revisado dos contro- zao (desenvolvedor, gerente, analista
(PSR) que obtido pela multiplicao da les que devem ser implementados e um de requisitos, etc.) que assumido pela
relevncia do ativo avaliado (R), da pro- questionrio que interpreta e responde pessoa que referenciada pelo ativo. A
babilidade da concretizao das ameaas estes controles do checklist atravs de utilizao de ativos do tipo Pessoa defi-
possveis (P) e da severidade desta con- uma lgica bem definida para as suas ne uma dimenso da avaliao onde as
cretizao (S) . Alm do PSR, os seguintes perguntas, inicia-se uma nova etapa de pessoas e os papis que elas executam
indicadores so utilizados: implementao e reviso dos controles, so o principal fator para o alcance dos
onde o contedo dos controles iden- objetivos da organizao e, consequen-
ndice de PSR controles (elemento) tificados elaborado e o questionrio temente, a principal fonte de evidncias
Segurana = implementados
PSR (Total)
desenvolvido refinado. Finalmente, os da implementao do modelo ou norma
checklists so homologados e adiciona- de referncia.
dos ferramenta. Ambiente representam o ambiente
ndice de
Num.Controles Im plementados
Tendo um guia para a elaborao dos organizacional, caracterizado pelas
Conformidade = Num.ControlesTotal checklists, o segundo passo a identifica- acomodaes, aspectos inter-pessoais,
o dos checklists que seriam utilizados poltica motivacional e outros fatores
A partir destes ndices, pode-se gerar para a realizao das avaliaes. Como que afetam indiretamente a execuo dos
um grande nmero de interpretaes, os checklists so associados aos ativos da processos. Os checklists associados a este
atravs da filtragem e agrupamento de organizao, atravs dos componentes, tipo de ativo verificam as caractersticas
dados das reas de processo, ativos, esta atividade foi realizada utilizando gerais da organizao e como ela contri-
ameaas, departamentos ou objetivos como parmetro os tipos de ativos. bui ou no com o alcance dos objetivos
de negcio. A ferramenta define quatro tipos de da organizao.
ativo para a realizao das avaliaes: Tecnologia representa a estrutura
Utilizando a Abordagem Pessoa, Processo, Ambiente e Tec- tecnolgica da organizao, definida por
Para utilizao desta abordagem em nologia. Para o domnio de processos de suas mquinas e ferramentas. Os che-
uma avaliao, utilizamos um conjunto desenvolvimento, definiu-se que cada cklists associados a este tipo de ativo ve-
de atividades. ativo funciona como uma dimenso de rificam caractersticas da infra-estrutura
A primeira atividade consiste na criao coleta de dados sobre os processos da or- referenciada pelo ativo, como segurana
foi totalmente atendido, este deve ser os controles parcialmente implementados de desenvolvedor, portanto o peso das
preenchido como No implementado. contribuiro com menos risco do que os reas tcnicas do modelo ser maior que
Utilizando a premissa de que um controle controles do mesmo tipo classificados o peso das reas de gesto ou das reas
parcialmente implementado possui uma como no implementados. organizacionais. Alm disso, nesta etapa,
probabilidade menor de causar danos do os objetivos do negcio da organizao
que um controle no implementado, foi Utilizando a abordagem no foram identificados e mapeados nos
determinado que, para cada nvel de im- Para demonstrar a aplicabilidade da ativos de software.
plementao atingido pelo controle, a sua abordagem proposta, foram realizados Abaixo so apresentados os resultados
probabilidade ser diminuda em uma vrios estudos de caso, nos quais o da avaliao:
unidade, at chegar ao valor mnimo 1. processo utilizado por equipes de desen- Conforme apresentado na Tabela 3 e
Para exemplificar a abordagem, consi- volvimento de software de organizaes na Figura 3, as reas de Planejamento
dere um controle cuja probabilidade seja distintas foi avaliado. A seguir, apre- de Projetos, Soluo Tcnica e Defini-
quatro. Em uma avaliao que utiliza sentado um resumo de uma das avalia- o do Processo Organizacional tm o
o modelo CMMI como referncia, um es realizadas onde se realizou apenas maior ndice de Segurana indicando que
controle classificado como parcialmente a etapa de Abrangncia. Para preservar a maior parte das prticas destas reas
implementado ser preenchido como No a confidencialidade, as informaes esto implementadas. Ao contrrio, as
Implementado e a sua probabilidade ser apresentadas foram descaracterizadas reas de Treinamento Organizacional,
alterada para trs. O resultado desta abor- (ver Tabela 2). Gerncia de Requisitos, Integrao
dagem que, ao final da anlise de risco, A avaliao considerou somente o perfil do Produto e Gerncia de Configura-
Empresa ABC
Objetivos: Avaliar o processo utilizado no desenvolvimento dos softwares da organizao utilizando o modelo CMMI DEV 1.2 como referncia e identificar oportunidades de melhoria nas reas de processo
de maior impacto no desenvolvimento dos softwares.
Fase de Abrangncia
Projetos de desenvolvimento de - 9 Desenvolvedores do Setor 1 reas de nveis 2 e 3 do CMMI DEV 1.2, exceto : Garantia da Qualidade, Gerencia de Fornecedores,
16/4
sistemas internos da organizao - 9 Desenvolvedores do Setor 2 Gerncia de Risco, Gerenciamento Integrado e Anlise de Decises e Resolues
Planejamento de Projetos
Soluo Tcnica
Definio do Processo Organizacional
Medio e Anlise
Monitoramento e Controle de Projetos
Avaliao e Melhoria do Processo
Segurana
Validao
Conformidade
Desenvolvimento de Requisitos
Verificao
Gerncia de Configurao
Integrao do Produto
Gerncia de Requisitos
Treinamento Organizacional
0 20 40 60 80 100
%
Figura 3. Resultados da avaliao em Abrangncia Grfico de ndices de conformidade e segurana para cada rea de Processo (Ordenao decrescente
pelas reas de maior ndice de Segurana)
Gerncia de Configurao
Verificao
Integrao do Produto
Desenvolvimento de Requisitos
Gerncia de Requisitos
Soluo Tcnica
Monitoramento e Controle de Projetos
Validao
Treinamento Organizacional
Medio e Anlise
Planejamento de Projetos
Avaliao e Melhoria do Processo
Definio do Processo Organizacional
Figura 4. Resultados da avaliao em Abrangncia Grfico de PSR por rea de Processo (Ordenao decrescente pelas reas de maior PSR)
Gerncia de Configurao
Soluo Tcnica
Integrao do Produto
Verificao
Desenvolvimento de Requisitos
Gerncia de Requisitos
Monitoramento e Controle de Projetos
Validao
Treinamento Organizacional
Medio e Anlise
Avaliao e Melhoria do Processo
Planejamento de Projetos
Definio do Processo Organizacional
Figura 5. Resultados da avaliao em Abrangncia Grfico de PSR do Setor 1 por Processo (Ordenao decrescente pelas reas de maior PSR)
Verificao
Desenvolvimento de Requisitos
Gerncia de Configurao
Integrao do Produto
Gerncia de Requisitos
Monitoramento e Controle de Projetos
Validao
Soluo Tcnica
Treinamento Organizacional
Planejamento de Projetos
Avaliao e Melhoria do Processo
Medio e Anlise
Definio do Processo Organizacional
Figura 6. Resultados da avaliao em Abrangncia Grfico de PSR do Setor 2 por Processo (Ordenao decrescente pelas reas de maior PSR)
Setor 1 Setor 2
Q
uando os modelos CMMI e RUP zando uma perda contnua de agilidade
foram popularizados, as empre- para seus clientes e o mercado.
sas convenceram-se de que, para O movimento gil foi o ressurgimento
gerenciar a crescente complexidade do de um ponto de vista que foi esquecido
setor de TI, seria fundamental ampliar o pela TI, quando abraamos to fortemen-
nvel do controle operacional sobre todos te os processos e controles operacionais
os projetos existentes. e negligenciamos a agilidade de nossos
Apesar de muitas empresas seguirem projetos.
risca a cartilha do CMMI, formalizan- O modelo gil orienta empresas, pro-
do seus processos, padronizando seus fissionais e metodologistas a pensarem
artefatos e reduzindo as flutuaes de na TI como uma organizao veloz,
qualidade e incertezas dos projetos, onde o tempo de resposta no pode ser
muitas delas no obtiveram os resulta- sacrificado. Quanto mais rpida uma
dos financeiros desejados. Suas receitas empresa, mais entregas so realizadas
Alexandre Bartie financeiras e lucros operacionais foram em um menor espao de tempo, gerando
alexandre_bartie@hotmail.com reduzidos em funo do aumento dos mais oportunidades de faturamento, o
Atua h 17 anos no gerenciamento de pro- custos e a crescente dilatao dos prazos que reverte imediatamente em maior
cessos voltados Qualidade e Engenharia de
de entrega. rentabilidade nos negcios.
Software. Ps-Graduado em Capacitao Ge-
rencial pela FEA-USP e em Gesto Empresarial Infelizmente, as empresas e profissio- Porm, a nfase na agilidade tambm
pelo Instituto Trevisan. Bacharel em Admi- nais deram apenas nfase ao controle possui suas restries - ser rpido leva
nistrao de Empresas pela Fundao Santo operacional, implementando cada vez inevitavelmente a um novo limite opera-
Andr. Diretor de Inovao da ALATS (Associa- mais artefatos, controles e procedimen- cional. Somente com controles gerenciais
o Latino-Americana de Teste de Software)
tos internos. Desta forma, os processos bem implementados, poderemos ultra-
e Engenheiro de Software responsvel pelo
Framework X-Zone. Autor do Livro Garantia da tornaram-se mais pesados, provocando passar estes limites sem provocarmos
Qualidade de Software. uma grande lentido operacional, sinali- um colapso nos servios da TI.
Desta forma, o grande desafio das ncia do perodo delicado que muitas Ressalva Importante
organizaes do futuro conseguir con- organizaes esto passando. Nunca o Antes de prosseguirmos com o artigo,
ciliar agilidade e controle operacional momento foi to favorvel a investimen- fundamental compreender que as abor-
simultaneamente, possibilitando a rea tos de TI, porm o excesso de alternativas dagens citadas esto sendo apresentadas
de TI operar com o mximo de qualidade esto gerando um alto nvel de incertezas de forma resumida, no explorando
e produtividade. em nossos executivos, o que provoca uma todos os aspectos, contextos e formatos
O objetivo deste artigo justamente paralisao nestes investimentos. existentes.
apresentar um modelo que combine Desta forma, elaborei um modelo de O mtodo de classificao emprega-
agilidade e controle operacional numa gesto de TI que respeitasse as aborda- do foi pelo critrio de prioridades que
nica abordagem, viabilizando o que gens em andamento, chamado aqui de cada abordagem possui. Modelos geis
chamo de Organizaes TI de Alto Modelo Controlado, e permitisse uma priorizam a agilidade, enquanto que mo-
Desempenho.
C
om o propsito de auxiliar os for- sendo ele estruturado, sem que perca
necedores de solues de softwa- suas caractersticas bsicas. Ele utiliza
re que utilizam como plataforma alguns princpios modernos (compo-
a internet, este artigo objetiva formalizar nentizao, revises, etc) na rea de
idias prticas, explicando como o de- engenharia de software.
senvolvimento de sistemas Web pode Algumas caractersticas bsicas do
ser integrado ao Processo Unificado. Processo Unificado so:
Sero apresentados alguns artefatos para Direcionado por casos de uso: O in-
controlar o desenvolvimento de um Web cio do processo deve ser marcado pela
Site, alm das vantagens e os cuidados utilizao dos casos de uso, a fim de se
a tomar com a integrao de forma a definir uma linguagem entre os usurios
facilitar a entrega. Sero apresentados e o sistema, facilitando a especificao
tambm alguns pontos relacionados com dos requisitos.
a gerncia e o plano de execuo. Centrado na arquitetura: O processo
Rodrigo S. Prudente de Aquino Alm disso, explica-se como o Processo procura modelar uma arquitetura atravs
rodrigo@wpage.com.br Unificado pode ser configurado de acor- dos aspectos estticos e dinmicos de um
bacharel em Cincia da Computao pela
do com o tempo que uma empresa possui projeto, que podem ser obtidos junto a
PUC-SP e MBA em Engenharia de Software
pela USP. Foi analista de sistema na Petrobras para desenvolver um projeto voltado para um estudo direcionado pelos casos de
e trabalhou como Gerente de Tecnologia Web internet. uso mais significativos.
em uma das maiores agncias de marketing iterativo e incremental: Uma das
direto do Brasil. Escritor de artigos e pales- Processo Unificado prticas do processo dividir grandes
trante em universidades, Rodrigo S. Prudente
O Processo Unificado um processo projetos em mini-projetos. Cada mini-
de Aquino autor do livro WPage - Padro-
nizando o Desenvolvimento de Web Sites de desenvolvimento fortemente ligado projeto possui uma iterao, que quase
(www.wpage.com.br). Atualmente, trabalha orientao a objetos, porm, pode-se sempre abrange todo o fluxo de trabalho.
como Lder de Projeto no Grupo Totvs. utiliz-lo em qualquer projeto mesmo Olhando como um todo, essa iterao
resulta em um incremento para o projeto. do ambiente, a concluso do manual Anlise e Projeto: No incio desse fluxo
vlido lembrar que as iteraes so pla- do usurio, identificao e correo de de trabalho, desenvolve-se uma viso
nejadas de acordo com os casos de uso. defeitos. No final dessa fase deve-se tirar arquitetural, incluindo os artefatos
uma concluso geral do projeto, obtendo significativos para o modelo de projeto.
O Processo Unificado visa tornar clara os pontos positivos e negativos os quais O objetivo aqui compreender os casos
a necessidade de atribuies de tarefas devem ser utilizados durante a concepo de uso mais importantes, que sero
a grupos ou indivduos envolvidos di- de projetos futuros. insumos para a elaborao de alguns
retamente no desenvolvimento de um artefatos, como: um diagrama de classes,
projeto. Alm disso, deve-se definir o Em relao aos fluxos de trabalho, ou de estado, de iterao, de seqncia, de
quanto antes, quais as etapas (iteraes) e disciplinas, tem-se os seguintes escla- colaborao, etc. vlido lembrar que
os artefatos que sero envolvidos durante recimentos. no necessria a utilizao de todos os
o processo. Com essas caractersticas, Modelo do negcio: O objetivo princi- artefatos, mas apenas aqueles que sejam
conclui-se que o Processo Unificado pal desse fluxo que o fornecedor enten- relevantes a fim de que o cliente entenda
um modelo configurvel, ou seja, deve da muito bem o problema a ser resolvido, perfeitamente o que ser construdo. Com
ser ajustado de acordo com os tipos de elaborando se necessrio uma anlise de artefatos bem elaborados, a equipe de
projeto que se necessita desenvolver. risco e de viabilidade para o projeto como desenvolvimento ter grandes facilidades
A Figura 1 apresenta a relao entre as um todo. Neste momento, existe uma em realizar a implementao. No incio
fases, iteraes e os fluxos de trabalho grande interao entre o fornecedor e o deste fluxo encontra-se, caso necessrio,
dentro do Processo Unificado. cliente. A fim de que possam ser gerados prottipos de funcionalidade e de inter-
Concepo ou iniciao: Essa fase tem os casos de uso e consequentemente face, como tambm uma descrio da
como objetivo verificar a viabilidade do a extrao dos requisitos. Entender o arquitetura bsica do sistema. Durante
projeto, bem como os riscos e um dos modelo de negcio do cliente pea fun- o desenvolvimento do projeto alguns
fatores no menos importantes: definir damental antes que um requisito possa artefatos podero sofrer ajustes de acordo
os casos de uso mais crticos obtendo ser definido. com as implementaes realizadas.
as funes chave do sistema. atravs Requisitos: Nesse fluxo procura-se Implementao: No incio desse flu-
do tipo do projeto, dos casos de uso e extrair os requisitos do sistema a ser de- xo, os desenvolvedores podero bus-
consequentemente dos requisitos, que senvolvido. A grande dificuldade nesta car componentes (funes) que foram
se realizar o ajuste de quantas iteraes etapa e no desenvolvimento de software utilizados em outro sistema. Ainda
o processo ter. De acordo com os casos capturar requisitos de forma que os clien- na fase de concepo, pode-se ter um
de uso, pode-se definir tambm quais as tes possam entender claramente o que o prottipo de funcionalidade como um
etapas exigiro maior cuidado. sistema se prope a fazer. A base para isso produto final em primeira instncia. No
Elaborao: Durante essa fase, a maio- que o fornecedor entenda o domnio do decorrer deste fluxo, procura-se ter um
ria dos casos de uso so especificados e problema e consequentemente construa sistema executvel a cada iterao, alm
detalhados. A arquitetura do sistema um bom modelo de casos de uso. A ex- da implementao baseada nos artefatos
projetada utilizando artefatos que po- trao dos requisitos, atravs dos casos criados no modelo de anlise e projeto.
dem ser estticos ou dinmicos. Neste de uso, ir compor um artefato que ser O conceito de componentizao deve ser
instante so apresentados, o Baseline evoludo durante todo o projeto. sempre levado em considerao, com o
completo do projeto, os componentes
que formaro a equipe de desenvolvi-
mento, etc. No final dessa fase os envol-
vidos devem estar aptos a planejar a fase
de construo em detalhes.
Construo: A fuso de vrios artefatos
de software ocorre neste momento, pos-
sibilitando que o sistema seja implemen-
tado quase que completamente. Tem-se
uma viso geral de como o Baseline do
projeto est sendo seguido. No final dessa
fase, o sistema deve estar totalmente pre-
parado para a transio ao usurio.
Transio: O objetivo dessa fase
garantir que todos os requisitos do pro-
jeto foram atendidos e implementados
corretamente. O produto final pode ser
liberado em uma verso beta. Existem
ainda outras atividades que, de acordo
com o projeto, podem ocorrer de manei-
ra paralela, por exemplo, a preparao Figura 1. Overview do Processo Unificado
Planilha de requisitos podendo ser baixa, mdia ou alta. do sistema com as reas ou pginas de
Para elaborar um sistema Web, neces- Atendido: Representa o status do uma aplicao. Cada pgina receber um
srio um levantamento dos requisitos. requisito, indicando se o mesmo foi ou cdigo, que por sua vez ser relacionado
Neste contexto, precisa-se de um arte- no implementado no sistema. com nenhum, um ou mais requisitos.
fato para armazenar estas informaes. Comentrios: Fornece informaes Atravs deste documento bus-
Utilizaremos neste artigo uma planilha sobre o requisito, dizendo, por exemplo, ca-se um maior controle do sistema,
Excel como artefato, de forma a explicar o motivo que um determinado requisito pois se houver quaisquer modificaes
simplificadamente a organizao dos ainda no foi implementado (indicando nos requisitos o fornecedor saber
requisitos. A planilha Excel ter as carac- mais especificamente, quais so as difi- quais reas devem sofrer mudana. Este
tersticas representadas na Figura 2. culdades). tambm um artefato vivo e deve ser
Nesta planilha temos: incorporado ao fluxo de trabalho de ge-
Cdigo: Identifica unicamente um A planilha de requisitos um artefato rncia de configurao e mudana (SCM
requisito a fim de que se possa control-lo vivo no ciclo de vida do projeto e deve - Software Configured Management). A
atravs do projeto. ser incorporado rea de SCM (Software Figura 3 apresenta um exemplo de como
Descrio: Nesta coluna descreve-se Configured Management) do Processo seria uma simples representao de um
o requisito. Unificado. A expresso artefato vivo Projeto Linear, mostrando algumas reas
Categoria: Indica qual o tipo do indica que a planilha est apta a sofrer do site, com seus respectivos requisitos
requisito (ver Tabela 1). alteraes no decorrer do projeto. relacionados.
Prioridade: Indica o nvel de impor-
tncia que o requisito possui para o sis- Projeto Linear Web Content
tema em geral, podendo ser baixa, mdia Alm da planilha de requisitos, esse O Web Content um artefato de sof-
ou alta. um dos artefatos mais importantes para tware responsvel pelo armazenamento
Dificuldade: Indica o nvel de difi- o desenvolvimento de um sistema Web. de todo o contedo textual utilizado
culdade para implementar este requisito, Nele podero ser mapeados os requisitos em um site. No existe um documento
Requisitos Funcionais
Requisitos Estveis: So aqueles que derivam da atividade fim da organizao e so relativos diretamente ao domnio do sistema.
Requisitos Volteis: So requisitos que mudam ao longo do desenvolvimento ou aps o incio da operao. Dentro dele, existem:
Requisitos Mutveis: So requisitos que se alteram em razo das mudanas no ambiente no qual est operando.
Requisitos Emergentes: So requisitos que no podem ser completamente definidos quando o sistema est em desenvolvimento.
Requisitos Conseqentes: So requisitos baseados em premissas de como o sistema ser usado. Quando o sistema colocado em operao, ocorrem mudanas.
Requisitos No Funcionais
Requisitos de usabilidade
Requisitos de eficincia
Requisitos de disponibilidade
Requisitos de portabilidade
Requisitos de confiabilidade
Requisitos Organizacionais: So aqueles derivados de polticas e procedimentos organizacionais do cliente e dos desenvolvedores. Existem os seguintes tipos de requisitos organizacionais:
Requisitos de verso: definindo o produto e quais os documentos so necessrios para liberar uma verso para o usurio.
Requisitos Externos: So aqueles derivados de fatores externos ao sistema e ao seu processo de desenvolvimento.
Requisitos tnicos: assegurando que o sistema ser aceito pelos usurios e pelo pblico em geral.
Requisitos de legislao: devem ser seguidos para assegurar que o sistema vai operar de acordo com normas vigentes. Pode ser dividido em: requisito de privacidade e requisito de segurana.
Prottipo de interface
O prottipo pode ser uma parte da apli-
cao implementada, prottipo de fun-
cionalidade, ou uma proposta de layout,
prottipo de interface, feita pelo designer
e aprovada pelo cliente. Este item fornece
algumas informaes apenas sobre o
prottipo de interface. Para chegar at o
prottipo, o designer precisa utilizar o
FDD ou pelo menos uma parte dele para
Figura 3. Projeto Linear e requisitos ter noes de como ser a diviso do site.
A principal funo deste artefato forne-
cer ao cliente quais sero as cores bsicas
da aplicao, uma parte da arquitetura de conhecimento da viso de negcio do artefatos que ainda sofrero algum tipo
informao e como ficaro disponibiliza- cliente e do sistema a ser desenvolvido de alterao no decorrer do desenvolvi-
das as informaes aos usurios dentro como um todo, pode-se, por exemplo, mento do projeto.
do site. A vantagem na utilizao deste dividir as fases do projeto conforme Modelo de negcio: Neste fluxo, se o
artefato direcionar totalmente a equipe apresentado na Tabela 2. fornecedor achar necessrio, pode-se re-
de anlise e projeto, bem como a equipe importante destacar que a Tabela 2 alizar um documento indicando a anlise
de implementao. apenas um exemplo baseado na ilustra- de viabilidade e de risco do projeto. Caso
o do Processo Unificado, presente no esteja difcil para o fornecedor entender
O Processo Unificado integrado ao segundo tpico deste artigo. A quantida- o domnio do problema, deve-se elaborar
desenvolvimento Web de de tempo e iteraes que um sistema um diagrama de casos de uso do negcio,
Neste item, explica-se como configurar
o Processo Unificado de acordo com o
sistema a ser desenvolvido, obtendo uma
determinada quantidade de iteraes.
Ao ser definido o prazo de entrega, o processo comea a
Alm disso, descreve-se o esforo gasto
para construir cada artefato Web em
ser modelado medida que o Baseline construdo.
razo das fases do processo.
Configurando o Processo Unificado ter ir variar muito em razo do tipo bem como sua descrio, ficando mais
Antes de iniciar o desenvolvimento de do projeto, do nmero de profissionais fcil chegar ao domnio da soluo. Os
qualquer projeto utilizando o Processo envolvidos, do prazo de entrega, das casos de uso do negcio daro suporte
Unificado, necessrio determinar os flu- funcionalidades, etc. O tempo de experi- ao diagrama e a descrio de casos de
xos de trabalho mais utilizados, o nmero ncia da equipe de desenvolvimento um uso do sistema. Nesse fluxo, o Baseline
e o tempo de cada iterao dentro das fator importante, de forma a identificar do projeto comea a ser construdo,
fases. Para um sistema Web, normalmente e combater os pontos crticos durante a contemplando custos, prazos, cargos e
consideram-se todos os fluxos de trabalho implementao da aplicao. nmero de pessoas envolvidas. vlido
do processo, ou seja, modelo de negcios, A Tabela 3 apresenta uma aproximao destacar que s vezes, o Baseline pode ser
requisitos, anlise e projeto, implementa- da quantidade de esforo gasto em cada modificado de acordo com as iteraes
o, teste e implantao. Com o objetivo artefato de software voltado para Web, do processo. Um cliente pr-ativo em
de esclarecer melhor a configurao do relacionando-os ao Processo Unificado. resolver as dvidas do fornecedor, con-
Processo Unificado imagina-se, para este segue diminuir as chances de impactar
artigo, o desenvolvimento de um Web Site Relacionando artefatos, fases do o desenvolvimento de algumas partes
contendo um prazo de trs meses. processo e fluxos de trabalho do projeto, como tambm uma possvel
Ao ser definido o prazo de entrega, Descreve-se detalhadamente neste item, alterao no Baseline.
o processo comea a ser modelado o que deve ser feito em todos os fluxos de Requisitos: A extrao dos requisitos
medida que o Baseline construdo. trabalho, atravs do nmero de iteraes deve ser feita medida que os casos de
Considerando que o fornecedor tenha definidas na configurao do processo uso do sistema so realizados e validados.
unificado. Conclui-se que a montagem da planilha
de requisitos aumenta medida que os
Fases Tempo Iteraes Fase Concepo - 1. Iterao casos de uso so aprovados pelo cliente.
Concepo 1 semana 1 A 1 iterao ocorre praticamente depois Mesmo sem a arquitetura de informao
de toda a fase de concepo do projeto, do site, o prprio cliente, por exemplo,
Elaborao 2,5 semanas 1
tendo como referncia a Figura 1. No j pode obter informaes sobre o que
Construo 6 semanas 2 final dessa iterao, deixa-se claro quais deseja, em relao ao contedo que ser
os artefatos faro parte da gerncia de apresentado em sua aplicao.
Transio 2,5 semanas 1
configurao e mudana, ou seja, aqueles Anlise e Projeto: Este fluxo utilizar
Tabela 2. Diviso das fases do projeto at o momento, todos os requisitos cons-
trudos e aprovados dentro da planilha.
Artefatos Concepo Elaborao Construo Transio A arquitetura de informao descrita
no Projeto Linear j pode ser montada
Planilha de requisitos 30% 50% 15% 5% se baseando nos requisitos. no Projeto
Projeto Linear 20% 70% 10% 0% Linear que sero mapeados os cdigos
de cada pgina do site, a descrio da
Web Content 15% 70% 15% 0%
rea e a identificao dos requisitos. Note
FDD (Wireframes) 10% 60% 30% 0% que uma pgina do site poder estar
Prottipo de Interface 100% 0% 0% 0%
relacionada a nenhum, um ou a vrios
requisitos. Com este artefato garante-se
Tabela 3. Mensurao de esforo X fases mais tarde a rastreabilidade. A estru-
base para a quase completa formao do requisitos so extrados (rea em cinza uma nova caracterstica para o projeto e
Projeto Linear, do Web Content e conse- mais escura em relao s da Figura que os gerentes julguem a necessidade
quentemente do FDD. A Figura 1 fornece 6, indicando que mais requisitos esto de construo para melhor entender o
uma idia da quantidade de esforo sendo extrados). problema.
gasto para construir cada artefato. Como No final desta iterao, os artefatos Requisitos: Os requisitos ainda conti-
explicado anteriormente, o Web Content estaro quase que totalmente concludos. nuam sendo extrados dos casos de uso
e o Projeto Linear so documentos que Eventuais ajustes podem ocorrer na Ba- e compondo a planilha. No final dessa
possuem forte ligao com o FDD, e este seline e devem ser feitos pelo gerente do iterao, tem-se em torno de 95% dos
depende muito das informaes dos dois projeto. A RTF construda avaliando e requisitos j documentados e aprovados
primeiros artefatos, a fim de que seja cor- formalizando toda a iterao, servindo de pelo cliente. Dessa forma, o FDD, o Web
retamente construdo. Alguns artefatos aprendizado e preparando os envolvidos Content e o Projeto Linear, estaro tam-
da UML podero ser desenvolvidos nessa para a prxima fase do projeto. bm, quase completamente elaborados.
fase, com o objetivo de ajudar o cliente a Anlise e Projeto: Alguns artefatos da
entender o sistema. Fase Construo - 3 e 4 Iterao UML, escolhidos para melhor representar
Implementao: Inicia-se a juno de Neste contexto, a 3 e 4 iteraes iro as caractersticas do sistema, sero fina-
todas as funes e componentes pes- compor toda a fase de construo do pro- lizados durante essas iteraes. vlido
quisados no incio do projeto, com os jeto. Mais especificamente, a 3 iterao lembrar que, exatamente nesse momento,
artefatos desenvolvidos at o momento. indica o meio da fase de construo, en- o desenvolvedor poder necessitar de
Os desenvolvedores precisam estar aptos quanto que a 4, marca o final dessa fase. algum outro artefato da UML o qual
a entender no s os artefatos como o Eventuais ajustes nos artefatos surgiro no havia escolhido anteriormente para
FDD, Web Content e o Projeto Linear, em razo da implementao. representar alguma parte do sistema.
mas tambm os possveis diagramas da Modelo de negcio: As anlises de Normalmente, essas escolhas so feitas
UML e, principalmente os requisitos ge- viabilidade e de risco diminuem e ser- devido a alguns requisitos crticos.
rados at o instante. Deve-se ter cuidado vem agora apenas para pequenas tarefas Implementao: Os programadores de-
com padres, de forma que o cdigo seja realizadas no decorrer do projeto. Dificil- vero possuir um suporte quase completo
construdo seguindo o conceito de com- mente, durante essas iteraes, tem-se de dos artefatos Web citados anteriormente.
ponentizao, para que seja facilmente reconstruir um modelo de casos de uso A maioria dos esforos do projeto so
reutilizado mais tarde. do negcio, a no ser que o cliente solicite voltados agora para implementao e
Teste: Esse fluxo pode apresentar
alteraes no plano de teste devido ao
nmero de requisitos j extrados. Em
conjunto com a fase de implementao,
so realizados testes de mdulos, com
objetivo de verificar o que est sendo
feito. importante lembrar que estes
testes no iro validar um requisito, mas
apenas verificar se ele foi implementado
corretamente.
Implantao: De forma a verificar se o
que est sendo feito em relao codifi-
cao ir funcionar do lado do cliente, no
final dessa iterao, tem-se a implantao
do que j foi codificado at o momento.
De acordo com o resultado, algumas fun-
es podero exigir um cuidado especial
e serem modificadas. Durante esse fluxo,
podero surgir alguns requisitos no
funcionais, no encontrados durante a
anlise do sistema.
A Figura 7 mostra que o objetivo agora
no mais entregar o prottipo de inter-
face e sim, finalizar os documentos para
que a equipe de desenvolvimento possa
codificar o sistema de maneira rpida e
correta. As linhas tracejadas, com menos
espaos em relao s linhas da Figura 6,
representam que os artefatos esto quase
completos. Isso ocorre medida que os Figura 7. Overview da 2 iterao
como o armazenamento dos componentes alterao de funcionalidade envolve o senvolvimento de projetos Web, podem
desenvolvidos nos seus respectivos diret- desenvolvedor desde o incio, que ter ser usados durante a construo de um
rios. Uma boa documentao importan- uma viso de como essa alterao dever sistema baseado no Processo Unificado.
te, de forma a facilitar a recuperao dos ser implementada. Com isso, consegue- Alm disso, mostrou-se um exemplo pr-
componentes para projetos futuros. se maior controle para que outras partes tico indicando como o processo pode ser
do sistema continuem se comunicando e ajustado de acordo com o tipo e tamanho
Um requisito mudou, e agora? funcionando normalmente. de um projeto. A configurao do pro-
Uma das grandes preocupaes do ge- cesso a cada projeto mostra um acumulo
rente do projeto saber exatamente o que Concluso de conhecimento armazenado durante a
fazer quando um requisito alterado pelo Neste artigo, procurou-se mostrar como entrega de cada sistema, fazendo parte
cliente. Explica-se a seguir, o comporta- artefatos especficos, utilizados no de- de uma melhoria contnua.
mento dos artefatos quando um requisito
sofre alguma modificao. A planilha de
requisitos e o modelo de casos de uso so
os primeiros artefatos que o gerente ter
de verificar e se necessrio, fazer a alte-
rao imediata. na planilha que esto
todos os requisitos do sistema, bem como
seus respectivos cdigos indicadores. O
cdigo que indica o requisito alterado
precisa ser identificado pelo gerente, que
em seguida, deve abrir o Projeto Linear
e verificar quais as reas do site usam o
requisito modificado. Dessa maneira, ele
poder obter os cdigos de vrias reas
da aplicao. Utilizando os cdigos iden-
tificadores de cada rea do site, o gerente
deve pesquisar no Web Content, a fim
de saber quais pginas do site sofrero
alterao. Perceba que no objetivo do
gerente de projeto efetuar as alteraes,
mas identificar o impacto que as solicita-
es de alterao podem causar.
Caso o projeto sofra uma mudana no
contedo, essa identificao ser feita
facilmente. Em relao a uma mudana
de funcionalidade, esta dever impactar
tambm na alterao de outros artefatos,
como o digrama de classes, diagrama
de componentes, diagrama de seq-
ncia ou qualquer outro diagrama no
qual esteja sendo usado no projeto. A Figura 9. Overview da 5 iterao
S
oftware, de modo genrico, uma Arquitetura de software
entidade que se encontra em quase Quase cinco dcadas atrs software
constante estado de mudana. As constitua uma insignificante parte
mudanas ocorrem por necessidade de dos sistemas existentes e seu custo de
corrigir erros existentes no software desenvolvimento e manuteno eram
ou de adicionar novos recursos e fun- desprezveis. Para perceber isso, basta
cionalidades. Igualmente, os sistemas olharmos para a histria da indstria do
Antonio Mendes da Silva Filho computacionais (isto , aqueles que tm software (ver seo Links). Encontramos
antoniom.silvafilho@gmail.com software como um de seus elementos) o uso do software numa ampla variedade
Professor e consultor em rea de tecnologia tambm sofrem mudanas frequente- de aplicaes tais como sistemas de ma-
da informao e comunicao com mais de 20 mente. Essa necessidade evolutiva do nufatura, software cientfico, software
anos de experincia profissional, autor dos
sistema de software o torna no confi- embarcado, robtica e aplicaes Web,
livros Arquitetura de Software e Programando
com XML, ambos pela Editora Campus/Else- vel e predisposto a defeitos, atraso na dentre tantas. Paralelamente, observou-
vier, tem mais de 30 artigos publicados em entrega e com custos acima do estimado. se o surgimento de vrias tcnicas de
eventos nacionais e internacionais, colunista Concomitante com esses fatos, o cres- modelagem e projeto bem como de lin-
para Cincia e Tecnologia pela Revista Espao cimento em tamanho e complexidade guagens de programao. Perceba que o
Acadmico com mais de 60 artigos publicados,
dos sistemas de software exige que os cenrio existente, dcadas atrs, mudou
tendo feitos palestras em eventos nacionais e
exterior. Foi Professor Visitante da University profissionais da rea raciocinem, proje- completamente.
of Texas at Dallas e da University of Ottawa. tem, codifiquem e se comuniquem por Antigamente, os projetos de sistemas
Formado em Engenharia Eltrica pela Uni- meio de componentes de software. Como alocavam pequena parcela ao software.
versidade de Pernambuco, com Mestrado em resultado, qualquer concepo ou solu- Os componentes de hardware, por outro
Engenharia Eltrica pela Universidade Federal
o de sistema passa ento para o nvel lado, eram analisados e testados quase
da Paraba (Campina Grande), Mestrado em
Engenharia da Computao pela University of arquitetural, onde o foco recai sobre os exaustivamente, o que permitia a pro-
Waterloo e Doutor em Cincia da Computao componentes e relacionamentos entre duo rpida de grandes quantidades de
pela Univesidade Federal de Pernambuco. eles num sistema de software. subsistemas e implicava em raros erros de
projetos. Entretanto, a facilidade de mo- computao. Ou seja, projetar a arquite- arquitetura de software (caracterizada,
dificar o software, comparativamente ao tura (ou estrutura geral) do sistema emer- por exemplo, pelo estilo em camadas) e
hardware, tem servido como motivador ge como um problema novo. Questes arquitetura clssica (relativa constru-
para seu uso. Alm disso, a intensificao arquiteturais englobam organizao e o de edificaes), podemos observar
do uso do software numa larga variedade estrutura geral de controle, protocolos de que o projeto arquitetural determinante
de aplicaes o fez crescer em tamanho comunicao, sincronizao, alocao de para o sucesso do sistema.
e complexidade. Isto tornou proibitivo funcionalidade a componentes e seleo A Tabela 2 destaca aspectos da re-
analis-lo e test-lo exaustivamente, alm de alternativas de projeto. Por exemplo, presentao de projeto que captura
de impactar no custo de manuteno. nos sistemas Web, uma soluo que tem elementos caractersticos da arquite-
Um reflexo dessa situao que as tc- sido empregada faz uso de mltiplas tura enquanto que as restries esto
nicas de abstrao utilizadas at o final camadas separando componentes clien- associadas a atributos de qualidade e,
da dcada de 1980 (como decomposio te, servidores de aplicaes, servidores portanto, servem como determinantes
modular, linguagens de programao de Web e outras aplicaes (que possam ter nas decises do projeto arquitetural.
alto nvel e tipos de dados abstratos) j acesso a esse sistema). Essa estruturao Por exemplo, embora o uso de mltiplas
no so mais suficientes para lidar com em camadas objetiva facilitar a alocao camadas facilite a manuteno de um
essa necessidade. da funcionalidade aos componentes. O sistema de software, tambm contribui
Diferentemente do uso de tcnicas que uso de camadas oferece suporte flexi- para degradar o desempenho do sistema.
empregam algoritmos e estruturas de bilidade e portabilidade, o que resulta em Uma ttica tem sido reduzir o nvel de
dados e das linguagens de programao facilidade de manuteno. Outro aspecto acoplamento entre componentes para no
que implementam tais estruturas, o cres- a destacar da arquitetura em camadas comprometer o desempenho do sistema.
cimento dos sistemas de software deman- o uso de interfaces padres visando faci- Dessa forma, se adotarmos uma reduo
da notaes para conectar componentes litar reuso e manuteno. Interfaces bem no nvel de acoplamento dos compo-
(mdulos) e descrever mecanismos de definidas encapsulam componentes (com nentes, eles tero menor necessidade de
interao, alm de tcnicas para geren- funcionalidades definidas) j testados, comunicao entre si, o que resulta num
ciar configuraes e controlar verses. prtica que permite o reuso e tambm melhor desempenho.
A Tabela 1 apresenta o contexto da ar- auxilia na manuteno, j que toda e Hoje em dia, os processos de engenharia
quitetura de software. Na programao qualquer alterao necessria estaria de software requerem o projeto arquite-
estruturada, feito uso de estruturas de confinada quele componente. tural de software. Por qu?
seqncia, decises e repeties como importante poder reconhecer as
padres de controle nos programas. J Importncia da Arquitetura de estruturas comuns existentes de modo
a ocultao de informaes um recurso software que arquitetos de software (ou enge-
do paradigma orientado a objetos que Todos esses fatores compreendem o nheiros de software realizando o papel
permite ao programador, por exemplo, projeto no nvel arquitetural e esto de arquiteto de software conforme
ocultar dados tornando-os seguros de diretamente relacionados com a orga- Tabela 3) possam entender as relaes
qualquer alterao acidental. Alm disso, nizao do sistema e, portanto, afetam existentes nos sistemas em uso e utilizar
na programao orientada a objetos, da- os atributos de qualidade (tambm esse conhecimento no desenvolvimento
dos e funes podem ser encapsulados chamados de requisitos no funcionais) de novos sistemas.
numa entidade denominada objeto, o que como desempenho, portabilidade, con- O entendimento das arquiteturas per-
resulta em mais simplicidade e facilidade fiabilidade, disponibilidade, entre ou- mite aos engenheiros tomarem decises
na manuteno de programas. Por outro tros. Se fizermos uma comparao entre sobre alternativas de projeto.
lado, os estilos arquiteturais capturam o
padro de organizao dos componen-
tes de software num programa, caracte- Abordagem Foco Padres
rizando a forma na qual os componentes Programao estruturada Sistemas de pequeno porte Estruturas de controle
comunicam-se entre si.
Encapsulamento e ocultao de
Perceba que a categorizao, apresenta- Abstrao e modularizao Sistemas de mdio porte
informaes
da na Tabela 1, teve o objetivo de capturar
uma viso geral de abordagens aplicadas Componentes e conectores Sistemas de grande porte Estilos arquiteturais
a sistemas de software. Nada impede, por
Tabela 1. Contexto da arquitetura de software.
exemplo, o uso da programao estru-
turada em sistemas de grande porte ou Categorias arquiteturais Representaes de projeto Restries
da nfase de um estilo arquitetural num
sistema de pequeno porte. Entretanto, Modelos, desenhos, planos, elevaes e Padro de circulao, acstica, iluminao e
Arquitetura Clssica
essa prtica no comum. perspectivas ventilao
Note que medida que tamanho e com-
Desempenho, confiabilidade, escalonamento e
plexidade dos sistemas de software au- Arquitetura de Software Modelos para diferentes papis, mltiplas vises
manutenibilidade
mentam, o problema de projeto extrapola
as estruturas de dados e algoritmos de Tabela 2. Comparao de aspectos arquiteturais.
meio da troca de mensagens constitui tilo (isto a classe de organizao do sis- de todos os usurios que se encontram
uma forma atravs da qual os componen- tema) ter sobre atributos de qualidade. conectados (a um servidor especfico)
tes de software interagem entre si. Adicionalmente, facilita a comunicao naquele momento, enquanto que o pro-
Identificao de propriedades o do projeto, alm do reuso da arquitetura grama sort ordena essa lista de usurios
arquiteto pode analisar as propriedades (da soluo). em ordem alfabtica (de login).
oferecidas por cada estilo baseado na or- A caracterizao e existncia de estilos Outro exemplo compreende a arqui-
ganizao dos componentes e nos meca- arquiteturais constituem sinais de ama- tetura bsica de um compilador como
nismos de interao, conforme discutido durecimento da engenharia de software, ilustrado na Figura 2. Observe que cada
abaixo. uma vez que permite ao engenheiro or- etapa do processo de compilao reali-
ganizar e expressar o conhecimento de zada separadamente por um componente
O estilo arquitetural considera o sistema um projeto de modo sistemtico e til. (ou seja, um filtro).
por completo, permitindo o engenheiro Note que uma forma de codificar conhe-
ou arquiteto de software determinar cimento dispor de um vocabulrio de Um compilador tem duas funes bsi-
como o sistema est organizado, ca- um conjunto de conceitos (terminologia, cas: anlise e sntese. A funo de anlise
racterizando os componentes e suas propriedades, restries), estruturas implementada por trs componentes:
interaes. Em outras palavras, ele (componentes e conectores) e padres analisadores lxico, sinttico e semn-
determina uma estrutura para todos de uso existentes. Conectores so empre- tico. J a funo de sntese compreende
os componentes do sistema. O estilo gados na interao entre componentes os componentes de otimizao e gerao
arquitetural compreende o vocabulrio como, tubo (pipe) no estilo tubos e filtros, de cdigo. Observe que essa arquitetura
de componentes e conectores, alm da e mensagens no estilo de objetos. oferece suporte portabilidade e reuso.
topologia empregada. Mas, voc pode Entretanto, essa arquitetura evoluiu
estar se questionando: Por que saber o Exemplificando o estilo pipes com a introduo de um componente ge-
estilo arquitetural importante? (tubos) e filtros rador intermedirio de cdigo, conforme
Os sistemas de grande porte exigem O estilo arquitetural de tubos e filtros ilustrado na Figura 3, a fim de tornar a
nveis de abstrao mais elevados (justa- considera a existncia de uma rede arquitetura do compilador mais port-
mente onde se tm os estilos) que servem atravs da qual dados fluem de uma vel a vrias plataformas com o objetivo
de apoio compreenso do projeto e extremidade outra. O fluxo de dados de reduzir custos no desenvolvimento de
comunicao entre os participantes do se d atravs tubos e os dados sofrem diferentes produtos, ou seja, compilado-
projeto. Ele determinante no entendi- transformaes quando so processados res para diferentes plataformas.
mento da organizao de um sistema de nos filtros. Uma nova evoluo da arquitetura de
software. O tubo prov uma forma unidirecional do compiladores a fim de atender a necessi-
Mas, o que se ganha em saber o estilo fluxo de dados uma vez que ele atua como dade de integrao (do compilador) com
arquitetural? Ele oferece: uma espcie de condutor para o fluxo de outras ferramentas, tais como editor e
Suporte a atributos de qualidade (ou dados entre a fonte at um destino. O exem- depurador, resultou na arquitetura mos-
requisitos no funcionais); plo mais comumente conhecido do estilo trada na Figura 4.
Diferenciao entre arquiteturas; tubos e filtros aquele usado no sistema importante salientar que a evoluo
Menos esforo para entender um projeto; operacional Unix, isto : who | sort da arquitetura de compilador foi resul-
Reuso de arquitetura e conhecimento tado, principalmente, da necessidade de
em novos projetos. A linha de comando acima executa o co- dar suporte ao requisito de portabilidade.
mando who (uma nica vez) e encaminha Nesse sentido, pode-se destacar como
Conhecer o estilo arquitetural permite sua sada ao programa sort, conforme vantagens:
ao engenheiro antecipar, por meio da ilustrado na Figura 1. O resultado da Problema ou sistema pode ser decom-
anlise (arquitetural), o impacto que o es- execuo do programa who uma lista posto de forma hierrquica;
Funo do sistema vista como com- por meio da passagem de mensagens, a interface define os eventos de entrada
posio de filtros; invocao implcita requer que compo- e sada permitidos. Conectores so
Facilidade de reuso, manuteno nentes interessados em receber ou divul- implementados atravs do binding
e extenso, que emprega abordagem gar eventos se registrem para receber ou evento-procedimento. Assim, eventos
caixa preta, onde cada componente tem enviar. Um exemplo de sistema empre- so registrados junto com eventos e os
funcionalidade e interface bem definida, gando mensagens so listas de notcias componentes interagem entre si atra-
facilitando alteraes nos mesmos; e frum que possuem componentes de vs do envio de eventos. Dessa forma,
Desempenho pode ser incrementado registro de novos usurios acoplados quando um evento recebido, o(s)
atravs do processamento paralelo de ao componente de autenticao. Perceba procedimento(s) associado(s) a este even-
filtros, j que a ativao e uso do com- que esse tipo de sistema apenas permite to (so) invocado(s). Um interessante
ponente ocorre com o fluxo de dados, que o usurio tenha acesso ao contedo exemplo deste estilo so jogos online,
permit i ndo que componentes com se este for devidamente autenticado e como discutido na seo seguinte.
funcionalidades independentes sejam registrado. Quadro negro (ou Blackboard) esse
executados de forma concorrente. (Sistemas orientados a) Eventos trata- estilo faz uso de um repositrio central
se de um estilo no qual os componentes de dados circundado por um conjunto de
Apesar das vantagens acima apontadas, podem ser objetos ou processos e a componentes (ou clulas) de informaes.
o estilo de tubos e filtros coloca nfase no
modo batch, tornando difcil seu uso em
aplicaes interativas e em situaes que
exija ordenao de filtros. Outra questo
tcnica a ser observada a possibilidade
de haver deadlock com o uso de buffers
finitos (para armazenamento temporrio
de dados). Esse estilo arquitetural tem
sido empregado em razo das vantagens
anteriormente destacadas.
Exemplos de outros estilos arquiteturais
compreendem:
Camadas a arquitetura do sistema de
software organizada num conjunto de
camadas, oferecendo maior flexibilidade
e suporte a portabilidade. A identificao
do nvel de abstrao nem sempre evi-
dente e perde-se desempenho medida
que o nmero de camadas cresce. Exem-
plo desse estilo compreende os sistemas Figura 5. Combinao de estilos.
Web de mltiplas camadas que separa
cliente, servidores de aplicao, servido-
res Web e outros clientes Web.
Objetos essa arquitetura combina
dados com funes numa nica entidade
(objeto), facilitando a decomposio do
problema, manuteno e reuso. comum
utilizar a arquitetura orientada a objetos
em sistemas de informao como siste-
mas de consulta e emprstimos online de
bibliotecas de instituies de ensino que
dispem de componentes de cadastro de
usurios e componentes de autenticao
de usurios. Note que componentes
similares existem em outros sistemas de
informaes, tais como sites de contedos
(jornais e revistas) que exigem cadastro
e autenticao de qualquer usurio antes
de disponibilizar o contedo.
Invocao implcita diferentemente do
estilo baseado em objetos, no qual um
componente invoca outro diretamente Figura 6. Jogo Connect4.
Concluso
Embora arquitetura de software seja
um tema relevante no contexto atual para
desenvolvimento de sistemas de software
que tm seu foco no reuso e, portanto,
consideram tanto o aspecto econmico
quanto a produtividade, sua incorpora-
o nos processos de desenvolvimento de
software tem sido observada apenas em
empresas de grande porte e em poucas
de mdio porte. Entretanto, esse cenrio
comea a mudar dada a crescente necessi-
dade de integrao de sistemas a qual tem
D
esenvolver software uma ati- desenvolvimento. Uma recente matria
vidade complexa por natureza. publicada na revista Exame relata o
Uma das razes para esta afir- crescimento do nmero de empresas que
mao que no existe uma nica soluo atingiram nveis de maturidade conside-
para cada cenrio de desenvolvimento. rando modelos como MPS.BR e CMMI.
Alm disso, lidamos o tempo todo com Este resultado um forte indicador de
Ana Luiza vila pessoas, o que torna o sucesso do projeto que as empresas nacionais esto se pre-
analuizaavila@yahoo.com.br bastante relacionado competncia da ocupando com a qualidade dos servios
bacharel em Cincias da Computao pela equipe e forma como trabalham, e, para que oferecem, conseguindo, dessa forma,
Universidade Salvador (UNIFACS) e Mestre dificultar ainda mais, muitas vezes no uma insero maior no mercado interna-
em Cincias da Computao pela PUC-Rio na cional de desenvolvimento de software.
fazemos uso de um processo bem defini-
linha de Engenharia de Software.
do para apoiar as atividades do projeto. Neste artigo, faremos uma introduo
Rodrigo Oliveira Spnola Entende-se por processo, neste contexto, Engenharia de Requisitos, atividade
rodrigo@sqlmagazine.com.br como sendo um conjunto de atividades base para as demais tarefas associadas
Doutorando em Engenharia de Sistemas e bem definidas com os respectivos res- ao desenvolvimento de software.
Computao (COPPE/UFRJ). Mestre em En- ponsveis por execuo, ferramentas de
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Cincias da Computao (UNI-
apoio e artefatos produzidos. Ou seja, Engenharia de Software e
FACS, 2001). Colaborador da Kali Software define-se como a equipe dever trabalhar Requisitos
(www.kalisoftware.com), tendo ministrado para alcanar o objetivo: desenvolver sof- Vimos na introduo que se busca cada
cursos na rea de Qualidade de Produtos e tware com qualidade dentro de prazos, vez mais o apoio dos fundamentos da en-
Processos de Software, Requisitos e Desen- custos e requisitos definidos. genharia de software no desenvolvimen-
volvimento Orientado a Objetos. Consultor
A boa notcia que muitas empresas to de sistemas. Entendemos engenharia
para implementao do MPS.BR. Atua como
Gerente de Projeto em projetos de consulto- esto se movimentando no sentido de de software como sendo, de acordo com
ria na COPPE/UFRJ. colaborador da Enge- definirem detalhadamente seus proces- o IEEE, a aplicao de uma abordagem
nharia de Software Magazine. sos para apoiarem suas atividades de sistemtica, disciplinada e quantificvel
no desenvolvimento, operao e ma- mite concluir que importante que seja dos principais fatores esto relacionados
nuteno de software. Sistemtica por dada maior importncia s atividades s atividades de requisitos: (1) Requisitos
que parte do princpio de que existe um relacionadas especificao dos requi- Incompletos; (2) Falta de Envolvimento
processo de desenvolvimento definindo sitos do software. do Usurio; (6) Mudana de Requisitos e
as atividades que devero ser executadas. Reforando a importncia que as ativi- Especificaes.
Disciplinada por que parte do princpio dades relacionadas a requisitos devem Neste ponto, sabemos que um trabalho
de que os processos definidos sero possuir na indstria de software, estudo mais criterioso na rea de requisitos
seguidos. Quantificvel por que se deve realizado pelo Standish Group, conside- fundamental para o sucesso de projetos
definir um conjunto de medidas a serem rando 350 companhias e 8.000 projetos de software. A partir da prxima seo
extradas do processo durante o desen- de software, em 1995 revelou que (ver conheceremos a definio de requisitos e
volvimento de forma que as tomadas de Figura 1): algumas de suas definies relacionadas
deciso relacionadas ao desenvolvimento 16,2% dos projetos so finalizados com antes de discutirmos mais profundamen-
do software (por exemplo, melhoria de sucesso, ou seja, cobre todas as funcio- te a engenharia de requisitos.
processo) sejam embasadas em dados nalidades em tempo e dentro do custo
reais, e no em achismos. Alguns de previsto; Fatores Crticos %
seus principais objetivos so: 52.7% dos projetos so considerados
Qualidade de software; problemticos, ou seja, no cobre todas 1. Requisitos Incompletos 13.1%
Produtividade no desenvolvimento, as funcionalidades exigidas, custo au- 2. Falta de Envolvimento do Usurio 12.4%
operao e manuteno de software; mentado e est atrasado.
3. Falta de Recursos 10,6%
Permitir que profissionais tenham 31,1% dos projetos fracassam, ou seja,
controle sobre o desenvolvimento de o projeto cancelado durante o desenvol- 4. Expectativas Irreais 9,9%
software dentro de custos, prazos e nveis vimento.
5. Falta de Apoio Executivo 9,3%
de qualidade desejados.
O Standish Group ainda fez uma an- 6. Mudana de Requisitos e Especificaes 8,7%
Entretanto, o cenrio de desenvolvimen- lise sobre os fatores crticos para sucesso 7. Falta de Planejamento 8,1%
to de software atual e o cenrio idealiza- dos projetos de software. O resultado
8. Sistema no mais necessrio 7,5%
do junto engenharia de software ainda dos dez mais lembrados pode ser visto
esto distantes. Vrios fatores contribuem na Tabela 2. Podemos perceber que trs Tabela 2. Fatores crticos do sucesso.
para isso, podemos citar dois:
O no uso dos fundamentos da en-
genharia de software para apoiar as
atividades do desenvolvimento;
O mau uso dos fundamentos da
engenharia de software para apoiar as
atividades do desenvolvimento.
Verificao
Esta atividade examina a especificao
do software, de forma a assegurar que
todos os requisitos foram definidos sem
ambigidades, inconsistncias ou omis-
ses, detectando e corrigindo possveis
problemas ainda durante a fase de defi-
nio dos requisitos.
Neste contexto, sabe-se que o custo da
correo de defeitos aumenta na medida
Figura 5. Fases da tecnica para levantamento de requisitos JAD. em que o processo de desenvolvimento
progride. Revises de artefatos de sof- aparentemente simples, esta atividade faz com que as economias de curto prazo
tware tm se mostrado uma abordagem pode ser bastante dificultada pelo cliente sejam logo suplantadas pelas despesas no
eficiente e de baixo custo para encontrar ou mesmo por um processo de validao longo prazo, verificadas com superao de
defeitos logo aps terem sido introdu- inadequado utilizado pela empresa. custo e prazo nos projetos conduzidos.
zidos, reduzindo o retrabalho e melho- Veremos a partir de agora algumas das
rando a qualidade dos produtos. No Gerncia de Requisitos atividades que devem ser consideradas
em vo que modelos de maturidade de Requisitos so por natureza volteis. durante a gerncia dos requisitos.
processo de software, como o CMMI e o Diversos fatores contribuem para sua
MPS BR exigem a conduo de revises. instabilidade ao longo do tempo. Mudan- Controle de Mudanas
Um tipo particular de reviso de softwa- as externas no ambiente (mudanas de Conforme foi citado anteriormente, os
re so as inspees. Inspees possuem legislao, mudanas no mercado, mu- requisitos so volteis e, portanto sofrem
um processo de deteco de defeitos dana no posicionamento estratgico da mudanas ao logo do tempo, para condu-
rigoroso e bem definido. Os benefcios empresa), erros incorridos no processo de zir estas mudanas recomenda-se pre-
de se aplicar inspees so maiores para requisitos, entre outros. Todos esses fato- paro e planejamento. Uma das maneiras
artefatos desenvolvidos no incio do pro- res fazem com que seja necessrio alterar bastante utilizadas para organizar estas
cesso, como o documento de requisitos. os requisitos. Tais alteraes precisam ser mudanas a baseline de requisitos
Conheceremos um pouco mais sobre conduzidas de forma ordenada para que que nos permite diferenciar o que era o
inspeo de software em um segundo no se perca controle sobre o prazo e o requisito original, o que foi introduzido
artigo a ser publicado na segunda edio custo do desenvolvimento. e o que foi descartado. Alm disto, inte-
da Engenharia de Software Magazine. Denominamos a atividade de adminis- ressante estabelecer um nico canal para
trar os requisitos ao longo do tempo de controle de mudanas, bem como utilizar
Validao gerenciamento de requisitos. Os bene- um sistema para este controle.
A validao representa a atividade fcios desta atividade so percebidos no Apresentamos a seguir uma sugesto
em que obtemos o aceite do cliente sob mdio prazo, sendo que so necessrios de passos que devem ser seguidos para
determinado artefato. No cenrio de investimentos no curto prazo. Assim, a um processo de controle de mudana:
engenharia de requisitos, esta atividade atividade , muitas vezes, tida como um Checar validade da solicitao de
significa aprovar junto ao cliente os re- fardo desnecessrio conduo do pro- mudana;
quisitos que foram especificados. Embora cesso. Contudo, sua no implementao Identificar os requisitos diretamente
T
este de software o processo de desta tarefa revelar o nmero mximo
execuo de um produto para de falhas dispondo do mnimo de esforo,
determinar se ele atingiu suas es- ou seja, mostrar aos que desenvolvem se
pecificaes e funcionou corretamente no os resultados esto ou no de acordo com
ambiente para o qual foi projetado. O seu os padres estabelecidos.
objetivo revelar falhas em um produto, Ao longo deste artigo, iremos discutir
para que as causas dessas falhas sejam os principais conceitos relacionados s
identificadas e possam ser corrigidas pela atividades de teste, as principais tcnicas
equipe de desenvolvimento antes da en- e critrios de teste que podem ser utiliza-
trega final. Por conta dessa caracterstica dos para verificao ou validao de um
das atividades de teste, dizemos que sua produto, assim como exemplos prticos
natureza destrutiva, e no construti- da aplicao de cada tipo de tcnica ou
va, pois visa ao aumento da confiana de critrio de teste.
um produto atravs da exposio de seus
problemas, porm antes de sua entrega Conceitos bsicos associados
Arilo Cludio Dias Neto ao usurio final. a Teste de Software
(ariloclaudio@gmail.com)
O conceito de teste de software pode Antes de iniciarmos uma discusso
Bacharel em Cincia da Computao for-
mado na Universidade Federal do Amazonas, ser compreendido atravs de uma viso sobre teste de software precisamos es-
Mestre em Engenharia de Sistemas e Compu- intuitiva ou mesmo de uma maneira clarecer alguns conceitos relacionados a
tao formado na COPPE/UFRJ, e atualmente formal. Existem atualmente vrias defi- essa atividade. Inicialmente, precisamos
est cursando doutorado na rea de Engenha- nies para esse conceito. De uma forma conhecer a diferena entre Defeitos, Er-
ria de Software da COPPE/UFRJ. Possui 5 anos
simples, testar um software significa veri- ros e Falhas. As definies que iremos
de experincia em anlise, desenvolvimento e
teste de software. editor tcnico das Revis- ficar atravs de uma execuo controlada usar aqui seguem a terminologia padro
tas SQL Magazine e WebMobile, gerenciadas se o seu comportamento corre de acordo para Engenharia de Software do IEEE
pelo Grupo DevMedia. com o especificado. O objetivo principal Institute of Electrical and Electronics
Figura 2. Diferentes Interpretaes ao longo do ciclo de desenvolvimento de um software J a execuo ocorre no sentido inverso.
Conhecidos os diferentes nveis de teste,
a partir da prxima seo descreveremos
as principais tcnicas de teste de software
existentes que podemos aplicar nos dife-
rentes nveis abordados.
/* 01 */ {
/* 01 */ char achar;
/* 01 */ int length, valid_id;
/* 01 */ length = 0;
/* 01 */ printf (Digite um possvel identificador\n);
/* 01 */ printf (seguido por <ENTER>: );
/* 01 */ achar = fgetc (stdin);
/* 01 */ valid_id = valid_starter (achar);
/* 01 */ if (valid_id)
/* 02 */ length = 1;
/* 03 */ achar = fgetc (stdin);
/* 04 */ while (achar != \n)
/* 05 */ {
/* 05 */ if (!(valid_follower (achar)))
/* 06 */ valid_id = 0;
/* 07 */ length++;
/* 07 */ achar = fgetc (stdin);
/* 07 */ }
/* 08 */ if (valid_id && (length >= 1) && (length < 6) )
/* 09 */ printf (Valido\n);
/* 10 */ else
/* 10 */ printf (Invalido\n);
/* 11 */ }
Tabela 2. Tabela de deciso para o programa de compra pela Internet. Aplicando o teste de valor limite
convenc iona l sero obt idos ca- resultado esperado) = {(61,2,frete requisitos
gr- gerenciamento e anlise de resultados.
s o s de t e st e s e me l h a nt e s a e st e: tis); (61,3,cobrar frete); (60, qualquer Apoio ferramental para qualquer ativi-
{-1,0,12,13,18,19,21,22,24,25}. quantidade,cobrar frete)}. dade do processo de teste importante
como mecanismo para reduo de esforo
Grafo de causa-efeito Outras tcnicas associado tarefa em questo, seja ela
Esse critrio de teste verifica o efeito Outras tcnicas de teste podem e devem planejamento, projeto ou execuo dos
combinado de dados de entrada. As ser utilizadas de acordo com necessidades testes. Aps ter sua estratgia de teste
causas (condies de entrada) e os efeitos de negcio ou restries tecnolgicas. definida, tente buscar por ferramentas
(aes) so identificados e combinados Destacam-se as seguintes tcnicas: teste de que se encaixem na sua estratgia. Isso
em um grafo a partir do qual montada desempenho, teste de usabilidade, teste de pode reduzir significantemente o esforo
uma tabela de deciso, e a partir desta, carga, teste de stress, teste de confiabilida- de tal tarefa.
so derivados os casos de teste e as sadas de e teste de recuperao. Alguns autores Alm disso, importante ressaltar que
(ROCHA et al., 2001). chegam a definir uma tcnica de teste diferentes tipos de aplicaes possuem
Esse critrio baseado em quatro pas- caixa cinza, que seria um mesclado do uso diferentes tcnicas de teste a serem
sos, que exemplificaremos utilizando o das tcnicas de caixa preta e caixa branca, aplicadas, ou seja, testar uma aplicao
exemplo, tambm extrado de (BARBOSA mas, como toda execuo de trabalho web envolve passos diferenciados em
et al., 2000): relacionado atividade de teste utilizar comparao aos testes de um sistema
simultaneamente mais de uma tcnica embarcado. Cada tipo de aplicao possui
Em um programa de compras pela de teste, recomendvel que se fixem os caractersticas especificas que devem ser
Internet, a cobrana ou no do frete conceitos primrios de cada tcnica. consideradas no momento da realizao
definida seguindo tal regra: Se o valor dos testes. O conjunto de tcnicas apre-
da compra for maior que R$ 60,00 e fo- Concluses sentado neste artigo cobre diversas carac-
ram comprados menos que 3 produtos, O teste de software uma das atividades tersticas comuns a muitas categorias de
o frete gratuito. Caso contrrio, o frete mais custosas do processo de desenvol- software, mas no completo.
dever ser cobrado. vimento de software, pois pode envolver Para finalizar, podemos destacar ou-
uma quantidade significativa dos recursos tros pontos importantes relacionados s
1. Para cada mdulo, Causas (condies de um projeto. O rigor e o custo associado atividades de teste que podemos abordar
de entrada) e efeitos (aes realizadas s a esta atividade dependem principalmente em prximos artigos, tais como processo
diferentes condies de entrada) so rela- da criticalidade da aplicao a ser desenvol- de teste de software, planejamento e con-
cionados, atribuindo-se um identificador vida. Diferentes categorias de aplicaes trole dos testes e teste de software para
para cada um. requerem uma preocupao diferenciada categorias especficas de software, como
Causa: valor da compra > 60 e #pro- com as atividades de teste. aplicaes web. At a prxima!
dutos < 3 Um ponto bastante importante para
Efeito: frete grtis a viabilizao da aplicao de teste de Agradecimentos
2. Em seguida, um grafo de causa- software a utilizao de uma infra- Agradecemos aos professores Jos Carlos
efeito (rvore de deciso) desenhado estrutura adequada. Realizar testes Maldonado e Ellen Barbosa por terem
(Figura 7). no consiste simplesmente na gerao gentilmente autorizado a publicao deste
3. Neste ponto, transforma-se o grafo e execuo de casos de teste, mas envol- material, cujos exemplos utilizados esto
numa tabela de deciso (Tabela 2). vem tambm questes de planejamento, fundamentados em seus trabalhos.
4. As regras da tabela de deciso so,
ento, convertidas em casos de teste. Referncias
BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M..
Para a elaborao dos casos de teste,
Introduo ao Teste de Software. XIV Simpsio Brasileiro de Engenharia de Software, 2000.
devemos seguir todas as regras extradas
da tabela. Esse critrio deve ser combi- CRAIG, R.D., JASKIEL, S. P., Systematic Software Testing, Artech House Publishers, Boston, 2002.
nado com os dois outros j apresentados IEEE Standard 610-1990: IEEE Standard Glossary of Software Engineering Terminology, IEEE Press.
neste artigo para a criao de casos de
teste vlidos (extrados das regras) e PFLEEGER, S. L., Engenharia de Software: Teoria e Prtica, Prentice Hall- Cap. 08, 2004.
invlidos (valores foras da faixa defini- PRESSMAN, R. S.,Software Engineering: A Practitioners Approach, McGraw-Hill, 6th ed, Nova York,
da). Os casos de teste definidos a seguir NY, 2005.
refletem somente as regras extradas da RAPPS, S., WEYUKER, E.J., Data Flow analysis techniques for test data selection, In: International
tabela de deciso. Fica como exerccio Conference on Software Engineering, p. 272-278, Tokio, Sep. 1982.
pensar nos casos de teste invlidos para
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., Qualidade de software Teoria e prtica,
este problema.
Prentice Hall, So Paulo, 2001.
Casos de Teste (valor, qtd produtos,
O
principal objetivo do teste de Neste artigo, voc conhecer os con-
software medir o nvel de ceitos, atividades e terminologia de um
qualidade de um sistema, seja a processo de gesto de defeitos. Tambm
aplicao executvel ou os artefatos utili- ser apresentado um exemplo prtico uti-
zados na sua construo. A qualidade de lizando o Mantis, ferramenta Open Sour-
um sistema pode ser medida, essencial- ce para gesto de defeitos. E, por fim,
mente, pelo nmero de falhas encontra- sero apresentadas outras alternativas
das durante a execuo dos testes. Open Source e comerciais caso o Mantis
Falha, nesse contexto, a conseqncia de no atenda as suas necessidades.
um erro, defeito ou engano. Ou seja, o des-
vio entre o que foi solicitado pelo usurio Processo de Gesto de defeitos
Cristiano Caetano por meio dos requisitos e o comportamento Um processo de gesto de defeitos tem o
c_caetano@hotmail.com
certificado CBTS pela ALATS. Consultor de
apresentado pela aplicao executvel. Em objetivo de definir prticas para prevenir
teste de software snior com mais de 10 virtude da complexidade e tamanho de um os defeitos e minimizar os riscos de um
anos de experincia, j trabalhou na rea de sistema ou para atender normas de quali- projeto. A utilizao de uma ferramenta
qualidade e teste de software para grandes dade ou processos de maturidade, se faz automatizada, alm de oferecer uma base
empresas como Zero G, DELL e HP Invent. necessrio utilizar um processo de gesto comum para a entrada de informaes,
colunista na rea de Teste e Qualidade de
software do site linhadecodigo.com.br e au-
de defeitos integrado ao ciclo de vida de tambm oferece um meio para fomentar
tor dos livros "CVS: Controle de Verses e De- desenvolvimento e teste. a integrao entre o time de desenvolvi-
senvolvimento Colaborativo de Software" e Neste contexto, entender as atividades mento e o time de testes. Alm disso, por
"Automao e Gerenciamento de Testes: Au- de um processo de gesto de defeitos meio dos relatrios de gesto e mtricas
mentando a Produtividade com as Principais e escolher a ferramenta adequada para geradas por essas ferramentas, os gestores
Solues Open Source e Gratuitas". O autor
mantm um blog sobre testes e qualidade
automatizar a gesto do ciclo de vida do projeto podero promover a melhoria
de software, confira no seguinte endereo: de um defeito so tarefas fundamentais, contnua do processo estabelecido.
http://spaces.msn.com/softwarequality/. como veremos mais adiante. Genericamente, o termo Erro (Error)
utilizado para indicar uma diferena rios com dados relevantes para acompa- no especificado no requisito.
entre valor computado, observado ou me- nhar o progresso dos testes e a qualidade
dido em relao ao esperado. No entanto, do sistema, assim como, a gerao de Uma vez que o defeito for encontrado,
o padro IEEE 610.12-1990 (IEEE Standard mtricas para alimentar a atividade de seja por inteno ou por acidente, o
Glossary of Software Engineering Ter- melhoria do processo. prximo passo dever ser o relato (ou
minology) distingue a terminologia da reporte) desse defeito por meio de algum
seguinte forma: Ciclo de vida de um defeito mecanismo estabelecido no processo de
Defeito (Fault): Passo, processo ou de- Como discutimos anteriormente, a gesto de defeitos.
finio de dados incorretos. Por exemplo, qualidade de um sistema pode ser me- Este mecanismo poder ser, desde uma
uma instruo incorreta no cdigo ou dida, essencialmente, pelo nmero de simples planilha, at uma ferramenta
uma falta num artefato esttico; defeitos encontrados durante a execuo automatizada. Por motivos bvios, uma
Engano (Mistake): Ao humana que dos testes. ferramenta automatizada e construda
produz um resultado incorreto, como por Podemos afirmar que os defeitos so para esse propsito ser, sem sombra de
exemplo, uma ao incorreta tomada pelo encontrados por meio da execuo formal dvida, muito mais eficiente do que uma
desenvolvedor ou analista; dos testes (testes estruturais ou funcio- simples planilha ou soluo alternativa.
Falha (Failure): Desvio entre o resul- nais), durante a utilizao do sistema em De qualquer forma, to logo o defeito
tado/comportamento apresentado pela produo ou, at mesmo, por acidente. A seja relatado, ele dever ser submetido a
aplicao em relao aos requisitos. A priori, podemos classificar os defeitos nas um ciclo de vida pr-definido pelo pro-
falha ocorre em conseqncia de um erro, seguintes categorias: cesso de gesto de defeitos. Este ciclo de
defeito ou engano gerando um compor- Faltante (Missing): O defeito ocorre em vida define os fluxos que o defeito dever
tamento incorreto da aplicao. virtude da falta parcial ou total de um percorrer at o seu fechamento.
requisito; A Figura 2 descreve genericamente um
Neste artigo, o termo defeito ser usado Errado (Wrong): O defeito ocorre ciclo de vida de um defeito aderente ao
de forma genrica, podendo representar porque o requisito foi implementado processo de gesto de defeitos apresen-
um erro, engano, defeito ou falha. Se- incorretamente; tado anteriormente. Devemos lembrar
gundo o livro, Base de Conhecimento Acrscimo (Extra): O defeito ocorre que esse um exemplo didtico, existem
do CSTE do QAI, os elementos chave em virtude de um comportamento ou fluxos alternativos e papis que no esto
de um processo de gesto de defeitos elemento que foi implementado, mas foi presentes nesta figura.
so (Figura 1):
Preveno de defeitos: Com base
nos levantamento dos riscos crticos do
projeto, devem ser promovidas aes de
preveno e planejamento de contingn-
cias para minimizar o impacto caso os
riscos tornem-se problemas;
Linha base entregvel: Estabeleci-
mento formal de linhas base (baselines)
por meio da Gerncia de Configurao
de Software. Cada linha base deve de- Figura 1. Elementos chave de um processo de gesto de defeitos.
terminar quais requisitos/artefatos sero
liberados e submetidos ao teste;
Identificao do defeito: Definio
das tcnicas necessrias para encontrar,
reportar e classificar os defeitos, assim
como, os critrios para reconhec-los;
Soluo do defeito: Definio das
atividades para a correo e posterior
notificao da resoluo do defeito. Mui-
tas destas atividades so definidas pela
Gerncia de Configurao de Software
para garantir o histrico e rastreamento
das modificaes por meio do controle
de verses;
Melhoria do processo: Anlise das m-
tricas e relatrios de gesto para entender
a causa raiz dos problemas e promover a
melhoria contnua do processo;
Relatrio de gesto: Gerao de relat- Figura 2. Ciclo de vida de um defeito genrico.
Mantis
O Mantis uma ferramenta Open
Source automatizada escrita em PHP
cujo principal objetivo dar suporte ao
processo de gesto de defeitos. O Mantis
controla o ciclo de vida de um defeito,
desde o seu relato at o seu fechamento,
por meio de fluxos (workflows) persona-
lizveis, como pode ser observado na
Figura 3.
O endereo do site do Mantis est
disponvel na seo Links. Caso voc
tenha interesse de conhec-lo com maior
Figura 3. Pgina inicial do Mantis. profundidade, os passos para a instalao
Mtricas e relatrios de gesto Figura 7. Consolidao dos defeitos associados ao usurio logado.
A norma IEEE Std 829-1998 (IEEE Stan-
dard for Software Test Documentation)
define a documentao e relatrios ne-
cessrios para a execuo de um projeto
de teste de software. Dentre os relatrios
sugeridos, existe um relatrio chamado
Relatrio de Incidente de Teste. Este re-
latrio registra e consolida as ocorrncias
que precisam de algum tipo de investi-
gao. Ele normalmente utilizado para
registrar os defeitos encontrados durante
a execuo dos testes.
Ferramentas automatizadas de gesto
de defeitos, tais como o Mantis, geram di-
versos relatrios e grficos com mtricas
que podero fornecer dados para alimen-
tar o Relatrio de Incidente de Teste.
O Mantis, alm de oferecer um relat-
rio com o resumo consolidado de todos
os defeitos relatados (Figura 10), tambm
permite a visualizao de grficos com
as principais mtricas utilizadas na
gesto de defeitos (Figura 11). Na lista-
gem a seguir, so apresentadas diversas
sugestes de indicadores e mtricas de
um processo de gesto de defeitos eficaz,
afinal, voc no pode gerenciar o que
Figura 8. Reporte da correo de um defeito.
voc no pode medir:
Links
Comparao entre ferramentas de gesto de defeitos
Figura 10. Resumo consolidado de todos os defeitos relatados. http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems
Website do Mantis
http://www.mantisbt.org
Gauging Software Readiness With Defect Tracking
http://www.stevemcconnell.com/ieeesoftware/bp09.htm
Microsoft Solutions Framework (Zero Bug Bouce e
Bug Convergence)
http://www.microsoft.com/technet/solutionaccelerators/msf/
default.mspx
Marcos Kalinowski
N
mk@kalisoftware.com
Doutorando em Engenharia de Sistemas e a engenharia de software, assim roso e bem definido. A Figura 1 ilustra a
Computao (COPPE/UFRJ). Mestre em En-
como em outras disciplinas de possibilidade de se realizar inspees nos
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Cincias da Computao (UFRJ, engenharia, necessrio consi- diferentes artefatos de software.
2001). Diretor executivo e instrutor da Kali derar variveis como esforo, produtivi- De forma resumida, o processo tradicio-
Software (www.kalisoftware.com), empresa dade, tempo e custo de desenvolvimento. nal de inspeo envolve o planejamento
de consultoria e treinamento em Engenharia Essas variveis so afetadas negativa- da inspeo, indivduos revisando um
de Software. Professor e pesquisador do curso
mente quando artefatos defeituosos so determinado artefato, um encontro em
de Cincia da Computao do Centro Univer-
sitrio Metodista Bennett, ministrando disci- produzidos, devido ao retrabalho para equipe para discutir e registrar os de-
plinas de Engenharia de Software. Consultor corrigir defeitos. Sabe-se, ainda, que o feitos, a passagem dos defeitos para o
para implementao e avaliao do MPS.BR custo do retrabalho para correo de autor do artefato para que possam ser
tendo colaborado na elaborao do guia geral defeitos aumenta na medida em que o corrigidos e uma avaliao final sobre a
e do guia de implementao deste modelo.
processo de desenvolvimento progride. necessidade de uma nova inspeo.
Desta forma, iniciativas devem ser reali- A importncia de inspees na reduo
Rodrigo Oliveira Spnola
rodrigo@sqlmagazine.com.br
zadas no sentido de encontrar e corrigir do retrabalho e na garantia da qualidade
Doutorando em Engenharia de Sistemas e defeitos to logo sejam introduzidos. Uma de software est bem documentada na
Computao (COPPE/UFRJ). Mestre em En- abordagem que tem se mostrado eficiente literatura e discutida em maiores neste
genharia de Software (COPPE/UFRJ, 2004). e de baixo custo para encontrar defeitos, artigo. A seo seguinte apresenta a
Bacharel em Cincias da Computao (UNI-
reduzindo o retrabalho e melhorando a definio de alguns conceitos utilizados
FACS, 2001). Colaborador da Kali Software
(www.kalisoftware.com), tendo ministrado qualidade dos produtos a reviso dos ao longo deste trabalho. Veremos ainda
cursos na rea de Qualidade de Produtos e artefatos produzidos ao longo do processo neste artigo alguns benefcios de se rea-
Processos de Software, Requisitos e Desen- de desenvolvimento de software. lizar inspees em artefatos produzidos
volvimento Orientado a Objetos. Consultor Inspeo de software um tipo parti- ao longo do processo de desenvolvimento
para implementao do MPS.BR. Atua como
cular de reviso que pode ser aplicado a de software so descritos; conceitos
Gerente de Projeto em projetos de consulto-
ria na COPPE/UFRJ. colaborador da Enge- todos os artefatos de software e possui sobre tcnicas de leitura para deteco
nharia de Software Magazine. um processo de deteco de defeitos rigo- de defeitos em artefatos de software;
o processo de inspeo de software e tos constituiria um tipo de defeito. Assim, importante ressaltar que estas classes
suas caractersticas, e; o estado atual da a seguinte taxonomia foi definida: genricas de defeitos podem ser dividi-
utilizao de inspees na prtica e do Omisso: (1) Algum requisito im- das em classes mais especficas, depen-
suporte ferramental existente. portante relacionado funcionalidade, dendo da necessidade. Alm disto, esta
ao desempenho, s restries de projeto, classificao no pretende ser definitiva
Definio dos Conceitos ao atributo, ou interface externa no foi e cada organizao pode acrescentar
O termo defeito muitas vezes utilizado includo; (2) no est definida a resposta mais tipos de defeito de acordo com suas
de forma genrica. No entanto, importante do software para todas as possveis si- necessidades.
ter em mente que sua interpretao depen- tuaes de entrada de dados; (3) faltam
der do contexto em que ele for utilizado. sees na especificao de requisitos; (4) Benefcios da Aplicao de
Defeitos encontrados atravs de revises faltam referncias de figuras, tabelas, e Inspees de Software
estaro relacionados s faltas no artefato diagramas; (5) falta definio de termos Esforo, Produtividade, Tempo e Custo
sendo revisado. Quando um defeito se e unidades de medidas. O esforo gasto por organizaes de
manifesta atravs de atividades de teste, Ambigidade: Um requisito tem software com retrabalho pode variar em
por sua vez, estaremos lidando com uma vrias interpretaes devido a diferentes mdia entre 40% e 50% do esforo total
falha no software. Estas definies seguem termos utilizados para uma mesma ca- do desenvolvimento de um projeto. Uma
a terminologia padro para Engenharia de racterstica ou vrios significados de um estimativa da distribuio do retrabalho
Software do IEEE (IEEE 610.12, 1990): termo para um contexto em particular. pelas atividades de desenvolvimento de
Erro: um defeito cometido por Inconsistncia: Dois ou mais requi- software est ilustrada na Figura 2.
um indivduo ao tentar entender uma sitos so conflitantes. Analisando a Figura 2, possvel veri-
determinada informao, resolver um Fato Incorreto: Um requisito des- ficar que o retrabalho tende a aumentar
problema ou utilizar um mtodo ou uma creve um fato que no verdadeiro, na medida em que o desenvolvimento
ferramenta. considerando as condies solicitas para progride. Uma das razes para isto o
Defeito (ou Falta): uma manifes- o sistema. aumento no esforo para corrigir defei-
tao concreta de um erro num artefato Informao Estranha: As informa- tos nas atividades finais do processo de
de software. Um erro pode resultar em es fornecidas no requisito no so desenvolvimento. Atravs da anlise de
diversos defeitos. necessrias ou mesmo usadas. 63 projetos, BOEHM (1981) apresenta o
Falha: o comportamento operacio- Outros: Outros defeitos como a inclu- custo relativo da correo de defeitos
nal do software diferente do esperado so de um requisito numa seo errada encontrados em cada uma das atividades
pelo usurio. Uma falha pode ter sido do documento. de desenvolvimento (Figura 3).
causada por diversas faltas e algumas
faltas podem nunca causar uma falha.
evitem a sua ocorrncia. inspeo continue no prximo dia. SAUER et al., (2000) propuseram uma
Produtos mais inteligveis. Os auto- Retrabalho. O autor corrige os defeitos reorganizao do processo tradicional
res dos diversos artefatos, sabendo que encontrados pelos inspetores e confirma- de inspeo. Essa reorganizao visa
estes sero inspecionados, passaro a dos pelo moderador. a adequao do processo tradicional a
produzir artefatos de uma forma que sua Continuao. O material corrigido inspees com reunies assncronas e
compreenso seja facilitada. A produo pelos autores repassado para o mode- equipes geograficamente distribudas.
de artefatos mais inteligveis, alm de rador, que faz uma anlise da inspeo Assim, mudanas para reduzir o custo e o
facilitar a inspeo, trar benefcios para como um todo e re-avalia a qualidade do tempo total para a realizao deste tipo de
as fases seguintes do processo de desen- artefato inspecionado. Ele tem a liberda- inspeo foram introduzidas. Este projeto
volvimento, incluindo principalmente a de de decidir se uma nova inspeo deve alternativo para inspees de software
fase de manuteno. ocorrer ou no. mantm a estrutura rgida e os aspectos
Dados defeituosos ajudam a melhorar o colaborativos do processo tradicional e
processo de software do projeto. Analisando A forma como estas atividades se re- consiste basicamente em substituir as
a causa dos defeitos encontrados possvel lacionam no processo de inspeo est atividades de preparao e de reunio do
fazer ajustes no processo para evitar a ocor- ilustrada na Figura 5. Note que a ativi- processo tradicional por trs novas ativi-
rncia de defeitos deste mesmo tipo. dade de apresentao, opcional, no est dades seqenciais: deteco de defeitos,
representada na figura. coleo de defeitos e discriminao de
O Processo de Inspeo de Software Entre as caractersticas deste processo, defeitos. Estas atividades podem ser des-
FAGAN (1976) desenvolveu o processo temos que ele pode ser aplicado a todos critas da seguinte forma:
tradicional de inspeo de software, os artefatos produzidos ao longo do Deteco de Defeitos. Cada um dos
uma forma detalhada de se realizar uma processo de desenvolvimento, permi- inspetores selecionados pelo moderador
reviso. Neste processo, existem seis tindo a utilizao de tcnicas de leitura no planejamento realizar uma atividade
atividades principais: de artefatos especficos na atividade de de deteco de defeitos. A principal tarefa
Planejamento. Um usurio, desem- preparao individual. Alm disto, ele desta atividade consiste em buscar defeitos
penhando o papel de moderador da possui uma estrutura rgida, com aspec- no documento a ser inspecionado e assim
inspeo, define o contexto da inspeo tos colaborativos, onde papis, atividades produzir uma lista de discrepncias.
(descrio da inspeo, tcnica a ser utili- e os relacionamentos entre atividades Coleo de Defeitos. O moderador
zada na deteco de defeitos, documento esto bem definidos. agrupa as listas de discrepncias dos ins-
a ser inspecionado, autor do documento, petores. Esta atividade envolve eliminar
entre outros), seleciona os inspetores e A Reorganizao do Processo discrepncias repetidas (encontradas por
distribui o material a ser inspecionado. de Inspeo mais de um inspetor), mantendo s um
Apresentao. Os autores dos artefatos Baseados em diversos estudos expe- registro para cada discrepncia.
a serem inspecionados apresentam as rimentais sobre inspees de software Discriminao de Defeitos. O modera-
caractersticas destes. Esta fase pode ser
omitida se os inspetores possuem conhe-
cimento sobre o projeto e os artefatos que
devem ser inspecionados.
Preparao. Os inspetores estudam
os artefatos individualmente, e even-
tualmente fazem anotaes sobre estes
produzindo uma lista de discrepncias.
O fornecimento de tcnicas de leitura
pode facilitar a execuo desta tarefa.
Reunio. Uma reunio em equipe
ocorre, envolvendo o moderador, os
inspetores e os autores do documento.
Discrepncias so discutidas, e classi-
ficadas como defeito ou falso positivos.
A deciso final sobre a classificao de
uma discrepncia sendo discutida
do moderador. A soluo dos defeitos
no discutida durante a reunio, que
no deve exceder duas horas, uma vez
que aps este tempo a concentrao e
a capacidade de anlise dos inspetores
costuma reduzir drasticamente. No caso
em que uma reunio precisar de mais de
duas horas, sugerido que o trabalho de Figura 5. Processo de inspeo de software, conforme definido em (adaptado de FAGAN, 1976).
Figura 7. Distribuio do Uso de Inspeo nos Diferentes Artefatos. Adaptado de Figura 8. Cobertura de defeitos estimada para as organizaes
(LAITENBERGER e DEBAUD, 2000). participantes do survey. Adaptado de (CIOLKOWSKI et al., 2003).
requisitos e 30% inspees em cdigo. no fornece apoio a tcnicas especficas das tcnicas ad-hoc e de checklists. Na
(2) Muitas vezes a atividade de deteco de deteco de defeitos, apenas ad-hoc. reunio de inspeo desta proposta as
de defeitos no realizada sistematica- Uma taxonomia fornecida junto com o discrepncias encontradas na deteco
mente. Cerca de 60% das organizaes artefato a ser inspecionado. Os elementos de defeitos so tratadas como tpicos
responderam no conduzir uma atividade desta taxonomia representam, de forma de discusso, onde mensagens podem
de deteco de defeitos regularmente. hierrquica, os tpicos abordados no arte- ser acrescentadas e o moderador pode
(3) Organizaes raramente utilizam fato a ser inspecionado. As discrepncias realizar a classificao das discrepncias
revises de software no contexto de um dos inspetores so ento agrupadas de como defeito ou falso positivo. IBIS no
programa sistemtico de avaliao e acordo com os elementos da taxonomia. fornece apoio aos pontos de tomada de
melhoria do processo. Mais da metade Assim, uma discrepncia na descrio do deciso do processo de inspeo, sendo as
das empresas participantes do survey caso de uso Mantendo Usurio poderia ser atividades de planejamento e de continu-
respondeu no coletar dados (40%) ou co- adicionada utilizando a seguinte navega- ao do processo tratadas como simples
letar dados e no os utilizar para realizar o pela taxonomia: Requisitos Funcionais cadastros, sem apoio para a realizao
uma anlise (18%). > Casos de Uso > Mantendo Usurio > de suas tarefas. IBIS tem sido utilizada
Descrio. Os artefatos em si so lidos na em estudos experimentais recentes para
A utilizao pouco sistematizada de ferramenta mais conveniente ao inspetor. obter conhecimento na rea de inspees
revises na prtica tem sido um fator de Desta forma, GRIP capaz de lidar com de software e para avaliar aspectos da
confuso entre os resultados esperados diferentes tipos de artefato, bastando que reorganizao do processo de inspeo. A
e os obtidos atravs de sua aplicao. A uma taxonomia para o artefato seja criada Figura 9 ilustra o apoio de IBIS ao registro
Figura 8 ilustra a cobertura de defeitos descrevendo sua estrutura. Na reunio de discrepncias na atividade de deteco
estimada das revises realizadas pelas GRIP fornece apoio para a classificao de defeitos utilizando um checklist.
organizaes participantes do survey. das discrepncias que de acordo com um ISPIS (KALINOWSKI e TRAVASSOS,
Visando apoiar a realizao de revises estudo experimental, mostrou reduzir o 2004). Esta ferramenta tambm visa
na prtica de forma mais sistemtica esforo da reunio e apoiar a classificao apoiar a reorganizao do processo de
foram elaboradas propostas de apoio fer- correta de discrepncias; inspeo proposta em SAUER et al. (2000).
ramental. Algumas destas propostas se IBIS (LANUBILE et al., 2003). Utiliza Entretanto, ISPIS foi desenvolvida utili-
encontram descritas na sesso seguinte. a web em conjunto com notificaes por zando uma metodologia experimental,
e-mail para apoiar inspees assncronas levando em considerao conhecimento a
Ferramentas de Apoio ao Processo de com equipes geograficamente distribu- respeito de inspees de software selecio-
Inspeo das. IBIS visa explicitamente apoiar a nado criteriosamente, dando preferncia
Entre as ferramentas que apiam a reorganizao do processo de inspeo a conhecimento efetivamente avaliado.
coordenao e as diversas atividades proposta em SAUER et al. (2000) e permi- ISPIS a nica ferramenta que possibilita
do processo de inspeo que tem sido tir a sua realizao de forma sistematiza- o uso automatizado deste conhecimento
efetivamente avaliadas e utilizadas re- da. IBIS no limita o tipo de artefato a ser sem que a equipe de inspeo precise
centemente na indstria de software des- inspecionado e na deteco de defeitos adquiri-lo atravs de revises bibliogr-
tacamos as seguintes: GRIP (GRoupware atualmente permite apenas a utilizao ficas e aplic-lo manualmente. Assim, os
supported Inspection Process), IBIS (In-
ternet Based Inspection System) e ISPIS
(Infra-estrutura de Suporte ao Processo
de Inspeo de Software). Esta ltima
sendo tecnologia nacional desenvolvida
na COPPE/UFRJ, em processo de regis-
tro junto ao INPI. Uma descrio destas
ferramentas se encontra a seguir:
GRIP (Grnbacher et al., 2003). Nasceu
da iniciativa de se adaptar um sistema
COTS (Comercial Off The Shelf) de apoio
a trabalho colaborativo (GSS) (Groupware
Support System) para realizar inspees
em requisitos de software. Assim, GRIP
fornece um framework e ferramentas co-
laborativas para a realizao de inspees
assncronas com equipes geograficamente
distribudas. GRIP fornece suporte a
um processo prprio de inspeo que
envolve quatro atividades: planejamento,
inspeo individual, reunio assncrona, Figura 9. Apoio de IBIS ao registro de discrepncias na atividade de deteco de
e avaliao da inspeo. A ferramenta defeitos (LANUBILE et al., 2003).