Sunteți pe pagina 1din 76

Engenharia de Software

engenharia
Saiba seu significado e para que serve

magazine
de software
Edio Especial

Entenda os principais conceitos


sobre Testes e Inspeo de Software
Verificao, Validao & Teste
Ferramentas Open Source e melhores
prticas na gesto de defeitos
Requisitos Projeto
Conhea os principais conceitos envolvidos Entenda o conceito de Arquitetura de Software e
na Engenharia de Requisitos como trabalhar com os Estilos Arquiteturais

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:

Carmelita Mulin Atendimento ao Leitor


www.devmedia.com.br/central/default.asp
(21) 2220-5375
Ano 1 - 1 Edio 2007 - - Impresso no Brasil
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
Corpo Editorial (21) 2220-5375

Colaboradores Publicidade
Rodrigo Oliveira Spnola Para informaes sobre veiculao de anncio na revista ou no site entre
rodrigo@sqlmagazine.com.br em contato com:

Marco Antnio Pereira Arajo Kaline Dolabella


Eduardo Oliveira Spnola publicidade@devmedia.com.br

Fale com o Editor!


muito importante para a equipe saber o que voc est achando da revista: que tipo de
Editor de Arte
Vinicius O. Andrade artigo voc gostaria de ler, que artigo voc mais gostou e qual artigo voc menos gostou.
viniciusoandrade@gmail.com Fique a vontade para entrar em contato com os editores e dar a sua sugesto!
Se voc estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
Capa entre em contato com os editores, informando o ttulo e mini-resumo do tema que voc
Vinicius O. Andrade gostaria de publicar:
viniciusoandrade@gmail.com
Rodrigo Oliveira Spnola - Colaborador
Na Web editor@sqlmagazine.com.br
www.devmedia.com.br/esm

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

22 - Agilidade ou Controle Operacional? Os dois!


Alexandre Bartie

28 - O processo unificado integrado ao desenvolvimento Web


Rodrigo S. Prudente de Aquino

38 - Arquitetura de Software
Antonio Mendes da Silva Filho

46 - Introduo Engenharia de Requisitos


Ana Luiza vila e Rodrigo Oliveira Spnola

54 - Introduo a Teste de Software


Arilo Cludio Dias Neto

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:

Edio 01 - Engenharia de Software Magazine 3


Alguns Fundamentos da Engenharia de
Software

O que Engenharia de Software? duzem grande quantidade de software, ou


a mesma coisa que Cincia da Com- at naquelas em que o desenvolvimento
putao? Ou uma entre muitas espe- de software atividade fim. Programas
cialidades da Cincia da Computao? e exames de certificao em Engenharia
Ou dos Sistemas de Informao, ou do de Software so pouco conhecidos, ao
Processamento de Dados, ou da Inform- contrrio do que acontece com algumas
tica, ou da Tecnologia da Informao? Ou linguagens e tecnologias usados por esses
uma especialidade diferente de todas profissionais.
as anteriores? Em outros pases, a situao um pouco
Na maioria das instituies brasileiras diferente. Algumas universidades ameri-
de ensino superior, o conjunto de co- canas oferecem programas de graduao,
nhecimentos e tcnicas conhecido como mestrado e doutorado na rea. O IEEE
Engenharia de Software ensinado em (Institute of Electrical and Electronics Engi-
uma ou duas disciplinas dos cursos que neers), principal organizao internacional
tm os nomes de Cincia da Computao, de profissionais de Engenharia Eltrica,
Wilson de Pdua Paula Filho Informtica ou Sistemas de Informao. atravs da Computer Society, que forma o
(wppf@ieee.org) Raramente, em mais disciplinas, muitas seu ramo em Computao, oferece a qua-
Engenheiro Mecnico pelo ITA, Doutor em
vezes opcionais, e muitas vezes oferecidas lificao de Profissional Certificado para
Engenharia Eltrica pela Escola Politcnica da
USP, Professor Titular aposentado do Departa- apenas em nvel de ps-graduao. Algu- o Desenvolvimento de Software.
mento de Cincia da Computao da UFMG. mas instituies oferecem cursos de ps-
Autor dos Livros Engenharia de Software: graduao em Engenharia de Software, Cincia, Engenharia e Valor
Fundamentos, Mtodos e Padres e Multi- geralmente no nvel de especializao. Sem pretender fazer distines defini-
mdia: Conceitos e Aplicaes. Atualmente
O uso do termo para designar uma tivas, vamos explorar o que dizem os di-
consultor em Engenharia de Software e traba-
lha no Synergia Laboratrio de Engenharia carreira profissional tambm no muito cionrios. O Dicionrio Aurlio Eletrnico
de Software e Sistemas da UFMG. comum, mesmo em organizaes que pro- V.2.0 assim define Cincia e Engenharia:

4 Engenharia de Software Magazine Alguns Fundamentos da Engenharia de Software


engenharia

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-

Edio 01 Engenharia de Software Magazine 5


to de software tem seu ciclo de vida: notao usada para descrever muitos mostram detalhes; cada seta representa
ele concebido para tentar atender a aspectos diferentes do desenvolvimento uma transio entre atividades; as barras
uma necessidade; de software, inclusive as seqncias de paralelas representam incio e trmino
especificado, quando essas necessida- atividades que compem esse desenvol- de atividades executadas em paralelo;
des so traduzidas em requisitos viveis; vimento. O tipo especfico de diagrama um retngulo de cantos arredondados
desenvolvido, transformando-se que mostrado na figura o Diagrama de com detalhes internos representa uma
em um conjunto formado por cdigo e Atividades, que representa uma evoluo atividade estruturada, que composta
outros itens, como modelos, documentos dos tradicionais fluxogramas, usados pe- de outras atividades.
e dados; los programadores h dcadas.
passa por algum procedimento de interessante observar que a codifica- Projetos, Atividades e Estruturas
aceitao e entregue a um cliente; o, que representa a escrita final de um Analticas
entra em operao, usado, e sofre programa em forma inteligvel para um Normalmente, o software desenvolvi-
atividades de manuteno, quando ne- computador, apenas uma pequena parte do dentro de projetos. Todo projeto tem
cessrio; do ciclo de vida. Muitas pessoas, inclu- uma data de incio, uma data de fim, uma
retirado de operao ao final de sua sive alguns profissionais da informtica, equipe e outros recursos. O responsvel
vida til. acham que a codificao a nica tarefa por um projeto chamado de gerente de
de um engenheiro de software. projeto. O trabalho realizado dentro de um
O ciclo de vida compreende muitas ativi- Nos Diagramas de Atividades da UML, projeto pode ser descrito por um conjunto
dades, que so assunto das diferentes re- a bolinha cheia representa Incio; a boli- de atividades, que podem possuir relaes
as da Engenharia de Software. A Figura 1 nha com um anel adicional representa de dependncia, paralelismo, e decom-
mostra um modelo do ciclo de vida do sof- fim; cada retngulo simples de cantos posio em atividades mais elementares,
tware, usando a notao conhecida como arredondados representa uma ao, ou como no diagrama da Figura 1.
UML (Unified Modeling Language). Essa seja, uma atividade simples, da qual no As atividades so delimitadas por mar-
cos, isto , pontos que representam esta-
dos significativos do projeto. Geralmente,
os marcos so associados a resultados
concretos: documentos, modelos ou por-
es do produto, que podem fazer parte
do conjunto prometido aos clientes, ou
ter apenas utilizao interna ao projeto. O
prprio produto um resultado concreto
associado ao marco de concluso do pro-
jeto, que pode ser utilizado sozinho, ou
como componente de um sistema.
O PMI (Project Management Institute)
uma organizao internacional, com
sees em muitos pases, inclusive o
Brasil, que tem o objetivo de promover e
difundir boas prticas de gesto de pro-
jetos. Para isso, administra programas de
certificao de profissionais nessa rea, e
publica o guia conhecido PMBOK (Project
Management Body of Knowledge).
Nesse guia, define-se um projeto como
um empreendimento temporrio reali-
zado para criar um produto, servio ou
resultado distinto. Um produto, por sua
vez, definido como um objeto produzi-
do, quantificvel e que pode ser um item
final ou um item componente. Uma ativi-
dade definida como um componente de
trabalho realizado durante o andamento
de um projeto.
Os relacionamentos entre as atividades
que compem um projeto so mostrados
em uma estrutura analtica, que o PM-
BOK define como uma decomposio hie-
Figura 1. Modelo UML do ciclo de vida do software rrquica orientada entrega do trabalho

6 Engenharia de Software Magazine Alguns Fundamentos da Engenharia de Software


engenharia

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

Figura 2. Cronograma de um projeto.

Edio 01 Engenharia de Software Magazine 7


projeto; em outras palavras, o projeto menos produtivas, durante algum tempo. esperado. E a principal contribuio de
o empreendimento que concretiza uma Algumas tecnologias mais complexas s modelos de referncia como o CMMI
abstrao, que o processo. No se deve se pagam depois de muitos projetos. indicar o caminho das pedras e o mapa da
confundir um processo (digamos, uma Investir na capacitao das pessoas mina: onde a experincia coletada indica
receita de bolo) com o respectivo produto certamente necessrio. Entretanto, for- que o investimento em melhorias mais
(o bolo) ou com a execuo do processo mar pessoas difcil, caro e demorado. rentvel, em cada passo da evoluo das
atravs de um projeto (a confeco de Recrutar pessoas capacitadas tambm: organizaes.
um bolo por determinada pessoa, em no h sinais de que a oferta de pessoas
determinado dia). com alta qualificao no desenvolvi-
Processos, pessoas e tecnologia consti- mento de software venha a se igualar Concluso
tuem os fatores de produo, que deter- demanda, em futuro prximo. Alm A Engenharia de Software visa criao
minam o grau de sucesso dos projetos, disso, muitas pessoas produzem menos de produtos de software que atendam as
ou seja: se eles conseguem entregar um que a sua capacidade permitiria, por necessidades de pessoas e instituies e,
produto de qualidade suficiente, dentro falta de liderana, por deficincia de fer- portanto, tenham valor econmico. Para
de um prazo aceitvel e com custos vi- ramentas e suporte, ou por inadequao isso, usa conhecimentos cientficos, tc-
veis. Portanto, desses fatores dependem de processos. nicos e gerenciais, tanto tericos quanto
a rentabilidade e a sobrevivncia das Dos investimentos nos fatores de pro- empricos. Ela atinge seus objetivos de
organizaes produtoras. duo, os investimentos nos processos produzir software com alta qualidade
Para muitos profissionais, a tecnologia so geralmente aqueles que podem trazer e produtividade quanto praticada por
o fator mais atraente; muitas vezes, h um retorno em prazo mais curto. Processos profissionais treinados e bem informa-
otimismo exagerado quanto aos resulta- tambm no fazem milagres, mas a dos, utilizando tecnologias adequadas,
dos da aplicao de novas tecnologias. melhoria dos processos costuma trazer dentro de processos que tirem proveito
Entretanto, tecnologias aparentemente benefcios em prazos relativamente cur- tanto da criatividade quando da raciona-
promissoras podem levar para um beco tos, como ilustrado por inmeros relatos lizao do trabalho.
sem sada, e, s vezes, tecnologias con- de experincia publicados. No mnimo,
sideradas inferiores pelos especialistas contribuem para reduzir o desperdcio
lanam razes permanentes, graas a for- e o retrabalho, o que geralmente j traz
as de mercado. Alm disso, a tecnologia ganhos muito significativos. Links
s se paga quando colocada nas mos de A melhoria dos trs fatores (tecnolo-
SEI
pessoas capacitadas, trabalhando dentro gias, pessoas e processos) tambm requer http://www.sei.cmu.edu/
de processos adequados. Toda introduo seu prprio processo: ela deve ser feita CMMI
de nova tecnologia tem uma curva de em etapas bem-definidas e controladas, http://www.sei.cmu.edu/cmmi/
aprendizado: as pessoas precisam ser para que as organizaes, em prazos PMI Brasil
treinadas, cometem inicialmente muitos relativamente curtos, possam avaliar se http://www.pmi.org.br/

erros e, por isso, podem at se tornarem seu investimento est tendo o retorno

8 Engenharia de Software Magazine Alguns Fundamentos da Engenharia de Software


Desde 2004 Trazendo Teoria para a Prtica

Treinamento e Consultoria
em Engenharia de Software

Profissionais com ampla experincia prtica (Consusltores Certificados) e


acadmica (Professores Universitrios, Mestres e Doutores)

Know-how para implementar processos de software de acordo com modelos


de qualidade (MPS e CMMI) e maximizar o retorno de investimento

Certificados emitidos pela Kali Software


Cursos 2008: Inscries Abertas Aulas aos sbados na Zona Sul do Rio, prximo ao metr
Para outras localidades, por favor entre em contato

Maro | Abril Processos de Software com nfase em CMMI e MPS 32 horas


Teste de Software 16 horas

Maio |Junho Engenharia de Requisitos 32 horas


Gerncia de Configurao de Software 16 horas

Julho | Agosto Gerncia de Projetos de Software 32 horas


Projeto Orientado a Objetos com UML e Padres 32 horas

Confira as ementas, investementos e condies de pagamento: www.kalisoftware.com


Oferecemos tambm cursos de programao (Java, Java para Web e Ajax)
Inscrio e outras informaes: info@kalisoftware.com

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-

10 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

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-

Edio 01 Engenharia de Software Magazine 11


bre os riscos identificados, a partir da possvel obter um retrato mais preciso so definidas quais reas devem ser o
identificao do nvel de exposio de da distribuio e do impacto dos riscos. foco de uma avaliao mais rigorosa e
cada projeto. tambm realizado um A estratgia de diminuio de riscos da prxima iterao do ciclo de melhoria
estudo de classificao dos riscos no qual, utilizada nos planos elaborados durante contnua (qual o problema e como ele
baseando-se no relacionamento entre a a atividade de planejamento pode tentar pode ser solucionado). Em cada uma
exposio e conseqncia negativa do reduzir sensivelmente a probabilidade do das etapas, so realizadas as fases de
risco e o benefcio da oportunidade, de- risco se realizar, fazendo com que a con- Diagnstico (identificao dos riscos) e
termina-se quais sero eliminados, quais cretizao da perda seja algo muito difcil Estabelecimento (priorizao e definio
sero mitigados, quais sero aceitveis e de ocorrer. possvel tentar reduzir o dos planos de ao). Na etapa de Abran-
quais sero acompanhados. impacto do risco, fazendo com que a con- gncia o diagnstico mais abrangente e
Planejamento observa e determina seqncia da materializao dele seja to os planos de ao so menos detalhados e,
como e quando os riscos sero aborda- pequena que a sua ocorrncia pouco afe- na etapa de Profundidade, o diagnstico
dos ao longo do projeto. Comumente tar o resultado final do projeto. Por fim, mais especfico e os planos de ao so
so elaborados planos de mitigao, possvel reduzir tanto a probabilidade mais detalhados.
eliminao e acompanhamento de riscos quanto a severidade do risco, resultando O objetivo desta estratgia com-
que sero utilizados como base para a em um balanceamento razovel entre as plementar mtodos como SCAMPI,
gerncia de riscos. possveis perdas e a probabilidade de sua MA-MPS e ISO/IEC 15504, oferecendo
propostas de solues a alguns potenciais
problemas encontrados na aplicao des-
tes mtodos. Os princpios que guiam a
A eliminao total dos riscos associados a um projeto ou estratgia so:
Mapear resultados aos objetivos do
iniciativa um conceito utpico. negcio da organizao;
Minimizar o esforo de avaliao se-
gundo critrios de importncia definidos
pela prpria organizao;
Controle corresponde execuo e ao ocorrncia no projeto. Obter maior aproveitamento dos re-
acompanhamento dos planos elaborados A eliminao total dos riscos associados sultados gerados;
para o projeto. Os riscos identificados a um projeto ou iniciativa um conceito Utilizar duas dimenses de anlise:
so analisados constantemente para a utpico. Cada ao de identificao, conformidade e risco.
identificao do seu estado atual e atu- acompanhamento e controle (reduo,
alizao dos planos elaborados. Novos mitigao ou conteno de riscos) possui O primeiro princpio tem como objetivo
riscos podem ser identificados tambm. um custo associado, cabendo a cada indi- sanar uma caracterstica identificada
A gerncia de riscos utiliza como base o vduo ou organizao identificar o ponto na maioria dos mtodos de avaliao
conceito de exposio de risco. Para cada de equilbrio entre o nvel de exposio de processos de desenvolvimento. De
ameaa ou possvel fonte de problema aos riscos e o custo de reduo. Para cada forma geral, a aplicao destes mtodos
que possa causar perdas ao projeto, a projeto ou iniciativa deve-se determinar gera concluses ou resultados que esto
exposio (Exp) definida como o pro- um ndice aceitvel de exposio aos restritos ao nvel das diretivas do modelo
duto da probabilidade da perda ocorrer riscos, que seja suficiente para as carac- de maturidade ou norma de qualidade
(P) e do tamanho da perda (impacto I tersticas do projeto e tenha um custo que utilizada. Este fato faz com que o trabalho
no projeto, artefato, ativo ou qualquer no comprometa os resultados. de convencimento da alta gerncia (geral-
elemento que seja o foco da anlise de mente no tcnica) acerca da importncia
risco): Exp = P * I . A Estratgia de Avaliao dos investimentos em engenharia de
Na abordagem apresentada, o conceito A estratgia de avaliao que utiliza- software ou qualidade seja dificultado e,
de exposio foi estendido, permitindo remos se baseia no conceito de anlise consequentemente, o projeto de melhoria
uma melhor determinao do impacto de risco na verificao dos processos de processos fique ameaado devido
da concretizao de um risco. Para cada de uma organizao e compreende os falta de comprometimento dos patrocina-
ativo da organizao ou projeto avaliado conceitos apresentados na ISO/IEC 17799. dores. O objetivo destes princpios dar
(pessoa que participa do desenvolvimen- Esta estratgia recomenda a avaliao nfase s necessidades e prioridades da
to ou processos utilizados) determinado de uma equipe de desenvolvimento ou empresa, ao invs de impor uma estru-
um ndice de exposio balanceado. Este processo de software em duas etapas, tura que pode no ser a mais adequada a
ndice, denominado PSR, determina a onde a primeira (etapa de Abrangncia) ela. O mapeamento dos resultados do n-
exposio atravs da probabilidade da representa uma verificao mais abran- vel de TI para o nvel de negcios facilita
ocorrncia do risco (P), a severidade gente e menos rigorosa da implementao o seu entendimento, podendo orientar a
dessa ocorrncia para o projeto ou para dos modelos e normas de referncia, para empresa a como atingir suas metas.
a organizao (S) e a relevncia do ativo identificar quais so as reas crticas para O segundo e terceiro princpio resul-
da organizao (pessoa ou processo) na a organizao (onde est o problema). Na tado da constatao de um ponto fraco
qualidade do produto final. Dessa forma etapa seguinte (etapa de Profundidade) identificado nos mtodos mais utilizados.

12 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

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

Figura 1. Mapeamento dos ativos em objetivos do negcio da organizao

Edio 01 Engenharia de Software Magazine 13


negcio ou de TI) da organizao e pos- possui uma estrutura com os seguintes pode ser implementado para diminuir
sui uma relevncia que est diretamente elementos: a exposio da organizao aos riscos e
relacionada relevncia dos objetivos aos Nome do Controle indica uma carac- atingir a conformidade desejada com o
quais ele se relaciona. A Figura 1 ilustra terstica (boa prtica ou requisito) que modelo ou norma de referncia.
este conceito. deve estar presente no ativo para que o Referncias relacionam referncias
A cada ativo podem ser associados um controle seja considerado implementado bibliogrficas para que mais informaes
ou mais componentes, que represen- e seu risco associado seja eliminado. acerca do controle e da sua implementa-
tam caractersticas que sero avaliadas Justificativa define os termos e concei- o possam ser obtidas.
em um projeto de avaliao que esto tos necessrios para o entendimento do Probabilidade representa a probabili-
relacionadas participao deste ativo, controle e fornece uma justificativa que dade de uma ameaa se manifestar caso o
ou seja, ao adicionar um componente a explique porque aquele controle deve ser controle no esteja implementado na or-
um ativo estamos dizendo que ele um implementado. Neste elemento so apre- ganizao. Este elemento representado
coletor de dados que indicam o estado sentadas as vantagens que se obtm com por um nmero de 1 (menor) a 5 (maior
de implementao de um conjunto de a implementao do controle e as conse- probabilidade).
boas prticas na organizao. Um pro- qncias da sua no implementao. Severidade indica o grau do impacto
jeto de avaliao pode utilizar todos os Ameaas indicam quais elementos po- negativo na organizao, caso uma ou
componentes ou apenas um conjunto dem se aproveitar da no implementao mais ameaas se manifestem. Este ele-
que seja relevante para esta instncia de do controle para se manifestar e causar mento representado por um nmero
avaliao. Cada componente possui um danos ao negcio da organizao. de 1 (menor) a 5 (maior severidade).
checklist associado, composto por um ou Recomendao fornece razes e dados Agrupamento indica a qual agrupa-
mais controles, que representam os itens para a elaborao de um plano de ao mento o controle pertence. Os agrupa-
atmicos de verificao da implemen- aps a realizao da avaliao, atravs mentos so comuns a todos os checklists,
tao das boas prticas. Cada controle de uma sugesto de como o controle permitindo verificar o estado da imple-

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.

Este controle pode ser implementado atravs dos seguintes procedimentos:


- Disponibilizar as verses dos itens de configurao.
- Reportar os procedimentos para: (1) recuperar uma verso anterior, (2) verificar as revises de um item de configurao e (3) analisar as diferenas entre a verso anterior e a
atual. Essas informaes devem constar no plano de gerncia de configurao e nos procedimentos de controle de verses. Caso no estejam, sugere-se alter-los.
- Garantir a integridade e a disponibilidade dos repositrios de configuraes.
Recomendao Observao: A ferramenta de controle de verses deve facilitar a visualizao e recuperao das verses dos itens de configurao. Portanto, contm funcionalidades que facilitam
a implementao deste controle.

Exemplos de Artefatos Produzidos:


- Lista de verses de itens de configuraes
- Procedimentos para controle de verses

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

Agrupamento Gerncia de Configurao

Tabela 1. Exemplo de controle

14 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

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

Edio 01 Engenharia de Software Magazine 15


em servidores, funcionalidades de ferra- Organizacional, Desenvolvimento de anlise da atomicidade. Esta anlise tem
mentas, entre outros. Requisitos, Foco no Processo Organiza- como objetivo quebrar o item em ele-
cional, Garantia da Qualidade, Gerncia mentos de verificao atmicos, evitando
Como terceiro passo da customizao, de Configurao e Gerncia de Requisi- situaes de falha no preenchimento do
a estrutura para a gerao de checklists tos que representam as caractersticas controle (se existem dois ou mais pontos
foi elaborada. Esta atividade contou com especficas de cada rea de processo e o de verificao conectados por um ope-
a definio dos agrupamentos, ameaas agrupamento GG2 Processo Gerenciado rador e ou ou em um controle, como
e do escopo dos controles. representa as caractersticas genricas. respond-lo no caso de alguns estarem
Como o objetivo da avaliao obter Esto tambm ilustrados controles dos implementados e outras no?).
resultados mapeados nas reas de proces- agrupamentos de Gerncia de Configu- Finalmente, para uniformizar as anli-
so do modelo ou norma de qualidade de rao e Gerncia de Requisitos. Cada ses de risco e conformidade em processos
referncia, independente de quais ativos agrupamento contm um conjunto de de desenvolvimento realizados com a
foram utilizados para coletar os dados, foi controles. utilizao da ferramenta, foi elaborada
definido que os agrupamentos utilizados Com a estrutura de agrupamentos defi- uma lista de ameaas.
seriam as reas de processo. nida, os resultados das anlises de risco Tendo em vista que a grande maioria
Uma rea de processo possui carac- e conformidade podem ser consolidados dos mtodos de avaliao de processos
tersticas especficas, que determinam pelos agrupamentos, resultando em rela- de desenvolvimento (SCAMPI, MA-MPS,
a sua implementao, e caractersticas trios (exemplificados no prximo tpi- ISO/IEC 15504) utiliza uma estrutura
comuns a todas as reas, que indicam a co), que indicam risco e conformidade de de nveis para a classificao da imple-
sua capacidade. Para facilitar a utilizao cada rea de processo, e que deixam de mentao de uma diretiva do modelo ou
de modelos de maturidade que utilizam forma transparente quais tipos de ativo norma, utilizamos nesta soluo a mesma
o conceito de capacidade de processos foram utilizados. abordagem. Desta forma, cada controle
foi definido tambm que deve existir Para o escopo dos controles, foi definida pode ser classificado como Implemen-
um agrupamento para cada nvel de a utilizao do item de menor granulari- tado, No Implementado ou Parcial-
capacidade. dade do modelo ou norma de referncia. mente Implementado. Partindo do fato
A Figura 2 ilustra este conceito para o Como em muitos modelos e normas o de que um controle parcialmente imple-
CMMI-DEV 1.2, onde um Checklist para item de menor granularidade possui mais mentado no se encontra implementado,
o ativo desenvolvedor (papel) contm os de um item de verificao em seu escopo, foi determinado que, quando a anlise
agrupamentos Definio do Processo foi definida tambm a realizao de uma realizada indicasse que um controle no

Figura 2. Checklist com agrupamentos para caractersticas especficas e genricas

16 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

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

Escopo Organizacional Participantes Escopo do Modelo Durao (h/dias)

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

Tabela 2. Resumo do objetivo e escopo da avaliao

PSR Controles PSR Controles No ndice de Conformidade ndice de Segurana


rea de Processo PSR Total
Implementados Implementados (%) (%)
Avaliao e Melhoria do Processo 64 194 256 32,16 25,00

Definio do Processo Organizacional 160 96 256 85,13 62,50

Desenvolvimento de Requisitos 304 1328 1632 19,16 18,63

Gerncia de Configurao 388 1912 2300 25,34 12,52

Gerncia de Requisitos 72 1152 1224 0,00 5,88

Integrao do Produto 148 1364 1512 15,05 9,79

Medio e Anlise 248 264 512 76,18 48,44

Monitoramento e Controle de Projetos 580 780 1360 74,05 42,65

Planejamento de Projetos 1024 200 1224 78,15 83,66

Soluo Tcnica 2140 852 2992 67,12 71,52

Treinamento Organizacional 8 400 408 0,00 1,96

Validao 108 468 576 22,25 18,75

Verificao 316 1472 1788 18,15 17,67

Total 5560 10482 16040 67,15 53,04


Tabela 3. Resultados da avaliao em abrangncia por rea de Processo

Edio 01 Engenharia de Software Magazine 17


V is o G eral - rea P roc es s o

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)

R is c o Abs oluto - rea P roc es s o

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

0 500 1000 1500 2000 2500


PSR

PSR Implementado PSR No Implementado

Figura 4. Resultados da avaliao em Abrangncia Grfico de PSR por rea de Processo (Ordenao decrescente pelas reas de maior PSR)

18 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

R is c o Abs oluto - S etor 1

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

0 200 400 600 800 1000 1200


PSR

PSR Implementado PSR No Implementado

Figura 5. Resultados da avaliao em Abrangncia Grfico de PSR do Setor 1 por Processo (Ordenao decrescente pelas reas de maior PSR)

R is c o Abs oluto - S etor 2

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

0 200 400 600 800 1000 1200 1400


PSR

PSR Implementado PSR No Implementado

Figura 6. Resultados da avaliao em Abrangncia Grfico de PSR do Setor 2 por Processo (Ordenao decrescente pelas reas de maior PSR)

Edio 01 Engenharia de Software Magazine 19


o tm o menor ndice de Segurana Verificando as informaes apresen- mais relevantes esto relacionadas com:
indicando que poucas prticas destas tadas na Tabela 4 e nas Figuras 5 e 6, o
reas esto implementadas. As reas de conclui-se que na organizao, as reas Produto no atender s necessidades dos
Definio do Processo Organizacional, de Gerncia de Configurao, Verifi- clientes - Desenvolvimento de Requisitos,
Medio e Anlise, Monitoramento cao, Integrao do Produto, Desen- Verificao e Validao;
e Controle de Projetos e Gerncia de volvimento de Requisitos e Gerncia o
Configurao tm um ndice de Confor- de Requisitos tm maior probabilidade Requisitos incompletos, inconsistentes ou
midade relativamente maior que o ndice de manifestao dos riscos durante sua incorretos - Gerncia e o Desenvolvimen-
de Segurana indicando a implementao execuo. Entretanto, quando os dois to de Requisitos e Verificao;
de prticas pouco eficientes na mitigao setores so avaliados separadamente Software apresentar falhas Soluo Tc-
o
dos riscos. conclui-se que: nica, Integrao do Produto e Verificao;
De acordo com a Figura 4, pode-se o o
verificar que as reas de Gerncia de No Setor 1 as reas de Gerncia de Confi- Perder controle sobre as solicitaes de mu-
Configurao, Verificao, Integrao gurao, Soluo Tcnica, Integrao do dana - Gerncia de Requisitos e Gerncia
do Produto, Desenvolvimento de Re- Produto, Verificao, Desenvolvimento de Configurao.
quisitos e Gerncia de Requisitos tm de Requisitos e Gerncia de Requisitos
maior PSR No implementado indicando tm maior probabilidade de manifestao Como resultado final da avaliao,
maior probabilidade de manifestao dos dos riscos durante sua execuo, ou seja, definiu-se um plano priorizando aes
riscos durante sua execuo. Ao contr- a rea de Soluo Tcnica tem um peso de melhoria nas reas de Gerncia de
rio, as reas de Definio do Processo importante nos riscos das atividades do Configurao, Desenvolvimento de
Organizacional, Avaliao e Melhoria Setor 1; Requisitos e Gerncia de Requisitos,
do Processo, Planejamento de Projetos o que apresentaram um alto PSR no im-
e Medio e Anlise tm menor PSR No Setor 2, as reas de Verificao, De- plementado, combinado com um baixo
no implementado, indicando menor senvolvimento de Requisitos, Gerncia ndice de segurana. Para um melhor
probabilidade de manifestao dos riscos de Configurao, Integrao do Produto detalhamento das aes de melhoria foi
durante sua execuo. e Gerncia de Requisitos tm maior sugerida tambm a realizao de uma
As reas de Soluo Tcnica, Planeja- probabilidade de manifestao dos riscos avaliao em Profundidade para cada
mento de Projetos e Monitoramento e durante sua execuo, ou seja, o mesmo uma das trs reas mencionadas.
Controle de Projetos tm maior PSR im- resultado da organizao com a inverso Em um segundo momento, foram su-
plementado, indicando a implementao de algumas posies. geridas aes de melhoria para as reas
de prticas que evitaram a manifestao de Verificao e Integrao do Produto,
de um maior nmero de riscos. Pelo apresentado na Figura 7, as ameaas devido ao alto PSR no implementado

Setor 1 Setor 2

PSR Controles PSR Controles No PSR Controles PSR Controles No


rea de Processo PSR Total PSR Total
Implementados Implementados Implementados Implementados

Avaliao e Melhoria do Processo 30 98 128 34 94 128

Definio do Processo Organizacional 82 46 128 78 50 128

Desenvolvimento de Requisitos 272 544 816 32 784 816

Gerncia de Configurao 16 1134 1150 372 778 1150

Gerncia de Requisitos 72 540 612 0 612 612

Integrao do Produto 70 686 756 78 678 756

Medio e Anlise 82 174 256 166 90 256

Monitoramento e Controle de Projetos 316 364 680 264 416 680

Planejamento de Projetos 518 94 612 506 106 612

Soluo Tcnica 796 700 1496 1244 252 1496

Treinamento Organizacional 4 200 204 4 200 204

Validao 84 204 288 24 264 288

Verificao 256 638 894 60 834 894


2598 5422 8020 2862 5158 8020
Tabela 4. Resultados da avaliao em Abrangncia por Setor e rea de Processo

20 Engenharia de Software Magazine Melhorando Processos Atravs da Anlise de Risco e Conformidade


proc esso

e o estabelecimento de uma poltica


de Treinamento Organizacional, pois
Amea a s
apesar do PSR desta rea ser menor, o Produto no atender s
ndice de segurana muito baixo. Da necessidades dos clientes
mesma forma foi sugerida uma avaliao 10,06% Requisitos incompletos,
em Profundidade para cada uma das trs 19,42% inconsistentes ou incorretos
4,54%
reas mencionadas. Software apresentar falhas

Foram tambm sugeridas aes de me- 4,75%


Perder controle sobre as
lhoria para o Setor 1 na rea de Soluo solicitaes de mudana
4,92%
Tcnica. Elaborar produtos de baixa
manutenibilidade
Concluso 7,71% 17,99% Descumprir oramento ou
prazos estimados
Neste artigo apresentamos uma aborda-
Baixa eficincia na execuo
gem que define um critrio concreto para
dos processos
priorizao de melhorias a serem realiza- 13,51% Dificuldades de melhoria na
das nos processos de desenvolvimento de 17,10% qualidade dos projetos
software de uma organizao. Este critrio Demais Ameaas
utiliza a anlise de risco como um instru-
mento de priorizao das aes que tm Figura 7. Resultados da avaliao em Abrangncia Ameaas
maior eficincia na mitigao das ameaas
identificadas durante o diagnstico da
situao atual. A relevncia das ameaas Referncias
definida com base no atendimento aos BOEHM, B. W. Software Risk Management: Principles and Practices. IEEE Software, v. 8(1), p. 32-41, jan. 1991.
objetivos de negcio da organizao e na BOEHM, B. W.; DEMARCO, T. Software Risk Management. IEEE Software, v. 14(3), p. 17-19, mai./jun. 1997.
conformidade com modelos e normas de CHRISSIS, M.B.; KONRAD, M.; SHRUM, S. CMMI: Guidelines for Process Integration and Product Improvement. Boston: Addison-Wesley, 2003.
qualidade de software. DEMARCO, T; LISTER, T. Waltzing with Bears: Managing Risks on Software Projects. New York: Dorset House Publishing, 2003.
GREMBA, J.;MYERS, C. The IDEALSM Model: A Practical Guide for Improvement. 1997. Disponvel em <http://www.sei.cmu.edu/
ideal/ideal.bridge.html>. Acesso em 18 nov.2006.
ISO/IEC. Guide 73:2002. Risk management -- Vocabulary -- Guidelines for use in standards, Reference No. ISO/IEC Guide 73:2002(E).
____. International Standard 12207. Information Technology Software Life Cycle Processes, Reference No. ISO/IEC 12207: 1995(E):
First Edition 1995.
____. International Standard 15504. Information Technology Proces Assessment, Reference No. ISO/IEC 15504:2004(E).
____. International Standard 17799. Information Technology Security Technics - Code of practice for information security
management, Reference No. ISO/IEC 17799:2005(E): Second Edition 2005.
____. Technical Report 13335 1.Information technology - Guidelines for the management of IT Security - Part 1: Concepts and
models for IT Security, Reference No. ISO/IEC TR 13335: 1996(E).
IT GOVERNANCE INSTITUTE (ITGI). Control Objectives for Information and Related Technology (COBIT). V4.0, 2005. Disponvel em
<http://www.itgi.org/>. Acesso em 25 fev 2007.
POULIN, A. Reducing Risk with Software Process Improvement. Boca Raton: Auerbach Publications, 2005.
SOFTEX.. MPS.BR Melhoria de Processo do Software Brasileiro. Guia de Avaliao. Verso 1.0, 2006a.
____. MPS.BR Melhoria de Processo do Software Brasileiro. Guia Geral. Verso 1.1, 2006b.
SOFTWARE ENGINEERING INSTITUTE (SEI). Appraisal Requirements for CMMI, Version 1.2 (ARC, V1.2). Software Engineering Institute,
Carnegie Mellon University, Pittsburgh, Pennsylvania, 2006a
____. CMMI for Development, Version 1.2. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania,
2006b.
____. Standard CMMI Appraisal Method for Process Improvement (SCAMPI[SM]) A, Version 1.2: Method Definition Document.
Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, 2006c

Edio 01 Engenharia de Software Magazine 21


Agilidade ou Controle Operacional? Os dois!

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.

22 Engenharia de Software Magazine Agilidade ou Controle Operacional? Os dois!


proc esso

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.

Entendendo o Momento Atual


crescente o movimento de profissio- Atrs da busca pelo melhor modelo, muitos executivos
nais e empresas interessadas na adoo
dos chamados modelos geis, como uma encontram-se na situao delicada de decidir qual a
opo aos modelos controlados, liderados
mundialmente pelo CMMI e abordagens estratgia a ser seguida pela empresa.
equivalentes.
Existem inmeros debates sobre as
vantagens e desvantagens dos dois mo-
delos, onde profissionais e especialistas adoo gradual de novos conceitos que delos controlados priorizam o controle
buscam estabelecer critrios que definem poderiam dar mais velocidade TI, cha- operacional.
em quais contextos uma abordagem deve mado aqui de Modelo gil. Porm, interessante ressaltar que abor-
ou no ser empregada. Este modelo de gesto baseia-se em dagens geis possuem seus mecanismos
Atrs da busca pelo melhor modelo, indicadores objetivos, no em conceitos de controle, da mesma forma que proces-
muitos executivos encontram-se na situ- ou abordagens de trabalho. Estes indica- sos controlados podem ser to ou mais
ao delicada de decidir qual a estratgia dores monitoram a agilidade e o controle rpidos que as abordagens geis.
a ser seguida pela empresa. Muitos j operacional dos projetos, possibilitando
iniciaram o processo de adequao aos acompanhar o desempenho de todas suas O que podemos aprender com os
padres CMMI e agora estas aes pas- equipes, independente de suas caracters- Modelos Controlados
sam a ser questionadas por profissionais ticas e restries. O propsito inicial do CMM foi estrutu-
que defendem as abordagens geis. Antes de abordarmos este modelo de rar um modelo de avaliao que permitis-
Para piorar, os executivos deparam- gesto de TI, seria conveniente explorar- se estabelecer um nvel de risco associado
se com uma TI dividida, onde equipes mos um pouco mais sobre as abordagens ao grau de maturidade de cada organi-
trabalham juntas mais acreditam em controladas e geis, para compreen- zao. Seu conceito baseia-se no fato de
abordagens diferentes. Inevitavelmente, dermos melhor como combinar estes que as organizaes que no controlam
o boicote entre as equipes ocorre de uma elementos nesta proposta. sua cadeia produtiva possuem maiores
forma silenciosa, alimentando mais a Na Tabela 1 apresentado um pequeno chances de fracassarem na conduo de
rivalidade entre aqueles que defendem resumo das principais diferenas entres seus projetos, pois tero menor controle
seus pontos de vista. as duas abordagens. sobre os fatores que influenciam negati-
Foi neste momento que tomei consci- vamente a execuo dos trabalhos.

Caractersticas Modelo gil Modelo Controlado


Premissa Fundamental nfase na Agilidade nfase no Controle Operacional
Conduo dos Trabalhos Baseado em Processos Empricos Baseado em Processos Formais
Escopo da Soluo Centradas no Desenvolvimento Englobam todas as Disciplinas
Profundidade da Abordagem Definir apenas o qu deve ser feito Definir o qu e como deve ser feito
Foco dos Profissionais Atuao Local (por projeto) Atuao Global (por disciplina)
Abordagem Estratgica Atender melhor o Curto Prazo Atender melhor o Longo Prazo
Palavras Chaves Pessoas, FeedBack, Adaptao Maturidade, Estrutura, Padronizao
Modelos de Implementao XP, SCRUM, FDD, APM, Lean, Crystal e DSDM CMMI, RUP, ITIL, ISO, PMI, MPS.br
Frase que resume sua Filosofia Aproxime sua equipe do Cliente, simplifique o projeto e aumento sua produtividade No podemos melhorar o que no podemos controlar
Tabela 1. Principais diferenas entre Modelos geis e Controlados

Edio 01 Engenharia de Software Magazine 23


A criao do modelo CMM foi gerada de contemplar exclusivamente o software os novos paradigmas para as empresas
a partir da necessidade do Governo dos que ser disponibilizado em produo, fornecedoras de software, onde a entre-
Estados Unidos. O objetivo foi de acelerar mas incorpora todos os elementos geren- ga rpida do software encomendado o
seus processos de terceirizao na cons- ciais que permitam manter a evoluo do principal objetivo desta abordagem.
truo de softwares, sem que ocorresse produto ao longo do tempo. Os modelos geis surgem como uma
um descontrole em relao a prazos, cus- Para as empresas que adotam o modelo reao natural expanso do CMMI no
tos, escopo e qualidade dos projetos. controlado, quanto mais controles opera- mercado mundial, atingindo no apenas
Sendo a terceirizao uma deciso ine- cionais forem incorporados, maior ser o as grandes organizaes, mas tambm as
vitvel, seria necessrio estabelecer um valor agregado do projeto, proporcionan- pequenas e mdias empresas de TI. Dessa
modelo que mitigasse os riscos de uma do uma vantagem competitiva em relao forma, estas passam tambm a conviver
m contratao, atravs de critrios obje- s demais organizaes. com a presso de organizarem toda sua
tivos que comprovassem a qualificao Atualmente, o CMM foi remodelado cadeia produtiva, sob o risco de serem
das empresas. para o chamado CMMI. Uma viso mais simplesmente excludos do mercado.
As constantes fuses corporativas
favoreceram o surgimento das mega-
corporaes globalizadas, que necessitam
As empresas que possuem maior nvel de maturidade de fornecedores que consigam garantir
nveis de servios em escalas nunca antes
organizacional sinalizam possuir maior controle operacio- imaginadas. Sem possuir tantos recursos
financeiros disponveis e prevendo uma
nal sobre seus projetos. dificuldade de adequar-se aos padres
estabelecidos pelo mercado mundial, as
pequenas e mdias empresas observam
Desta forma, todos os fornecedores moderna e ampliada de avaliao das suas oportunidades no mercado serem
deveriam ser submetidos ao processo de organizaes de TI, de modo a incorporar gradativamente reduzidas.
avaliao CMM, de forma a mensurar novos temas e oferecer um novo formato Neste cenrio, a abordagem gil torna-
seu nvel de maturidade organizacional de avaliao, baseado nas disciplinas. se uma interessante estratgia de sobrevi-
e atestar suas condies mnimas para Isto possibilita que empresas especiali- vncia das pequenas e mdias organiza-
atender determinados projetos em con- zadas em determinados servios de TI es que no conseguem adequar-se aos
corrncia. (testes de software, gerenciamento de rgidos padres de excelncia estabele-
As empresas que possuem maior nvel projetos, gerenciamento de requisitos, cidos pelo mercado mundial. Para isto,
de maturidade organizacional sinalizam gerenciamento de ambientes), possam necessrio convencer o mercado de que
possuir maior controle operacional sobre ser avaliados exclusivamente nos itens seguir os mtodos tradicionais torna-
seus projetos e estaro em melhores de seu maior domnio. ro suas empresas mais lentas e caras, que
condies de oferecer seus servios que Sempre bom afirmar que o CMM a rea de TI segue um processo evolutivo
as demais. Fornecedores bem avaliados um modelo de avaliao, pois estabelece diferente de outros setores da economia,
tero acesso a participar de um maior apenas os pontos de controle que devero e que adotar padres industriais um
nmero de projetos, aumentando suas estar contemplados nos procedimentos de grande equvoco estratgico.
chances de incrementar suas receitas trabalho das empresas. Cada organizao De certa forma, os modelos geis res-
operacionais. Bom para os clientes e tem a liberdade de estabelecer e modelar suscitam a idia da rea de desenvolvi-
melhor ainda para os fornecedores que seus prprios processos internos. mento como o centro da organizao TI.
investiram nos controles operacionais. Portanto, apesar do CMM levar inevita- Na abordagem gil, tudo passa a girar
Este modelo demonstrou tanto sucesso velmente as organizaes a trabalharem em torno dos desenvolvedores, tudo
que foi adotado por vrias outras orga- por processos, seria errado dizer que o organizado para dar poder de deciso a
nizaes americanas, que basearam seus CMM um processo pesado ou burocr- estes profissionais que iro encontrar os
processos de terceirizao de servios tico. Na verdade, sero as empresas que meios mais adequados para implementar
nos nveis de maturidade atestados pela determinaro seus processos internos, as mudanas no cdigo-fonte e gerar os
avaliao CMM. Com um modelo esta- podendo criar esquemas complicados, benefcios esperados no projeto, no me-
belecido, a terceirizao foi incentivada e pesados, rgidos e burocrticos, no sen- nor prazo e custo possvel.
intensificada em todo o mundo, tornando do necessariamente culpa do CMM, mas As abordagens geis chamam ateno
extremamente popular o CMM como de sua incorreta implementao. de muitas empresas e profissionais pela
modelo de avaliao. sua simplicidade de implementao, pois
As empresas que adotam o modelo con- O que podemos aprender com os suas regras so simples de serem segui-
trolado buscam estabelecer uma relao Modelos geis das. O sucesso da adoo do modelo gil
duradoura com seus clientes e fornece- Os modelos geis fazem parte de um est intimamente ligado ao comprometi-
dores, objetivando sempre ampliar seus movimento global de profissionais, em- mento dos profissionais, pois sua forma
controles operacionais e repassar este va- presas e instituies, chamado de Ma- de conduo dos trabalhos possui um alto
lor adicional aos clientes. O projeto deixa nifesto gil, que buscam estabelecer grau de informalidade.

24 Engenharia de Software Magazine Agilidade ou Controle Operacional? Os dois!


proc esso

A abordagem gil possui um discurso


leve, pautado na reduo drstica da Nos modelos geis, o valor de uma organizao medida
complexidade dos projetos de desen-
volvimento e de toda a estrutura da TI, atravs de sua capacidade em realizar entregas rpidas a
reduzindo em poucos elementos geren-
civeis e trabalhando com profissionais um baixo custo operacional.
com atuao multidisciplinar.
Sua filosofia refora e incentiva a atua-
o livre dos profissionais para decidirem que os projetos sero efetivamente guia- troles operacionais que uma empresa
como ser a melhor forma de implemen- dos por esta filosofia. Isto significa que efetivamente consegue gerenciar em
tao, apesar de existirem poucas, mas qualquer empresa pode pleitear o ttulo seus projetos, possibilitando que esta
rgidas regras de controle sobre o projeto. de empresa gil, sem necessariamente se- seja auditada e facilmente avaliada nestes
Incentiva a simplicidade do software e guir esta abordagem em seus projetos. requisitos. Quanto mais controles forem
uma estrutura mnima para mant-lo em Mesmo que no futuro exista um mo- efetivamente gerenciados, maior ser o
funcionamento, adicionando flexibilida- delo de avaliao para empresas geis, a valor da organizao no mercado.
de e eliminando complexidades ao longo informalidade do modelo tornar qual- Portanto, as empresas estaro sempre
de todo o ciclo de vida do projeto. quer avaliao altamente subjetiva, sem buscando investir mais em controles
Desta maneira, a abordagem gil torna- quaisquer evidncias de que determina- operacionais para garantir maiores opor-
se ento uma modelo vivel de atuao das aes esto realmente acontecendo tunidades de mercado trata-se de uma
no mercado mundial. Possibilitando dentro da filosofia gil. estratgia organizacional sustentvel de
criar um novo nicho de oportunidades, As certificaes existentes apenas ates- longo prazo.
atraindo investidores que estaro dispos- tam que determinados profissionais esto Nos modelos geis, o valor de uma
tos a enfrentar os riscos e as condies aptos a aplicar as tcnicas estabelecidas organizao medida atravs de sua
impostas pelo modelo gil. pelos modelos geis. Porm, no existem capacidade em realizar entregas rpi-
garantias que os mesmos as aplicam das a um baixo custo operacional. Para
Os pontos fracos dos Modelos geis adequadamente dentro dos projetos das destacarem-se no mercado, as empresas
O modelo gil possui algumas fraque- empresas, ou mesmo se esta filosofia iro concorrer de forma cada vez mais
zas que impedem sua adoo de forma seguida como uma estratgia empresarial agressiva, oferecendo prazos e custos
corporativa e podem comprometer sua ou apenas uma iniciativa isolada de uma sucessivamente mais apertados.
credibilidade e implementao no mer- equipe dentro da empresa, acentuando No mdio e longo prazo, a lucratividade
cado mundial. ainda mais a fragilidade deste modelo. dos projetos ser gradualmente reduzida
e a presso no aumento da produtividade
Falta de uma avaliao para atestar empresas Foco excessivo nos prazos e custos inviabiliza o das equipes ser cada vez maior. Alm
com abordagens geis modelo financeiro de longo prazo disso, os salrios devero ser reduzidos
A abordagem gil no possui um mode- Nos modelos controlados, o valor da para manter uma margem de lucro que
lo de avaliao que garanta ao mercado organizao medida pelo total de con- compense as organizaes seguirem este

Figura 1. Demonstrao de como agilidade e controle so colocados em lados opostos

Edio 01 Engenharia de Software Magazine 25


modelo. H cada novo projeto, as empre- software (ver Figura 1). seus controles gerenciais, aumentaram
sas estaro trabalhando mais prximas Porm, ser que este modelo proposto a incidncia de defeitos em produo
de seu limite operacional e financeiro, de causa-efeito realmente consistente? e o nvel de retrabalho em toda cadeia
devendo necessariamente rever sua estra- Como podemos atestar que estamos tra- produtiva, reduzindo sua lucratividade
tgia de posicionamento no mercado. balhando com uma premissa verdadeira? e participao no mercado.
Portanto, as abordagens geis possuem Ser que estamos condenados a escolher Organizaes que buscaram apenas o
uma inconsistncia estratgica que impe- entre uma ou outra abordagem ou existe controle operacional mantiveram nveis
dem que suas organizaes sejam viveis uma forma diferente de combinarmos de qualidade e excelncia compatveis
financeiramente no longo prazo. Isto no estes dois modelos e potencializarmos com as exigncias do mercado, mas com
significa que os princpios geis no so suas vantagens? prazos de entregas inviveis para uma
economia cada vez mais dinmica. Foram
ento surpreendidas por organizaes
mais geis que ofereciam os mesmos con-
Para a maioria das empresas e profissionais, agilidade e troles operacionais, com prazos e custos
muito mais agressivos.
controle operacional so indicadores inversamente pro- Portanto, todos os setores da economia
que sobreviveram e prosperaram, con-
porcionais, estabelecendo um equivocado modelo de seguiram combinar agilidade e controle
operacional em suas operaes. Provando
causa-efeito. que estes dois elementos formam a ver-
dadeira base de sucesso das organizaes
do futuro.
bons nem interessantes, porm demons- Existe uma premissa errada na rea
tram apenas que, a nfase exclusiva na de TI, onde estabelecemos que, para Combinando Agilidade e Controle
agilidade pode levar as organizaes a tornarmos geis, precisamos abdicar dos Operacional ao Extremo
uma estratgia equivocada. controles operacionais para dar maior Para as Organizaes TI de Alto De-
ateno aos elementos mais essenciais sempenho, combinar agilidade e con-
O Paradigma da Incompatibilidade dos projetos de software. Observando trole operacional fundamental para a
dos Modelos atentamente o comportamento dos construo de uma empresa altamente
Para a maioria das empresas e profissio- demais setores da economia, estes dois competitiva, que atenda as exigncias de
nais, agilidade e controle operacional so elementos so empregados intensamente mercado de curto, mdio e longo prazo.
indicadores inversamente proporcionais, como estratgia em mercados altamente Acreditar que a rea de TI deve se-
estabelecendo um equivocado modelo de competitivos. guir um modelo diferente dos demais
causa-efeito. Isto conduz a uma deciso Seja na indstria (com a produo de setores econmicos alienar-se de um
binria entre adotar um modelo ou outro, carros, avies e navios), na agricultura e movimento global, onde a Tecnologia
impossibilitando aplicar de forma com- pecuria (produo de soja, milho e gado) da Informao atualmente o grande
binada estes dois elementos. ou na medicina (procedimentos cirrgi- gargalo operacional de todos os setores
Adotando este modelo, estabelecemos cos, exames e diagnsticos), a produti- da economia. Ser atravs dela, que os
que as organizaes com maior nvel de vidade destes setores vem aumentando saltos de produtividade e qualidade sero
controle operacional, necessariamente consideravelmente ao longo dos anos. Ao conquistados e superados.
possuem uma limitada capacidade de mesmo tempo, estes produtos e servios O mais interessante da Abordagem
responder com agilidade as suas de- tornaram-se mais sofisticados, exigindo Combinada (gil e controlado) que a
mandas de mercado. A razo deste pen- complexos controles operacionais que ga- pista para a construo deste modelo
samento que o gerenciamento destes rantam a qualidade e nveis de excelncia foi sugerida por Kent Beck no seu livro
controles consomem tempo e energia dos cada vez maiores. Extreme Programing Explained: em-
profissionais, levando uma reduo da Na verdade, estas organizaes inves- brance change (um excelente livro), po-
produtividade (ver Figura 1). tiram pesadamente na automao de rm aplicada em um contexto diferente,
Da mesma maneira, uma organizao processos industriais e administrativos, resultando na proposta da filosofia XP
gil deveria reduzir drasticamente seus acelerando drasticamente seu modelo de (eXtreme Programing), umas das abor-
processos e concentrar-se exclusivamente gesto de fornecimento de servios. Para dagens geis citadas.
na produo do software, obtendo uma isso, empregaram todos os modernos Kent Beck mapeou o que considerava ser
agilidade nunca atingida nas organiza- recursos tecnolgicos disponveis para as melhores prticas para a construo de
es com muitos controles operacionais. aprimorar seus nveis de agilidade e um software e idealizou um modelo onde
A razo deste abrupto aumento de produ- controle operacional. estes controles seriam representados por
tividade estaria ligada ao fato de que, com Organizaes que buscaram apenas botes individuais, nos quais poderamos
o tempo disponibilizado pela ausncia agilidade, alcanaram rapidamente seu regular sua intensidade de utilizao (m-
dos controles, os profissionais poderiam limite operacional. Com o aumento do nimo e mximo). Ento jogou o seguinte
dedicar-se ainda mais na construo do volume de negcios e a deficincia de desafio O que aconteceria a uma equipe

26 Engenharia de Software Magazine Agilidade ou Controle Operacional? Os dois!


proc esso

de desenvolvimento se girssemos todos os


botes de boas prticas ao mximo? Deste
conceito derivamos o que foi estabelecido
como modelos extremos, onde as boas
prticas de trabalho devem ser levadas ao
seu limite, gerando ento o mximo da pro-
dutividade e desempenho das equipes.
Adotando a mesma abstrao proposta
por Kent Beck, podemos visualizar um
painel onde existam dois botes indivi-
duais, representando respectivamente
a agilidade e controle operacional que
uma empresa deseja obter. Seguindo
este modelo, podemos perguntar: O que
aconteceria com a organizao se gi-
rssemos estes dois botes ao mximo?
Figura 2. Explorando ao mximo agilidade e controle operacional nos processos TI
(ver Figura 2)
Teramos uma organizao TI altamente
competitiva, capaz de oferecer produtos
e servios de TI em prazos e custos cada
vez mais reduzidos, sem comprometer Isto significa que, as organizaes de- direo e abdicarmos das demais alter-
a qualidade e a confiabilidade de suas vem implementar medidas que aumen- nativas existentes.
entregas. tem a produtividade das equipes antes de At mesmo experientes executivos
introduzir novos controles, garantindo sentem-se pressionados em modificar
Implementando o Modelo um perfeito balanceamento entre os dois suas estratgias, mesmo quando no se
Combinado indicadores. encontram plenamente convencidos dos
Com a adoo do Modelo Combinado, Neste momento, as abordagens geis resultados prometidos pelas inovaes.
estaremos alinhando a estratgia da TI a traro considerveis contribuies para Mais do que abordagens, precisamos
todos os demais setores da economia de estabelecer mecanismos de resposta mais de uma viso de longo prazo, que oriente
mercado, que entendem como necessrio flexveis, oferecendo uma oportunidade nossa organizao ao futuro, fornecendo
serem controlados e geis simultanea- de implementao gradual dos conceitos elementos gerenciais simples que guiem
mente. geis no ambiente de TI. e avaliem nossas equipes de TI.
A abordagem do Modelo Combinado Desta forma, o Modelo Combinado No importa se seguiremos
no to diferente da abordagem do requer uma maior conscincia de seus uma linha mais prxima ao CMMI ou se
modelo controlado, baseando-se em pro- profissionais, exigindo um Plano de estaremos mais aderentes ao Manifesto
cessos e suportado por robustos controles Inovao Corporativa que contemplem gil. Quebrar recordes de produtividade
operacionais estabelecidos nos moldes inovaes que conciliem aumento de e qualidade so os grandes desafios das
do CMMI. produtividade e controle operacional em organizaes de TI do futuro.
A grande mudana do Modelo Combina- todos os projetos. Portanto, independente do t-
do definir como diretriz geral que, qual- tulo que daremos aos nossos processos
quer inovao corporativa a ser planejada Concluso (gil, Adaptvel, Clssico, Controlado,
na cadeia produtiva TI, quando acarretar No futuro, novas tendncias e filoso- Formal, Extremo, Burocrtico), o que ga-
em perda de agilidade, ser antecipada- fias iro continuamente balanar nossas rante que estamos no caminho certo ser
mente compensada por uma inovao convices de como devemos conduzir nossa capacidade de sermos mais geis e
que recupere ou aprimore o patamar de nossos projetos. Sempre seremos ques- controlados ao longo do tempo - esta a
produtividade das equipes de trabalho. tionados por escolher uma determinada proposta do Modelo Combinado.

Edio 01 Engenharia de Software Magazine 27


O processo unificado integrado ao
desenvolvimento Web

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

28 Engenharia de Software Magazine O processo unificado integrado ao desenvolvimento Web


proc esso

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

Edio 01 Engenharia de Software Magazine 29


intuito de que estes segmentos de cdigos mente, no final da fase de transio, j do que est documentado e do que est
possam ser aproveitados mais tarde por se pode observar a completa migrao e sendo implementado. A atividade de
outros sistemas. configurao do sistema no ambiente de gerenciamento de projeto constante
Testes: Neste fluxo, um plano de teste produo do cliente. durante todo o ciclo de vida do software,
deve ser elaborado, definindo e identifi- Gerncia de configurao e mudana: elaborando reunies com RTF (Reviso
cando qual procedimento e quais tipos durante esse fluxo de trabalho que Tcnica Formal), garantindo a correta
de testes sero realizados. Esse plano so controlados todos os artefatos do mudana dos artefatos, alm da necessi-
poder ser alterado de acordo com a me- projeto, bem como suas verses. Antes dade de manter um bom relacionamento
lhor definio dos requisitos do sistema. de realizar uma mudana, deve-se fazer com o cliente.
Ele tambm poder ser utilizado durante uma anlise em relao ao que deve ser Ambiente: Esse fluxo representa o
todo o projeto, sendo modificado a cada modificado e saber em quais artefatos e ambiente de trabalho da empresa que de-
iterao, mostrando a situao do execu- reas da implementao isso ir afetar. senvolver o projeto. Ele pode ser caracte-
tvel que foi entregue ao cliente. Nas fases Um bom controle de mudana crucial rizado pelo tipo de plataforma, pela rede,
pela organizao dos diretrios no qual
ficaro os artefatos e os cdigos fonte, pelo
sistema de backup etc. Pode-se perceber
No menos importante, a alterao da documenta- na Figura 1 que no final de cada iterao,
tm-se ajustes no ambiente. Esses ajustes
o deve estar completamente condizente com o que foi podem ser do tipo: criao de diretrios, o
backup das verses do software, etc.
implementado.
As iteraes, nada mais so do que mar-
cos durante a construo de um sistema
de concepo e de elaborao tm-se os para garantir o sucesso e a qualidade do utilizando o Processo Unificado. Um
testes de mdulos e na fase de construo projeto. medida que o projeto entra aspecto muito importante que o nmero
tm-se os testes de integrao. O nmero na fase de construo, a dificuldade no de iteraes deve ser definido logo no
de testes de integrao poder se repetir controle de mudana e gerncia de con- incio de cada projeto (elas podem variar
de acordo com a quantidade de alteraes figurao aumenta. Isso ocorre porque o de nmero de acordo com o tamanho do
nos requisitos do sistema. projeto est maior, com mais requisitos sistema a ser desenvolvido). Uma iterao
Implantao: Descreve-se nesse fluxo implementados e com maiores chances normalmente marcada pela entrega de
de trabalho, a instalao do sistema no de que uma alterao possa afetar outras uma verso executvel do sistema e uma
ambiente do cliente. Durante toda a reas do sistema. Ter rastreabilidade e sa- reunio formalizada atravs de uma RTF
fase de elaborao, at o meio da fase ber relacionar os requisitos uma tarefa (Reviso Tcnica Formal). Em geral, o re-
de construo, um simples documento importante do engenheiro de software. sultado de uma iterao um incremento
especificando algumas caractersticas do Aps uma modificao, necessita-se de para o sistema. Entende-se tambm que
ambiente do cliente poder ser realizado. novos testes em vrias reas do sistema, uma iterao como se fosse uma foto
Este artefato pode conter, por exemplo, garantindo que a mudana foi implemen- tirada da aplicao num determinado
especificaes tcnicas sobre a infra- tada corretamente. No menos impor- instante. um marco indicando o final
estrutura de rede e de sistemas suportada tante, a alterao da documentao deve de um mini-projeto.
pela empresa contratante. Alm disso, estar completamente condizente com o
algumas dicas de instalao podem ser que foi implementado. Artefatos especficos utilizados no
acrescentadas nesse artefato de forma a Gerenciamento de projeto: Nesse fluxo desenvolvimento de projetos Web
reduzir mais tarde, o nmero de erros de se escolhe os artefatos a serem utilizados D urante a construo de aplicaes
instalao e consequentemente o tempo no desenvolvimento da aplicao, de web pode-se utilizar inmeros tipos de
de testes. No final da fase de construo, acordo com o tipo do projeto e o enten- artefatos. Sero citados a seguir, alguns
inicia-se a migrao do sistema para o dimento do cliente. O gerente deve ter documentos que podero ser utilizados
ambiente de testes do cliente. Posterior- uma viso clara do que o cliente deseja, no Processo Unificado.

Figura 2. Planilha de requisitos

30 Engenharia de Software Magazine O processo unificado integrado ao desenvolvimento Web


proc esso

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 Produto: So aqueles especficos do comportamento do produto. Dentro dele, existem:

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 de implementao: envolve linguagens de programao, banco de dados, etc.

Requisitos de padres: envolve os padres a serem usados.

Requisitos Externos: So aqueles derivados de fatores externos ao sistema e ao seu processo de desenvolvimento.

Requisitos de interoperabilidade: definio de como o sistema interage com outros sistemas.

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.

Tabela 1. Tipos de requisitos

Edio 01 Engenharia de Software Magazine 31


padro de Web Content. Normalmente FDD (Wireframes) com a estrutura do site, colocando a in-
cada empresa que desenvolve aplicaes O FDD (Functional Design Document) formao no seu respectivo local. Alm
web possui o seu. um conjunto de Wireframes onde cada disso, um FDD bem organizado pode
O Web Content formado de acordo um representa uma pgina da aplicao. oferecer fortes solues para os proble-
com os requisitos do sistema e entende- Um Wireframe uma maquete da pgina mas de usabilidade. Outra caracterstica
se que o mesmo pertence ao fluxo SCM Web que se dirige somente disposio importante deste artefato que ele pode
(Software Configured Management) de elementos, no esttica. Ele o informar onde encontrar o contedo para
do Processo Unificado. Na Figura 4 esboo de como seria uma pgina, des- aquela respectiva pgina dentro do Web
exemplifica-se como seria uma pgina prezando cores e imagens. A vantagem Content.
de um Web Content. em utilizar um Wireframe como guia A desvantagem do FDD que ele no
muito importante lembrar que esse para implementao, que ele trabalha apresenta uma soluo grfica para o
artefato formado no s de uma, mas representando o fluxo da informao projeto, apesar de ter um papel muito
vrias sees, onde cada uma indica o estabelecido anteriormente no Projeto importante em conduzir a proposta de
contedo de cada pgina do site. Com Linear. Ele pode ser desenvolvido pelo layout a ser construda pelo designer. Em
o Web Content, o fornecedor consegue arquiteto de informao. relao ao desenvolvimento de um Web
agrupar e gerenciar melhor o contedo O uso de um FDD estabelece uma forte Site, o FDD torna-se um dos artefatos
de um site. ligao da arquitetura da informao mais completos, que auxiliam muito os
programadores, pois eles criam uma re-
lao entre a pgina a ser implementada
e o contedo a ser aplicado. A Figura
5 apresenta como seria um Wireframe
dentro de um FDD - representando uma
determinada pgina de um site.

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

Figura 5. Wireframe (pgina do FDD) Figura 4. Ilustrao de uma pgina do Web


Content

32 Engenharia de Software Magazine O processo unificado integrado ao desenvolvimento Web


proc esso

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-

Edio 01 Engenharia de Software Magazine 33


turao quase que definitiva do Web volvedores participem de reunies com Aps a primeira iterao, um Wireframe
Content pode ser feita pelo fornecedor e os clientes, tirando suas dvidas, como (uma parte do FDD) dever ser enviado
pelo cliente, ainda neste fluxo, no final tambm revalidando os requisitos. ao designer, que se responsabilizar
da 1 iterao. Teste: Esse fluxo pode ser marcado com pela construo da proposta de layout.
Mediante a construo do Projeto Linear o incio da construo de um artefato A proposta de layout no ter o papel de
e do Web Content, inicia-se a montagem chamado plano de teste. Essa construo mostrar interaes e funcionalidades do
FDD. O FDD servir como guia para o dever ser direcionada pelos requisitos sistema ao cliente.
designer montar o prottipo de interface do sistema obtidos at o momento. Ao final dessa iterao, tm-se os se-
do site. A finalizao do prottipo e a Implantao: No h. guintes artefatos sob gerncia de confi-
aprovao do cliente marcam o final da gurao e mudana: FDD, Projeto Linear,
1 iterao. A Figura 6 apresenta um overview Web Content, Planilha de requisitos,
Implementao: Nesse momento os da construo do sistema, levando-se descrio dos casos de uso, plano de
desenvolvedores podem, por exemplo, em considerao os artefatos utilizados teste, documento de Baseline e quaisquer
buscar funes e componentes j desen- no desenvolvimento de projetos Web. outros artefatos da UML que podem ser
volvidos em outros projetos, os quais Conclui-se que o Web Content (repre- includos mediante a necessidade do
serviro para a realizao desta aplicao. sentado pelo crculo vermelho), o Projeto projeto. A RTF e o prottipo de interface,
A preparao do ambiente de desenvol- Linear (representado pelo crculo preto) aprovado pelo cliente, estabelecidos no
vimento tambm pode ser feita, como a e o FDD (representado pelo crculo azul) final dessa iterao, no faro parte da
instalao dos softwares e ferramentas esto em fase de formao, por isso eles gerncia de configurao e mudana,
necessrias para a implementao. Neste esto tracejados. A rea com cor cinza pois so artefatos mortos, os quais no
fluxo, d-se a construo do diagrama claro da Figura 6 representa que pou- sofrero mais modificaes.
de classes, bem como outros diagramas cos requisitos foram encontrados nesta
UML que os engenheiros de software iterao do processo. Os crculos em Fase Elaborao - 2. Iterao
acharem necessrios, para o entendimen- amarelo em volta do FDD e do Projeto No contexto apresentado, a 2 iterao
to e validao do sistema pelo cliente. Ob- Linear representam que estes documen- abrange toda a fase de elaborao do pro-
jetivando diminuir as chances de algum tos necessitam de um conhecimento jeto. J no existem mais esforos voltados
requisito ser implementado de forma em arquitetura de informao para que para o prottipo de interface. Ele servir
incorreta, vlido que alguns desen- possam ser elaborados. apenas para guiar a montagem da estru-
tura dos templates do site. Essa iterao
levar mais tempo para acontecer do que
a primeira, pois neste instante os esforos
vo se concentrando e os envolvidos no
projeto precisam entender e resolver os
problemas mais crticos que comearo
a aparecer.
Modelo de negcio: Anlises de viabi-
lidade e de riscos podem e muitas vezes
devem continuar sendo feitas. O domnio
do problema deve ser entendido comple-
tamente e uma soluo deve ser descrita
atravs dos casos de uso que estaro
80% finalizados no final desse fluxo de
trabalho. A planilha de requisitos cresce
na mesma proporo em que os casos
de uso so validados pelo fornecedor e
cliente.
Requisitos: Os requisitos continuam
sendo extrados dos casos de uso e
compondo a planilha. No final dessa
iterao tem-se 80% dos requisitos j
documentados e aprovados pelo cliente.
Os requisitos so a base para a construo
dos artefatos, como o FDD, Web Content
e o Projeto Linear. Por essa razo tem-se
grande parte da formao desses docu-
mentos ainda nesta iterao.
Anlise e Projeto: Os requisitos apro-
Figura 6. Overview da 1 iterao
vados at o momento serviro como

34 Engenharia de Software Magazine O processo unificado integrado ao desenvolvimento Web


proc esso

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

Edio 01 Engenharia de Software Magazine 35


para a gerncia das possveis mudanas (cor mais escura na rea que abrange os ses de viabilidade e de risco. Devem-se
nos requisitos e consequentemente nos requisitos). Artefatos como o FDD, Web armazenar os casos de uso do projeto
artefatos. Cuidados especiais devem ser Content, Projeto Linear, descrio e dia- com boas descries representativas, a
tomados nesse momento, de forma a ga- gramas de casos de uso etc, continuam a fim de que sejam facilmente encontrados,
rantir que uma mudana no afete outra fazer parte da gerncia de configurao de forma a servir como modelo para
parte do sistema. e mudana. projetos futuros.
Teste: Nesse fluxo, consegue-se enten- As duas RTFs construdas nessa fase Requisitos: Os requisitos nesse fluxo
der os pontos crticos de implementao iro acrescentar muito para a experincia so mnimos. mais comum encontrar
e elaborar o plano de teste quase que dos desenvolvedores, ensinando-os que, alguns requisitos de engenharia (no
totalmente. Os testes caixa preta so sempre existe a possibilidade da altera- funcionais) devido parte do sistema
muito importantes nestas iteraes, pois o de um requisito. O gerente continua j implantada no cliente. Os artefatos
eles iro verificar a conformidade do sis- a trabalhar atentamente na gerncia de devem estar finalizados de acordo com
tema com as exigncias do cliente. Testes configurao e mudana, que serve tan- todos os requisitos funcionais e no fun-
de mdulos continuam sendo feitos e to para o Baseline quanto para todos os cionais encontrados at o momento.
neste instante os desenvolvedores faro artefatos vivos do projeto. Anlise e Projeto: Nesse fluxo, tem-se
tambm os testes de integrao. Fase Transio - 5 Iterao a finalizao do FDD, Web Content e
Implantao: medida que a codifica- Esta a ltima iterao do exemplo do Projeto Linear. Os artefatos da UML
o finalizada, uma verso executvel apresentado neste artigo, integrando o tambm sero finalizados durante essa
do sistema poder ser implantada no desenvolvimento Web com o Processo iterao.
ambiente do cliente. A implantao Unificado. O final dessa iterao marca Implementao: O ideal que os de-
tambm uma forma de verificar se o que o trmino do projeto, bem como a cons- senvolvedores faam ajustes no sistema,
est sendo feito funcionar do lado do truo completa de todos os artefatos. apenas para a adaptao ao ambiente do
cliente. A gerncia de configurao e mudana, cliente. Pouqussimas alteraes nos re-
A Figura 8 mostra que os documentos ainda continua trabalhando durante os quisitos funcionais devem ser realizadas
esto sendo quase finalizados (pode-se fluxos para deixar os artefatos condizen- nesse fluxo e consequentemente, poucas
notar pelas linhas tracejadas com menos tes com o sistema desenvolvido. modificaes no sistema.
espaos em relao Figura 7) medida Modelo de negcio: Dificilmente nesta Teste: Nesse fluxo, o documento de
que os requisitos ficam mais consistentes etapa existiro tarefas que exijam anli- plano de teste ser finalizado. Testes
de sistemas e de validao podem ser
realizados tambm pelo cliente. Se ne-
cessrio, poder ocorrer a contratao de
uma empresa terceirizada para realizar
os testes funcionais e no funcionais na
aplicao.
Implantao: A verso executvel
final do sistema dever ser colocada no
ambiente de teste e posteriormente no
ambiente de produo do cliente, me-
diante aprovao do mesmo. vlido
lembrar que, o gerente ou o engenheiro
de software responsvel pelo controle
de configurao e mudana, continuar
a realizar o seu trabalho, pois no final
dessa fase, alguns artefatos podero ser
ajustados.
A Figura 9 mostra que os requisitos
esto completos (cor escura) e consequen-
temente os documentos esto finalizados
(linhas contnuas em torno do Web Con-
tent, Projeto Linear e do FDD). Outros
artefatos, como a descrio e diagramas
de casos de uso, plano de teste, planilha
de requisitos estaro completos no final
dessa iterao.
A RTF indicar os pontos fortes e fracos
do projeto, ocorridos durante essa fase.
Tem-se o backup de todas as verses do
Figura 8. Overview da 3 e 4 iterao software realizadas at o momento, bem

36 Engenharia de Software Magazine O processo unificado integrado ao desenvolvimento Web


proc esso

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

Edio 01 Engenharia de Software Magazine 37


Arquitetura de Software
Desenvolvimento orientado para arquitetura

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

38 Engenharia de Software Magazine Arquitetura de Software


proj eto

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.

Edio 01 Engenharia de Software Magazine 39


Uma especificao arquitetural implementaes, j que est diretamente At uar como uma estrut ura para
essencial para analisar e descrever relacionada aos atributos de qualidade atender os requisitos do sistema a ar-
propriedades de um sistema complexo, como confiabilidade e desempenho. A quitetura ajuda a definir os requisitos
permitindo o engenheiro ter uma viso organizao dos componentes num sis- funcionais, que compreendem o con-
geral completa do sistema. tema de software impacta sobre a quali- junto de funcionalidades do sistema de
O conhecimento de notaes para des- dade apresentada por ele. Por exemplo, a software, e requisitos no funcionais (ou
crever arquiteturas permite engenheiros adoo de uma arquitetura em camadas atributos de qualidade) que determinam
comunicarem novos projetos e decises serve para modularizar o sistema bem as caractersticas visveis ao usurio
arquiteturais tomadas a outros membros como facilitar modificaes. Entretanto, como desempenho e confiabilidade.
da equipe. um nmero elevado de camadas (4 ou 5)
pode degradar o desempenho do sistema Uma questo que voc deve estar se
Cabe destacar que, para que haja o en- se houver um elevado grau de acopla- fazendo : Por que apenas recentemente
tendimento da arquitetura, faz-se neces- mento entre os componentes. houve o foco na arquitetura de software?
srio ao engenheiro de software conhecer Diversos benefcios decorrem da in- A resposta simples: economia e reuso.
os estilos arquiteturais existentes, confor- corporao da arquitetura de software Anteriormente no havia forte nfase
me apresentado adiante. As propriedades como elemento norteador do processo na disciplina de engenharia de software,
de cada arquitetura, portanto, so depen- de desenvolvimento de software. Cabe fato este ocorreu com o amadurecimento
dentes do estilo arquitetural adotado. Por destacar que a arquitetura pode: desta nova rea ao longo de toda a dca-
exemplo, o uso de uma notao padro Prover suporte ao reuso seus com- da de 1990. Tudo motivou o surgimento
como a UML ajuda na representao de ponentes definidos e testados podem ser de um novo profissional: o arquiteto de
componentes e compartilhamento de reaproveitados em novas aplicaes. software.
informaes do projeto. Servir de base estimao de custos
Esses aspectos servem como indica- e gerncia do projeto a existncia de Habilidades do Arquiteto de
dores de uma maturidade inicial de uma arquitetura bem definida permite ao software
engenharia de software. Outros aspectos gerente de projeto adequadamente alocar Perceba que o arquiteto de software
compreendem uso e reuso de solues tarefas de, por exemplo, implementao tem um papel de suma importncia
existentes no desenvolvimento de novos de componentes e melhor estimar o tem- para estratgia adotada pela empresa.
sistemas. Para tanto, a prototipagem tem po e tamanho de equipe necessria para Ele precisa ter profundo conhecimento
sido usada em projetos de natureza ino- realizao de um projeto. do domnio, das tecnologias existentes
vadora (bem antes da implementao ou Servir de base para anlise da con- e de processos de desenvolvimento de
aceitao de um produto acontecer). sistncia e dependncia o arquiteto de software. Uma sntese de um conjunto
Alm disso, o aumento da complexi- software pode verificar se a arquitetura desejado de habilidades para um arqui-
dade e quantidade de requisitos dos de software adotada suporta os atributos teto de software e das tarefas atribudas
sistemas dificulta cada vez mais atender de qualidade desejados de modo consis- a ele so apresentados na Tabela 3. Note
s restries de oramento e cronograma. tente e avaliar o nvel de dependncia que a prototipagem uma tarefa comum
Atualmente, empresas tm procurado in- dos atributos de qualidade em relao onde o arquiteto desenvolve um protti-
corporar estratgia de reuso de software, arquitetura. Para tanto, ele faz a anlise po para testar uma possvel soluo. J
enfatizando o reuso centrado na arquite- arquitetural que verifica o suporte ofere- a simulao pode ser empregada quando
tura para obter melhores resultados no cido pela arquitetura a um conjunto de ele necessita avaliar o suporte oferecido
desenvolvimento de sistemas. Note que atributos de qualidade (como desempe- a determinado atributo de qualidade
a arquitetura de software serve como nho, portabilidade e confiabilidade). como o desempenho. Por outro lado, a
uma estrutura atravs da qual se tem o Ser utilizada para determinar atribu- experimentao pode ocorrer quando o
entendimento dos componentes de um tos de qualidade do sistema o arquiteto arquiteto precisa testar um novo compo-
sistema e de seus inter-relacionamentos. de software faz a anlise arquitetural a nente recm implementado.
Em outras palavras, ela define a estrutura fim de determinar os atributos de quali-
do sistema, de modo consistente para dade. Trata-se de um processo iterativo. Entendo o Estilo Arquitetural
O estilo arquitetural serve para carac-
terizar a arquitetura de software de um
Habilidades desejadas Tarefas atribudas
sistema, possibilitando a:
Conhecimento do domnio e tecnologias relevantes Modelagem Identificao de componentes o
arquiteto identifica quais os principais
Conhecimento de questes tcnicas para desenvolvimento de sistemas Anlise de compromisso e de viabilidade
elementos que tem funcionalidades bem
Conhecimento de tcnicas de levantamento de requisitos, e de mtodos de modelagem e
Prototipagem, simulao e experimentao definidas como, um componente de ca-
desenvolvimento de sistemas dastro de (informaes de) usurios e um
Conhecimento das estratgias de negcios da empresa Anlise de tendncias tecnolgicas componente de autenticao de usurio
numa aplicao Web.
Conhecimento de processos, estratgias e produtos de empresas concorrentes Evangelizador de novos arquitetos
Identificao de mecanismos de inte-
Tabela 3. Habilidades e tarefas de um arquiteto de software. rao a comunicao entre objetos por

40 Engenharia de Software Magazine Arquitetura de Software


proj eto

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;

Figura 1. Exemplo do estilo arquitetural de tubos e filtros

Edio 01 Engenharia de Software Magazine 41


Figura 2. Arquitetura bsica de um compilador (seguindo estilo arquitetural de tubos e filtros)

Figura 3. Evoluo inicial da arquitetura de um compilador.

Figura 4. Nova evoluo da arquitetura de um compilador.

42 Engenharia de Software Magazine Arquitetura de Software


proj eto

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.

Edio 01 Engenharia de Software Magazine 43


Esses componentes contm informaes Um exemplo desse tipo de jogo de com- es feitas atravs do mouse e invoca um
necessrias soluo de problemas. Os putador o Connect4 que tem como mtodo que checa se houve vitria, derro-
dados da soluo de problemas so man- meta para cada jogador conectar quatro ta ou empate, alm de fazer a atualizao
tidos na base de dados compartilhada peas da mesma cor, verticalmente, ho- da interface grfica. Um possvel estado
(o repositrio), o qual denominado de rizontalmente ou diagonalmente. Cada final desse jogo mostrado na Figura 8,
quadro negro. O exemple mais comum jogador deve depositar uma pea na onde na terceira linha h um conjunto
desse estilo um sistema especialista. parte superior da coluna selecionada e de quatro peas na cor azul, indicando
Combinao de estilos Outros esta cai at preencher a lacuna inferior da que o computador completou primeiro a
sistemas, na prtica, combinam estilos coluna (selecionada), conforme ilustrado conexo de quatro peas na mesma cor (a
arquiteturais resultando numa heteroge- na Figura 6. Note que o quadro contm 7 cor do usurio humano vermelha).
neidade, como ilustrado na Figura 5, que colunas e 6 linhas, um indicador de status A combinao estilo arquitetural orien-
agrega o estilo de objetos e camadas. do jogo e um seletor manual (utilizado tado para eventos e objetos permite a
para selecionar a coluna na qual uma decomposio de um sistema em termos
Exemplificando o estilo combinado pea ser depositada). de objetos (componentes de inferncia,
de objetos e eventos A arquitetura de software dessa aplica- componente de interface grfica e com-
Jogos online e de computador tm o apresentada na Figura 7. O compo- ponente jogador computacional) que so
se tornado comuns atualmente com a nente jogador computacional (que dispe mais independentes alm de possibilitar
popularidade da Internet. Costuma-se de recursos de inteligncia artificial para que atividades de computao e coor-
categorizar os jogos em: simular um jogador humano) contm denao (de eventos) sejam realizadas
Baseados na vez so jogos nos quais uma classe Connect4State que trata a separadamente. H ainda a facilidade de
cada ao baseada na vez do jogador maioria das requisies para verificar se reuso e manuteno, j que novos objetos
como jogo da velha e xadrez. algum jogador venceu o jogo, e tambm podem ser facilmente adicionados. Essa
Baseados em eventos so jogos onde dispe de mecanismo para atualizar o es- caracterstica, e interfaces bem definidas,
eventos podem ocorrer em qualquer tado do jogo aps uma jogada do jogador facilitam ainda a integrao.
instante e estes ditam o ritmo do jogo. computacional. O mecanismo de invocao no
Exemplos compreendem simuladores de O componente (mquina) de inferncia determinstico (isto , ocorre de forma
vo e corridas de carro. contm uma classe para tratar as jogadas aleatria) uma vez que considera a re-
feitas pelos jogadores bem como deter- cepo de eventos. Adicionalmente, os
Por exemplo, quando os jogos so dis- minar a melhor jogada para o jogador componentes tm seus dados preserva-
ponibilizados na Internet, costuma-se computacional. dos de qualquer modificao acidental
denomin-los de jogos online ou jogos O componente de interface de usurio j que essas informaes so encapsu-
para Internet, possibilitando ao usurio contm uma classe que carrega os arqui- ladas em objetos, facilitando tambm a
jogar contra a mquina (computador). vos de imagem e udio, trata as requisi- integrao.

Figura 7. Arquitetura do Connect4

44 Engenharia de Software Magazine Arquitetura de Software


proj eto

Importncia do Reuso a arquitetura de software como premissa. Links


importante perceber de tudo o que foi Assim, o fator econmico tem sido e ser Histria da Indstria de Software
apresentado e discutido que um modelo o determinante da sobrevivncia da em- www.softwarehistory.org
arquitetural oferece suporte ao reuso de presas de software. Novas estratgias de An introduction to software architecture
vrias formas. Por exemplo, pode se ter desenvolvimento de sistemas devem ser http://www.cs.cmu.edu/afs/cs/project/able/www/paper_abstracts/
intro_softarch.html
arquiteturas reusveis que forneam a para o reuso e com reuso (de componentes
SEIs Software Architecture Technology Initiative
organizao e o modelo de coordenao, de software) e o pilar principal dessas www.sei.cmu.edu/architecture/sat_init.html
permitindo seu uso em diversos siste- estratgias a arquitetura de software. Worldwide Institute of Software Architects
mas. Alm disso, podem-se reutilizar H, portanto, uma necessidade premente www.wwisa.org/wwisamain/index.htm
componentes, j testados, em mais de um de formao de capital humano com tais The Software Architecture Portal
sistema. Disso tudo, o mais importante qualificaes. http://www.softwarearchitectureportal.org/

o reuso do conhecimento que tem im-


pacto direto na definio da arquitetura
de software candidata soluo de um
Caractersticas de arquitetura de software Uso prtico da arquitetura de software
problema (ou sistema).
A ampla variedade de plataformas e Como um arquiteto de software pode organizar o projeto e
Constitui um artefato reutilizvel
utilitrios, juntamente com a presso cdigo de um sistema
do mercado para reduzir o tempo de
Dispe de mecanismos de interconexo Como um arquiteto avalia e implanta arquiteturas de software em sistemas
entrega de produtos de software e elevar
a produtividade, faz com que o reuso Como um arquiteto de software atua no processo de
Oferece um vocabulrio de projeto e separa funcionalidades
seja apontado como uma das chaves de desenvolvimento de software
sucesso para empresas. Como um arquiteto avalia a qualidade do cdigo baseada
O reuso de artefatos (ou componentes) Vincula o projeto a atributos de qualidade
em mtricas de produto
possvel quando o projeto arquitetural
est incorporado e orienta o processo de Suporta o desenvolvimento baseado em componentes e
Como usar arquitetura como parmetro para reduzir custos de
desenvolvimento de software. Isto, como linha de produto (quando os requisitos so considerados
manuteno e amortizar custos de desenvolvimento
discutido, permite antever os atributos para uma famlia de sistemas)
de qualidade que o sistema suporta e
Tabela 4. Caractersticas e uso prtico da arquitetura de software
tambm administrar o cronograma de
execuo do projeto. Portanto, impac-
tando positivamente o reuso e economia
do sistema.
O quadro apresentado na Tabela 4
sumariza as principais caractersticas
da arquitetura de software e pontos im-
portantes na capacitao e reciclagem de
engenheiros e arquitetos de software.

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

Figura 8. Possvel estado final do jogo Connect4

Edio 01 Engenharia de Software Magazine 45


Introduo Engenharia de Requisitos

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

46 Engenharia de Software Magazine Introduo Engenharia de Requisitos


requisi tos

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.

Isso tem diversas conseqncias. Gosta-


ramos de destacar neste artigo o crescen-
te custo com manuteno dos sistemas.
Consideramos como manuteno neste
Tabela 1. Cenrio atual de desenvolvimento.
artigo como sendo qualquer retrabalho
(em nvel de requisitos, projeto, codifica-
o, teste) causado por uma definio do
domnio do problema mal elaborada nas
fases iniciais do desenvolvimento.
Neste ponto, importante analisamos
os dados da Tabela 1. Perceba que o cus-
to das atividades relacionadas anlise
de requisitos baixo. Por outro lado,
nesta fase que grande parte dos defeitos
so inseridos. Podemos perceber ainda
analisando a primeira linha que o custo
de correo destes problemas nesta fase
baixo. Continuando a anlise, percebe-
mos que estes defeitos no so tratados no
momento devido, o que pode aumentar
bastante o custo com o projeto.
Embora simples, esta anlise nos per- Figura 1. Distribuio da concluso dos projetos de software.

Edio 01 Engenharia de Software Magazine 47


Requisitos no qual o cliente faz parte. importante Alguns exemplos so:
Existem diferentes definies encontra- estar atento para esta definio: embora O software deve permitir o cadastro
das na literatura tcnica para requisitos: o requisito seja definido pelo cliente, de clientes;
Um requisito uma caracterstica nem sempre o que o cliente quer o O software deve permitir a gerao de
do sistema ou a descrio de algo que o que o negcio precisa. Cabe equipe de relatrios sobre o desempenho de vendas
sistema capaz de realizar para atingir consultores identificar a real necessidade no semestre;
os seus objetivos; do negcio. O software deve permitir o pagamento
As descries das funes e restries Neste contexto, requisitos so impor- das compras atravs de carto de crdito.
so os requisitos do sistema; tantes para:
Um requisito uma propriedade que o Estabelecer uma base de concordncia Requisitos no funcionais
software deve exibir para resolver algum entre o cliente e o fornecedor sobre o que So requisitos que expressam condi-
problema no mundo real; o software far; es que o software deve atender ou
Uma condio ou uma capacidade que Fornecer uma referncia para a vali- qualidades especficas que o software
deve ser alcanada ou estar presente em dao do produto final; deve ter. Em vez de informar o que o
um sistema para satisfazer um contrato, Reduzir o custo de desenvolvimento sistema far, os requisitos no-funcionais
padro, especificao ou outro documen- (como vimos anteriormente, requisitos colocam restries no sistema. Alguns
to formalmente imposto... mal definidos causam retrabalho). exemplos so:
O software deve ser compatvel com
Percebe-se que as citaes encontradas Entendida a definio de requisitos, os browsers IE (verso 5.0 ou superior) e
definem o mesmo conceito sob dife- preciso conhecer seus tipos. Firefox (1.0 ou superior);
rentes perspectivas. Podemos entender O software deve garantir que o tempo
requisitos como sendo o conjunto de Requisitos funcionais de retorno das consultas no seja maior
necessidades explicitadas pelo cliente que So requisitos diretamente ligados a do que 5 segundos.
devero ser atendidas para solucionar funcionalidade do software, descrevem
um determinado problema do negcio as funes que o software deve executar. Requisitos de domnio
So requisitos derivados do domnio
da aplicao e descrevem caractersticas
do sistema e qualidades que refletem o
domnio. Podem ser requisitos funcionais
novos, restries sobre requisitos exis-
tentes ou computaes especficas. Dois
exemplos de requisitos do domnio so:
O calculo da mdia final de cada aluno
dado pela frmula: (Nota1 * 2 + Nota2 *
3)/5;
Um aluno pode se matricular em
uma disciplina desde que ele tenha sido
aprovado nas disciplinas consideradas
pr-requisitos.

A partir da prxima seo apresentare-


mos os conceitos envolvidos na engenha-
ria de requisitos.
Figura 2. Engenharia de Requisitos.
Engenharia de Requisitos
Existem diferentes definies encontra-
das na literatura tcnica para engenharia
de requisitos:
Termo usado para descrever as ati-
vidades relacionadas investigao e
definio de escopo de um sistema de
software;
Processo sistemtico de desenvol-
vimento de requisitos atravs de um
processo cooperativo de anlise onde os
resultados das observaes so codifi-
cados em uma variedade de formatos e
Figura 3. Produo e Gerncia de Requisitos. a acurcia das observaes constante-

48 Engenharia de Software Magazine Introduo Engenharia de Requisitos


requisi tos

mente verificada; dos processos de engenharia de requisi-


Processo de descobrir, analisar, docu- tos. Perceba que ele est concentrado nas
mentar e verificar as funes e restries atividades de produo dos requisitos.
do sistema. Apesar do aparente fluxo entre as ativi-
dades, no existe uma fronteira explcita
Embora coerentes, estas definies elas. Na prtica existe muita sobreposio
podem ser melhoradas. Perceba que elas e interao entre uma atividade e outra.
referem-se apenas s atividades relacio- Como entradas para o processo so
nadas produo de requisitos. Entre- consideradas:
tanto, nada dito a respeito da gerncia Descries do que os stakeholders ne-
destas atividades, tambm conhecida cessitam para suportar suas atividades;
como gerncia de requisitos. Com isto Informaes a respeito do sistema que
em mente, podemos evoluir a definio ser substitudo ou de qualquer sistema
de engenharia de requisitos para: termo com o qual o sistema sendo definido ter
usado para descrever as atividades rela- que interagir;
cionadas produo (levantamento, re- Padres vigentes na organizao a Figura 4. Processo de Engenharia de Requisitos.
gistro, validao e verificao) e gerncia respeito de prticas de desenvolvimento
(controle de mudanas, gerncia de con- de sistemas, gerncia de qualidade, etc.;
figurao, rastreabilidade, gerncia de Regulamentos externos, tais como leis,
qualidade dos requisitos) de requisitos. A regulamentos de segurana ou sade; especificao, atividades relacionadas
Figura 2 representa essa definio. Informaes gerais sobre o domnio garantia da qualidade. Conheceremos
Desta forma, os dois conceitos base (pro- de aplicao. nesta seo as quatro atividades base
duo e gerncia) devem ser considerados relacionadas com a produo de requi-
em conjunto ao se definir estratgias de Em paralelo execuo das atividades sitos.
trabalho com requisitos nas organizaes definidas no processo da Figura 5, est o
(ver Figura 3). processo de gerncia dos requisitos, vol-
Neste ponto podemos citar alguns dos tado ao endereamento de modificaes Levantamento
principais objetivos da engenharia de nos requisitos. Os aspectos relacionados Esta atividade relaciona-se obteno
requisitos: s atividades de gerncia podem ser vis- dos requisitos do software. Para isto,
estabelecer uma viso comum entre o tos na Figura 3. analistas e engenheiros de software
cliente e a equipe de projeto em relao A partir de agora conheceremos cada trabalham com clientes e usurios finais
aos requisitos que sero atendidos pelo um dos conceitos que, em conjunto, de- para descobrir o problema a ser resolvido,
projeto de software; finem a engenharia de requisitos. os servios do sistema, o desempenho ne-
registrar e acompanhar requisitos ao cessrio, restries de hardware e outras
longo de todo o processo de desenvolvi- Produo de Requisitos informaes.
mento; A cada fase do ciclo de vida do software Existem algumas tcnicas que apiam
documentar e controlar os requisitos produzimos um documento contendo as atividades de levantamento de requi-
alocados para estabelecer uma baseline uma representao distinta do softwa- sitos. Uma breve descrio de algumas
para uso gerencial e da engenharia de re a ser construdo. Cada um desses delas :
software; documentos representa o software em Entrevista: esta tcnica resume-se
manter planos, artefatos e atividades um determinado nvel de abstrao. em conversas realizadas com o usurio
de software consistentes com os requisi- A tendncia diminuirmos o nvel de (entrevistado) para levantar os requisitos
tos alocados. abstrao atravs da incluso de mais e do sistema a ser desenvolvido. Podemos
mais detalhes, at que, sua ltima repre- decompor esta tcnica nas seguintes
Para apoiar o alcance destes objetivos, sentao seja o cdigo fonte na linguagem atividades:
importante que se tenha um processo escolhida. o Ler material de suporte;
de engenharia de requisitos bem defi- Um dos artefatos produzidos no incio o Estabelecer os objetivos da entre-
nido. Um processo de engenharia de do processo de desenvolvimento de sof- vista;
requisitos um conjunto estruturado de tware a sua especificao de requisitos. o Decidir quem entrevistar;
atividades a serem seguidas para criar, Ele base para as demais atividades o Preparar o entrevistado;
validar e manter um documento de re- de desenvolvimento e sua qualidade o Decidir os tipos de questes e a sua
quisitos. Poucas organizaes tm um fundamental para o sucesso do projeto. estrutura.
processo de ER explicitamente definido Uma especificao de requisitos bem ela-
e padronizado. Entretanto, sugere-se que borada pr-requisito para um software Uma entrevista pode ser estruturada de
cada organizao deva desenvolver um de qualidade, embora no seja garantia trs diferentes formas:
processo adequado sua realidade. A Fi- disso. Desta forma, durante a produo o Estrutura em pirmide: iniciamos
gura 4 apresenta um modelo genrico de de requisitos devemos possuir, alm das as entrevistas com perguntas mais
atividades que pode descrever a maioria atividades essenciais de levantamento e especificas sobre o sistema e fecha-

Edio 01 Engenharia de Software Magazine 49


mos com perguntas mais genricas. volve atividades de preparao para as de requisitos pelos desenvolvedores
Geralmente utilizadas com usurios reunies, sesses de workshop com os o Desenvolvedor no ouve o que os
mais relutantes; participantes, agenda para as reunies, usurios tm a dizer e fora suas pr-
o Estrutura em funil: iniciamos as en- participantes assumindo papeis de faci- prias vises e interpretaes.
trevistas com perguntas mais genricas litador / condutor e documentador alm Comunicao inadequada entre os
sobre o sistema e fechamos com per- de facilidades visuais, como a utilizao desenvolvedores e usurios
guntas mais especificas. Geralmente de flipchart, quadro negro. o Usurios incapazes de expressar
utilizadas com usurios que tem uma Esta tcnica deve ser utilizada nos casos suas necessidades apropriadamente;
relao mais afetiva com o assunto; onde existe a necessidade de consenso o Significados diferentes a termos
o Estrutura em diamante: esta es- entre diversos usurios, pois possibilita comuns.
trutura combina as duas estruturas a todos os envolvidos ter uma viso glo- Dificuldade do usurio tomar deci-
anteriores e utilizadas para manter bal do sistema, ajudando a consolidar ses
a usurio entrevistado interessado no interesses de diversos usurios quanto o Falta de entendimento sobre as
assunto e para isto se utiliza de per- ao sistema a ser desenvolvido. conseqncias das decises ou as al-
guntas variadas. O objetivo desta tcnica aumentar ternativas possveis.
o comprometimento e participao do Problemas de comportamento
Prototipao: uma verso inicial de usurio e obter subsdios para elaborar o o O levantamento de requisitos um
um sistema para experimentao. Permi- documento de Especificao de Requisi- processo social;
te aos utilizadores identificar os pontos tos para o sistema com consenso de todos o Conflitos e ambigidades nos pa-
fortes e fracos do sistema por ser algo de forma a ser uma validao formal dos pis que os usurios e desenvolvedores
concreto que pode ser criticado. Temos requisitos do sistema. desempenham.
dois tipos de prottipos: O JAD divido quem quatro fases. A Fi- Questes tcnicas
o Prottipos Throw-away: ajudam gura 5 apresenta estas fases e os artefatos o Complexidade crescente dos sis-
o levantamento e desenvolvimento dos produzidos por cada uma delas. temas atuais.
requisitos e suportam os requisitos A atividade de levantamento de requi-
mais difceis de perceber; sitos no trivial. Existe um conjunto Registro
o Prottipos Evolutivos: ajudam o grande e variado de fatores que a tornam Uma vez identificados e negociados, os
desenvolvimento rpido de uma verso complexa, por exemplo: requisitos devem ser documentados para
inicial do sistema e suportam os requi- Falta de conhecimento do usurio das que possam servir de base para o restante
sitos bem definidos e conhecidos. suas reais necessidades do processo de desenvolvimento.
o Usurio com vaga noo do que Entre os muitos problemas que enfren-
Algumas das desvantagens da prototi- precisa e do que um produto de sof- tamos na documentao de requisitos,
pao so os custos de aprendizagem e tware pode oferecer. certamente, administrar o grande volume
os custos de desenvolvimento. Falta de conhecimento do desenvolve- de informaes gerado pelo processo de
JAD (Joint Application Development): dor do domnio do problema requisitos um dos principais.
uma tcnica que permite a interao o Desenvolvedor sem conhecimento Os requisitos so documentados em um
entre pessoas que necessitam tomar adequado do domnio, o que leva a nvel apropriado de detalhe. Em geral
decises que afetem mltiplas reas decises erradas. produzido um documento de especifica-
de uma organizao. Esta tcnica en- Domnio do processo de levantamento o de requisitos, de forma que todos os
stakeholders possam entend-lo.
O registro dos requisitos num documen-
to prprio facilita o controle de alteraes
de todos os envolvidos na manuteno
dos requisitos, bem como a gerao de
verses do documento e a facilidade de
acesso por todos os envolvidos.

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

50 Engenharia de Software Magazine Introduo Engenharia de Requisitos


requisi tos

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

Edio 01 Engenharia de Software Magazine 51


afetados com a mudana; possibilitando ter um controle siste- reais do usurio devem coincidir com
Identificar dependncias entre requi- mtico sobre todos os itens de configu- os requisitos identificados. Esta no
sitos para buscar os requisitos afetados rao abordados em cada fase do ciclo de uma tarefa trivial e parte de seu sucesso
indiretamente; vida do software, e; est associada a uma boa atividade de
Assegurar com solicitante a mudana tornando possvel que sejam realiza- validao dos requisitos.
a ser realizada; das, mais facilmente, avaliaes sobre seu No ambigidade: um conjunto de
Estimar custos da mudana; grau de evoluo. requisitos no ambguo quando so-
Obter acordo com usurio sobre o mente pode ser interpretado por todos
custo da mudana. Rastreabilidade os envolvidos em um projeto de uma
No centro da atividade de gerenciamen- nica maneira.
Aps a realizao desta anlise, po- to de requisitos est a rastreabilidade. Completude: um conjunto de requi-
demos aceitar ou rejeitar a mudana, Esta definida como a habilidade de se sitos dito completo quando descreve
conforme os impactos e custos que ela acompanhar a vida de um requisito em todas as demandas de interesse dos usu-
pode ter no sistema. ambas as direes (por exemplo: partindo rios. Estas demandas incluem requisitos
de requisitos e chegando a projeto ou, funcionais, de desempenho, restries,
Gerncia de Configurao partindo de projeto e chegando a requi- atributos e interfaces externas.
Durante o ciclo de vida do desenvolvi- sitos) do processo de software e durante Consistncia: um conjunto de requisi-
mento, o software passa por uma srie de todo o seu ciclo de vida. tos dito consistente se nenhum subcon-
modificaes, desde a especificao dos A dificuldade envolvida com a ras- junto destes requisitos entra em conflito
requisitos at a implantao do sistema. treabilidade est no grande volume de com os demais requisitos do sistema.
A gerncia de configurao de software informaes gerado. As informaes do Verificabilidade: um requisito
existe no intuito de definir critrios que processo de requisitos devem ser catalo- verificvel se existe uma forma efetiva,
permitam realizar tais modificaes gadas e associadas aos outros elementos em termos de tempo e custo, para que
mantendo-se a consistncia e a integri- de forma que possam ser referenciadas pessoas ou ferramentas indiquem se um
dade do software com as especificaes, atravs dos diversos itens de informao sistema cumpre o requisito (IEEE). Em
minimizando problemas decorrentes ao registrados. um trabalho extenso que, quase todas as situaes, difcil provar
processo de desenvolvimento, atravs sem o auxlio de ferramentas adequa- de forma conclusiva que um requisito
de um controle sistemtico sobre as das, muito provavelmente no poder cumprido por um software. Entretanto,
modificaes. ser feito escrever bem o requisito pode ajudar a
A criao de um plano de gerncia de Para implementar a rastreabilidade, aumentar a confiana na avaliao.
configurao consiste em estabelecer nor- usualmente confeccionado em conjun- Modificabilidade: um conjunto de re-
mas, ferramentas e templates que permi- to com a especificao de requisitos um quisitos modificvel quando seu estilo
tam gerenciar de maneira satisfatria os artefato chamado matriz de rastreabi- e estrutura tal que as alteraes podem
itens de configurao de um sistema, que lidade, que tem como objetivo mapear ser realizadas de forma simples e consis-
so definidos por Pressman como: cada os rastros dos requisitos descritos na tente com os demais requisitos.
um dos elementos de informao que so especificao.
criados durante o desenvolvimento de Os rastros dos requisitos podem ser de
um produto de software, ou que para este dois tipos: A gerncia, neste cenrio, responsvel
desenvolvimento sejam necessrios, que Pr-rastreabilidade: os rastros (artefa- por manter uma infra-estrutura necess-
so identificados de maneira nica e cuja tos: plano de negocio, atas de reunio com ria para atividades de verificao que tor-
evoluo passvel de rastreamento. o usurio) que fundamentaram a criao nem possvel investigarmos a qualidade
Em cada fase do processo de desenvolvi- do requisito. dos requisitos que estamos definindo.
mento, um conjunto bem definido de itens Ps-rastreabilidade: os rastros (arte-
de configurao deve ser estabelecido. A fatos: cdigo, documentos) que se forma- Concluso
este conjunto dado o nome de baselines. ram a partir do requisito criado. A engenharia de requisitos define, sem
Estas baselines servem como marco no dvida, um dos mais importantes conjun-
processo de desenvolvimento, pois ao tos de atividades a serem realizadas em
final de cada fase estabelecida uma Gerncia de Qualidade de Requisitos projetos de desenvolvimento de software.
nova baseline e, portanto, todos os itens Segundo o padro IEEE 830, devemos Embora no garanta a qualidade dos
de configurao esto sob total controle considerar alguns critrios de qualidade produtos gerados, um pr-requisitos
de seus desenvolvedores. Desta forma, ao trabalharmos com requisitos: bsico para que obtenhamos sucesso no
nesta baseline guardada uma foto dos Correo: um documento de requi- desenvolvimento do projeto. Este artigo
artefatos criados at aquele momento: sitos considerado correto se todos os apenas uma breve introdu oao
tornando mais fcil realizar modi- requisitos representam algo que deve tema, que dever ser bastante explorado
ficaes nos artefatos de maneira con- estar presente no sistema que est sen- em edies futuras da Engenharia de
trolada; do desenvolvido, ou seja, os requisitos Software Magazine.

52 Engenharia de Software Magazine Introduo Engenharia de Requisitos


Introduo a Teste de Software

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

54 Engenharia de Software Magazine Introduo a Teste de Software


Verific ao, Validao e Teste

Engineers (IEEE 610, 1990). requisitos


Defeito um ato inconsistente come-
tido por um indivduo ao tentar entender
uma determinada informao, resolver
um problema ou utilizar um mtodo
ou uma ferramenta. Por exemplo, uma
instruo ou comando incorreto.
Erro uma manifestao concreta
de um defeito num artefato de softwa-
re. Diferena entre o valor obtido e o
valor esperado, ou seja, qualquer estado
intermedirio incorreto ou resultado
Figura 1. Defeito x erro x falha (Uma verso similar pode ser obtida em http://www.projectcartoon.com/cartoon/611)
inesperado na execuo de um programa
constitui um erro. tar as possibilidades de provocar falhas profissionais, permanecem presentes
Falha o comportamento operacional ou, quando isso no ocorre, estabelecer nos produtos, o que torna a atividade de
do software diferente do esperado pelo um nvel elevado de confiana na correo teste fundamental durante o desenvolvi-
usurio. Uma falha pode ter sido causada do produto (ROCHA et al., 2001). Os crit- mento de um software. J vimos que esta
por diversos erros e alguns erros podem rios de teste podem ser utilizados como: atividade corresponde ao ltimo recurso
nunca causar uma falha. o Critrio de Cobertura dos Testes: para avaliao do produto antes da sua
permitem a identificao de partes do entrega ao usurio final.
A Figura 1 expressa a diferena entre programa que devem ser executadas O tamanho do projeto a ser desenvolvi-
esses conceitos. Defeitos fazem parte para garantir a qualidade do software do e a quantidade de pessoas envolvidas
do universo fsico (a aplicao propria- e indicar quando o mesmo foi suficien- no processo so dois possveis fatores
mente dita) e so causados por pessoas, temente testado (RAPPS e WEYUKER, que aumentam a complexidade dessa
por exemplo, atravs do mal uso de uma 1982). Ou seja, determinar o percentual tarefa, e consequentemente aumentam
tecnologia. Defeitos podem ocasionar a de elementos necessrios por um crit- a probabilidade de defeitos. Assim, a
manifestao de erros em um produto, ou rio de teste que foram executados pelo ocorrncia de falhas inevitvel. Mas
seja, a construo de um software de for- conjunto de casos de teste. o que significa dizer que um programa
ma diferente ao que foi especificado (uni- o Critrio de Adequao de Casos falhou? Basicamente significa que o
verso de informao). Por fim, os erros de Teste: Quando, a partir de um con- funcionamento do programa no est de
geram falhas, que so comportamentos junto de casos de teste T qualquer, ele acordo com o esperado pelo usurio. Por
inesperados em um software que afetam utilizado para verificar se T satisfaz os exemplo, quando um usurio da linha
diretamente o usurio final da aplicao requisitos de teste estabelecidos pelo de produo efetua consultas no sistema
(universo do usurio) e pode inviabilizar critrio. Ou seja, este critrio avalia se os das quais s a gerncia deveria ter acesso.
a utilizao de um software. casos de teste definidos so suficientes Esse tipo de falha pode ser originado por
Dessa forma, ressaltamos que teste de ou no para avaliao de um produto ou diversos motivos:
software revela simplesmente falhas em uma funo (ROCHA et al., 2001). A especificao pode estar errada ou
um produto. Aps a execuo dos testes o Critrio de Gerao de Casos de incompleta;
necessria a execuo de um processo de Teste: quando o critrio utilizado para A especificao pode conter requisitos
depurao para a identificao e correo gerar um conjunto de casos de teste T impossveis de serem implementados
dos defeitos que originaram essa falha, adequado para um produto ou funo, devido a limitaes de hardware ou sof-
ou seja, Depurar no Testar! ou seja, este critrio define as regras e tware;
A atividade de teste composta por diretrizes para gerao dos casos de tes- A base de dados pode estar organizada
alguns elementos essenciais que auxiliam te de um produto que esteja de acordo de forma que no seja permitido distin-
na formalizao desta atividade. Esses com o critrio de adequao definido guir os tipos de usurio;
elementos so os seguintes: anteriormente (ROCHA et al., 2001). Pode ser que haja um defeito no algo-
Caso de Teste. descreve uma condio ritmo de controle dos usurios.
particular a ser testada e composto por Definidos os elementos bsicos asso-
valores de entrada, restries para a sua ciados aos testes de software, iremos a Os defeitos normalmente so introdu-
execuo e um resultado ou compor- seguir discutir a origem dos defeitos em zidos na transformao de informaes
tamento esperado (CRAIG e JASKIEL, um software. entre as diferentes fases do ciclo de de-
2002). senvolvimento de um software. Vamos
Procedimento de Teste. uma descri- Defeitos no desenvolvimento seguir um exemplo simples de ciclo de
o dos passos necessrios para executar de software vida de desenvolvimento de software:
um caso (ou um grupo de casos) de teste No processo de desenvolvimento de os requisitos expressos pelo cliente so
(CRAIG e JASKIEL, 2002). software, todos os defeitos so humanos relatados textualmente em um docu-
Critrio de Teste: serve para selecionar e, apesar do uso dos melhores mtodos mento de especificao de requisitos.
e avaliar casos de teste de forma a aumen- de desenvolvimento, ferramentas ou Esse documento ento transformado

Edio 01 Engenharia de Software Magazine 55


em casos de uso, que por sua vez foi o Nveis de teste de software Teste de Sistema: avalia o software em
artefato de entrada para o projeto do O planejamento dos testes deve ocorrer busca de falhas por meio da utilizao do
software e definio de sua arquite- em diferentes nveis e em paralelo ao mesmo, como se fosse um usurio final.
tura utilizando diagramas de classes desenvolvimento do software (Figura 3). Dessa maneira, os testes so executados nos
da UML. Em seguida, esses modelos Buscando informao no Livro Qualidade mesmos ambientes, com as mesmas con-
de projetos foram usados para a cons- de Software Teoria e Prtica (ROCHA et dies e com os mesmos dados de entrada
truo do software em uma linguagem al., 2001), definimos que os principais nveis que um usurio utilizaria no seu dia-a-dia
que no segue o paradigma orientado a de teste de software so: de manipulao do software. Verifica se o
objetos. Observe que durante esse pe- Teste de Unidade: tambm conhecido produto satisfaz seus requisitos.
rodo uma srie de transformaes foi como testes unitrios. Tem por objetivo Teste de Aceitao: so realizados
realizada at chegarmos ao produto fi- explorar a menor unidade do projeto, pro- geralmente por um restrito grupo de usu-
nal. Nesse meio tempo, defeitos podem curando provocar falhas ocasionadas por rios finais do sistema. Esses simulam
ter sido inseridos. A Figura 2 expressa defeitos de lgica e de implementao em operaes de rotina do sistema de modo
exatamente a metfora discutida nesse cada mdulo, separadamente. O universo a verificar se seu comportamento est de
pargrafo. alvo desse tipo de teste so os mtodos acordo com o solicitado.
Essa srie de transformaes resultou dos objetos ou mesmo pequenos trechos Teste de Regresso: Teste de regresso
na necessidade de realizar testes em dife- de cdigo. no corresponde a um nvel de teste, mas
rentes nveis, visando avaliar o software Teste de Integrao: visa provocar uma estratgia importante para reduo
em diferentes perspectivas de acordo com falhas associadas s interfaces entre os de efeitos colaterais. Consiste em se
o produto gerado em cada fase do ciclo de mdulos quando esses so integrados aplicar, a cada nova verso do software
vida de desenvolvimento de um softwa- para construir a estrutura do software ou a cada ciclo, todos os testes que j
re. Esse ser o foco da seo seguinte. que foi estabelecida na fase de projeto. foram aplicados nas verses ou ciclos
de teste anteriores do sistema. Pode ser
aplicado em qualquer nvel de teste.

Dessa forma, seguindo a Figura 3, o


planejamento e projeto dos testes devem
ocorrer de cima para baixo, ou seja:
1. Inicialmente planejado o teste de
aceitao a partir do documento de re-
quisitos;
2. Aps isso planejado o teste de sis-
tema a partir do projeto de alto nvel do
software;
3. Em seguida ocorre o planejamento
dos testes de integrao a partir o projeto
detalhado;
4. E por fim, o planejamento dos testes
a partir da codificao.

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.

Tcnicas de teste de software


Atualmente existem muitas maneiras
de se testar um software. Mesmo assim,
existem as tcnicas que sempre foram
muito utilizadas em sistemas desenvol-
vidos sobre linguagens estruturadas
que ainda hoje tm grande valia para
os sistemas orientados a objeto. Apesar
de os paradigmas de desenvolvimento
serem diferentes, o objetivo principal
Figura 3. Modelo V descrevendo o paralelismo entre as atividades de desenvolvimento e teste de software
(CRAIG e JASKIEL, 2002) destas tcnicas continua a ser o mesmo:

56 Engenharia de Software Magazine Introduo a Teste de Software


Verific ao, Validao e Teste

encontrar falhas no software. nadas por estruturas de condies requisitos


so
As tcnicas de teste so classificadas de testadas. A Listagem 1 apresenta um
acordo com a origem das informaes cdigo fonte, extrado de (BARBOSA et
utilizadas para estabelecer os requisitos al., 2000) que descreve um programa de
de teste. Elas contemplam diferentes exemplo que deve validar um identifica-
perspectivas do software e impe-se a dor digitado como parmetro, e a Figura
necessidade de se estabelecer uma estra- 5 apresenta o grafo de programa extrado
tgia de teste que contemple as vantagens a partir desse cdigo, tambm extrado Figura 4. Tcnica de Teste Estrutural.
e os aspectos complementares dessas tc- de (BARBOSA et al., 2000). A partir do
nicas. As tcnicas existentes so: tcnica grafo deve ser escolhido algum critrio
funcional e estrutural. baseado em algum algoritmo de busca
A seguir conheceremos um pouco mais em grafo (exemplo: visitar todos os ns,
sobre cada tcnica, mas iremos enfatizar arcos ou caminhos) para gerao dos ca-
alguns critrios especficos para a tcnica sos de teste estruturais para o programa
funcional. (PFLEEGER, 2004).
Um exemplo bem prtico desta tcnica
Tcnica Estrutural de teste o uso da ferramenta livre JUnit
(ou teste caixa-branca) para desenvolvimento de casos de teste
Tcnica de teste que avalia o com- para avaliar classes ou mtodos desen-
portamento interno do componente de volvidos na linguagem Java. A tcnica de
software (Figura 4). Essa tcnica trabalha teste de Estrutural recomendada para
diretamente sobre o cdigo fonte do com- os nveis de Teste da Unidade e Teste da
ponente de software para avaliar aspec- Integrao, cuja responsabilidade prin-
tos tais como: teste de condio, teste de cipal fica a cargo dos desenvolvedores
fluxo de dados, teste de ciclos e teste de do software, que so profissionais que
caminhos lgicos (PRESSMAN, 2005). conhecem bem o cdigo-fonte desenvol-
Os aspectos avaliados nesta tcnica vido e dessa forma conseguem planejar
de teste dependero da complexidade os casos de teste com maior facilidade.
e da tecnologia que determinarem a Dessa forma, podemos auxiliar na redu-
construo do componente de software, o dos problemas existentes nas peque-
cabendo, portanto, avaliao de outros nas funes ou unidades que compem Figura 5. Grafo de Programa (Identifier.c)
aspectos alm dos citados anteriormente. um software. (BARBOSA et al., 2000).
O testador tem acesso ao cdigo fonte
da aplicao e pode construir cdigos Teste Funcional (ou teste caixa-preta)
para efetuar a ligao de bibliotecas e Tcnica de teste em que o componente
componentes. de software a ser testado abordado
Este tipo de teste desenvolvido anali- como se fosse uma caixa-preta, ou seja,
sando-se o cdigo fonte e elaborando-se no se considera o comportamento inter-
casos de teste que cubram todas as pos- no do mesmo (Figura 6). Dados de entrada
sibilidades do componente de software. so fornecidos, o teste executado e o
Dessa maneira, todas as variaes origi- resultado obtido comparado a um re- Figura 6. Tcnica de Teste Funcional.

Listagem 1. Cdigo fonte do programa identifier.c (BARBOSA et al., 2000)

/* 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 */ }

Edio 01 Engenharia de Software Magazine 57


sultado esperado previamente conhecido. Tipicamente uma condio de entrada identifier.c. Iremos apresent-lo como
Haver sucesso no teste se o resultado pode ser um valor numrico especfico, exemplo do uso deste critrio de teste. Re-
obtido for igual ao resultado esperado. uma faixa de valores, um conjunto de lembrando, o programa deve determinar
O componente de software a ser testado valores relacionados, ou uma condio se um identificador vlido ou no.
pode ser um mtodo, uma funo interna, lgica. As seguintes diretrizes podem
um programa, um componente, um con- ser aplicadas: Um identificador vlido deve comear
junto de programas e/ou componentes ou Se uma condio de entrada especifica com uma letra e conter apenas letras ou
mesmo uma funcionalidade. A tcnica uma faixa de valores ou requer um valor es- dgitos. Alm disso, deve ter no mnimo
de teste funcional aplicvel a todos os pecfico, uma classe de equivalncia vlida 1 caractere e no mximo 6 caracteres
nveis de teste (PRESSMAN, 2005). (dentro do limite) e duas invlidas (acima de comprimento. Exemplo: abc12 (v-
Um conjunto de critrios de teste pode e abaixo dos limites) so definidas. lido), cont*1 (invlido), 1soma (invli-
ser aplicado aos testes funcionais. A se- Se uma condio de entrada especifica do) e a123456 (invlido).
guir conheceremos alguns deles. um membro de um conjunto ou lgica,
uma classe de equivalncia vlida e uma O primeiro passo a identificao das
Particionamento em classes de invlida so definidas. classes de equivalncia. Isso est descrito
equivalncia na Tabela 1.
Esse critrio divide o domnio de entrada Devemos seguir tais passos para gera- A partir disso, conseguimos especificar
de um programa em classes de equivaln- o dos testes usando este critrio: quais sero os casos de teste necessrios.
cia, a partir das quais os casos de teste so 1. Identificar classes de equivalncia ( Para ser vlido, um identificador deve
derivados. Ele tem por objetivo minimizar um processo heurstico) atender s condies (1), (3) e (5), logo
o nmero de casos de teste, selecionando o condio de entrada necessrio um caso de teste vlido que
apenas um caso de teste de cada classe, o vlidas e invlidas cubra todas essas condies. Alem disso,
pois em princpio todos os elementos 2. Definir os casos de teste ser necessrio um caso de teste para
de uma classe devem se comportar de o enumeram-se as classes de equi- cada classe invlida: (2), (4) e (6). Assim, o
maneira equivalente. Eventualmente, valncia conjunto mnimo composto por quatro
pode-se tambm considerar o domnio o casos de teste para as classes vlidas casos de teste, sendo uma das opes:
de sada para a definio das classes de o casos de teste para as classes invlidas T0 = {(a1,Vlido), (2B3, Invlido), (Z-12,
equivalncia (ROCHA et al., 2001). Invlido), (A1b2C3d, Invlido)}.
Uma classe de equivalncia representa Em (BARBOSA et al., 2000) apresenta-
um conjunto de estados vlidos e in- do a aplicao do critrio de particiona- Anlise do valor limite
vlidos para uma condio de entrada. mento por equivalncia para o programa Por razes no completamente iden-
tificadas, um grande nmero de erros
tende a ocorrer nos limites do domnio de
<3
entrada invs de no centro. Esse critrio
>80 #produtos Fret e Grtis
de teste explora os limites dos valores de
cada classe de equivalncia para preparar
> =3 os casos de teste (Pressman, 2005).
Valor comp ra Se uma condio de entrada especifica
uma faixa de valores limitada em a e b,
casos de teste devem ser projetados com
< =80 Cob rar Frete
valores a e b e imediatamente acima e
abaixo de a e b. Exemplo: Intervalo =
Figura 7. rvore de Deciso Grafo de Causa-Efeito.
{1..10}; Casos de Teste {1, 10, 0,11}.
Como exemplo, extrado de (BARBOSA
Condies de Entrada Classes Classes
et al., 2000), iremos considerar a seguinte
Tamanho t do identificador (1) 1 t 6 (2) t > 6 situao:
Primeiro caractere c uma letra (3) Sim (4) No
"... o clculo do desconto por depen-
S contm caracteres vlidos (5) Sim (6) No dente feito da seguinte forma: a entra-
Tabela 1. Classes de Equivalncia do programa identifier.c. da a idade do dependente que deve
estar restrita ao intervalo [0..24]. Para
Valor da compra > 60 > 60 <= 60 dependentes at 12 anos (inclusive) o
Causa desconto de 15%. Entre 13 e 18 (inclu-
#Produtos <3 >= 3 --
sive) o desconto de 12%. Dos 19 aos
Cobrar frete V V 21 (inclusive) o desconto de 5% e dos
Efeito 22 aos 24 de 3%..."
Frete grtis V

Tabela 2. Tabela de deciso para o programa de compra pela Internet. Aplicando o teste de valor limite

58 Engenharia de Software Magazine Introduo a Teste de Software


Verific ao, Validao e Teste

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,

Edio 01 Engenharia de Software Magazine 59


Gesto de defeitos
Ferramentas Open Source e melhores prticas na gesto de defeitos

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)

60 Engenharia de Software Magazine Gesto de Defeitos


Verific ao, Validao e Teste

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.

Edio 01 Engenharia de Software Magazine 61


Recomendaes para o relato evitando manifestaes de humor, Severidade X Prioridade
de defeitos emoo, etc; A classificao da severidade e priori-
Notamos que, muito embora o relato Generalizar: Procure entender o dade dos defeitos , de forma similar ao
de um defeito seja um dos passos funda- problema de forma genrica, em virtu- relato de defeitos, um ponto normalmen-
mentais do processo de gesto de defeitos, de de que este problema tambm pode te negligenciado e foco de interpretaes
normalmente ele relegado para segundo acontecer em outras situaes ou fun- incorretas. A classificao incorreta da
plano. A listagem abaixo apresenta as cionalidades. severidade e da prioridade normalmente
diretrizes que devem ser seguidas du- Reproduzir: Garanta que o defeito contribui para a ineficincia da priori-
rante o relato de um defeito com base nas seja reproduzvel e descreva os passos zao e agendamento da correo dos
recomendaes descritas no livro Base de necessrios para a sua reproduo; defeitos. O efeito colateral direto desse
conhecimento em teste de software: Evidenciar: Evidencie a existncia do problema a m utilizao dos recursos
Resumir: Descreva claramente o de- defeito encontrado por meio de arquivos em funo do enfoque na correo de
feito, mas de forma resumida; de sada, printscreens das telas, etc; defeitos menos prioritrios.
Preciso: Certifique-se que o defeito Revisar: Revise a descrio e os passos A grosso modo, podemos afirmar que
identificado realmente um desvio do para reproduzir o defeito. Lembre-se que a severidade de um defeito define o im-
comportamento esperado e no uma o relato do defeito um documento do pacto do defeito no funcionamento da
falha de entendimento; projeto, assim como um caso de uso, um aplicao. Por outro lado, a prioridade
Neutralizar: Relate apenas os fatos, plano de testes, etc. Trate-o como tal; indica a ordem de correo do defeito
(defeitos com alta prioridade so corrigi-
dos imediatamente ou num curto prazo
Severidade Descrio
de tempo). De modo geral, defeitos com
Alta Bloqueia completamente a utilizao de uma funcionalidade bsica ou da aplicao inteira alta severidade so classificados com alta
prioridade. No entanto, podem existir
Bloqueia a utilizao de uma funcionalidade. Mas, no entanto, a funcionalidade pode ser usada por meio da utilizao
Mdia diversas situaes onde no podemos
de um contorno (workaround) conhecido
aplicar essa regra. Por exemplo, a cor-
Baixa Problemas cosmticos e solicitaes de melhorias rupo dos dados de uma aplicao no
Windows 3.11 um defeito com alta se-
Tabela 1. Classificao da prioridade.
veridade mas, no entanto, deve ter baixa
Prioridade Descrio
prioridade em virtude de que 99,9% dos
usurios da aplicao utilizam verses
1 O defeito deve ser corrigido imediatamente (at um dia til). A aplicao no pode ser liberada sem a correo deste defeito mais atuais do Windows. A justificativa
para esse critrio : Por que priorizar a
altamente desejvel que o defeito seja corrigido to logo seja possvel (at cinco dias teis). A aplicao no pode ser
2 correo de um defeito que vai beneficiar
liberada sem a correo deste defeito
apenas 0,01% dos usurios?
3 Defeito de baixa prioridade. A aplicao pode ser liberada com esse defeito Para evitar a subjetividade da classifica-
o, sugere-se que os critrios para cada
Tabela 2. Classificao da severidade.
nvel de prioridade e severidade sejam
definidos na documentao do processo
de gesto de defeitos. Para fins didticos
e de entendimento, sero apresentados na
Tabela 1 e Tabela 2 exemplos de critrios
para classificar a severidade e a priorida-
de dos defeitos respectivamente.

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

62 Engenharia de Software Magazine Gesto de Defeitos


Verific ao, Validao e Teste

so os seguintes: Controle de acesso e nveis de permis- o seu fechamento.


1. As pr-condies para a instalao ses para os usurios; To logo um testador ou usurio encon-
so (PHP 4.0.6 ou superior, MySQL 3.23.2 Ciclo de vida dos defeitos (worflow) tre um defeito, seja por inteno ou por
ou superior, Apache ou IIS). personalizvel; acidente, o prximo passo dever ser o
2. Faa o download do Mantis no site Gerador interno de relatrios e grfi- relato (ou reporte) desse defeito.
disponvel na seo Links. cos (possibilidade para exportar os dados No nosso cenrio, vamos relatar um de-
3. Descompacte o arquivo zip do Mantis nos formatos CSV, Excel e Word); feito (problema no recurso de seleo de
na pasta www ou htdocs do servidor Mecanismo para a criao de campos textos quando existe uma tabela no topo
WEB (Apache ou IIS). personalizveis (custom fields); do documento) do OpenOffice Writer
4. Abra o seu navegador e acesse o Notificaes por email automticas (processador de texto Open Source).
seguinte endereo: (http://localhost/ ou por meio de RSS Feeds; Para realizar tal tarefa, voc dever
mantis_1.0.5/). Integrao com ferramentas de con- selecionar o menu Relatar Caso do
5. Na janela Pre-Installation Check, pre- trole de verses (Subversion e CVS); Mantis. Uma vez que a janela de relato for
encha os campos username com o nome Interface Webservice (SOAP) para exibida, voc dever informar o resumo
da conta de usurio para acesso ao banco integrao com outras ferramentas; do defeito, a descrio, os passos para
de dados MySQL e o campo password MantisWAP Suporte a dispositivos reproduzir e assim por diante, como pode
com a senha. mveis (funcionalidade paga); ser observado na Figura 4.
6. Deixe os valores default nos demais importante lembrar que o correto
campos. A fim de dar ao leitor uma exposio preenchimento dos campos severidade
7. Pressione o boto Install/Upgrade sobre as principais funcionalidades do (gravidade) e prioridade neste passo de
Database. Mantis e como elas atendem os principais extrema importncia para a priorizao e
8. Ao final do processo, abra o seu fluxos de um ciclo de vida de um defeito, agendamento da correo do defeito.
navegador e acesse o seguinte ende- vamos simular na prtica o relato de um Assim que o defeito for relatado, o ana-
reo: (http://localhost/mantis_1.0.5/ defeito e acompanhar todos os passos at lista de teste (ou lder de desenvolvimen-
login_page.php).
9. Faa o primeiro login com o usurio
padro (administrator/root). Lembre-se
de mudar a senha deste usurio.

O Mantis instalado em ingls por


padro. Caso voc prefira utilizar o
Mantis com os textos traduzidos para a
lngua portuguesa, ento siga os passos
descritos abaixo:
1. Faa o login normalmente com o seu
usurio e senha.
2. Clique no menu My Account e en-
to selecione a opo Preferences.
3. No campo Language selecione a op-
o "portuguese_brazil".
4. Pressione o boto "Update Prefs".

Entre as diversas funcionalidades ofe-


recidas pelo Mantis, devemos destacar
as seguintes:
Pode ser executado em qualquer
plataforma que suportar PHP/Apache/
Mysql (Windows, Linux, Mac, Solaris,
AS400/i5, etc);
Suporta vrios bancos de dados (MyS-
QL, MS SQL, PostgreSQL);
Suporta mltiplos mecanismos de
autenticao (Interna, LDAP, HTTP Basic,
Active Directory);
Traduzido em 68 lnguas diferentes
(incluindo "portuguese_brazil");
Criao ilimitada de projetos e relatos
de defeitos; Figura 4. Relato de um defeito.

Edio 01 Engenharia de Software Magazine 63


to) poder filtrar os defeitos cadastrados
recentemente para confirmar e reconhe-
cer se o que foi relatado realmente um
defeito ao invs de um mal entendimento
do comportamento esperado.
Se for confirmado que o relato no um
problema, ele imediatamente fechado.
Caso contrrio, o analista de teste (ou
lder de desenvolvimento) dever confir-
mar se a severidade (gravidade) e priori-
dade foram classificadas corretamente e
atribuir o defeito a um desenvolvedor,
como pode ser visto na Figura 5.
Nesta altura, tambm podero ser re-
alizadas a projeo da complexidade e
a estimativa do tempo necessrio para
finalizar a correo do defeito.
O desenvolvedor, por sua vez, receber
um e-mail automaticamente conforme
o fluxo (workflow) definido no Mantis,
como pode ser observado no exemplo
apresentado na Figura 6. De qualquer for-
ma, o desenvolvedor poder visualizar
Figura 5. Reconhecimento, priorizao e agendamento da correo de um defeito. os defeitos atribudos a ele diretamente
no Mantis por meio da pgina Minha
Viso. Nesta pgina (Figura 7), so
apresentados e consolidados todos os
defeitos, inclusive os defeitos associados
ao usurio logado no Mantis.
Assim que o desenvolvedor receber
o e-mail notificando que a correo do
defeito foi programada e atribuda a
ele, o prximo passo ser a execuo da
correo propriamente dita.
Dessa forma, to logo a correo seja
finalizada, o desenvolvedor dever re-
portar a correo do defeito por meio do
Mantis. Para tal tarefa, o desenvolvedor
dever mudar a resoluo do defeito para
Corrigido e descrever quais foram as
modificaes necessrias para corrigir o
defeito no campo Anotao, como pode
ser visto na Figura 8.
Por fim, assim que for reportada a
correo do defeito, o testador dever
Figura 6. E-mail enviado pelo Mantis ao desenvolvedor. executar o re-teste. Durante o re-teste, o

64 Engenharia de Software Magazine Gesto de Defeitos


Verific ao, Validao e Teste

testador poder identificar que o defeito


no foi corrigido corretamente ou foi par-
cialmente corrigido. Neste caso, o defeito
dever ser reaberto e o ciclo de vida do
defeito reiniciado.
Por outro lado, o defeito dever ser
fechado caso ele tenha sido corrigido
corretamente. Para realizar tal tarefa, o
testador dever mudar o status do de-
feito para Fechado e descrever algum
comentrio sobre o fechamento no campo
Anotao, como pode ser visto na Fi-
gura 9. Dessa forma, chegamos ao final
da simulao de um ciclo de vida de um
defeito e a apresentao das principais
funcionalidades do Mantis.

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:

Edio 01 Engenharia de Software Magazine 65


Densidade dos defeitos: Indica o
nmero de defeitos por uma unidade.
normalmente utilizado para identificar
a quantidade de defeitos por cada mil
linhas de cdigo (KLOC);
Taxa de abertura dos defeitos: Utili-
zado para acompanhar o progresso da
execuo dos testes e o nvel da qualidade
do sistema em teste;
Taxa de correo dos defeitos: Utili-
zado para acompanhar e medir a capa-
cidade do time de desenvolvimento de
corrigir os defeitos encontrados;
Taxa de defeitos re-abertos: Utilizado
para acompanhar a qualidade da corre-
o dos defeitos. Pode identificar baixa
qualidade no trabalho dos desenvolve-
dores ou baixa qualidade nos relatos
dos defeitos (o que leva a uma correo
incorreta);
Figura 9. Fechamento de um defeito. Taxa de defeitos abertos agrupados
por testador: Identifica a taxa de abertura
de defeitos por testador. Deve ser anali-
sada em conjunto com outros dados, caso
contrrio, vai privilegiar testadores que
encontram dezenas de defeitos bobos em
detrimento dos testadores que encontram
poucos defeitos (porm so defeitos com-
plexos e difceis de reproduzir);
Taxa de defeitos corrigidos agrupados
por desenvolvedor: Identifica a taxa de
correo dos defeitos por desenvolvedor.
Deve ser analisada em conjunto com ou-
tros dados, caso contrrio, vai privilegiar
desenvolvedores que corrigem dezenas de
defeitos bobos em detrimento dos desen-
volvedores que corrigem poucos defeitos
(porm so defeitos de difcil resoluo);
Severidade por mdulo: Utilizado
para identificar os mdulos que contm
muitos defeitos com severidade alta.
Com base nesses dados, podemos tomar
alguma deciso para identificar a causa
raiz dos problemas e promover alguma
modificao no processo para diminuir
a quantidade de defeitos com severidade
alta no mdulo;

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

66 Engenharia de Software Magazine Gesto de Defeitos


Verific ao, Validao e Teste

Prioridade por mdulo: Identifica


mdulos com alta taxa de defeitos com Open Source Comercial
prioridade alta. Com base nesses dados,
Bugzilla FogBugz
podemos realocar os recursos a fim de
http://www.bugzilla.org/ http://www.fogcreek.com/FogBugz/
atender a demanda. Normalmente
Scarab Jira
analisada em conjunto com a mtrica de
http://scarab.tigris.org/ http://www.atlassian.com/software/jira/
Severidade por mdulo;
BugNET yKAP
Vazamento de defeitos: Utilizada
http://www.bugnetproject.com/ http://www.ykap.com/
para medir a efetividade da abordagem
TRAC Rational ClearQuest
de testes em cada fase de teste (Unidade,
http://trac.edgewall.org/ www.ibm.com/software/awdtools/clearquest/
Integrao, Sistema e Aceitao). Dessa
Tabela 3. Ferramentas de gesto de defeitos alternativas.
forma, podemos identificar que a abor-
dagem e cobertura de testes utilizada na
fase de testes de Sistema no foram mui-
to eficientes em virtude de que muitos
defeitos vazaram e foram encontrados
durante a fase de testes de Aceitao;
Bug Convergence: Identifica o ponto
de declnio da taxa de abertura dos de-
feitos. Este o ponto onde a quantidade
de defeitos abertos tende a ser menor do
que a quantidade de defeitos corrigidos.
Dessa forma, espera-se que a partir desse
ponto a quantidade de defeitos abertos
diminua at chegar a zero;
Zero Bug Bounce: Utilizada para
acompanhar os picos e vales do grfico de
defeitos encontrados a partir do momento
do declnio da taxa de abertura dos de-
feitos (Bug Convergence). Os vales desse
grfico representam os pontos no tempo
onde no existem defeitos conhecidos
com status igual a aberto, ou seja, estes
so os melhores momentos para liberar
o sistema para a prxima fase ou para o
cliente;
Figura 11. Principais mtricas utilizadas na gesto de defeitos.
Concluso
Neste artigo foram apresentados os
conceitos e melhores prticas na gesto
de defeitos. O objetivo principal do artigo
era destacar a importncia da gesto de
defeitos como um processo de apoio ao
desenvolvimento e teste de software. Para
facilitar o entendimento do leitor, foram
demonstrados na prtica os conceitos
discutidos por meio da utilizao do
Mantis (ferramenta Open Source para
gesto de defeitos).
Se o leitor quiser se aprofundar no
assunto, so apresentadas na Tabela
3 algumas das principais ferramentas
comerciais e Open Source para a gesto
de defeitos. No foram esgotadas todas
as opes disponveis, mas j um bom
ponto de partida para auxiliar o leitor
a encontrar a soluo ideal para a sua
necessidade.

Edio 01 Engenharia de Software Magazine 67


Introduo Inspeo de Software
Aumento da qualidade atravs de verificaes intermedirias

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;

68 Engenharia de Software Magazine Introduo Inspeo de Software


Verific ao, Validao e Teste

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.

Em alguns momentos o termo discre-


pncia ser utilizado. Este termo refere-
se a um suposto defeito encontrado. No
nosso contexto, uma discrepncia poder
ser considerada um defeito de fato ou um
chamado falso positivo. Figura 1. Inspees de Software nos Diferentes Artefatos. Adaptado de (ACKERMAN et al., 1989)
Para obter uma classificao para os
defeitos encontrados nas revises (as
faltas), partimos do fato de que todos os
artefatos gerados durante o desenvolvi-
mento de software utilizam como base
o documento de requisitos ou artefatos
gerados a partir deste. Desta forma, as
classes de defeito seriam os tipos de
defeito presentes em documentos de
requisitos acrescidos dos tipos de defei-
tos introduzidos pela transformao de
artefatos ao longo do desenvolvimento
de software.
Um padro IEEE (IEEE 830, 1998), que
recomenda prticas para especificao
de requisitos de software, define atribu-
tos de qualidade que um documento de
requisitos deve possuir. Foi considerado Figura 2. Distribuio do retrabalho pelas atividades de desenvolvimento de
que a falta de qualquer um destes atribu- software. Adaptado de (WHEELER et al., 1996).

Edio 01 Engenharia de Software Magazine 69


Assim, um dos maiores benefcios de quando inspees so aplicadas, quando que deixa explcita a sua contribuio
se utilizar inspees de software a comparado ao desenvolvimento sem uti- para a melhoria da qualidade.
deteco de defeitos nas fases iniciais lizar inspees, se encontra na Figura 4. Uma outra maneira de detectar defeitos
do processo de desenvolvimento de Esta estimativa representa bem os benef- em artefatos atravs da aplicao de
software, facilitando a correo destes cios apresentados nesta seo. possvel testes. No entanto, a aplicao de testes
defeitos com menor esforo e custo. Desta observar que utilizando inspees se descobre apenas sintomas de problemas e,
forma, de acordo com (JONES, 1991), o obtm um aumento na produtividade, desta forma, pode ocasionar um trabalho
esforo com retrabalho reduzido em j que projetos so concludos em menos refinado e custoso para detectar o defeito
mdia para 10% a 20% do esforo total tempo e envolvem menos gastos. que causou o sintoma. BOEHM e BASILI
de desenvolvimento. Esta reduo no (2001) ressaltam ainda que inspees e
retrabalho pode implicar em melhorias Qualidade de Software testes capturam diferentes tipos de defeito
significativas para a produtividade de De acordo com Pressman (2001), quali- e em diferentes momentos do processo de
software. De acordo com (BOEHM et dade de software a conformidade a: (1) desenvolvimento de software.
al., 2000) a maior reduo de esforo requisitos funcionais e no funcionais Portanto, interessante aplicar tanto
gerada pela melhoria de (1) maturidade que tm sido explicitamente declarados, inspees quanto testes para detectar
de processos de software, (2) arquitetu- (2) padres de desenvolvimento que te- defeitos em artefatos de software.
ras de software e (3) gerncia de riscos nham sido claramente documentados e Alm disto, precedendo os testes com as
proveniente da reduo do retrabalho. (3) caractersticas implicitamente espera- inspees, defeitos podem ser removidos
Resultados experimentais mostram como das de todo software a ser desenvolvido. nas fases iniciais do processo de desen-
este benefcio pode afetar as variveis De forma resumida, qualidade consiste volvimento e os desenvolvedores tero
esforo, produtividade, tempo e custo, de um conjunto de requisitos e de um uma viso mais ampla da complexidade
mencionadas na seo anterior: produto ou servio que esteja em confor- do sistema. Esta viso os deixa mais bem
Esforo. O departamento de desenvol- midade com estes requisitos e, por esta preparados para o momento em que se
vimento da Ericsson em Oslo, Noruega, razo, atenda completamente s neces- confrontam com esta complexidade e com
calculou uma reduo bruta do esforo sidades dos clientes. Entre as atividades os defeitos que podem possivelmente
total de desenvolvimento em 20% apli- que podem ser utilizadas para verificar a surgir durante os testes.
cando inspees. Alm disto, resultados qualidade de software se encontram:
de estudos mostram que a introduo Revises de software; Outros Benefcios
de inspees de projeto pode reduzir o Testes; A aplicao de inspees de forma bem
esforo com retrabalho em 44%. Padres e procedimentos formais; planejada pode trazer diversos outros
Produtividade. De acordo com (GILB Controle de mudanas; benefcios:
e GRAHAM, 1993), inspees aumentam Mtricas de software; Aprendizado. Inspetores experientes
a produtividade de 30% a 50%; Procedimentos para coleo e disse- podem tentar detectar padres de como
Tempo. De acordo com (GILB e minao de informaes. os defeitos ocorrem e definir diretrizes
GRAHAM, 1993), inspees reduzem o que ajudem na deteco destes. Alm
tempo de desenvolvimento de 10% a 30%; A importncia das revises na garantia disto, bons padres de desenvolvimento
Custo. Resultados de estudos mostram da qualidade destacada pelo modelo podem ser observados durante a inspe-
que a introduo de inspees de cdigo CMMI, que exige a realizao de revi- o, sendo possvel sua descrio como
pode reduzir os custos de implementao ses como uma prtica especfica do melhores prticas para a organizao.
de projetos em 39%. processo de verificao. Sabe-se ainda Integrao entre processos de deteco
que inspees de software, em particular, e de preveno de defeitos. Saber onde e
Uma estimativa de (WHEELER et al., capturam em torno de 60% dos defeitos quando os defeitos ocorrem pode ajudar
1996) sobre o custo de desenvolvimento de artefatos (BOEHM e BASILI, 2001) o a estabelecer planos de contingncia que

Figura 4. Estimativa dos gastos de desenvolvimento utilizando e no


Figura 3. Custo relativo para corrigir um defeito. Adaptado de (BOEHM, 1981). utilizando inspees. Adaptado de (WHEELER et al., 1996).

70 Engenharia de Software Magazine Introduo Inspeo de Software


Verific ao, Validao e Teste

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).

Edio 01 Engenharia de Software Magazine 71


dor, o autor do documento e os inspetores de coordenao, afinal discrepncias avaliado em estudos experimentais e se
discutem as discrepncias de forma encontradas por mais de um inspetor mostrado adequado.
assncrona. Durante esta discusso, al- so encaminhadas diretamente para a No entanto, muito deste conhecimento
gumas discrepncias sero classificadas atividade de retrabalho e as discrepncias no tem sido utilizado na prtica por or-
como falso positivo e outras como defeito. encontradas por apenas um inspetor no ganizaes de software ao realizarem suas
Os falso positivos sero descartados e os precisam ser discutidas necessariamente inspees, e negligenciado na maioria
defeitos sero registrados em uma lista por todos os inspetores. das propostas de apoio ferramental ao
de defeitos, que ento ser passada para o processo de inspeo de software.
autor para que a correo possa ocorrer. Estado Atual: Prtica de Revises Esta seo apresenta o estado da prtica
em Organizaes de Software e de revises de software e o ferramental
A forma como as atividades se rela- Suporte Ferramental Existente de apoio atualmente existente.
cionam na reorganizao do processo Ao longo dos anos, muito conhecimento
de inspeo de SAUER et al. (2000) est tem sido produzido na rea de inspees de Prtica de Revises em Organizaes
ilustrada na Figura 6. software. Incluindo variantes do processo de Software
Este processo permite a utilizao de tradicional de inspeo, tcnicas de estima- Em um artigo comparando as diversas
um nmero grande de inspetores em pa- tiva do nmero de defeitos de documentos abordagens sobre inspees de software
ralelo para a deteco de defeitos e, assim, e da cobertura de inspees, tcnicas de encontradas na literatura, LAITENBER-
aumentar a probabilidade de se encontrar leitura de documentos visando aumentar GER e DEBAUD (2000) mostraram que,
defeitos difceis de serem encontrados. Um o nmero de defeitos encontrados por ins- conforme representado na Figura 7, ins-
grande nmero de inspetores tem um efei- petores, diretrizes para pontos de tomada pees em cdigo so as mais comuns.
to no custo, mas no no tempo de deteco de deciso do processo de inspeo, dentre No entanto, sabe-se que os benefcios de
de defeitos e no implicar em problemas outras. Parte deste conhecimento tem sido inspees so maiores para os artefatos
produzidos no incio do ciclo de desen-
volvimento. importante destacar aqui
que estas informaes podem no refletir
o estado atual de desenvolvimento de
software, estamos em 2008.
Um survey foi realizado em 2002 visan-
do avaliar o estado da prtica de revises
de software (CIOLKOWSKI et al., 2003).
De acordo com seus resultados, embora
muitas organizaes de software reali-
zem revises, a forma como as revises
so realizadas ainda pouco sistema-
tizada, pouco conhecimento da rea
de inspees de software utilizado e
assim o verdadeiro potencial das revises
raramente explorado. Este argumento
baseado em trs observaes sobre as
organizaes participantes do survey:
(1) Revises raramente cobrem siste-
maticamente as fases de desenvolvimento
de software. Cerca de 40% das organiza-
es responderam realizar inspees em
Figura 6. Reorganizao do processo de inspeo, adaptada de (SAUER et al., 2000).

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).

72 Engenharia de Software Magazine Introduo Inspeo de Software


Verific ao, Validao e Teste

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).

Edio 01 Engenharia de Software Magazine 73


pontos de tomada de deciso do processo
so apoiados por resultados de tcnicas
de estimativa e dados quantitativos
representando a realidade da prpria
organizao. ISPIS pode ser utilizada
para coordenar e apoiar a inspeo de
qualquer tipo de artefato de software
(documentos de requisitos, de projeto,
cdigo, etc) e, opcionalmente, faz uso de
um mecanismo de integrao para se co-
municar com ferramentas de deteco de
defeitos existentes para artefatos especfi-
cos. Outra caracterstica da ferramenta
permitir reunies de inspeo tanto sn-
cronas quanto assncronas. As inspees
com reunies assncronas se adequam ao Figura 10. Telas do apoio de ISPIS ao planejamento de uma inspeo de software (KALINOWSKI et al., 2004).
contexto de desenvolvimento global de
software. Assim, ISPIS pde, por exem- Referncias
plo, ser utilizada com sucesso em inspe-
ACKERMAN, A., BUCHWALD, L., LEWSKI, F., 1989,Software Inspections: An Effective Verification Process,IEEE Software, vol. 6, no. 3, pp.31-37.
es com participantes distribudos entre
Rio de Janeiro, Nova Iorque e Londres. A KALINOWSKI, M., SPNOLA, R.O., TRAVASSOS, G.H., Infra-Estrutura Computacional para Apoio ao Processo de Inspeo de Software. No:
ferramenta tem ainda sido utilizada para Simpsio Brasileiro de Qualidade de Software, 2004, Braslia.
a realizao de projetos na indstria. Por BOEHM, B. W., BASILI, V.R., 2001,Software Defect Reduction Top 10 List., IEEE Computer 34 (1): 135-137.
representar o estado da arte a respeito de BOEHM, B.W., ABTS, C., BROWN, A.W., CHULANI, S., CLARK, B.K., HOROWITZ, E., MADACHY, R., REIFER, D., STEECE, B., 2000, Software Cost
inspees de software, ISPIS resultou em Estimation with COCOMO II, Prentice Hall.
artigos cientficos em conferncias reno- BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall.
madas. Sua aplicabilidade na indstria CIOLKOWSKI, M., LAITENBERGER, O., BIFFL, S., 2003,Software Reviews: The State of the Practice, IEEE Software 20 (6): 46-51.
permitiu ainda publicaes sob forma FAGAN, M.E., 1976,Design and Code Inspection to Reduce Errors in Program Development,IBM Systems Journal, vol. 15, no. 3, pp. 182-211.
de relatos de experincia. A Figura 10 GILB, T., GRAHAM, D., 1993,Software Inspection, Addison-Wesley.
ilustra algumas telas do apoio de ISPIS
Grnbacher, P., Halling, M., Biffl, S.,An Empirical Study on Groupware Support for Software Inspection Meetings, Proceedings of the
atividade de planejamento.
18th IEEE International Conference on Automated Software Engineering, 2003.
JONES, C., 1991,Applied Software Measurement, McGraw Hill.
Concluso
O objetivo de inspees de software Kalinowski, M., Travassos, G. H., A Computational Framework for Supporting Software Inspections, In: 19th IEEE International
melhorar a qualidade de artefatos de sof- Conference on Automated Software Engineering - ASE'04, pp. 46-55, Linz, Austria, 2004.
tware atravs de sua anlise, detectando LAITENBERGER, O., ATKINSON, C., 1999,Generalized Perspective Based Inspection to handle Object Oriented Development Artifacts,
e removendo defeitos antes que o artefato Proceedings of ICSE 99, p.494-503, Los Angeles, CA, USA.
seja passado para a prxima fase do pro- Lanubile, F., Mallardo, T., CALEFATO, F., 2003, Tool support for Geographically Dispersed Inspection Teams, Software Process
cesso de desenvolvimento de software. Improvement and Practice, 2003, 8: 217-231 (DOI: 10.1002/spip.184).
Conforme visto neste artigo, a aplicao PRESSMAN, R.S., 2001, Software Engineering: A Practitioners Approach, Fifth Edition, McGraw Hill.
de inspees entre as atividades do ciclo SAUER, C., JEFFERY, D.R., LAND, L., YETTON, P., 2000, The Effecticveness of Software Development Technical Review: A Behaviorally
de vida de software pode trazer diversos Motivated Program of Research, IEEE Transactions on Software Engineering, 26 (1): 1-14, January.
benefcios para organizaes de software.
WHEELER, D.A., BRYKEZYNSKI, B., MEESON, R.N., 1996, Software Inspections: An Industry Best Practice, IEEE Computer Society.
O processo de inspeo foi inicialmente
elaborado por FAGAN (1976). Argumen-
tos da literatura e estudos experimen-
tais, visando avaliar este processo, vm sistematizada e pouco conhecimento COPPE/UFRJ. no contexto da disserta-
indicando reunies assncronas para da rea de inspees de software uti- o de mestrado do Marcos Kalinowski
inspees de software. Tendo em vista lizado. Assim o verdadeiro potencial (um dos autores deste artigo).
as inspees com reunies assncronas das revises raramente explorado,
SAUER et al., (2000), baseados em estudos introduzindo um fator de confuso entre Reconhecimento
experimentais, apresentam uma reorga- os resultados esperados pelas revises e Aos pesquisadores Forrest Shull, Gui-
nizao com mudanas para reduzir o os obtidos na prtica. Visando enderear lherme Horta Travassos e Jeffrey Carver
custo e o tempo total da realizao deste este problema e permitir a realizao de por suas contribuies acadmicas para
tipo particular de inspeo. inspees mais sistemticas algumas a rea de inspees de software, fun-
Atualmente muitas organizaes re- propostas de apoio ferramental surgi- damentais para a elaborao da tese de
alizam revises, mas a forma como as ram. Entre estas propostas destacamos mestrado que, entre outros, rene os co-
revises so realizadas ainda pouco a infra-estrutura ISPIS, desenvolvida na nhecimentos discorridos neste artigo.

74 Engenharia de Software Magazine Introduo Inspeo de Software

S-ar putea să vă placă și