Anda di halaman 1dari 76

Engenharia de Software

engenharia
Saiba seu significado e para que serve

magazine
de software
Edição Especial

Entenda os principais conceitos


sobre Testes e Inspeção de Software
Verificação, Validação & Teste
Ferramentas Open Source e melhores
práticas na gestão de defeitos
Requisitos Projeto
Conheça 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 através da Veja como integrar conceitos de Veja como integrar o Processo
análise 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,
endereço 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ª Edição 2007 - - Impresso no Brasil
Kaline Dolabella
Gerente de Marketing e Atendimento
kalined@terra.com.br
Corpo Editorial (21) 2220-5375

Colaboradores Publicidade
Rodrigo Oliveira Spínola Para informações sobre veiculação de anúncio na revista ou no site entre
rodrigo@sqlmagazine.com.br em contato com:

Marco Antônio Pereira Araújo Kaline Dolabella


Eduardo Oliveira Spínola 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 sugestão!
Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine,
Capa entre em contato com os editores, informando o título e mini-resumo do tema que você
Vinicius O. Andrade gostaria de publicar:
viniciusoandrade@gmail.com
Rodrigo Oliveira Spínola - 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 Pádua Paula Filho
10 - Melhorando Processos Através da Análise de Risco e Conformidade
Rafael Espinha, João 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 - Introdução à Engenharia de Requisitos


Ana Luiza Ávila e Rodrigo Oliveira Spínola

54 - Introdução a Teste de Software


Arilo Cláudio Dias Neto

60 - Gestão de defeitos
Cristiano Caetano
68 - Introdução à Inspeção de Software
Marcos Kalinowski e Rodrigo Oliveira Spínola
Alguns Fundamentos da Engenharia de
Software

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


É a mesma coisa que Ciência da Com- até naquelas em que o desenvolvimento
putação? Ou é uma entre muitas espe- de software é atividade fim. Programas
cialidades da Ciência da Computação? e exames de certificação em Engenharia
Ou dos Sistemas de Informação, ou do de Software são pouco conhecidos, ao
Processamento de Dados, ou da Informá- contrário do que acontece com algumas
tica, ou da Tecnologia da Informação? Ou linguagens e tecnologias usados por esses
é uma especialidade diferente de todas profissionais.
as anteriores? Em outros países, a situação é um pouco
Na maioria das instituições brasileiras diferente. Algumas universidades ameri-
de ensino superior, o conjunto de co- canas oferecem programas de graduação,
nhecimentos e técnicas 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 organização internacional
têm os nomes de Ciência da Computação, de profissionais de Engenharia Elétrica,
Wilson de Pádua Paula Filho Informática ou Sistemas de Informação. através da Computer Society, que forma o
(wppf@ieee.org) Raramente, em mais disciplinas, muitas seu ramo em Computação, oferece a qua-
Engenheiro Mecânico pelo ITA, Doutor em
vezes opcionais, e muitas vezes oferecidas lificação de Profissional Certificado para
Engenharia Elétrica pela Escola Politécnica da
USP, Professor Titular aposentado do Departa- apenas em nível de pós-graduação. Algu- o Desenvolvimento de Software.
mento de Ciência da Computação da UFMG. mas instituições oferecem cursos de pós-
Autor dos Livros “Engenharia de Software: graduação em Engenharia de Software, Ciência, Engenharia e Valor
Fundamentos, Métodos e Padrões” e “Multi- geralmente no nível de especialização. Sem pretender fazer distinções defini-
mídia: Conceitos e Aplicações”. 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 – Laboratório de Engenharia carreira profissional também não é muito cionários. O Dicionário Aurélio Eletrônico
de Software e Sistemas da UFMG. comum, mesmo em organizações que pro- V.2.0 assim define Ciência e Engenharia:

4 Engenharia de Software Magazine – Alguns Fundamentos da Engenharia de Software


engenharia

Ciência - Conjunto organizado de conheci- tes das Belas Artes, e valorizam critérios tosos, e, em certos casos, até riscos à vida
mentos relativos a um determinado objeto, es- estéticos na criação de seus programas. humana; muitas vezes empreendimentos
pecialmente os obtidos mediante a observação, a Isso pode ter conseqüências boas e ruins, de software são afetados por um contexto
experiência dos fatos e um método próprio. do ponto de vista de gerar valor. Por um econômico, político ou social.
Engenharia - Arte de aplicar conhecimen- lado, a busca da elegância pode levar
tos científicos e empíricos e certas habilitações à economia e simplicidade de formas, Produtos e Ciclos de Vida
específicas à criação de estruturas, dispositi- fazendo com que resultados de melhor A íntima relação entre a Engenharia de
vos e processos que se utilizam para converter qualidade sejam obtidos de maneira mais Software e a noção de valor significa que
recursos naturais em formas adequadas ao produtiva. E, principalmente, levando essa profissão trata o software como pro-
atendimento das necessidades humanas. a escrever programas que possam ser duto. Estão fora do escopo da Engenharia
mais facilmente reutilizados, mantidos e de Software programas que são feitos
Vê-se que, pelas definições acima, a expandidos. Por outro lado, a auto-satisfa- com objetivo exclusivamente lúdico: a
Ciência focaliza acumulação do conheci- ção do programador pode ter como preço diversão do programador. Estão fora de
mento através do método científico, com
base em experimentos e observações. Já
a Engenharia aplica esses conhecimen-
tos “ao atendimento das necessidades A íntima relação entre a Engenharia de Software e a noção
humanas”. Embora o conhecimento seja
certamente uma necessidade humana, de valor significa que essa profissão trata o software como
trata-se de uma entre várias outras,
sejam necessidades materiais, como produto.
alimentação, moradia, segurança, ou
imateriais, como afeição 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 também pequenos programas
portanto, ligada à noção de valor, e a En- trabalho dele, ou de quem o usará. Seja, descartáveis, feitos por alguém apenas
genharia de Software busca gerar valor por exemplo, produzindo programas que para resolver um problema dessa pessoa,
com o processamento de informação. A ninguém entende, senão o próprio autor e que não serão utilizados por outros.
noção de valor tem muitas conseqüên- (e, depois de certo tempo, nem ele mesmo). Mas, se um desses programas interessar
cias práticas importantes, e, de fato, a Seja, como outro exemplo, introduzindo a outras pessoas, e assim passar a ter va-
teoria conhecida como “Engenharia de funções que o autor achou interessantes, lor, aparecerão demandas para melhorar
Software Baseada em Valor” representa mas não são realmente necessárias, nem suas qualidades, aumentar suas funções,
uma importante escola de pensamento foram solicitadas. prolongar sua vida. E aparecerá quem
dentro da área. E muito próxima de “Arte” está a esteja disposto a investir nisso, com a
palavra “Artesanato”, que lembra pro- expectativa de ganhar dinheiro. Nesse
Arte, Técnica, Artesanato, Indústria? dução caseira, em pequena escala, sem momento, o programa entrou no escopo
Outros termos constantes da definição a utilização de métodos industriais, que da Engenharia de Software e se tornou um
de Engenharia podem ser explorados são caracterizados pela padronização e produto. Muitos dos produtos de software
de várias formas, com conseqüências pela repetição. E, realmente, parece mais mais usados seguiram esse caminho.
interessantes. Por exemplo, é usada a difícil aplicar esses métodos industriais Todo produto tem usuários: aqueles que
palavra “Arte”, que o mesmo dicionário na confecção de software, do que nos efetivamente usam o produto. Alguns
define como a “capacidade que tem o ramos da engenharia do mundo material. produtos são feitos por encomenda de um
homem de pôr em prática uma idéia, Nestes, as leis físicas impõem limites cliente: aquele que pagará por sua produ-
valendo-se da faculdade de dominar a claramente visíveis ao que pode ser feito. ção. Outros, chamados de produtos de
matéria”, ou “a utilização de tal capa- Na Engenharia de Software, a criativida- prateleira, são vendidos no mercado aber-
cidade, com vistas a um resultado que de não é limitada por leis físicas, 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 matéria dominar a complexidade. recursos e funções se esperam do produto;
dominada pelas faculdades humanas Mas não se pode escapar do fato de que a talvez um departamento de vendas, ou de
consiste em máquinas de processamento Engenharia de Software tem que resolver marketing, ou de definição de produtos de
da informação, devidamente configura- muitos problemas de ordem industrial. uma organização, ou até, para produtos
das e programadas. Nesse sentido, os Raramente é possível construir software menores, os próprios desenvolvedores, co-
conceitos de “Arte” e “Técnica” são bem profissional sem envolver equipes, às ve- locando o chapéu de investidores de risco.
próximos; aliás, a palavra grega techné zes de dezenas ou até centenas de pessoas; E existem todos os casos intermediários,
significa, exatamente, Arte. raramente é possível trabalhar na área em que um produto parcialmente pronto
O termo “Arte” abre outras discussões. sem a pressão de prazos e orçamentos é completado, adaptado ou incrementado,
Não poucos programadores se conside- apertados; freqüentemente defeitos de por encomenda de um cliente.
ram como artistas, no sentido de pratican- software podem acarretar prejuízos vul- Como todo produto industrial, o produ-

Edição 01 – Engenharia de Software Magazine 5


to de software tem seu ciclo de vida: notação é usada para descrever muitos mostram detalhes; cada seta representa
• ele é concebido para tentar atender a aspectos diferentes do desenvolvimento uma transição entre atividades; as barras
uma necessidade; de software, inclusive as seqüências de paralelas representam início e término
• é especificado, quando essas necessida- atividades que compõem esse desenvol- de atividades executadas em paralelo;
des são traduzidas em requisitos viáveis; vimento. O tipo específico de diagrama um retângulo de cantos arredondados
• é desenvolvido, transformando-se que é mostrado na figura é o Diagrama de com detalhes internos representa uma
em um conjunto formado por código e Atividades, que representa uma evolução atividade estruturada, que é composta
outros itens, como modelos, documentos dos tradicionais fluxogramas, usados pe- de outras atividades.
e dados; los programadores há décadas.
• passa por algum procedimento de É interessante observar que a codifica- Projetos, Atividades e Estruturas
aceitação e é entregue a um cliente; ção, que representa a escrita final de um Analíticas
• entra em operação, é usado, e sofre programa em forma inteligível para um Normalmente, o software é desenvolvi-
atividades de manutenção, quando ne- computador, é apenas uma pequena parte do dentro de projetos. Todo projeto tem
cessário; do ciclo de vida. Muitas pessoas, inclu- uma data de início, uma data de fim, uma
• é retirado de operação ao final de sua sive alguns profissionais da informática, equipe e outros recursos. O responsável
vida útil. acham que a codificação é 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 são assunto das diferentes áre- a bolinha cheia representa Início; a boli- de atividades, que podem possuir relações
as da Engenharia de Software. A Figura 1 nha com um anel adicional representa de dependência, paralelismo, e decom-
mostra um modelo do ciclo de vida do sof- fim; cada retângulo simples de cantos posição em atividades mais elementares,
tware, usando a notação conhecida como arredondados representa uma ação, ou como no diagrama da Figura 1.
UML (Unified Modeling Language). Essa seja, uma atividade simples, da qual não As atividades são delimitadas por mar-
cos, isto é, pontos que representam esta-
dos significativos do projeto. Geralmente,
os marcos são associados a resultados
concretos: documentos, modelos ou por-
ções do produto, que podem fazer parte
do conjunto prometido aos clientes, ou
ter apenas utilização interna ao projeto. O
próprio produto é um resultado concreto
associado ao marco de conclusão do pro-
jeto, que pode ser utilizado sozinho, ou
como componente de um sistema.
O PMI (Project Management Institute)
é uma organização internacional, com
seções em muitos países, inclusive o
Brasil, que tem o objetivo de promover e
difundir boas práticas de gestão de pro-
jetos. Para isso, administra programas de
certificação de profissionais nessa área, e
publica o guia conhecido PMBOK (Project
Management Body of Knowledge).
Nesse guia, define-se um projeto como
um empreendimento temporário reali-
zado para criar um produto, serviço ou
resultado distinto. Um produto, por sua
vez, é definido como um objeto produzi-
do, quantificável 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 compõem um projeto são mostrados
em uma estrutura analítica, que o PM-
BOK define como uma decomposição hie-
Figura 1. Modelo UML do ciclo de vida do software rárquica 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 necessárias. Estruturas foi formulado pelo Software Engineering produtos a um cliente ou usuário, com início
analíticas 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 são uma das representações pelo Departamento de Defesa ameri- Estrutura analítica do projeto - Um ar-
mais usadas atualmente. Outro tipo cano, popularmente conhecido como ranjo dos elementos do trabalho e dos relaciona-
de representação usual é fornecida por Pentágono, que o utiliza para avaliação mentos deles entre si e com o produto final.
planilhas e cronogramas, como aqueles da capacidade de seus fornecedores de
que são produzidos pela ferramenta Mi- software. Sendo o Pentágono provavel- Ao contrário do PMBOK, o CMMI não
crosoft Project (Figura 2). mente a maior organização compradora se limita aos conhecimentos sobre gestão
de software do mundo, o CMMI tem de projetos. Cobre também áreas técni-
Modelos de Referência e Fatores de grande aceitação da indústria americana cas, e focaliza principalmente a aplicação
Produção de software, e considerável influência no dos processos ao desenvolvimento de
O PMBOK é um exemplo de modelo de resto do mundo. A rigor, suas práticas não produtos. Um processo, segundo o IEEE,
referência: uma estrutura de conheci- são restritas à indústria de software, po- é uma seqüência de passos executados
mento que organiza conceitos, práticas dendo ser aplicadas ao desenvolvimento com um determinado objetivo; segundo
e padrões de uma área. No caso do de outros tipos de produtos. o PMBOK, é um conjunto de ações e
PMBOK, a área focalizada é a gestão de Os conceitos do CMMI têm raízes 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 integração, escopo, tempo, observar pela similaridade das definições produtos, resultados ou serviços.
custos, qualidade, recursos humanos, que adota: Um projeto representa a execução de
comunicações, riscos e aquisições. Produto - Resultado que se pretende entre- um processo, e um processo é uma receita
Outro modelo de referência importante gar a um cliente ou usuário. que é seguida durante a realização um

Figura 2. Cronograma de um projeto.

Edição 01 – Engenharia de Software Magazine 7


projeto; em outras palavras, o projeto é menos produtivas, durante algum tempo. esperado. E a principal contribuição de
o empreendimento que concretiza uma Algumas tecnologias mais complexas só modelos de referência como o CMMI é
abstração, que é o processo. Não se deve se pagam depois de muitos projetos. indicar o caminho das pedras e o mapa da
confundir um processo (digamos, uma Investir na capacitação das pessoas é mina: onde a experiência coletada indica
receita de bolo) com o respectivo produto certamente necessário. Entretanto, for- que o investimento em melhorias é mais
(o bolo) ou com a execução do processo mar pessoas é difícil, caro e demorado. rentável, em cada passo da evolução das
através de um projeto (a confecção de Recrutar pessoas capacitadas também: organizações.
um bolo por determinada pessoa, em não há sinais de que a oferta de pessoas
determinado dia). com alta qualificação no desenvolvi-
Processos, pessoas e tecnologia consti- mento de software venha a se igualar Conclusão
tuem os fatores de produção, que deter- à demanda, em futuro próximo. Além A Engenharia de Software visa à criação
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 instituições e,
produto de qualidade suficiente, dentro falta de liderança, por deficiência de fer- portanto, tenham valor econômico. Para
de um prazo aceitável e com custos viá- ramentas e suporte, ou por inadequação isso, usa conhecimentos científicos, téc-
veis. Portanto, desses fatores dependem de processos. nicos e gerenciais, tanto teóricos quanto
a rentabilidade e a sobrevivência das Dos investimentos nos fatores de pro- empíricos. Ela atinge seus objetivos de
organizações produtoras. dução, os investimentos nos processos produzir software com alta qualidade
Para muitos profissionais, a tecnologia é são 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- também não fazem milagres, mas a dos, utilizando tecnologias adequadas,
dos da aplicação de novas tecnologias. melhoria dos processos costuma trazer dentro de processos que tirem proveito
Entretanto, tecnologias aparentemente benefícios em prazos relativamente cur- tanto da criatividade quando da raciona-
promissoras podem levar para um beco tos, como é ilustrado por inúmeros relatos lização do trabalho.
sem saída, e, às vezes, tecnologias con- de experiência publicados. No mínimo,
sideradas inferiores pelos especialistas contribuem para reduzir o desperdício
lançam raízes permanentes, graças a for- e o retrabalho, o que geralmente já traz
ças de mercado. Além disso, a tecnologia ganhos muito significativos. Links
só se paga quando colocada nas mãos de A melhoria dos três fatores (tecnolo-
SEI
pessoas capacitadas, trabalhando dentro gias, pessoas e processos) também requer http://www.sei.cmu.edu/
de processos adequados. Toda introdução seu próprio 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 organizações, 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 Prática

Treinamento e Consultoria
em Engenharia de Software

Profissionais com ampla experiência prática (Consusltores Certificados) e


acadêmica (Professores Universitários, 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: Inscrições Abertas Aulas aos sábados na Zona Sul do Rio, próximo ao metrô
Para outras localidades, por favor entre em contato

Março | Abril Processos de Software com ênfase em CMMI e MPS – 32 horas


Teste de Software – 16 horas

Maio | Junho Engenharia de Requisitos – 32 horas


Gerência de Configuração de Software – 16 horas

Julho | Agosto Gerência de Projetos de Software – 32 horas


Projeto Orientado a Objetos com UML e Padrões – 32 horas

Confira as ementas, investementos e condições de pagamento: www.kalisoftware.com


Oferecemos também cursos de programação (Java, Java para Web e Ajax)
Inscrição e outras informações: info@kalisoftware.com

kalisoftware.com | info@kalisoftware.com
Melhorando Processos Através da Análise de
Risco e Conformidade

U
m dos fatores importantes para ISO/IEC 15504 e 12207 definem um con-
a construção de um software junto de boas práticas e características
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 organização. A inexistên- e resulte na entrega de produtos de qua-
cia ou a não utilização de processos bem lidade. Entretanto, como têm o objetivo
definidos e de boas práticas de desen- de serem aplicáveis a quase todo tipo de
volvimento, mesmo que informais, faz organização, estes modelos ou normas
Rafael Espinha com que o desenvolvimento de software muitas vezes não definem como estas
rafael.espinha@primeup.com.br seja realizado de forma ad-hoc, ficando boas práticas e características devem ser
É Engenheiro de Computação e Mestre em altamente dependente da experiência e implementadas e implantadas. Uma das
Engenharia de Software pela PUC-Rio. Foi
do conhecimento das pessoas envolvidas. maiores dificuldades de organizações
pesquisador do Laboratório de Engenharia a
de Software da PUC-Rio e atualmente é con- Este cenário resulta na realização de pro- que iniciam um programa de melhoria
sultor e diretor da PrimeUp, onde desenvolve jetos cujos resultados são imprevisíveis, 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 práticas
qualidade de software. Possui cursos e certifi- da forma que lhe convém, e dificulta a para a sua realidade, identificando quais
cações em CMMI e MPS.BR.
reutilização de boas práticas e de lições áreas são mais relevantes e devem ser
aprendidas. abordadas com maior urgência. Cada or-
João Sousa
joaomss@primeup.com.br Com a crescente demanda por qualida- ganização possui políticas, crenças e uma
É Bacharel em Informática pela UERJ e pós- de dos produtos de software, a adoção cultura específica, 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 experiência no desenvolvimento de sis- qualidade e guias de boas práticas na aceitas e realmente contribuam com um
temas e melhoria de processos. Atualmente
definição de processos tem se tornado desenvolvimento mais eficiente.
é consultor da PrimeUp, onde desenvolve
projetos na área de melhoria de processos e cada vez mais freqüente. 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 Através da Análise de Risco e Conformidade


proc esso

ceito de risco associado à não utilização tunidades de melhoria. Em geral, nesta A próxima seção apresenta alguns
das boas práticas de desenvolvimento fase é realizado um estudo no qual um conceitos básicos sobre riscos e como
de software nos projetos e processos da cenário esperado é definido e o cenário este conceito é utilizado neste domínio.
organização. Consideramos também que atual é avaliado segundo algum critério Em seguida a estratégia e a ferramenta
a qualidade do produto (software) está de qualidade (“Gap Analysis”). O cenário que compõem a abordagem serão apre-
diretamente relacionada à qualidade dos esperado pode ser definido a partir de um sentadas e um exemplo da sua utilização
processos utilizados na sua produção e ou mais modelos ou normas de referência, será discutido.
ao conhecimento técnico que os usuários como, CMMI-DEV 1.2 ou ISO 9001:2000.
deste processo têm sobre as práticas de- Dessa forma, obtém-se a diferença entre Análise de Risco
finidas (institucionalização do processo). o que se espera dos processos da organi- Risco é a “exposição à chance de perdas
Partindo-se destas premissas pode-se zação e onde eles realmente estão. A partir ou danos”. Embora exista também uma
concluir que qualquer risco à qualidade e daí, elaboram-se planos de ação para que chance de alguma coisa sair melhor do
à institucionalização do processo se refle- esta distância seja diminuída ou elimina- que o esperado, o risco geralmente cos-
te em riscos na qualidade do produto que da, a partir da priorização e seleção dos tuma ser associado a possíveis perdas ou
será entregue e, consequentemente, em planos de ação que serão implantados danos. O conceito de risco resulta da incer-
riscos para a organização. Sendo assim, (fase de Estabelecimento). teza quanto a eventos futuros e é parte de
ações de gerência 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 execução de uma
ficar quais ações devem ser tomadas com
maior urgência. atividade de desenvolvimento, sempre existe o risco, mes-
Neste artigo apresentamos uma abor-
dagem de análise de processos na qual é mo que muito remoto, de algo dar errado.
identificado de forma customizada tanto
o nível de conformidade (quantidade de
recomendações do modelo de referência A abordagem que apresentaremos todas as atividades de desenvolvimento.
implementadas nos processos da organi- facilita a realização das fases de Diag- Um processo de desenvolvimento bem
zação) quanto o nível de risco (quantidade nóstico e Estabelecimento de um ciclo de definido e institucionalizado visa reduzir
de riscos presentes no processo de desen- melhoria contínua, identificando clara- a chance de ocorrência de ameaças (perdas
volvimento devido às recomendações não mente os riscos associados aos processos ou danos). Toda oportunidade de sucesso
implementadas) em cada área de processo. definidos (Diagnóstico) e fornecendo um sempre carrega consigo uma possibilidade
Dessa maneira, uma análise dos processos critério de priorização destes riscos (Es- de falha, cabendo a cada empresa avaliar
da organização fornece duas classes de tabelecimento). Para isso, são utilizadas a relação risco versus retorno e determinar
dados para a tomada de decisão e dire- uma estratégia de avaliação e atividades se “estar” sujeito a esta perda é aceitável,
cionamento de recursos, indicando o que de avaliação 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 mitigação não
(conformidade) e quais ações devem ser avaliação verifica tanto a dimensão de oferece um retorno satisfatório.
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, execução de uma atividade de desenvol-
definição e implantação de processos de quanto à dimensão dos riscos que a não vimento, sempre existe o risco, mesmo
maneira eficiente é a utilização de um utilização das boas práticas definidas que muito remoto, de algo dar errado.
ciclo de melhoria contínua. Esta forma nestas referências oferecem à qualidade Este fato decorre do grande número de
pode ser comparada ao desenvolvimento do produto desenvolvido pela organiza- variáveis que podem influenciar no resul-
iterativo de um sistema, onde o processo é ção e aos seus objetivos de negócio. Esta tado final e da sua natureza muitas vezes
definido e implantado na organização em ferramenta também indica como estes imprevisível. A partir desse cenário,
fases direcionadas pelas necessidades e pontos podem ser solucionados de forma torna-se necessário aprender a conviver
características da organização. O modelo que a organização obtenha uma maior com riscos, minimizando suas possíveis
IDEAL, desenvolvido pelo Software Engi- qualidade ou resultados a partir deste conseqüências negativas.
neering Institute (SEI), ilustra a utilização ciclo. O diferencial desta abordagem é a As principais atividades da disciplina
deste conceito. A implantação deste ciclo utilização da análise de risco como um de gerência de riscos são:
de melhoria faz com que os processos de instrumento de priorização das ações que • Identificação corresponde à identifi-
uma organização sejam constantemente devem ser tomadas pelas empresas para cação dos riscos inerentes a uma etapa do
avaliados e melhorados. mitigar (reduzir as chances de ocorrên- desenvolvimento (fase, processo, itera-
No modelo IDEAL destacam-se duas cia) os riscos identificados durante a fase ção). Isto é feito através do levantamento
fases: Diagnóstico e Estabelecimento. A de diagnóstico fornecendo um critério das ameaças presentes e do impacto que
fase de Diagnóstico consiste em avaliar o concreto para definição do escopo de podem provocar caso se realizem.
ambiente produtivo e identificar as opor- cada ciclo de melhoria. • Análise corresponde à reflexão so-

Edição 01 – Engenharia de Software Magazine 11


bre os riscos identificados, a partir da é possível obter um retrato mais preciso são definidas quais áreas devem ser o
identificação do nível de exposição de da distribuição e do impacto dos riscos. foco de uma avaliação mais rigorosa e
cada projeto. É também realizado um A estratégia de diminuição de riscos da próxima iteração do ciclo de melhoria
estudo de classificação dos riscos no qual, utilizada nos planos elaborados durante contínua (qual é o problema e como ele
baseando-se no relacionamento entre a a atividade de planejamento pode tentar pode ser solucionado). Em cada uma
exposição e conseqüência negativa do reduzir sensivelmente a probabilidade do das etapas, são realizadas as fases de
risco e o benefício da oportunidade, de- risco se realizar, fazendo com que a con- Diagnóstico (identificação dos riscos) e
termina-se quais serão eliminados, quais cretização da perda seja algo muito difícil Estabelecimento (priorização e definição
serão mitigados, quais serão aceitáveis e de ocorrer. É possível tentar reduzir o dos planos de ação). Na etapa de Abran-
quais serão acompanhados. impacto do risco, fazendo com que a con- gência o diagnóstico é mais abrangente e
• Planejamento observa e determina seqüência da materialização dele seja tão os planos de ação são menos detalhados e,
como e quando os riscos serão aborda- pequena que a sua ocorrência pouco afe- na etapa de Profundidade, o diagnóstico
dos ao longo do projeto. Comumente tará o resultado final do projeto. Por fim, é mais específico e os planos de ação são
são elaborados planos de mitigação, é possível reduzir tanto a probabilidade mais detalhados.
eliminação e acompanhamento de riscos quanto a severidade do risco, resultando O objetivo desta estratégia é com-
que serão utilizados como base para a em um balanceamento razoável entre as plementar métodos como SCAMPI,
gerência de riscos. possíveis perdas e a probabilidade de sua MA-MPS e ISO/IEC 15504, oferecendo
propostas de soluções a alguns potenciais
problemas encontrados na aplicação des-
tes métodos. Os princípios que guiam a
A eliminação total dos riscos associados a um projeto ou estratégia são:
• Mapear resultados aos objetivos do
iniciativa é um conceito utópico. negócio da organização;
• Minimizar o esforço de avaliação se-
gundo critérios de importância definidos
pela própria organização;
• Controle corresponde à execução e ao ocorrência no projeto. • Obter maior aproveitamento dos re-
acompanhamento dos planos elaborados A eliminação total dos riscos associados sultados gerados;
para o projeto. Os riscos identificados a um projeto ou iniciativa é um conceito • Utilizar duas dimensões de análise:
são analisados constantemente para a utópico. Cada ação de identificação, conformidade e risco.
identificação do seu estado atual e atu- acompanhamento e controle (redução,
alização dos planos elaborados. Novos mitigação ou contenção de riscos) possui O primeiro princípio tem como objetivo
riscos podem ser identificados também. um custo associado, cabendo a cada indi- sanar uma característica identificada
A gerência de riscos utiliza como base o víduo ou organização identificar o ponto na maioria dos métodos de avaliação
conceito de exposição de risco. Para cada de equilíbrio entre o nível de exposição de processos de desenvolvimento. De
ameaça ou possível fonte de problema aos riscos e o custo de redução. Para cada forma geral, a aplicação destes métodos
que possa causar perdas ao projeto, a projeto ou iniciativa deve-se determinar gera conclusões ou resultados que estão
exposição (Exp) é definida como o pro- um índice aceitável de exposição aos restritos ao nível 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 terísticas do projeto e tenha um custo que utilizada. Este fato faz com que o trabalho
no projeto, artefato, ativo ou qualquer não comprometa os resultados. de convencimento da alta gerência (geral-
elemento que seja o foco da análise de mente não técnica) acerca da importância
risco): Exp = P * I . A Estratégia de Avaliação dos investimentos em engenharia de
Na abordagem apresentada, o conceito A estratégia de avaliação que utiliza- software ou qualidade seja dificultado e,
de exposição foi estendido, permitindo remos se baseia no conceito de análise consequentemente, o projeto de melhoria
uma melhor determinação do impacto de risco na verificação dos processos de processos fique ameaçado devido à
da concretização de um risco. Para cada de uma organização e compreende os falta de comprometimento dos patrocina-
ativo da organização ou projeto avaliado conceitos apresentados na ISO/IEC 17799. dores. O objetivo destes princípios é dar
(pessoa que participa do desenvolvimen- Esta estratégia recomenda a avaliação ênfase às necessidades e prioridades da
to ou processos utilizados) é determinado de uma equipe de desenvolvimento ou empresa, ao invés de impor uma estru-
um índice de exposição balanceado. Este processo de software em duas etapas, tura que pode não ser a mais adequada a
índice, denominado PSR, determina a onde a primeira (etapa de Abrangência) ela. O mapeamento dos resultados do ní-
exposição através da probabilidade da representa uma verificação mais abran- vel de TI para o nível de negócios facilita
ocorrência do risco (P), a severidade gente e menos rigorosa da implementação o seu entendimento, podendo orientar a
dessa ocorrência para o projeto ou para dos modelos e normas de referência, para empresa a como atingir suas metas.
a organização (S) e a relevância do ativo identificar quais são as áreas críticas para O segundo e terceiro princípio é resul-
da organização (pessoa ou processo) na a organização (onde está o problema). Na tado da constatação de um ponto fraco
qualidade do produto final. Dessa forma etapa seguinte (etapa de Profundidade) identificado nos métodos mais utilizados.

12 Engenharia de Software Magazine – Melhorando Processos Através da Análise de Risco e Conformidade


proc esso

A grande maioria realiza inspeções e de quando a avaliação foi realizada, a capacidade esperada e a avaliada, qual
análises rigorosas, que abrangem todo o tornando obsoletos os dados relativos às deve receber os recursos?). A utilização
modelo de referência e geram relatórios áreas de processos e as oportunidades de uma análise de risco oferece um cri-
com uma grande quantidade de informa- de melhoria que não foram abordadas. tério de desempate ou uma opção para a
ções sobre diversas áreas da engenharia A utilização de uma estratégia em duas priorização de investimentos.
de software mas, na maioria dos casos, etapas permite identificar, através de
outra grande quantidade de informações uma análise menos elaborada, as áreas Ferramenta de apoio à avaliação
é desperdiçada. Uma avaliação indica mais relevantes e realizar uma análise Para auxiliar a realização da avalia-
o estado atual da organização e aponta mais elaborada apenas nestas áreas. ção dos processos de uma organização
as oportunidades de melhoria na im- Finalmente, o quarto princípio tem utilizamos uma ferramenta de apoio à
plementação das diretivas do modelo como objetivo oferecer dados de um ní- execução de avaliações.
de maturidade ou norma de qualidade vel de abstração menos granular para a A metodologia de análise de risco
utilizada como referência. Entretanto, tomada de decisão. Embora a utilização implementada pela ferramenta se baseia
devido a restrições de orçamento e ao da capacidade de processo e do nível de na avaliação de características de ativos
impacto que elas representam no am- maturidade seja o parâmetro mais utili- da organização, que podem representar
biente produtivo, apenas uma pequena zado no direcionamento de recursos na pessoas da organização, processos uti-
parte destas recomendações pode ser área de desenvolvimento de software, lizados, tecnologias e características do
implementada na próxima iteração do estes conceitos são um tanto abstratos ambiente de desenvolvimento. Cada ativo
programa de melhoria. Após a implemen- e em muitos casos dificultam esta ativi- é mapeado em componentes de negócio
tação da primeira iteração de melhoria, o dade (se vários processos apresentam a (para o contexto de desenvolvimento de
estado da organização já não é o mesmo mesma capacidade e o mesmo gap entre software foram utilizados objetivos do

Figura 1. Mapeamento dos ativos em objetivos do negócio da organização

Edição 01 – Engenharia de Software Magazine 13


negócio ou de TI) da organização e pos- possui uma estrutura com os seguintes pode ser implementado para diminuir
sui uma relevância que está diretamente elementos: a exposição da organização aos riscos e
relacionada à relevância dos objetivos aos • Nome do Controle indica uma carac- atingir a conformidade desejada com o
quais ele se relaciona. A Figura 1 ilustra terística (boa prática ou requisito) que modelo ou norma de referência.
este conceito. deve estar presente no ativo para que o • Referências relacionam referências
A cada ativo podem ser associados um controle seja considerado implementado bibliográficas para que mais informações
ou mais componentes, que represen- e seu risco associado seja eliminado. acerca do controle e da sua implementa-
tam características que serão avaliadas • Justificativa define os termos e concei- ção possam ser obtidas.
em um projeto de avaliação que estão tos necessários para o entendimento do • Probabilidade representa a probabili-
relacionadas à participação deste ativo, controle e fornece uma justificativa que dade de uma ameaça se manifestar caso o
ou seja, ao adicionar um componente a explique porque aquele controle deve ser controle não esteja implementado na or-
um ativo estamos dizendo que ele é um implementado. Neste elemento são apre- ganização. Este elemento é representado
coletor de dados que indicam o estado sentadas as vantagens que se obtém com por um número de 1 (menor) a 5 (maior
de implementação de um conjunto de a implementação do controle e as conse- probabilidade).
boas práticas na organização. Um pro- qüências da sua não implementação. • Severidade indica o grau do impacto
jeto de avaliação pode utilizar todos os • Ameaças indicam quais elementos po- negativo na organização, caso uma ou
componentes ou apenas um conjunto dem se aproveitar da não implementação mais ameaças se manifestem. Este ele-
que seja relevante para esta instância de do controle para se manifestar e causar mento é representado por um número
avaliação. Cada componente possui um danos ao negócio da organização. de 1 (menor) a 5 (maior severidade).
checklist associado, composto por um ou • Recomendação fornece razões e dados • Agrupamento indica a qual agrupa-
mais controles, que representam os itens para a elaboração de um plano de ação mento o controle pertence. Os agrupa-
atômicos de verificação da implemen- após a realização da avaliação, através mentos são comuns a todos os checklists,
tação das boas práticas. Cada controle de uma sugestão de como o controle permitindo verificar o estado da imple-

Controle Processo - CMMI – Gerência de Configuração – Prática 3.1 - 2 - As versões anteriores de um item de configuração devem ser passíveis de recuperação.

Uma versão anterior de um item de configuração deve ser recuperada caso uma modificação não seja corretamente implementada, caso os arquivos atuais (na nova configuração
Justificativa do software) estejam corrompidos, caso seja efetuada uma junção (merge) incorretamente entre um ramo (linha temporária de desenvolvimento) e a linha principal de
desenvolvimento. Nestas situações, pode ser apropriado restaurar uma versão anterior para que esta se torne a atual.

Este controle pode ser implementado através dos seguintes procedimentos:


- Disponibilizar as versões dos itens de configuração.
- Reportar os procedimentos para: (1) recuperar uma versão anterior, (2) verificar as revisões de um item de configuração e (3) analisar as diferenças entre a versão anterior e a
atual. Essas informações devem constar no plano de gerência de configuração e nos procedimentos de controle de versões. Caso não estejam, sugere-se alterá-los.
- Garantir a integridade e a disponibilidade dos repositórios de configurações.
Recomendação Observação: A ferramenta de controle de versões deve facilitar a visualização e recuperação das versões dos itens de configuração. Portanto, contém funcionalidades que facilitam
a implementação deste controle.

Exemplos de Artefatos Produzidos:


- Lista de versões de itens de configurações
- Procedimentos para controle de versões

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.
Referências
CMMI-Dev: Área de Processo: Gerência de Configuração
Bibliografia de apoio:
H. R. Berlack, Software Configuration Management. New York: John Wiley & Sons, 1992.

Baixa manutenibilidade
Ameaças
Perda de controle de solicitações de mudança

Agrupamento Gerência de Configuração

Tabela 1. Exemplo de controle

14 Engenharia de Software Magazine – Melhorando Processos Através da Análise de Risco e Conformidade


proc esso

mentação de características espalhadas de um processo padrão para a área de ganização, das pessoas, dos fornecedores
em vários checklists. processo de definida em algum modelo ou do projeto ao qual ele pertence. Sendo
ou norma de referência, como Gerência assim, chegou-se a seguinte taxonomia
A Tabela 1 apresenta um exemplo de de Configuração e Solução Técnica do para os ativos:
controle de uma prática de gerência de CMMI, ou grupo de áreas de processo, • Processos representam fluxos de tra-
configuração. que será utilizado como base para a balho, áreas de processo ou disciplinas da
A avaliação consiste em responder aos elaboração das recomendações de im- organização. Cada checklists associado
checklists associados aos ativos e sele- plementação de controles. Esta atividade a este tipo de ativo possui o escopo de
cionados na configuração do projeto de possui tarefas de elaboração e revisão uma área de processo do modelo de
avaliação. Estes podem ser respondidos de conteúdo e aderência aos modelos ou maturidade ou norma de qualidade. A
diretamente ou através de questionários normas de qualidade utilizadas como utilização destes ativos define uma di-
enviados via WEB, onde o conteúdo dos referência. Em seguida, atividades de mensão da avaliação onde os processos
controles pode ser interpretado para um geração e revisão de arquitetura dos che- são o principal fator para o alcance dos
domínio específico, por exemplo, para cklists são executadas de forma iterativa objetivos da organização e, consequen-
os diversos papéis de uma organização. e concorrente, até que um produto com temente, a principal fonte de evidências
A utilização dos questionários permite
um ganho de escala e de cobertura da
avaliação, ao mesmo tempo em que di-
minui o impacto da avaliação e aumenta
A arquitetura do checklist consiste da identificação dos
a aceitação das melhorias no processo de
desenvolvimento uma vez que todos se
controles que serão desenvolvidos e dos questionários que
sentem parte da avaliação e podem con-
tribuir com comentários e sugestões.
serão utilizados como coletores automáticos de dados.
Após a coleta dos dados, é gerado um
conjunto de relatórios contendo tabelas e
gráficos que indicam o estado da imple- qualidade assegurada seja desenvolvido. da implementação do modelo ou norma
mentação das boas práticas e os riscos A arquitetura do checklist consiste da de referência.
presentes na organização e fornecem identificação dos controles que serão • Pessoa representa os atores da orga-
dados para a tomada de decisão (o que e desenvolvidos e dos questionários que nização. Os checklists associados a este
como deve ser feito). Cada controle não serão 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- zação (desenvolvedor, gerente, analista
(PSR) que é obtido pela multiplicação da les que devem ser implementados e um de requisitos, etc.) que é assumido pela
relevância do ativo avaliado (R), da pro- questionário que interpreta e responde pessoa que é referenciada pelo ativo. A
babilidade da concretização das ameaças estes controles do checklist através de utilização de ativos do tipo Pessoa defi-
possíveis (P) e da severidade desta con- uma lógica bem definida para as suas ne uma dimensão da avaliação onde as
cretização (S) . Além do PSR, os seguintes perguntas, inicia-se uma nova etapa de pessoas e os papéis que elas executam
indicadores são utilizados: implementação e revisão dos controles, são o principal fator para o alcance dos
onde o conteúdo dos controles iden- objetivos da organização e, consequen-
Índice de PSR controles (elemento) tificados é elaborado e o questionário temente, a principal fonte de evidências
Segurança = implementados

PSR (Total)
desenvolvido é refinado. Finalmente, os da implementação do modelo ou norma
checklists são homologados e adiciona- de referência.
dos à ferramenta. • Ambiente representam o ambiente
Índice de
€ Num.Controles Im plementados
Tendo um guia para a elaboração dos organizacional, caracterizado pelas
Conformidade = Num.ControlesTotal checklists, o segundo passo é a identifica- acomodações, aspectos inter-pessoais,
ção dos checklists que seriam utilizados política motivacional e outros fatores
A partir destes índices, pode-se gerar para a realização das avaliações. Como que afetam indiretamente a execução dos
um grande número de interpretações, os checklists são associados aos ativos da processos. Os checklists associados a este
através da filtragem e agrupamento de organização, através dos componentes, tipo de ativo verificam as características
dados das áreas de processo, ativos, esta atividade foi realizada utilizando gerais da organização e como ela contri-
ameaças, departamentos ou objetivos como parâmetro os tipos de ativos. bui ou não com o alcance dos objetivos
de negócio. A ferramenta define quatro tipos de da organização.
ativo para a realização das avaliações: • Tecnologia representa a estrutura
Utilizando a Abordagem “Pessoa”, “Processo”, “Ambiente” e “Tec- tecnológica da organização, definida por
Para utilização desta abordagem em nologia”. Para o domínio de processos de suas máquinas e ferramentas. Os che-
uma avaliação, utilizamos um conjunto desenvolvimento, definiu-se que cada cklists associados a este tipo de ativo ve-
de atividades. ativo funciona como uma dimensão de rificam características da infra-estrutura
A primeira atividade consiste na criação coleta de dados sobre os processos da or- referenciada pelo ativo, como segurança

Edição 01 – Engenharia de Software Magazine 15


em servidores, funcionalidades de ferra- Organizacional, Desenvolvimento de análise da atomicidade. Esta análise tem
mentas, entre outros. Requisitos, Foco no Processo Organiza- como objetivo quebrar o item em ele-
cional, Garantia da Qualidade, Gerência mentos de verificação atômicos, evitando
Como terceiro passo da customização, de Configuração e Gerência de Requisi- situações de falha no preenchimento do
a estrutura para a geração de checklists tos que representam as características controle (se existem dois ou mais pontos
foi elaborada. Esta atividade contou com específicas de cada área de processo e o de verificação conectados por um ope-
a definição dos agrupamentos, ameaças agrupamento GG2 – Processo Gerenciado rador “e” ou “ou” em um controle, como
e do escopo dos controles. representa as características genéricas. respondê-lo no caso de alguns estarem
Como o objetivo da avaliação é obter Estão também ilustrados controles dos implementados e outras não?).
resultados mapeados nas áreas de proces- agrupamentos de Gerência de Configu- Finalmente, para uniformizar as análi-
so do modelo ou norma de qualidade de ração e Gerência de Requisitos. Cada ses de risco e conformidade em processos
referência, independente de quais ativos agrupamento contém um conjunto de de desenvolvimento realizados com a
foram utilizados para coletar os dados, foi controles. utilização da ferramenta, foi elaborada
definido que os agrupamentos utilizados Com a estrutura de agrupamentos defi- uma lista de ameaças.
seriam as áreas de processo. nida, os resultados das análises de risco Tendo em vista que a grande maioria
Uma área de processo possui carac- e conformidade podem ser consolidados dos métodos de avaliação de processos
terísticas específicas, que determinam pelos agrupamentos, resultando em rela- de desenvolvimento (SCAMPI, MA-MPS,
a sua implementação, e características tórios (exemplificados no próximo tópi- ISO/IEC 15504) utiliza uma estrutura
comuns a todas as áreas, que indicam a co), que indicam risco e conformidade de de níveis para a classificação da imple-
sua capacidade. Para facilitar a utilização cada área de processo, e que deixam de mentação de uma diretiva do modelo ou
de modelos de maturidade que utilizam forma transparente quais tipos de ativo norma, utilizamos nesta solução a mesma
o conceito de capacidade de processos foram utilizados. abordagem. Desta forma, cada controle
foi definido também que deve existir Para o escopo dos controles, foi definida pode ser classificado como “Implemen-
um agrupamento para cada nível de a utilização do item de menor granulari- tado”, “Não Implementado” ou “Parcial-
capacidade. dade do modelo ou norma de referência. 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 não se encontra implementado,
o ativo desenvolvedor (papel) contém os de um item de verificação em seu escopo, foi determinado que, quando a análise
agrupamentos Definição do Processo foi definida também a realização de uma realizada indicasse que um controle não

Figura 2. Checklist com agrupamentos para características específicas e genéricas

16 Engenharia de Software Magazine – Melhorando Processos Através da Análise de Risco e Conformidade


proc esso

foi totalmente atendido, este deve ser os controles parcialmente implementados de desenvolvedor, portanto o peso das
preenchido como “Não implementado”. contribuirão com menos risco do que os áreas técnicas do modelo será maior que
Utilizando a premissa de que um controle controles do mesmo tipo classificados o peso das áreas de gestão ou das áreas
parcialmente implementado possui uma como não implementados. organizacionais. Além disso, nesta etapa,
probabilidade menor de causar danos do os objetivos do negócio da organização
que um controle não implementado, foi Utilizando a abordagem não foram identificados e mapeados nos
determinado que, para cada nível de im- Para demonstrar a aplicabilidade da ativos de software.
plementação atingido pelo controle, a sua abordagem proposta, foram realizados Abaixo são apresentados os resultados
probabilidade será diminuída em uma vários estudos de caso, nos quais o da avaliação:
unidade, até chegar ao valor mínimo 1. processo utilizado por equipes de desen- Conforme apresentado na Tabela 3 e
Para exemplificar a abordagem, consi- volvimento de software de organizações na Figura 3, as áreas de Planejamento
dere um controle cuja probabilidade seja distintas foi avaliado. A seguir, é apre- de Projetos, Solução Técnica e Defini-
quatro. Em uma avaliação que utiliza sentado um resumo de uma das avalia- ção do Processo Organizacional têm o
o modelo CMMI como referência, um ções realizadas onde se realizou apenas maior índice de Segurança indicando que
controle classificado como parcialmente a etapa de Abrangência. Para preservar a maior parte das práticas destas áreas
implementado será preenchido como Não a confidencialidade, as informações estão implementadas. Ao contrário, as
Implementado e a sua probabilidade será apresentadas foram descaracterizadas áreas de Treinamento Organizacional,
alterada para três. O resultado desta abor- (ver Tabela 2). Gerência de Requisitos, Integração
dagem é que, ao final da análise de risco, A avaliação considerou somente o perfil do Produto e Gerência de Configura-

Empresa ABC

Objetivos: Avaliar o processo utilizado no desenvolvimento dos softwares da organização utilizando o modelo CMMI DEV 1.2 como referência e identificar oportunidades de melhoria nas áreas de processo
de maior impacto no desenvolvimento dos softwares.

Fase de Abrangência

Escopo Organizacional Participantes Escopo do Modelo Duração (h/dias)

Projetos de desenvolvimento de - 9 Desenvolvedores do Setor 1 Áreas de níveis 2 e 3 do CMMI DEV 1.2, exceto : Garantia da Qualidade, Gerencia de Fornecedores,
16/4
sistemas internos da organização - 9 Desenvolvedores do Setor 2 Gerência de Risco, Gerenciamento Integrado e Análise de Decisões e Resoluções

Tabela 2. Resumo do objetivo e escopo da avaliação

PSR Controles PSR Controles Não Índice de Conformidade Índice de Segurança


Área de Processo PSR Total
Implementados Implementados (%) (%)
Avaliação e Melhoria do Processo 64 194 256 32,16 25,00

Definição do Processo Organizacional 160 96 256 85,13 62,50

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

Gerência de Configuração 388 1912 2300 25,34 12,52

Gerência de Requisitos 72 1152 1224 0,00 5,88

Integração do Produto 148 1364 1512 15,05 9,79

Medição e Análise 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

Solução Técnica 2140 852 2992 67,12 71,52

Treinamento Organizacional 8 400 408 0,00 1,96

Validação 108 468 576 22,25 18,75

Verificação 316 1472 1788 18,15 17,67

Total 5560 10482 16040 67,15 53,04


Tabela 3. Resultados da avaliação em abrangência por área de Processo

Edição 01 – Engenharia de Software Magazine 17


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

Planejamento de Projetos
Solução Técnica
Definição do Processo Organizacional
Medição e Análise
Monitoramento e Controle de Projetos
Avaliação e Melhoria do Processo
Segurança
Validação
Conformidade
Desenvolvimento de Requisitos
Verificação
Gerência de Configuração
Integração do Produto
Gerência de Requisitos
Treinamento Organizacional

0 20 40 60 80 100
%

Figura 3. Resultados da avaliação em Abrangência – Gráfico de Índices de conformidade e segurança para cada área de Processo (Ordenação decrescente
pelas áreas de maior índice de Segurança)

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

Gerência de Configuração
Verificação
Integração do Produto
Desenvolvimento de Requisitos
Gerência de Requisitos
Solução Técnica
Monitoramento e Controle de Projetos
Validação
Treinamento Organizacional
Medição e Análise
Planejamento de Projetos
Avaliação e Melhoria do Processo
Definição do Processo Organizacional

0 500 1000 1500 2000 2500


PSR

PSR Implementado PSR Não Implementado

Figura 4. Resultados da avaliação em Abrangência – Gráfico de PSR por área de Processo (Ordenação decrescente pelas áreas de maior PSR)

18 Engenharia de Software Magazine – Melhorando Processos Através da Análise de Risco e Conformidade


proc esso

R is c o Abs oluto - S etor 1

Gerência de Configuração
Solução Técnica
Integração do Produto
Verificação
Desenvolvimento de Requisitos
Gerência de Requisitos
Monitoramento e Controle de Projetos
Validação
Treinamento Organizacional
Medição e Análise
Avaliação e Melhoria do Processo
Planejamento de Projetos
Definição do Processo Organizacional

0 200 400 600 800 1000 1200


PSR

PSR Implementado PSR Não Implementado

Figura 5. Resultados da avaliação em Abrangência – Gráfico de PSR do Setor 1 por Processo (Ordenação decrescente pelas áreas de maior PSR)

R is c o Abs oluto - S etor 2

Verificação
Desenvolvimento de Requisitos
Gerência de Configuração
Integração do Produto
Gerência de Requisitos
Monitoramento e Controle de Projetos
Validação
Solução Técnica
Treinamento Organizacional
Planejamento de Projetos
Avaliação e Melhoria do Processo
Medição e Análise
Definição do Processo Organizacional

0 200 400 600 800 1000 1200 1400


PSR

PSR Implementado PSR Não Implementado

Figura 6. Resultados da avaliação em Abrangência – Gráfico de PSR do Setor 2 por Processo (Ordenação decrescente pelas áreas de maior PSR)

Edição 01 – Engenharia de Software Magazine 19


ção têm o menor índice de Segurança Verificando as informações apresen- mais relevantes estão relacionadas com:
indicando que poucas práticas destas tadas na Tabela 4 e nas Figuras 5 e 6, o
áreas estão implementadas. As áreas de conclui-se que na organização, as áreas Produto não atender às necessidades dos
Definição do Processo Organizacional, de Gerência de Configuração, Verifi- clientes - Desenvolvimento de Requisitos,
Medição e Análise, Monitoramento cação, Integração do Produto, Desen- Verificação e Validação;
e Controle de Projetos e Gerência de volvimento de Requisitos e Gerência o
Configuração têm um índice de Confor- de Requisitos têm maior probabilidade Requisitos incompletos, inconsistentes ou
midade relativamente maior que o índice de manifestação dos riscos durante sua incorretos - Gerência e o Desenvolvimen-
de Segurança indicando a implementação execução. Entretanto, quando os dois to de Requisitos e Verificação;
de práticas pouco eficientes na mitigação setores são avaliados separadamente Software apresentar falhas – Solução Téc-
o
dos riscos. conclui-se que: nica, Integração do Produto e Verificação;
De acordo com a Figura 4, pode-se o o
verificar que as áreas de Gerência de No Setor 1 as áreas de Gerência de Confi- Perder controle sobre as solicitações de mu-
Configuração, Verificação, Integração guração, Solução Técnica, Integração do dança - Gerência de Requisitos e Gerência
do Produto, Desenvolvimento de Re- Produto, Verificação, Desenvolvimento de Configuração.
quisitos e Gerência de Requisitos têm de Requisitos e Gerência de Requisitos
maior PSR Não implementado indicando têm maior probabilidade de manifestação Como resultado final da avaliação,
maior probabilidade de manifestação dos dos riscos durante sua execução, ou seja, definiu-se um plano priorizando ações
riscos durante sua execução. Ao contrá- a área de Solução Técnica tem um peso de melhoria nas áreas de Gerência de
rio, as áreas de Definição do Processo importante nos riscos das atividades do Configuração, Desenvolvimento de
Organizacional, Avaliação e Melhoria Setor 1; Requisitos e Gerência de Requisitos,
do Processo, Planejamento de Projetos o que apresentaram um alto PSR não im-
e Medição e Análise têm menor PSR No Setor 2, as áreas de Verificação, De- plementado, combinado com um baixo
não implementado, indicando menor senvolvimento de Requisitos, Gerência índice de segurança. Para um melhor
probabilidade de manifestação dos riscos de Configuração, Integração do Produto detalhamento das ações de melhoria foi
durante sua execução. e Gerência de Requisitos têm maior sugerida também a realização de uma
As áreas de Solução Técnica, Planeja- probabilidade de manifestação dos riscos avaliação em Profundidade para cada
mento de Projetos e Monitoramento e durante sua execução, ou seja, o mesmo uma das três áreas mencionadas.
Controle de Projetos têm maior PSR im- resultado da organização com a inversão Em um segundo momento, foram su-
plementado, indicando a implementação de algumas posições. geridas ações de melhoria para as áreas
de práticas que evitaram a manifestação de Verificação e Integração do Produto,
de um maior número de riscos. Pelo apresentado na Figura 7, as ameaças devido ao alto PSR não implementado

Setor 1 Setor 2

PSR Controles PSR Controles Não PSR Controles PSR Controles Não
Área de Processo PSR Total PSR Total
Implementados Implementados Implementados Implementados

Avaliação e Melhoria do Processo 30 98 128 34 94 128

Definição do Processo Organizacional 82 46 128 78 50 128

Desenvolvimento de Requisitos 272 544 816 32 784 816

Gerência de Configuração 16 1134 1150 372 778 1150

Gerência de Requisitos 72 540 612 0 612 612

Integração do Produto 70 686 756 78 678 756

Medição e Análise 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

Solução Técnica 796 700 1496 1244 252 1496

Treinamento Organizacional 4 200 204 4 200 204

Validação 84 204 288 24 264 288

Verificação 256 638 894 60 834 894


2598 5422 8020 2862 5158 8020
Tabela 4. Resultados da avaliação em Abrangência – por Setor e Área de Processo

20 Engenharia de Software Magazine – Melhorando Processos Através da Análise de Risco e Conformidade


proc esso

e o estabelecimento de uma política


de Treinamento Organizacional, pois
Amea ç a s
apesar do PSR desta área ser menor, o Produto não atender às
índice de segurança é muito baixo. Da necessidades dos clientes
mesma forma foi sugerida uma avaliação 10,06% Requisitos incompletos,
em Profundidade para cada uma das três 19,42% inconsistentes ou incorretos
4,54%
áreas mencionadas. Software apresentar falhas

Foram também sugeridas ações de me- 4,75%


Perder controle sobre as
lhoria para o Setor 1 na área de Solução solicitações de mudança
4,92%
Técnica. Elaborar produtos de baixa
manutenibilidade
Conclusão 7,71% 17,99% Descumprir orçamento ou
prazos estimados
Neste artigo apresentamos uma aborda-
Baixa eficiência na execução
gem que define um critério concreto para
dos processos
priorização 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 organização. Este critério Demais Ameaças
utiliza a análise de risco como um instru-
mento de priorização das ações que têm Figura 7. Resultados da avaliação em Abrangência – Ameaças
maior eficiência na mitigação das ameaças
identificadas durante o diagnóstico da
situação atual. A relevância das ameaças Referências
é 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 negócio da organização 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. Disponível 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. Disponível 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 Avaliação. Versão 1.0, 2006a.
____. MPS.BR – Melhoria de Processo do Software Brasileiro. Guia Geral. Versão 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

Edição 01 – Engenharia de Software Magazine 21


Agilidade ou Controle Operacional? Os dois!

Q
uando os modelos CMMI e RUP zando uma perda contínua 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 abraçamos tão fortemen-
nível 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 flutuações de na TI como uma organização veloz,
qualidade e incertezas dos projetos, onde o tempo de resposta não pode ser
muitas delas não obtiveram os resulta- sacrificado. Quanto mais rápida uma
dos financeiros desejados. Suas receitas empresa, mais entregas são realizadas
Alexandre Bartie financeiras e lucros operacionais foram em um menor espaço de tempo, gerando
alexandre_bartie@hotmail.com reduzidos em função do aumento dos mais oportunidades de faturamento, o
Atua há 17 anos no gerenciamento de pro- custos e a crescente dilatação dos prazos que reverte imediatamente em maior
cessos voltados à Qualidade e Engenharia de
de entrega. rentabilidade nos negócios.
Software. Pós-Graduado em Capacitação Ge-
rencial pela FEA-USP e em Gestão Empresarial Infelizmente, as empresas e profissio- Porém, a ênfase na agilidade também
pelo Instituto Trevisan. É Bacharel em Admi- nais deram apenas ênfase ao controle possui suas restrições - ser rápido leva
nistração de Empresas pela Fundação Santo operacional, implementando cada vez inevitavelmente a um novo limite opera-
André. Diretor de Inovação 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 responsável pelo
Framework X-Zone. Autor do Livro Garantia da tornaram-se mais pesados, provocando passar estes limites sem provocarmos
Qualidade de Software. uma grande lentidão operacional, sinali- um colapso nos serviços da TI.

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


proc esso

Desta forma, o grande desafio das ência do período delicado que muitas Ressalva Importante
organizações do futuro é conseguir con- organizações estão passando. Nunca o Antes de prosseguirmos com o artigo, é
ciliar agilidade e controle operacional momento foi tão favorável a investimen- fundamental compreender que as abor-
simultaneamente, possibilitando a área tos de TI, porém o excesso de alternativas dagens citadas estão sendo apresentadas
de TI operar com o máximo de qualidade estão gerando um alto nível de incertezas de forma resumida, não explorando
e produtividade. em nossos executivos, o que provoca uma todos os aspectos, contextos e formatos
O objetivo deste artigo é justamente paralisação nestes investimentos. existentes.
apresentar um modelo que combine Desta forma, elaborei um modelo de O método de classificação emprega-
agilidade e controle operacional numa gestão de TI que respeitasse as aborda- do foi pelo critério de prioridades que
única abordagem, viabilizando o que gens em andamento, chamado aqui de cada abordagem possui. Modelos ágeis
chamo de Organizações TI de Alto Modelo Controlado, e permitisse uma priorizam a agilidade, enquanto que mo-
Desempenho.

Entendendo o Momento Atual


É crescente o movimento de profissio- Atrás da busca pelo melhor modelo, muitos executivos
nais e empresas interessadas na adoção
dos chamados modelos ágeis, como uma encontram-se na situação delicada de decidir qual a
opção aos modelos controlados, liderados
mundialmente pelo CMMI e abordagens estratégia a ser seguida pela empresa.
equivalentes.
Existem inúmeros debates sobre as
vantagens e desvantagens dos dois mo-
delos, onde profissionais e especialistas adoção gradual de novos conceitos que delos controlados priorizam o controle
buscam estabelecer critérios que definem poderiam dar mais velocidade à TI, cha- operacional.
em quais contextos uma abordagem deve mado aqui de Modelo Ágil. Porém, é interessante ressaltar que abor-
ou não ser empregada. Este modelo de gestão baseia-se em dagens ágeis possuem seus mecanismos
Atrás da busca pelo melhor modelo, indicadores objetivos, não 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 tão ou mais
ação delicada de decidir qual a estratégia dores monitoram a agilidade e o controle rápidos que as abordagens ágeis.
a ser seguida pela empresa. Muitos já operacional dos projetos, possibilitando
iniciaram o processo de adequação aos acompanhar o desempenho de todas suas O que podemos aprender com os
padrões CMMI e agora estas ações pas- equipes, independente de suas caracterís- Modelos Controlados
sam a ser questionadas por profissionais ticas e restrições. O propósito inicial do CMM foi estrutu-
que defendem as abordagens ágeis. Antes de abordarmos este modelo de rar um modelo de avaliação que permitis-
Para piorar, os executivos deparam- gestão de TI, seria conveniente explorar- se estabelecer um nível 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- zação. Seu conceito baseia-se no fato de
abordagens diferentes. Inevitavelmente, dermos melhor como combinar estes que as organizações que não 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 condução de
rivalidade entre aqueles que defendem resumo das principais diferenças entres seus projetos, pois terão menor controle
seus pontos de vista. as duas abordagens. sobre os fatores que influenciam negati-
Foi neste momento que tomei consci- vamente a execução dos trabalhos.

Características Modelo Ágil Modelo Controlado


Premissa Fundamental Ênfase na Agilidade Ênfase no Controle Operacional
Condução dos Trabalhos Baseado em Processos Empíricos Baseado em Processos Formais
Escopo da Solução 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 Atuação Local (por projeto) Atuação Global (por disciplina)
Abordagem Estratégica Atender melhor o Curto Prazo Atender melhor o Longo Prazo
Palavras Chaves Pessoas, FeedBack, Adaptação Maturidade, Estrutura, Padronização
Modelos de Implementação 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 Não podemos melhorar o que não podemos controlar
Tabela 1. Principais diferenças entre Modelos Ágeis e Controlados

Edição 01 – Engenharia de Software Magazine 23


A criação 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 produção, fornecedoras de software, onde a “entre-
Estados Unidos. O objetivo foi de acelerar mas incorpora todos os elementos geren- ga rápida do software encomendado” é o
seus processos de terceirização na cons- ciais que permitam manter a evolução do principal objetivo desta abordagem.
trução de softwares, sem que ocorresse produto ao longo do tempo. Os modelos ágeis surgem como uma
um descontrole em relação a prazos, cus- Para as empresas que adotam o modelo reação natural à expansão do CMMI no
tos, escopo e qualidade dos projetos. controlado, quanto mais controles opera- mercado mundial, atingindo não apenas
Sendo a terceirização uma decisão ine- cionais forem incorporados, maior será o as grandes organizações, mas também as
vitável, seria necessário estabelecer um valor agregado do projeto, proporcionan- pequenas e médias empresas de TI. Dessa
modelo que mitigasse os riscos de uma do uma vantagem competitiva em relação forma, estas passam também a conviver
má contratação, através de critérios obje- às demais organizações. com a pressão de organizarem toda sua
tivos que comprovassem a qualificação Atualmente, o CMM foi remodelado cadeia produtiva, sob o risco de serem
das empresas. para o chamado CMMI. Uma visão mais simplesmente excluídos do mercado.
As constantes fusões corporativas
favoreceram o surgimento das mega-
corporações globalizadas, que necessitam
As empresas que possuem maior nível de maturidade de fornecedores que consigam garantir
níveis de serviços em escalas nunca antes
organizacional sinalizam possuir maior controle operacio- imaginadas. Sem possuir tantos recursos
financeiros disponíveis e prevendo uma
nal sobre seus projetos. dificuldade de adequar-se aos padrões
estabelecidos pelo mercado mundial, as
pequenas e médias empresas observam
Desta forma, todos os fornecedores moderna e ampliada de avaliação das suas oportunidades no mercado serem
deveriam ser submetidos ao processo de organizações de TI, de modo a incorporar gradativamente reduzidas.
avaliação CMM, de forma a mensurar novos temas e oferecer um novo formato Neste cenário, a abordagem ágil torna-
seu nível de maturidade organizacional de avaliação, baseado nas disciplinas. se uma interessante estratégia de sobrevi-
e atestar suas condições mínimas para Isto possibilita que empresas especiali- vência das pequenas e médias organiza-
atender determinados projetos em con- zadas em determinados serviços de TI ções que não conseguem adequar-se aos
corrência. (testes de software, gerenciamento de rígidos padrões de excelência estabele-
As empresas que possuem maior nível projetos, gerenciamento de requisitos, cidos pelo mercado mundial. Para isto, é
de maturidade organizacional sinalizam gerenciamento de ambientes), possam necessário convencer o mercado de que
possuir maior controle operacional sobre ser avaliados exclusivamente nos itens seguir os “métodos tradicionais” torna-
seus projetos e estarão em melhores de seu maior domínio. rão suas empresas mais lentas e caras, que
condições de oferecer seus serviços que Sempre é bom afirmar que o CMM é a área de TI segue um processo evolutivo
as demais. Fornecedores bem avaliados um modelo de avaliação, pois estabelece diferente de outros setores da economia,
terão acesso a participar de um maior apenas os pontos de controle que deverão e que adotar padrões industriais é um
número de projetos, aumentando suas estar contemplados nos procedimentos de grande equívoco estratégico.
chances de incrementar suas receitas trabalho das empresas. Cada organização De certa forma, os modelos ágeis res-
operacionais. Bom para os clientes e tem a liberdade de estabelecer e modelar suscitam a idéia da área de desenvolvi-
melhor ainda para os fornecedores que seus próprios processos internos. mento como o centro da organização 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 organizações a trabalharem em torno dos desenvolvedores, tudo é
que foi adotado por várias outras orga- por processos, seria errado dizer que o organizado para dar poder de decisão a
nizações americanas, que basearam seus CMM é um processo pesado ou burocrá- estes profissionais que irão encontrar os
processos de terceirização de serviços tico. Na verdade, serão as empresas que meios mais adequados para implementar
nos níveis de maturidade atestados pela determinarão seus processos internos, as mudanças no código-fonte e gerar os
avaliação CMM. Com um modelo esta- podendo criar esquemas complicados, benefícios esperados no projeto, no me-
belecido, a terceirização foi incentivada e pesados, rígidos e burocráticos, não sen- nor prazo e custo possível.
intensificada em todo o mundo, tornando do necessariamente culpa do CMM, mas As abordagens ágeis chamam atenção
extremamente popular o CMM como de sua incorreta implementação. de muitas empresas e profissionais pela
modelo de avaliação. sua simplicidade de implementação, pois
As empresas que adotam o modelo con- O que podemos aprender com os suas regras são simples de serem segui-
trolado buscam estabelecer uma relação Modelos Ágeis das. O sucesso da adoção 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 instituições, chamado de “Ma- de condução 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 redução drástica da Nos modelos ágeis, o valor de uma organização é medida
complexidade dos projetos de desen-
volvimento e de toda a estrutura da TI, através de sua capacidade em realizar entregas rápidas a
reduzindo em poucos elementos geren-
ciáveis e trabalhando com profissionais um baixo custo operacional.
com atuação multidisciplinar.
Sua filosofia reforça e incentiva a atua-
ção livre dos profissionais para decidirem que os projetos serão 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
tação, apesar de existirem poucas, mas qualquer empresa pode pleitear o título seus projetos, possibilitando que esta
rígidas 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 mínima para mantê-lo em Mesmo que no futuro exista um mo- efetivamente gerenciados, maior será o
funcionamento, adicionando flexibilida- delo de avaliação para empresas ágeis, a valor da organização no mercado.
de e eliminando complexidades ao longo informalidade do modelo tornará qual- Portanto, as empresas estarão sempre
de todo o ciclo de vida do projeto. quer avaliação altamente subjetiva, sem buscando investir mais em controles
Desta maneira, a abordagem ágil torna- quaisquer evidências de que determina- operacionais para garantir maiores opor-
se então uma modelo viável de atuação das ações estão realmente acontecendo tunidades de mercado – trata-se de uma
no mercado mundial. Possibilitando dentro da filosofia ágil. estratégia organizacional sustentável de
criar um novo nicho de oportunidades, As certificações existentes apenas ates- longo prazo.
atraindo investidores que estarão dispos- tam que determinados profissionais estão Nos modelos ágeis, o valor de uma
tos a enfrentar os riscos e as condições aptos a aplicar as técnicas estabelecidas organização é medida através de sua
impostas pelo modelo ágil. pelos modelos ágeis. Porém, não existem capacidade em realizar entregas rápi-
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 é irão concorrer de forma cada vez mais
zas que impedem sua adoção de forma seguida como uma estratégia empresarial agressiva, oferecendo prazos e custos
corporativa e podem comprometer sua ou apenas uma iniciativa isolada de uma sucessivamente mais apertados.
credibilidade e implementação no mer- equipe dentro da empresa, acentuando No médio e longo prazo, a lucratividade
cado mundial. ainda mais a fragilidade deste modelo. dos projetos será gradualmente reduzida
e a pressão no aumento da produtividade
Falta de uma avaliação para atestar empresas Foco excessivo nos prazos e custos inviabiliza o das equipes será cada vez maior. Além
com abordagens ágeis modelo financeiro de longo prazo disso, os salários deverão ser reduzidos
A abordagem ágil não possui um mode- Nos modelos controlados, o valor da para manter uma margem de lucro que
lo de avaliação que garanta ao mercado organização é medida pelo total de con- compense as organizações seguirem este

Figura 1. Demonstração de como agilidade e controle são colocados em lados opostos

Edição 01 – Engenharia de Software Magazine 25


modelo. Há cada novo projeto, as empre- software (ver Figura 1). seus controles gerenciais, aumentaram
sas estarão trabalhando mais próximas Porém, será que este modelo proposto a incidência de defeitos em produção
de seu limite operacional e financeiro, de causa-efeito é realmente consistente? e o nível de retrabalho em toda cadeia
devendo necessariamente rever sua estra- Como podemos atestar que estamos tra- produtiva, reduzindo sua lucratividade
tégia de posicionamento no mercado. balhando com uma premissa verdadeira? e participação no mercado.
Portanto, as abordagens ágeis possuem Será que estamos condenados a escolher Organizações que buscaram apenas o
uma inconsistência estratégica que impe- entre uma ou outra abordagem ou existe controle operacional mantiveram níveis
dem que suas organizações sejam viáveis uma forma diferente de combinarmos de qualidade e excelência compatíveis
financeiramente no longo prazo. Isto não estes dois modelos e potencializarmos com as exigências do mercado, mas com
significa que os princípios ágeis não são suas vantagens? prazos de entregas inviáveis para uma
economia cada vez mais dinâmica. Foram
então surpreendidas por organizações
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 são 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 operações. Provando
causa-efeito. que estes dois elementos formam a ver-
dadeira base de sucesso das organizações
do futuro.
bons nem interessantes, porém 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 organizações a tornarmos ágeis, precisamos abdicar dos Operacional ao Extremo
uma estratégia equivocada. controles operacionais para dar maior Para as Organizações TI de Alto De-
atenção 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 construção de uma empresa altamente
Para a maioria das empresas e profissio- demais setores da economia, estes dois competitiva, que atenda as exigências de
nais, agilidade e controle operacional são elementos são empregados intensamente mercado de curto, médio e longo prazo.
indicadores inversamente proporcionais, como estratégia 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 decisão Seja na indústria (com a produção de setores econômicos é alienar-se de um
binária entre adotar um modelo ou outro, carros, aviões e navios), na agricultura e movimento global, onde a Tecnologia
impossibilitando aplicar de forma com- pecuária (produção de soja, milho e gado) da Informação é atualmente o grande
binada estes dois elementos. ou na medicina (procedimentos cirúrgi- gargalo operacional de todos os setores
Adotando este modelo, estabelecemos cos, exames e diagnósticos), a produti- da economia. Será através dela, que os
que as organizações com maior nível de vidade destes setores vem aumentando saltos de produtividade e qualidade serão
controle operacional, necessariamente consideravelmente ao longo dos anos. Ao conquistados e superados.
possuem uma limitada capacidade de mesmo tempo, estes produtos e serviços 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 razão deste pen- complexos controles operacionais que ga- pista para a construção deste modelo
samento é que o gerenciamento destes rantam a qualidade e níveis de excelência foi sugerida por Kent Beck no seu livro
controles consomem tempo e energia dos cada vez maiores. “Extreme Programing Explained: em-
profissionais, levando uma redução da Na verdade, estas organizações inves- brance change” (um excelente livro), po-
produtividade (ver Figura 1). tiram pesadamente na automação de rém aplicada em um contexto diferente,
Da mesma maneira, uma organização 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 gestão de fornecimento de serviços. Para dagens ágeis citadas.
na produção do software, obtendo uma isso, empregaram todos os modernos Kent Beck mapeou o que considerava ser
agilidade nunca atingida nas organiza- recursos tecnológicos disponíveis para as melhores práticas para a construção de
ções com muitos controles operacionais. aprimorar seus níveis de agilidade e um software e idealizou um modelo onde
A razão deste abrupto aumento de produ- controle operacional. estes controles seriam representados por
tividade estaria ligada ao fato de que, com Organizações que buscaram apenas botões individuais, nos quais poderíamos
o tempo disponibilizado pela ausência agilidade, alcançaram rapidamente seu regular sua intensidade de utilização (mí-
dos controles, os profissionais poderiam limite operacional. Com o aumento do nimo e máximo). Então jogou o seguinte
dedicar-se ainda mais na construção do volume de negócios e a deficiência de desafio – O que aconteceria a uma equipe

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


proc esso

de desenvolvimento se girássemos todos os


botões de boas práticas ao máximo? – Deste
conceito derivamos o que foi estabelecido
como modelos extremos, onde as boas
práticas de trabalho devem ser levadas ao
seu limite, gerando então o máximo da pro-
dutividade e desempenho das equipes.
Adotando a mesma abstração proposta
por Kent Beck, podemos visualizar um
painel onde existam dois botões indivi-
duais, representando respectivamente
a agilidade e controle operacional que
uma empresa deseja obter. Seguindo
este modelo, podemos perguntar: O que
aconteceria com a organização se gi-
rássemos estes dois botões ao máximo?
Figura 2. Explorando ao máximo agilidade e controle operacional nos processos TI
(ver Figura 2)
Teríamos uma organização TI altamente
competitiva, capaz de oferecer produtos
e serviços de TI em prazos e custos cada
vez mais reduzidos, sem comprometer Isto significa que, as organizações de- direção 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 estratégias, mesmo quando não se
Combinado indicadores. encontram plenamente convencidos dos
Com a adoção do Modelo Combinado, Neste momento, as abordagens ágeis resultados prometidos pelas inovações.
estaremos alinhando a estratégia da TI a trarão consideráveis contribuições para Mais do que abordagens, precisamos
todos os demais setores da economia de estabelecer mecanismos de resposta mais de uma visão de longo prazo, que oriente
mercado, que entendem como necessário flexíveis, oferecendo uma oportunidade nossa organização ao futuro, fornecendo
serem controlados e ágeis simultanea- de implementação 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 Não importa se seguiremos
não é tão diferente da abordagem do requer uma maior consciência de seus uma linha mais próxima 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 Inovação Corporativa que contemplem Ágil. Quebrar recordes de produtividade
operacionais estabelecidos nos moldes inovações que conciliem aumento de e qualidade são os grandes desafios das
do CMMI. produtividade e controle operacional em organizações de TI do futuro.
A grande mudança do Modelo Combina- todos os projetos. Portanto, independente do tí-
do é definir como diretriz geral que, qual- tulo que daremos aos nossos processos
quer inovação corporativa a ser planejada Conclusão (Ágil, Adaptável, Clássico, Controlado,
na cadeia produtiva TI, quando acarretar No futuro, novas tendências e filoso- Formal, Extremo, Burocrático), o que ga-
em perda de agilidade, será antecipada- fias irão continuamente balançar nossas rante que estamos no caminho certo será
mente compensada por uma inovação convicções 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.

Edição 01 – Engenharia de Software Magazine 27


O processo unificado integrado ao
desenvolvimento Web

C
om o propósito de auxiliar os for- sendo ele estruturado, sem que perca
necedores de soluções de softwa- suas características básicas. Ele utiliza
re que utilizam como plataforma alguns princípios modernos (compo-
a internet, este artigo objetiva formalizar nentização, revisões, etc) na área de
idéias práticas, explicando como o de- engenharia de software.
senvolvimento de sistemas Web pode Algumas características básicas do
ser integrado ao Processo Unificado. Processo Unificado são:
Serão 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, além das vantagens e os cuidados utilização dos casos de uso, a fim de se
a tomar com a integração de forma a definir uma linguagem entre os usuários
facilitar a entrega. Serão apresentados e o sistema, facilitando a especificação
também alguns pontos relacionados com dos requisitos.
a gerência e o plano de execução. • Centrado na arquitetura: O processo
Rodrigo S. Prudente de Aquino Além disso, explica-se como o Processo procura modelar uma arquitetura através
rodrigo@wpage.com.br Unificado pode ser configurado de acor- dos aspectos estáticos e dinâmicos de um
É bacharel em Ciência da Computação 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 agências de marketing • É iterativo e incremental: Uma das
direto do Brasil. Escritor de artigos e pales- Processo Unificado práticas 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 iteração, que quase
(www.wpage.com.br). Atualmente, trabalha à orientação a objetos, porém, pode-se sempre abrange todo o fluxo de trabalho.
como Líder de Projeto no Grupo Totvs. utilizá-lo em qualquer projeto mesmo Olhando como um todo, essa iteração

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


proc esso

resulta em um incremento para o projeto. do ambiente, a conclusão do manual Análise e Projeto: No início desse fluxo
É válido lembrar que as iterações são pla- do usuário, identificação e correção de de trabalho, desenvolve-se uma visão
nejadas de acordo com os casos de uso. defeitos. No final dessa fase deve-se tirar “arquitetural”, incluindo os artefatos
uma conclusão 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 atribuições de tarefas devem ser utilizados durante a concepção de uso mais importantes, que serão
a grupos ou indivíduos envolvidos di- de projetos futuros. insumos para a elaboração de alguns
retamente no desenvolvimento de um artefatos, como: um diagrama de classes,
projeto. Além disso, deve-se definir o Em relação aos fluxos de trabalho, ou de estado, de iteração, de seqüência, de
quanto antes, quais as etapas (iterações) e disciplinas, tem-se os seguintes escla- colaboração, etc. É válido lembrar que
os artefatos que serão envolvidos durante recimentos. não é necessária a utilização de todos os
o processo. Com essas características, Modelo do negócio: 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 configurável, ou seja, deve da muito bem o problema a ser resolvido, perfeitamente o que será construído. Com
ser ajustado de acordo com os tipos de elaborando se necessário uma análise 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 relação entre as um todo. Neste momento, existe uma em realizar a implementação. No início
fases, iterações e os fluxos de trabalho grande interação entre o fornecedor e o deste fluxo encontra-se, caso necessário,
dentro do Processo Unificado. cliente. A fim de que possam ser gerados protótipos de funcionalidade e de inter-
Concepção ou iniciação: Essa fase tem os casos de uso e consequentemente face, como também uma descrição da
como objetivo verificar a viabilidade do a extração dos requisitos. Entender o arquitetura básica do sistema. Durante
projeto, bem como os riscos e um dos modelo de negócio do cliente é peça fun- o desenvolvimento do projeto alguns
fatores não menos importantes: definir damental antes que um requisito possa artefatos poderão sofrer ajustes de acordo
os casos de uso mais críticos obtendo ser definido. com as implementações realizadas.
as funções chave do sistema. É através Requisitos: Nesse fluxo procura-se Implementação: No início desse flu-
do tipo do projeto, dos casos de uso e extrair os requisitos do sistema a ser de- xo, os desenvolvedores poderão bus-
consequentemente dos requisitos, que senvolvido. A grande dificuldade nesta car componentes (funções) que foram
se realizará o ajuste de quantas iterações 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 concepção, pode-se ter um
de uso, pode-se definir também quais as tes possam entender claramente o que o protótipo de funcionalidade como um
etapas exigirão maior cuidado. sistema se propõe a fazer. A base para isso produto final em primeira instância. No
Elaboração: Durante essa fase, a maio- é que o fornecedor entenda o domínio do decorrer deste fluxo, procura-se ter um
ria dos casos de uso são especificados e problema e consequentemente construa sistema executável a cada iteração, além
detalhados. A arquitetura do sistema é um bom modelo de casos de uso. A ex- da implementação baseada nos artefatos
projetada utilizando artefatos que po- tração dos requisitos, através dos casos criados no modelo de análise e projeto.
dem ser estáticos ou dinâmicos. Neste de uso, irá compor um artefato que será O conceito de componentização deve ser
instante são apresentados, o Baseline evoluído durante todo o projeto. sempre levado em consideração, com o
completo do projeto, os componentes
que formarão a equipe de desenvolvi-
mento, etc. No final dessa fase os envol-
vidos devem estar aptos a planejar a fase
de construção em detalhes.
Construção: A fusão de vários artefatos
de software ocorre neste momento, pos-
sibilitando que o sistema seja implemen-
tado quase que completamente. Tem-se
uma visão geral de como o Baseline do
projeto está sendo seguido. No final dessa
fase, o sistema deve estar totalmente pre-
parado para a transição ao usuário.
Transição: 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 versão beta. Existem
ainda outras atividades que, de acordo
com o projeto, podem ocorrer de manei-
ra paralela, por exemplo, a preparação Figura 1. Overview do Processo Unificado

Edição 01 – Engenharia de Software Magazine 29


intuito de que estes segmentos de códigos mente, no final da fase de transição, já do que está documentado e do que está
possam ser aproveitados mais tarde por se pode observar a completa migração e sendo implementado. A atividade de
outros sistemas. configuração do sistema no ambiente de gerenciamento de projeto é constante
Testes: Neste fluxo, um plano de teste produção do cliente. durante todo o ciclo de vida do software,
deve ser elaborado, definindo e identifi- Gerência de configuração e mudança: elaborando reuniões com RTF (Revisão
cando qual procedimento e quais tipos É durante esse fluxo de trabalho que Técnica Formal), garantindo a correta
de testes serão realizados. Esse plano são controlados todos os artefatos do mudança dos artefatos, além da necessi-
poderá ser alterado de acordo com a me- projeto, bem como suas versões. Antes dade de manter um bom relacionamento
lhor definição dos requisitos do sistema. de realizar uma mudança, deve-se fazer com o cliente.
Ele também poderá ser utilizado durante uma análise em relação 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-
iteração, mostrando a situação do execu- áreas da implementação isso irá afetar. senvolverá o projeto. Ele pode ser caracte-
tável que foi entregue ao cliente. Nas fases Um bom controle de mudança é crucial rizado pelo tipo de plataforma, pela rede,
pela organização dos diretórios no qual
ficarão os artefatos e os códigos fonte, pelo
sistema de backup etc. Pode-se perceber
Não menos importante, a alteração da documenta- na Figura 1 que no final de cada iteração,
têm-se ajustes no ambiente. Esses ajustes
ção deve estar completamente condizente com o que foi podem ser do tipo: criação de diretórios, o
backup das versões do software, etc.
implementado.
As iterações, nada mais são do que mar-
cos durante a construção de um sistema
de concepção e de elaboração têm-se os para garantir o sucesso e a qualidade do utilizando o Processo Unificado. Um
testes de módulos e na fase de construção projeto. À medida que o projeto entra aspecto muito importante é que o número
têm-se os testes de integração. O número na fase de construção, a dificuldade no de iterações deve ser definido logo no
de testes de integração poderá se repetir controle de mudança e gerência de con- início de cada projeto (elas podem variar
de acordo com a quantidade de alterações figuração aumenta. Isso ocorre porque o de número de acordo com o tamanho do
nos requisitos do sistema. projeto está maior, com mais requisitos sistema a ser desenvolvido). Uma iteração
Implantação: Descreve-se nesse fluxo implementados e com maiores chances normalmente é marcada pela entrega de
de trabalho, a instalação do sistema no de que uma alteração possa afetar outras uma versão executável do sistema e uma
ambiente do cliente. Durante toda a áreas do sistema. Ter rastreabilidade e sa- reunião formalizada através de uma RTF
fase de elaboração, até o meio da fase ber relacionar os requisitos é uma tarefa (Revisão Técnica Formal). Em geral, o re-
de construção, um simples documento importante do engenheiro de software. sultado de uma iteração é um incremento
especificando algumas características do Após uma modificação, necessita-se de para o sistema. Entende-se também que
ambiente do cliente poderá ser realizado. novos testes em várias áreas do sistema, uma iteração é como se fosse uma “foto”
Este artefato pode conter, por exemplo, garantindo que a mudança foi implemen- tirada da aplicação num determinado
especificações técnicas sobre a infra- tada corretamente. Não menos impor- instante. É um marco indicando o final
estrutura de rede e de sistemas suportada tante, a alteração da documentação deve de um mini-projeto.
pela empresa contratante. Além disso, estar completamente condizente com o
algumas dicas de instalação podem ser que foi implementado. Artefatos específicos utilizados no
acrescentadas nesse artefato de forma a Gerenciamento de projeto: Nesse fluxo desenvolvimento de projetos Web
reduzir mais tarde, o número de erros de se escolhe os artefatos a serem utilizados D urante a construção de aplicações
instalação e consequentemente o tempo no desenvolvimento da aplicação, de web pode-se utilizar inúmeros tipos de
de testes. No final da fase de construção, acordo com o tipo do projeto e o enten- artefatos. Serão citados a seguir, alguns
inicia-se a migração do sistema para o dimento do cliente. O gerente deve ter documentos que poderão ser utilizados
ambiente de testes do cliente. Posterior- uma visão 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, média ou alta. do sistema com as áreas ou páginas de
Para elaborar um sistema Web, é neces- • Atendido: Representa o status do uma aplicação. Cada página receberá um
sário um levantamento dos requisitos. requisito, indicando se o mesmo foi ou código, que por sua vez será relacionado
Neste contexto, precisa-se de um arte- não implementado no sistema. com nenhum, um ou mais requisitos.
fato para armazenar estas informações. • Comentários: Fornece informações Através 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 modificações
simplificadamente a organização dos ainda não foi implementado (indicando nos requisitos o fornecedor saberá
requisitos. A planilha Excel terá as carac- mais especificamente, quais são as difi- quais áreas devem sofrer mudança. Este
terísticas representadas na Figura 2. culdades). também é um artefato “vivo” e deve ser
Nesta planilha temos: incorporado ao fluxo de trabalho de ge-
• Código: Identifica unicamente um A planilha de requisitos é um artefato rência de configuração e mudança (SCM
requisito a fim de que se possa controlá-lo “vivo” no ciclo de vida do projeto e deve - Software Configured Management). A
através do projeto. ser incorporado à área de SCM (Software Figura 3 apresenta um exemplo de como
• Descrição: Nesta coluna descreve-se Configured Management) do Processo seria uma simples representação de um
o requisito. Unificado. A expressão 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). alterações no decorrer do projeto. relacionados.
• Prioridade: Indica o nível de impor-
tância que o requisito possui para o sis- Projeto Linear Web Content
tema em geral, podendo ser baixa, média Além da planilha de requisitos, esse é O Web Content é um artefato de sof-
ou alta. um dos artefatos mais importantes para tware responsável pelo armazenamento
• Dificuldade: Indica o nível de difi- o desenvolvimento de um sistema Web. de todo o conteúdo textual utilizado
culdade para implementar este requisito, Nele poderão ser mapeados os requisitos em um site. Não existe um documento

Requisitos Funcionais

Requisitos Estáveis: São aqueles que derivam da atividade fim da organização e são relativos diretamente ao domínio do sistema.

Requisitos Voláteis: São requisitos que mudam ao longo do desenvolvimento ou após o início da operação. Dentro dele, existem:

  Requisitos Mutáveis: São requisitos que se alteram em razão das mudanças no ambiente no qual está operando.

  Requisitos Emergentes: São requisitos que não podem ser completamente definidos quando o sistema está em desenvolvimento.

  Requisitos Conseqüentes: São requisitos baseados em premissas de como o sistema será usado. Quando o sistema é colocado em operação, ocorrem mudanças.

Requisitos Não Funcionais

Requisitos de Produto: São aqueles específicos do comportamento do produto. Dentro dele, existem:

  Requisitos de usabilidade

  Requisitos de eficiência

  Requisitos de disponibilidade

  Requisitos de portabilidade

  Requisitos de confiabilidade

Requisitos Organizacionais: São aqueles derivados de políticas e procedimentos organizacionais do cliente e dos desenvolvedores. Existem os seguintes tipos de requisitos organizacionais:

  Requisitos de versão: definindo o produto e quais os documentos são necessários para liberar uma versão para o usuário.

  Requisitos de implementação: envolve linguagens de programação, banco de dados, etc.

  Requisitos de padrões: envolve os padrões a serem usados.

Requisitos Externos: São aqueles derivados de fatores externos ao sistema e ao seu processo de desenvolvimento.

  Requisitos de interoperabilidade: definição de como o sistema interage com outros sistemas.

  Requisitos étnicos: assegurando que o sistema será aceito pelos usuários e pelo público em geral.

  Requisitos de legislação: 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 segurança.

Tabela 1. Tipos de requisitos

Edição 01 – Engenharia de Software Magazine 31


padrão de Web Content. Normalmente FDD (Wireframes) com a estrutura do site, colocando a in-
cada empresa que desenvolve aplicações O FDD (Functional Design Document) formação no seu respectivo local. Além
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 página da aplicação. oferecer fortes soluções para os proble-
com os requisitos do sistema e entende- Um Wireframe é uma maquete da página mas de usabilidade. Outra característica
se que o mesmo pertence ao fluxo SCM Web que se dirige somente à disposição importante deste artefato é que ele pode
(Software Configured Management) de elementos, não à estética. Ele é o informar onde encontrar o conteúdo para
do Processo Unificado. Na Figura 4 esboço de como seria uma página, des- aquela respectiva página dentro do Web
exemplifica-se como seria uma página prezando cores e imagens. A vantagem Content.
de um Web Content. em utilizar um Wireframe como guia A desvantagem do FDD é que ele não
É muito importante lembrar que esse para implementação, é que ele trabalha apresenta uma solução gráfica para o
artefato é formado não só de uma, mas representando o fluxo da informação projeto, apesar de ter um papel muito
várias seções, onde cada uma indica o estabelecido anteriormente no Projeto importante em conduzir a proposta de
conteúdo de cada página do site. Com Linear. Ele pode ser desenvolvido pelo layout a ser construída pelo designer. Em
o Web Content, o fornecedor consegue arquiteto de informação. relação ao desenvolvimento de um Web
agrupar e gerenciar melhor o conteúdo O uso de um FDD estabelece uma forte Site, o FDD torna-se um dos artefatos
de um site. ligação da arquitetura da informação mais completos, que auxiliam muito os
programadores, pois eles criam uma re-
lação entre a página a ser implementada
e o conteúdo a ser aplicado. A Figura
5 apresenta como seria um Wireframe
dentro de um FDD - representando uma
determinada página de um site.

Protótipo de interface
O protótipo pode ser uma parte da apli-
cação implementada, protótipo de fun-
cionalidade, ou uma proposta de layout,
protótipo de interface, feita pelo designer
e aprovada pelo cliente. Este item fornece
algumas informações apenas sobre o
protótipo de interface. Para chegar até o
protótipo, o designer precisa utilizar o
FDD ou pelo menos uma parte dele para
Figura 3. Projeto Linear e requisitos ter noções de como será a divisão do site.
A principal função deste artefato é forne-
cer ao cliente quais serão as cores básicas

Figura 5. Wireframe (página do FDD) Figura 4. Ilustração de uma página do Web


Content

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


proc esso

da aplicação, uma parte da arquitetura de conhecimento da visão de negócio do artefatos que ainda sofrerão algum tipo
informação e como ficarão disponibiliza- cliente e do sistema a ser desenvolvido de alteração no decorrer do desenvolvi-
das as informações aos usuários dentro como um todo, pode-se, por exemplo, mento do projeto.
do site. A vantagem na utilização deste dividir as fases do projeto conforme Modelo de negócio: Neste fluxo, se o
artefato é direcionar totalmente a equipe apresentado na Tabela 2. fornecedor achar necessário, pode-se re-
de análise e projeto, bem como a equipe É importante destacar que a Tabela 2 é alizar um documento indicando a análise
de implementação. apenas um exemplo baseado na ilustra- de viabilidade e de risco do projeto. Caso
ção do Processo Unificado, presente no esteja difícil para o fornecedor entender
O Processo Unificado integrado ao segundo tópico deste artigo. A quantida- o domínio do problema, deve-se elaborar
desenvolvimento Web de de tempo e iterações que um sistema um diagrama de casos de uso do negócio,
Neste item, explica-se como configurar
o Processo Unificado de acordo com o
sistema a ser desenvolvido, obtendo uma
determinada quantidade de iterações.
“ Ao ser definido o prazo de entrega, o processo começa a
Além disso, descreve-se o esforço gasto
para construir cada artefato Web em
ser modelado à medida que o Baseline é construído. ”
razão das fases do processo.

Configurando o Processo Unificado terá irá variar muito em razão do tipo bem como sua descrição, ficando mais
Antes de iniciar o desenvolvimento de do projeto, do número de profissionais fácil chegar ao domínio da solução. Os
qualquer projeto utilizando o Processo envolvidos, do prazo de entrega, das casos de uso do negócio darão suporte
Unificado, é necessário determinar os flu- funcionalidades, etc. O tempo de experi- ao diagrama e a descrição de casos de
xos de trabalho mais utilizados, o número ência da equipe de desenvolvimento é um uso do sistema. Nesse fluxo, o Baseline
e o tempo de cada iteração dentro das fator importante, de forma a identificar do projeto começa a ser construído,
fases. Para um sistema Web, normalmente e combater os pontos críticos durante a contemplando custos, prazos, cargos e
consideram-se todos os fluxos de trabalho implementação da aplicação. número de pessoas envolvidas. É válido
do processo, ou seja, modelo de negócios, A Tabela 3 apresenta uma aproximação destacar que às vezes, o Baseline pode ser
requisitos, análise e projeto, implementa- da quantidade de esforço gasto em cada modificado de acordo com as iterações
ção, teste e implantação. Com o objetivo artefato de software voltado para Web, do processo. Um cliente pró-ativo em
de esclarecer melhor a configuração do relacionando-os ao Processo Unificado. resolver as dúvidas 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 três meses. processo e fluxos de trabalho do projeto, como também uma possível
Ao ser definido o prazo de entrega, Descreve-se detalhadamente neste item, alteração no Baseline.
o processo começa a ser modelado à o que deve ser feito em todos os fluxos de Requisitos: A extração dos requisitos
medida que o Baseline é construído. trabalho, através do número de iterações deve ser feita à medida que os casos de
Considerando que o fornecedor tenha definidas na configuração do processo uso do sistema são realizados e validados.
unificado. Conclui-se que a montagem da planilha
de requisitos aumenta à medida que os
Fases Tempo Iterações Fase Concepção - 1ª. Iteração casos de uso são aprovados pelo cliente.
Concepção 1 semana 1 A 1ª iteração ocorre praticamente depois Mesmo sem a arquitetura de informação
de toda a fase de concepção do projeto, do site, o próprio cliente, por exemplo,
Elaboração 2,5 semanas 1
tendo como referência a Figura 1. No já pode obter informações sobre o que
Construção 6 semanas 2 final dessa iteração, deixa-se claro quais deseja, em relação ao conteúdo que será
os artefatos farão parte da gerência de apresentado em sua aplicação.
Transição 2,5 semanas 1
configuração e mudança, ou seja, aqueles Análise e Projeto: Este fluxo utilizará
Tabela 2. Divisão das fases do projeto até o momento, todos os requisitos cons-
truídos e aprovados dentro da planilha.
Artefatos Concepção Elaboração Construção Transição A arquitetura de informação 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 serão mapeados os códigos
de cada página do site, a descrição da
Web Content 15% 70% 15% 0%
área e a identificação dos requisitos. Note
FDD (Wireframes) 10% 60% 30% 0% que uma página do site poderá estar
Protótipo de Interface 100% 0% 0% 0%
relacionada a nenhum, um ou a vários
requisitos. Com este artefato garante-se
Tabela 3. Mensuração de esforço X fases mais tarde a rastreabilidade. A estru-

Edição 01 – Engenharia de Software Magazine 33


turação quase que definitiva do Web volvedores participem de reuniões com Após a primeira iteração, um Wireframe
Content pode ser feita pelo fornecedor e os clientes, tirando suas dúvidas, como (uma parte do FDD) deverá ser enviado
pelo cliente, ainda neste fluxo, no final também revalidando os requisitos. ao designer, que se responsabilizará
da 1ª iteração. Teste: Esse fluxo pode ser marcado com pela construção da proposta de layout.
Mediante a construção do Projeto Linear o início da construção de um artefato A proposta de layout não terá o papel de
e do Web Content, inicia-se a montagem chamado plano de teste. Essa construção mostrar interações e funcionalidades do
FDD. O FDD servirá como guia para o deverá ser direcionada pelos requisitos sistema ao cliente.
designer montar o protótipo de interface do sistema obtidos até o momento. Ao final dessa iteração, têm-se os se-
do site. A finalização do protótipo e a Implantação: Não há. guintes artefatos sob gerência de confi-
aprovação do cliente marcam o final da guração e mudança: FDD, Projeto Linear,
1ª iteração. A Figura 6 apresenta um overview Web Content, Planilha de requisitos,
Implementação: Nesse momento os da construção do sistema, levando-se descrição dos casos de uso, plano de
desenvolvedores podem, por exemplo, em consideração os artefatos utilizados teste, documento de Baseline e quaisquer
buscar funções 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- incluídos mediante a necessidade do
servirão para a realização desta aplicação. sentado pelo círculo vermelho), o Projeto projeto. A RTF e o protótipo de interface,
A preparação do ambiente de desenvol- Linear (representado pelo círculo preto) aprovado pelo cliente, estabelecidos no
vimento também pode ser feita, como a e o FDD (representado pelo círculo azul) final dessa iteração, não farão parte da
instalação dos softwares e ferramentas estão em fase de formação, por isso eles gerência de configuração e mudança,
necessárias para a implementação. Neste estão tracejados. A área com cor cinza pois são artefatos “mortos”, os quais não
fluxo, dá-se a construção do diagrama claro da Figura 6 representa que pou- sofrerão mais modificações.
de classes, bem como outros diagramas cos requisitos foram encontrados nesta
UML que os engenheiros de software iteração do processo. Os círculos em Fase Elaboração - 2ª. Iteração
acharem necessários, para o entendimen- amarelo em volta do FDD e do Projeto No contexto apresentado, a 2ª iteração
to e validação do sistema pelo cliente. Ob- Linear representam que estes documen- abrange toda a fase de elaboração do pro-
jetivando diminuir as chances de algum tos necessitam de um conhecimento jeto. Já não existem mais esforços voltados
requisito ser implementado de forma em arquitetura de informação para que para o protótipo de interface. Ele servirá
incorreta, é válido que alguns desen- possam ser elaborados. apenas para guiar a montagem da estru-
tura dos templates do site. Essa iteração
levará mais tempo para acontecer do que
a primeira, pois neste instante os esforços
vão se concentrando e os envolvidos no
projeto precisam entender e resolver os
problemas mais críticos que começarão
a aparecer.
Modelo de negócio: Análises de viabi-
lidade e de riscos podem e muitas vezes
devem continuar sendo feitas. O domínio
do problema deve ser entendido comple-
tamente e uma solução deve ser descrita
através dos casos de uso que estarão
80% finalizados no final desse fluxo de
trabalho. A planilha de requisitos cresce
na mesma proporção em que os casos
de uso são validados pelo fornecedor e
cliente.
Requisitos: Os requisitos continuam
sendo extraídos dos casos de uso e
compondo a planilha. No final dessa
iteração tem-se 80% dos requisitos já
documentados e aprovados pelo cliente.
Os requisitos são a base para a construção
dos artefatos, como o FDD, Web Content
e o Projeto Linear. Por essa razão tem-se
grande parte da formação desses docu-
mentos ainda nesta iteração.
Análise e Projeto: Os requisitos apro-
Figura 6. Overview da 1ª iteração
vados até o momento servirão como

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


proc esso

base para a quase completa formação do requisitos são extraídos (área em cinza uma nova característica para o projeto e
Projeto Linear, do Web Content e conse- mais escura em relação às da Figura que os gerentes julguem a necessidade
quentemente do FDD. A Figura 1 fornece 6, indicando que mais requisitos estão de construção para melhor entender o
uma idéia da quantidade de esforço sendo extraídos). problema.
gasto para construir cada artefato. Como No final desta iteração, os artefatos Requisitos: Os requisitos ainda conti-
explicado anteriormente, o Web Content estarão quase que totalmente concluídos. nuam sendo extraídos dos casos de uso
e o Projeto Linear são documentos que Eventuais ajustes podem ocorrer na Ba- e compondo a planilha. No final dessa
possuem forte ligação com o FDD, e este seline e devem ser feitos pelo gerente do iteração, tem-se em torno de 95% dos
depende muito das informações dos dois projeto. A RTF é construída avaliando e requisitos já documentados e aprovados
primeiros artefatos, a fim de que seja cor- formalizando toda a iteração, servindo de pelo cliente. Dessa forma, o FDD, o Web
retamente construído. Alguns artefatos aprendizado e preparando os envolvidos Content e o Projeto Linear, estarão tam-
da UML poderão ser desenvolvidos nessa para a próxima fase do projeto. bém, quase completamente elaborados.
fase, com o objetivo de ajudar o cliente a Análise e Projeto: Alguns artefatos da
entender o sistema. Fase Construção - 3ª e 4ª Iteração UML, escolhidos para melhor representar
Implementação: Inicia-se a junção de Neste contexto, a 3ª e 4ª iterações irão as características do sistema, serão fina-
todas as funções e componentes pes- compor toda a fase de construção do pro- lizados durante essas iterações. É válido
quisados no início do projeto, com os jeto. Mais especificamente, a 3ª iteração lembrar que, exatamente nesse momento,
artefatos desenvolvidos até o momento. indica o meio da fase de construção, 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 não só os artefatos como o Eventuais ajustes nos artefatos surgirão não havia escolhido anteriormente para
FDD, Web Content e o Projeto Linear, em razão da implementação. representar alguma parte do sistema.
mas também os possíveis diagramas da Modelo de negócio: As análises de Normalmente, essas escolhas são feitas
UML e, principalmente os requisitos ge- viabilidade e de risco diminuem e ser- devido a alguns requisitos críticos.
rados até o instante. Deve-se ter cuidado vem agora apenas para pequenas tarefas Implementação: Os programadores de-
com padrões, de forma que o código seja realizadas no decorrer do projeto. Dificil- verão possuir um suporte quase completo
construído seguindo o conceito de com- mente, durante essas iterações, tem-se de dos artefatos Web citados anteriormente.
ponentização, para que seja facilmente reconstruir um modelo de casos de uso A maioria dos esforços do projeto são
reutilizado mais tarde. do negócio, a não ser que o cliente solicite voltados agora para implementação e
Teste: Esse fluxo pode apresentar
alterações no plano de teste devido ao
número de requisitos já extraídos. Em
conjunto com a fase de implementação,
são realizados testes de módulos, com
objetivo de verificar o que está sendo
feito. É importante lembrar que estes
testes não irão validar um requisito, mas
apenas verificar se ele foi implementado
corretamente.
Implantação: De forma a verificar se o
que está sendo feito em relação à codifi-
cação irá funcionar do lado do cliente, no
final dessa iteração, tem-se a implantação
do que já foi codificado até o momento.
De acordo com o resultado, algumas fun-
ções poderão exigir um cuidado especial
e serem modificadas. Durante esse fluxo,
poderão surgir alguns requisitos não
funcionais, não encontrados durante a
análise do sistema.
A Figura 7 mostra que o objetivo agora
não é mais entregar o protótipo de inter-
face e sim, finalizar os documentos para
que a equipe de desenvolvimento possa
codificar o sistema de maneira rápida e
correta. As linhas tracejadas, com menos
espaços em relação às linhas da Figura 6,
representam que os artefatos estão quase
completos. Isso ocorre à medida que os Figura 7. Overview da 2ª iteração

Edição 01 – Engenharia de Software Magazine 35


para a gerência das possíveis mudanças (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, descrição e dia- com boas descrições 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 mudança não afete outra fazer parte da gerência de configuração de forma a servir como modelo para
parte do sistema. e mudança. projetos futuros.
Teste: Nesse fluxo, consegue-se enten- As duas RTFs construídas nessa fase Requisitos: Os requisitos nesse fluxo
der os pontos críticos de implementação irão acrescentar muito para a experiência são mínimos. É mais comum encontrar
e elaborar o plano de teste quase que dos desenvolvedores, ensinando-os que, alguns requisitos de engenharia (não
totalmente. Os testes “caixa preta” são sempre existe a possibilidade da altera- funcionais) devido à parte do sistema
muito importantes nestas iterações, pois ção de um requisito. O gerente continua já implantada no cliente. Os artefatos
eles irão verificar a conformidade do sis- a trabalhar atentamente na gerência de devem estar finalizados de acordo com
tema com as exigências do cliente. Testes configuração e mudança, que serve tan- todos os requisitos funcionais e não fun-
de módulos continuam sendo feitos e to para o Baseline quanto para todos os cionais encontrados até o momento.
neste instante os desenvolvedores farão artefatos “vivos” do projeto. Análise e Projeto: Nesse fluxo, tem-se
também os testes de integração. Fase Transição - 5ª Iteração a finalização do FDD, Web Content e
Implantação: À medida que a codifica- Esta é a última iteração do exemplo do Projeto Linear. Os artefatos da UML
ção é finalizada, uma versão executável apresentado neste artigo, integrando o também serão finalizados durante essa
do sistema poderá ser implantada no desenvolvimento Web com o Processo iteração.
ambiente do cliente. A implantação é Unificado. O final dessa iteração marca Implementação: O ideal é que os de-
também uma forma de verificar se o que o término do projeto, bem como a cons- senvolvedores façam ajustes no sistema,
está sendo feito funcionará do lado do trução completa de todos os artefatos. apenas para a adaptação ao ambiente do
cliente. A gerência de configuração e mudança, cliente. Pouquíssimas alterações nos re-
A Figura 8 mostra que os documentos ainda continua trabalhando durante os quisitos funcionais devem ser realizadas
estão 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. modificações no sistema.
espaços em relação à Figura 7) à medida Modelo de negócio: Dificilmente nesta Teste: Nesse fluxo, o documento de
que os requisitos ficam mais consistentes etapa existirão tarefas que exijam análi- plano de teste será finalizado. Testes
de sistemas e de validação podem ser
realizados também pelo cliente. Se ne-
cessário, poderá ocorrer a contratação de
uma empresa terceirizada para realizar
os testes funcionais e não funcionais na
aplicação.
Implantação: A versão executável
final do sistema deverá ser colocada no
ambiente de teste e posteriormente no
ambiente de produção do cliente, me-
diante aprovação do mesmo. É válido
lembrar que, o gerente ou o engenheiro
de software responsável pelo controle
de configuração e mudança, continuará
a realizar o seu trabalho, pois no final
dessa fase, alguns artefatos poderão ser
ajustados.
A Figura 9 mostra que os requisitos
estão completos (cor escura) e consequen-
temente os documentos estão finalizados
(linhas contínuas em torno do Web Con-
tent, Projeto Linear e do FDD). Outros
artefatos, como a descrição e diagramas
de casos de uso, plano de teste, planilha
de requisitos estarão completos no final
dessa iteração.
A RTF indicará os pontos fortes e fracos
do projeto, ocorridos durante essa fase.
Tem-se o backup de todas as versões do
Figura 8. Overview da 3ª e 4ª iteração 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 alteração de funcionalidade envolve o senvolvimento de projetos Web, podem
desenvolvidos nos seus respectivos diretó- desenvolvedor desde o início, que terá ser usados durante a construção de um
rios. Uma boa documentação é importan- uma visão de como essa alteração deverá sistema baseado no Processo Unificado.
te, de forma a facilitar a recuperação dos ser implementada. Com isso, consegue- Além 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 configuração do pro-
Uma das grandes preocupações do ge- cesso a cada projeto mostra um acumulo
rente do projeto é saber exatamente o que Conclusão 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 específicos, utilizados no de- de uma melhoria contínua.
mento dos artefatos quando um requisito
sofre alguma modificação. A planilha de
requisitos e o modelo de casos de uso são
os primeiros artefatos que o gerente terá
de verificar e se necessário, fazer a alte-
ração imediata. É na planilha que estão
todos os requisitos do sistema, bem como
seus respectivos códigos indicadores. O
código 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 códigos de várias áreas
da aplicação. Utilizando os códigos iden-
tificadores de cada área do site, o gerente
deve pesquisar no Web Content, a fim
de saber quais páginas do site sofrerão
alteração. Perceba que não é objetivo do
gerente de projeto efetuar as alterações,
mas identificar o impacto que as solicita-
ções de alteração podem causar.
Caso o projeto sofra uma mudança no
conteúdo, essa identificação será feita
facilmente. Em relação a uma mudança
de funcionalidade, esta deverá impactar
também na alteração 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ª iteração

Edição 01 – Engenharia de Software Magazine 37


Arquitetura de Software
Desenvolvimento orientado para arquitetura

S
oftware, de modo genérico, é uma Arquitetura de software
entidade que se encontra em quase Quase cinco décadas atrás software
constante estado de mudança. As constituía uma insignificante parte
mudanças ocorrem por necessidade de dos sistemas existentes e seu custo de
corrigir erros existentes no software desenvolvimento e manutenção eram
ou de adicionar novos recursos e fun- desprezíveis. Para perceber isso, basta
cionalidades. Igualmente, os sistemas olharmos para a história da indústria do
Antonio Mendes da Silva Filho computacionais (isto é, aqueles que têm software (ver seção 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 também sofrem mudanças frequente- de aplicações tais como sistemas de ma-
da informação e comunicação com mais de 20 mente. Essa necessidade evolutiva do nufatura, software científico, software
anos de experiência profissional, é autor dos
sistema de software o torna ‘não confi- embarcado, robótica e aplicações 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 várias técnicas de
eventos nacionais e internacionais, colunista Concomitante com esses fatos, o cres- modelagem e projeto bem como de lin-
para Ciência e Tecnologia pela Revista Espaço cimento em tamanho e complexidade guagens de programação. Perceba que o
Acadêmico com mais de 60 artigos publicados,
dos sistemas de software exige que os cenário existente, décadas atrás, 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 Elétrica pela Uni- meio de componentes de software. Como alocavam pequena parcela ao software.
versidade de Pernambuco, com Mestrado em resultado, qualquer concepção ou solu- Os componentes de hardware, por outro
Engenharia Elétrica pela Universidade Federal
ção de sistema passa então para o nível lado, eram analisados e testados quase
da Paraíba (Campina Grande), Mestrado em
Engenharia da Computação pela University of arquitetural, onde o foco recai sobre os exaustivamente, o que permitia a pro-
Waterloo e Doutor em Ciência da Computação componentes e relacionamentos entre dução rápida 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- computação. 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. Questões arquitetura ‘clássica’ (relativa à constru-
para seu uso. Além disso, a intensificação arquiteturais englobam organização e ção de edificações), podemos observar
do uso do software numa larga variedade estrutura geral de controle, protocolos de que o projeto arquitetural é determinante
de aplicações o fez crescer em tamanho comunicação, sincronização, alocação de para o sucesso do sistema.
e complexidade. Isto tornou proibitivo funcionalidade a componentes e seleção A Tabela 2 destaca aspectos da re-
analisá-lo e testá-lo exaustivamente, além de alternativas de projeto. Por exemplo, presentação de projeto que captura
de impactar no custo de manutenção. nos sistemas Web, uma solução que tem elementos característicos da arquite-
Um reflexo dessa situação é que as téc- sido empregada faz uso de múltiplas tura enquanto que as restrições estão
nicas de abstração utilizadas até o final camadas separando componentes clien- associadas a atributos de qualidade e,
da década de 1980 (como decomposição te, servidores de aplicações, servidores portanto, servem como determinantes
modular, linguagens de programação de Web e outras aplicações (que possam ter nas decisões do projeto arquitetural.
alto nível e tipos de dados abstratos) já acesso a esse sistema). Essa estruturação Por exemplo, embora o uso de múltiplas
não são mais suficientes para lidar com em camadas objetiva facilitar a alocação camadas facilite a manutenção de um
essa necessidade. da funcionalidade aos componentes. O sistema de software, também contribui
Diferentemente do uso de técnicas 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 tática tem sido reduzir o nível de
dados e das linguagens de programação facilidade de manutenção. Outro aspecto acoplamento entre componentes para não
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 padrões visando faci- Dessa forma, se adotarmos uma redução
da notações para conectar componentes litar reuso e manutenção. Interfaces bem no nível de acoplamento dos compo-
(módulos) e descrever mecanismos de definidas encapsulam componentes (com nentes, eles terão menor necessidade de
interação, além de técnicas para geren- funcionalidades definidas) já testados, comunicação entre si, o que resulta num
ciar configurações e controlar versões. prática que permite o reuso e também melhor desempenho.
A Tabela 1 apresenta o contexto da ar- auxilia na manutenção, já que toda e Hoje em dia, os processos de engenharia
quitetura de software. Na programação qualquer alteração necessária estaria de software requerem o projeto arquite-
estruturada, é feito uso de estruturas de confinada àquele componente. tural de software. Por quê?
seqüência, decisões e repetições como • É importante poder reconhecer as
‘padrões’ de controle nos programas. Já Importância da Arquitetura de estruturas comuns existentes de modo
a ocultação de informações é 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 nível arquitetural e estão de arquiteto de software – conforme
ocultar dados tornando-os seguros de diretamente relacionados com a orga- Tabela 3) possam entender as relações
qualquer alteração acidental. Além disso, nização do sistema e, portanto, afetam existentes nos sistemas em uso e utilizar
na programação orientada a objetos, da- os atributos de qualidade (também esse conhecimento no desenvolvimento
dos e funções podem ser ‘encapsulados’ chamados de requisitos não 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 decisões
na manutenção de programas. Por outro tros. Se fizermos uma comparação entre sobre alternativas de projeto.
lado, os estilos arquiteturais capturam o
‘padrão’ de organização dos componen-
tes de software num programa, caracte- Abordagem Foco Padrões
rizando a forma na qual os componentes Programação estruturada Sistemas de pequeno porte Estruturas de controle
comunicam-se entre si.
Encapsulamento e ocultação de
Perceba que a categorização, apresenta- Abstração e modularização Sistemas de médio porte
informações
da na Tabela 1, teve o objetivo de capturar
uma visão 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 programação estru-
turada em sistemas de grande porte ou Categorias arquiteturais Representações de projeto Restrições
da ênfase de um estilo arquitetural num
sistema de pequeno porte. Entretanto, Modelos, desenhos, planos, elevações e Padrão de circulação, acústica, iluminação e
Arquitetura Clássica
essa prática não é comum. perspectivas ventilação
Note que à medida que tamanho e com-
Desempenho, confiabilidade, escalonamento e
plexidade dos sistemas de software au- Arquitetura de Software Modelos para diferentes papéis, múltiplas visões
manutenibilidade
mentam, o problema de projeto extrapola
as estruturas de dados e algoritmos de Tabela 2. Comparação de aspectos arquiteturais.

Edição 01 – Engenharia de Software Magazine 39


• Uma especificação arquitetural é implementações, 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 visão organização 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 notações para des- dade apresentada por ele. Por exemplo, a software, e requisitos não funcionais (ou
crever arquiteturas permite engenheiros adoção de uma arquitetura em camadas atributos de qualidade) que determinam
comunicarem novos projetos e decisões serve para modularizar o sistema bem as características visíveis ao usuário
arquiteturais tomadas a outros membros como facilitar modificações. Entretanto, como desempenho e confiabilidade.
da equipe. um número elevado de camadas (4 ou 5)
pode degradar o desempenho do sistema Uma questão 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?
sário ao engenheiro de software conhecer Diversos benefícios decorrem da in- A resposta é simples: economia e reuso.
os estilos arquiteturais existentes, confor- corporação da arquitetura de software Anteriormente não havia forte ênfase
me apresentado adiante. As propriedades como ‘elemento norteador’ do processo na disciplina de engenharia de software,
de cada arquitetura, portanto, são 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 déca-
exemplo, o uso de uma notação padrão • Prover suporte ao reuso – seus com- da de 1990. Tudo motivou o surgimento
como a UML ajuda na representação de ponentes definidos e testados podem ser de um novo profissional: o arquiteto de
componentes e compartilhamento de reaproveitados em novas aplicações. software.
informações do projeto. • Servir de base à estimação de custos
Esses aspectos servem como indica- e gerência do projeto – a existência 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 soluções tarefas de, por exemplo, implementação tem um papel de suma importância
existentes no desenvolvimento de novos de componentes e melhor estimar o tem- para estratégia adotada pela empresa.
sistemas. Para tanto, a prototipagem tem po e tamanho de equipe necessária para Ele precisa ter profundo conhecimento
sido usada em projetos de natureza ino- realização de um projeto. do domínio, das tecnologias existentes
vadora (bem antes da implementação ou • Servir de base para análise da con- e de processos de desenvolvimento de
aceitação de um produto acontecer). sistência e dependência – o arquiteto de software. Uma síntese de um conjunto
Além 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 atribuídas
sistemas dificulta cada vez mais atender de qualidade desejados de modo consis- a ele são apresentados na Tabela 3. Note
às restrições de orçamento e cronograma. tente e avaliar o nível de dependência que a prototipagem é uma tarefa comum
Atualmente, empresas têm procurado in- dos atributos de qualidade em relação à onde o arquiteto desenvolve um protóti-
corporar estratégia de reuso de software, arquitetura. Para tanto, ele faz a análise po para ‘testar’ uma possível solução. Já
enfatizando o reuso centrado na arquite- arquitetural que verifica o suporte ofere- a simulação 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 através da qual se tem o • Ser utilizada para determinar atribu- experimentação 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 análise arquitetural a nente recém 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 atribuídas
sistema, possibilitando a:
Conhecimento do domínio e tecnologias relevantes Modelagem • Identificação de componentes – o
arquiteto identifica quais os principais
Conhecimento de questões técnicas para desenvolvimento de sistemas Análise de compromisso e de viabilidade
elementos que tem funcionalidades bem
Conhecimento de técnicas de levantamento de requisitos, e de métodos de modelagem e
Prototipagem, simulação e experimentação definidas como, um componente de ca-
desenvolvimento de sistemas dastro de (informações de) usuários e um
Conhecimento das estratégias de negócios da empresa Análise de tendências tecnológicas componente de autenticação de usuário
numa aplicação Web.
Conhecimento de processos, estratégias e produtos de empresas concorrentes ‘Evangelizador’ de novos arquitetos
• Identificação de mecanismos de inte-
Tabela 3. Habilidades e tarefas de um arquiteto de software. ração – a comunicação entre objetos por

40 Engenharia de Software Magazine – Arquitetura de Software


proj eto

meio da troca de mensagens constitui tilo (isto é a classe de organização do sis- de todos os usuários que se encontram
uma forma através da qual os componen- tema) terá sobre atributos de qualidade. conectados (a um servidor específico)
tes de software interagem entre si. Adicionalmente, facilita a comunicação naquele momento, enquanto que o pro-
• Identificação de propriedades – o do projeto, além do reuso da arquitetura grama sort ordena essa lista de usuários
arquiteto pode analisar as propriedades (da solução). em ordem alfabética (de login).
oferecidas por cada estilo baseado na or- A caracterização e existência de estilos Outro exemplo compreende a arqui-
ganização dos componentes e nos meca- arquiteturais constituem sinais de ama- tetura básica de um compilador como
nismos de interação, 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 compilação é reali-
ganizar e expressar o conhecimento de zada separadamente por um componente
O estilo arquitetural considera o sistema um projeto de modo sistemático 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 vocabulário de Um compilador tem duas funções bási-
como o sistema está organizado, ca- um conjunto de conceitos (terminologia, cas: análise e síntese. A função de análise
racterizando os componentes e suas propriedades, restrições), estruturas é implementada por três componentes:
interações. Em outras palavras, ele (componentes e conectores) e padrões analisadores léxico, sintático e semân-
determina uma estrutura para todos de uso existentes. Conectores são empre- tico. Já a função de síntese compreende
os componentes do sistema. O estilo gados na interação entre componentes os componentes de otimização e geração
arquitetural compreende o vocabulário como, tubo (pipe) no estilo tubos e filtros, de código. Observe que essa arquitetura
de componentes e conectores, além 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 introdução de um componente ge-
estilo arquitetural é importante? (tubos) e filtros rador intermediário de código, conforme
Os sistemas de grande porte exigem O estilo arquitetural de tubos e filtros ilustrado na Figura 3, a fim de tornar a
níveis de abstração mais elevados (justa- considera a existência de uma rede arquitetura do compilador ‘mais portá-
mente onde se têm os estilos) que servem através da qual dados fluem de uma vel’ a várias plataformas com o objetivo
de apoio à compreensão do projeto e extremidade à outra. O fluxo de dados de reduzir custos no desenvolvimento de
comunicação entre os participantes do se dá através tubos e os dados sofrem diferentes produtos, ou seja, compilado-
projeto. Ele é determinante no entendi- transformações quando são processados res para diferentes plataformas.
mento da organização de um sistema de nos filtros. Uma nova evolução 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 integração (do compilador) com
arquitetural? Ele oferece: uma espécie 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 não funcionais); plo mais comumente conhecido do estilo trada na Figura 4.
• Diferenciação entre arquiteturas; tubos e filtros é aquele usado no sistema É importante salientar que a evolução
• Menos esforço 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 saída ao programa sort, conforme vantagens:
ao engenheiro antecipar, por meio da ilustrado na Figura 1. O resultado da • Problema ou sistema pode ser decom-
análise (arquitetural), o impacto que o es- execução do programa who é uma lista posto de forma hierárquica;

Figura 1. Exemplo do estilo arquitetural de tubos e filtros

Edição 01 – Engenharia de Software Magazine 41


Figura 2. Arquitetura básica de um compilador (seguindo estilo arquitetural de tubos e filtros)

Figura 3. Evolução inicial da arquitetura de um compilador.

Figura 4. Nova evolução da arquitetura de um compilador.

42 Engenharia de Software Magazine – Arquitetura de Software


proj eto

• Função do sistema é vista como com- por meio da passagem de mensagens, a interface define os eventos de entrada
posição de filtros; invocação implícita requer que compo- e saída permitidos. Conectores são
• Facilidade de reuso, manutenção nentes interessados em receber ou divul- implementados através do ‘binding’
e extensão, 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- são registrados junto com eventos e os
funcionalidade e interface bem definida, gando mensagens são listas de notícias componentes interagem entre si atra-
facilitando alterações nos mesmos; e fórum que possuem componentes de vés do envio de eventos. Dessa forma,
• Desempenho pode ser incrementado registro de novos usuários acoplados quando um evento é recebido, o(s)
através do processamento paralelo de ao componente de autenticação. Perceba procedimento(s) associado(s) a este even-
filtros, já que a ativação e uso do com- que esse tipo de sistema apenas permite to é(são) invocado(s). Um interessante
ponente ocorre com o fluxo de dados, que o usuário tenha acesso ao conteúdo exemplo deste estilo são jogos online,
permit i ndo que componentes com se este for devidamente autenticado e como discutido na seção seguinte.
funcionalidades independentes sejam registrado. • Quadro negro (ou Blackboard) – esse
executados de forma concorrente. • (Sistemas orientados a) Eventos – trata- estilo faz uso de um repositório 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 células) de informações.
o estilo de tubos e filtros coloca ênfase no
modo ‘batch’, tornando difícil seu uso em
aplicações interativas e em situações que
exija ordenação de filtros. Outra questão
técnica a ser observada é a possibilidade
de haver deadlock com o uso de buffers
finitos (para armazenamento temporário
de dados). Esse estilo arquitetural tem
sido empregado em razão 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 identificação
do nível de abstração nem sempre é evi-
dente e perde-se desempenho à medida
que o número de camadas cresce. Exem-
plo desse estilo compreende os sistemas Figura 5. Combinação de estilos.
Web de múltiplas camadas que separa
cliente, servidores de aplicação, servido-
res Web e outros clientes Web.
• Objetos – essa arquitetura combina
dados com funções numa única entidade
(objeto), facilitando a decomposição do
problema, manutenção e reuso. É comum
utilizar a arquitetura orientada a objetos
em sistemas de informação como siste-
mas de consulta e empréstimos online de
bibliotecas de instituições de ensino que
dispõem de componentes de cadastro de
usuários e componentes de autenticação
de usuários. Note que componentes
similares existem em outros sistemas de
informações, tais como sites de conteúdos
(jornais e revistas) que exigem cadastro
e autenticação de qualquer usuário antes
de disponibilizar o conteúdo.
• Invocação implícita – diferentemente do
estilo baseado em objetos, no qual um
componente invoca outro diretamente Figura 6. Jogo Connect4.

Edição 01 – Engenharia de Software Magazine 43


Esses componentes contêm informações Um exemplo desse tipo de jogo de com- ções feitas através do mouse e invoca um
necessárias à solução de problemas. Os putador é o Connect4 que tem como método que checa se houve vitória, derro-
dados da solução de problemas são man- meta para cada jogador conectar quatro ta ou empate, além de fazer a atualização
tidos na base de dados compartilhada peças da mesma cor, verticalmente, ho- da interface gráfica. Um possível estado
(o repositório), 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 peça na onde na terceira linha há um conjunto
desse estilo é um sistema especialista. parte superior da coluna selecionada e de quatro peças na cor azul, indicando
• Combinação de estilos – Outros esta cai até preencher a lacuna inferior da que o computador completou primeiro a
sistemas, na prática, combinam estilos coluna (selecionada), conforme ilustrado conexão de quatro peças na mesma cor (a
arquiteturais resultando numa heteroge- na Figura 6. Note que o quadro contém 7 cor do usuário humano é vermelha).
neidade, como ilustrado na Figura 5, que colunas e 6 linhas, um indicador de status A combinação 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 decomposição de um sistema em termos
Exemplificando o estilo combinado peça será depositada). de objetos (componentes de inferência,
de objetos e eventos A arquitetura de software dessa aplica- componente de interface gráfica e com-
Jogos online e de computador têm ção é apresentada na Figura 7. O compo- ponente jogador computacional) que são
se tornado comuns atualmente com a nente jogador computacional (que dispõe mais independentes além de possibilitar
popularidade da Internet. Costuma-se de recursos de inteligência artificial para que atividades de computação e coor-
categorizar os jogos em: simular um jogador humano) contém denação (de eventos) sejam realizadas
• Baseados na vez – são jogos nos quais uma classe Connect4State que trata a separadamente. Há ainda a facilidade de
cada ação é baseada na vez do jogador maioria das requisições para verificar se reuso e manutenção, já que novos objetos
como jogo da velha e xadrez. algum jogador venceu o jogo, e também podem ser facilmente adicionados. Essa
• Baseados em eventos – são jogos onde dispõe de mecanismo para atualizar o es- característica, e interfaces bem definidas,
eventos podem ocorrer em qualquer tado do jogo após uma jogada do jogador facilitam ainda a integração.
instante e estes ditam o ritmo do jogo. computacional. O mecanismo de invocação é não
Exemplos compreendem simuladores de O componente (máquina) de inferência determinístico (isto é, ocorre de forma
vôo e corridas de carro. contém uma classe para tratar as jogadas aleatória) uma vez que considera a re-
feitas pelos jogadores bem como deter- cepção de eventos. Adicionalmente, os
Por exemplo, quando os jogos são dis- minar a melhor jogada para o jogador componentes têm seus dados preserva-
ponibilizados na Internet, costuma-se computacional. dos de qualquer modificação acidental
denominá-los de jogos online ou jogos O componente de interface de usuário já que essas informações são encapsu-
para Internet, possibilitando ao usuário contém uma classe que carrega os arqui- ladas em objetos, facilitando também a
jogar contra a máquina (computador). vos de imagem e áudio, trata as requisi- integração.

Figura 7. Arquitetura do Connect4

44 Engenharia de Software Magazine – Arquitetura de Software


proj eto

Importância do Reuso a arquitetura de software como premissa. Links


É importante perceber de tudo o que foi Assim, o fator econômico tem sido e será História da Indústria de Software
apresentado e discutido que um modelo o determinante da sobrevivência da em- www.softwarehistory.org
arquitetural oferece suporte ao reuso de presas de software. Novas estratégias de An introduction to software architecture
várias 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 reusáveis que forneçam a para o reuso e com reuso (de componentes
SEI’s Software Architecture Technology Initiative
organização e o modelo de coordenação, de software) e o pilar principal dessas www.sei.cmu.edu/architecture/sat_init.html
permitindo seu uso em diversos siste- estratégias é a arquitetura de software. Worldwide Institute of Software Architects
mas. Além disso, podem-se reutilizar Há, portanto, uma necessidade premente www.wwisa.org/wwisamain/index.htm
componentes, já testados, em mais de um de formação de capital humano com tais The Software Architecture Portal
sistema. Disso tudo, o mais importante qualificações. http://www.softwarearchitectureportal.org/

é o reuso do conhecimento que tem im-


pacto direto na definição da arquitetura
de software candidata à solução de um
Características de arquitetura de software Uso prático 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 reutilizável
utilitários, juntamente com a pressão código de um sistema
do mercado para reduzir o tempo de
Dispõe de mecanismos de interconexão 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 vocabulário 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 código baseada
O reuso de artefatos (ou componentes) Vincula o projeto a atributos de qualidade
em métricas de produto
é possível quando o projeto arquitetural
está incorporado e orienta o processo de Suporta o desenvolvimento baseado em componentes e
Como usar arquitetura como parâmetro para reduzir custos de
desenvolvimento de software. Isto, como linha de produto (quando os requisitos são considerados
manutenção e amortizar custos de desenvolvimento
discutido, permite antever os atributos para uma família de sistemas)
de qualidade que o sistema suporta e
Tabela 4. Características e uso prático da arquitetura de software
também administrar o cronograma de
execução do projeto. Portanto, impac-
tando positivamente o reuso e economia
do sistema.
O quadro apresentado na Tabela 4
sumariza as principais características
da arquitetura de software e pontos im-
portantes na capacitação e reciclagem de
engenheiros e arquitetos de software.

Conclusão
Embora arquitetura de software seja
um tema relevante no contexto atual para
desenvolvimento de sistemas de software
que têm seu foco no reuso e, portanto,
consideram tanto o aspecto econômico
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 médio porte. Entretanto, esse cenário
começa a mudar dada a crescente necessi-
dade de integração de sistemas a qual tem

Figura 8. Possível estado final do jogo Connect4

Edição 01 – Engenharia de Software Magazine 45


Introdução à Engenharia de Requisitos

D
esenvolver software é uma ati- desenvolvimento. Uma recente matéria
vidade complexa por natureza. publicada na revista Exame relata o
Uma das razões para esta afir- crescimento do número de empresas que
mação é que não existe uma única solução atingiram níveis de maturidade conside-
para cada cenário de desenvolvimento. rando modelos como MPS.BR e CMMI.
Além 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 estão se pre-
analuizaavila@yahoo.com.br bastante relacionado à competência da ocupando com a qualidade dos serviços
É bacharel em Ciências da Computação pela equipe e à forma como trabalham, e, para que oferecem, conseguindo, dessa forma,
Universidade Salvador (UNIFACS) e Mestre dificultar ainda mais, muitas vezes não uma inserção maior no mercado interna-
em Ciências da Computação 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 introdução
Rodrigo Oliveira Spínola 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.
Computação (COPPE/UFRJ). Mestre em En- ponsáveis por execução, ferramentas de
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Ciências da Computação (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 alcançar o objetivo: desenvolver sof- Vimos na introdução 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 notícia é que muitas empresas to de sistemas. Entendemos engenharia
para implementação do MPS.BR. Atua como
Gerente de Projeto em projetos de consulto- estão 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 aplicação de uma abordagem
nharia de Software Magazine. sos para apoiarem suas atividades de sistemática, disciplinada e quantificável

46 Engenharia de Software Magazine – Introdução à Engenharia de Requisitos


requisi tos

no desenvolvimento, operação e ma- mite concluir que é importante que seja dos principais fatores estão relacionados
nutenção de software. Sistemática por dada maior importância às atividades às atividades de requisitos: (1) Requisitos
que parte do princípio de que existe um relacionadas à especificação dos requi- Incompletos; (2) Falta de Envolvimento
processo de desenvolvimento definindo sitos do software. do Usuário; (6) Mudança de Requisitos e
as atividades que deverão ser executadas. Reforçando a importância que as ativi- Especificações.
Disciplinada por que parte do princípio dades relacionadas a requisitos devem Neste ponto, sabemos que um trabalho
de que os processos definidos serão possuir na indústria de software, estudo mais criterioso na área de requisitos é
seguidos. Quantificável 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 próxima seção
extraídas do processo durante o desen- de software, em 1995 revelou que (ver conheceremos a definição de requisitos e
volvimento de forma que as tomadas de Figura 1): algumas de suas definições relacionadas
decisão relacionadas ao desenvolvimento • 16,2% dos projetos são 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 não em “achismos”. Alguns de previsto; Fatores Críticos %
seus principais objetivos são: • 52.7% dos projetos são considerados
• Qualidade de software; problemáticos, ou seja, não cobre todas 1. Requisitos Incompletos 13.1%
• Produtividade no desenvolvimento, as funcionalidades exigidas, custo au- 2. Falta de Envolvimento do Usuário 12.4%
operação e manutenção 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 níveis vimento.
5. Falta de Apoio Executivo 9,3%
de qualidade desejados.
O Standish Group ainda fez uma aná- 6. Mudança de Requisitos e Especificações 8,7%
Entretanto, o cenário de desenvolvimen- lise sobre os fatores críticos para sucesso 7. Falta de Planejamento 8,1%
to de software atual e o cenário idealiza- dos projetos de software. O resultado
8. Sistema não mais necessário 7,5%
do junto à engenharia de software ainda dos dez mais lembrados pode ser visto
estão distantes. Vários fatores contribuem na Tabela 2. Podemos perceber que três Tabela 2. Fatores críticos do sucesso.
para isso, podemos citar dois:
• O não 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 conseqüências. Gosta-


ríamos de destacar neste artigo o crescen-
te custo com manutenção dos sistemas.
Consideramos como manutenção neste
Tabela 1. Cenário atual de desenvolvimento.
artigo como sendo qualquer retrabalho
(em nível de requisitos, projeto, codifica-
ção, teste) causado por uma definição do
domínio 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 à análise
de requisitos é baixo. Por outro lado, é
nesta fase que grande parte dos defeitos
são inseridos. Podemos perceber ainda
analisando a primeira linha que o custo
de correção destes problemas nesta fase
é baixo. Continuando a análise, percebe-
mos que estes defeitos não são tratados no
momento devido, o que pode aumentar
bastante o custo com o projeto.
Embora simples, esta análise nos per- Figura 1. Distribuição da conclusão dos projetos de software.

Edição 01 – Engenharia de Software Magazine 47


Requisitos no qual o cliente faz parte. É importante Alguns exemplos são:
Existem diferentes definições encontra- estar atento para esta definição: embora • O software deve permitir o cadastro
das na literatura técnica para requisitos: o requisito seja definido pelo cliente, de clientes;
• Um requisito é uma característica nem sempre o que o cliente quer é o • O software deve permitir a geração de
do sistema ou a descrição de algo que o que o negócio precisa. Cabe à equipe de relatórios sobre o desempenho de vendas
sistema é capaz de realizar para atingir consultores identificar a real necessidade no semestre;
os seus objetivos; do negócio. • O software deve permitir o pagamento
• As descrições das funções e restrições Neste contexto, requisitos são impor- das compras através de cartão de crédito.
são os requisitos do sistema; tantes para:
• Um requisito é uma propriedade que o • Estabelecer uma base de concordância Requisitos não funcionais
software deve exibir para resolver algum entre o cliente e o fornecedor sobre o que São requisitos que expressam condi-
problema no mundo real; o software fará; ções que o software deve atender ou
• Uma condição ou uma capacidade que • Fornecer uma referência para a vali- qualidades específicas que o software
deve ser alcançada ou estar presente em dação 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 não-funcionais
padrão, especificação ou outro documen- (como vimos anteriormente, requisitos colocam restrições no sistema. Alguns
to formalmente imposto... mal definidos causam retrabalho). exemplos são:
• O software deve ser compatível com
Percebe-se que as citações encontradas Entendida a definição de requisitos, é os browsers IE (versão 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 não seja maior
necessidades explicitadas pelo cliente que São requisitos diretamente ligados a do que 5 segundos.
deverão ser atendidas para solucionar funcionalidade do software, descrevem
um determinado problema do negócio as funções que o software deve executar. Requisitos de domínio
São requisitos derivados do domínio
da aplicação e descrevem características
do sistema e qualidades que refletem o
domínio. Podem ser requisitos funcionais
novos, restrições sobre requisitos exis-
tentes ou computações específicas. Dois
exemplos de requisitos do domínio são:
• O calculo da média final de cada aluno
é dado pela fórmula: (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 próxima seção apresentare-


mos os conceitos envolvidos na engenha-
ria de requisitos.
Figura 2. Engenharia de Requisitos.
Engenharia de Requisitos
Existem diferentes definições encontra-
das na literatura técnica para engenharia
de requisitos:
• Termo usado para descrever as ati-
vidades relacionadas à investigação e
definição de escopo de um sistema de
software;
• Processo sistemático de desenvol-
vimento de requisitos através de um
processo cooperativo de análise onde os
resultados das observações são codifi-
cados em uma variedade de formatos e
Figura 3. Produção e Gerência de Requisitos. a acurácia das observações é constante-

48 Engenharia de Software Magazine – Introdução à 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 funções e restrições atividades de produção dos requisitos.
do sistema. Apesar do aparente fluxo entre as ativi-
dades, não existe uma fronteira explícita
Embora coerentes, estas definições elas. Na prática existe muita sobreposição
podem ser melhoradas. Perceba que elas e interação entre uma atividade e outra.
referem-se apenas às atividades relacio- Como entradas para o processo são
nadas à produção de requisitos. Entre- consideradas:
tanto, nada é dito a respeito da gerência • Descrições do que os stakeholders ne-
destas atividades, também conhecida cessitam para suportar suas atividades;
como gerência de requisitos. Com isto • Informações a respeito do sistema que
em mente, podemos evoluir a definição será substituído 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 à produção (levantamento, re- • Padrões vigentes na organização a Figura 4. Processo de Engenharia de Requisitos.
gistro, validação e verificação) e gerência respeito de práticas de desenvolvimento
(controle de mudanças, gerência de con- de sistemas, gerência de qualidade, etc.;
figuração, rastreabilidade, gerência de • Regulamentos externos, tais como leis,
qualidade dos requisitos) de requisitos. A regulamentos de segurança ou saúde; especificação, atividades relacionadas à
Figura 2 representa essa definição. • Informações gerais sobre o domínio garantia da qualidade. Conheceremos
Desta forma, os dois conceitos base (pro- de aplicação. nesta seção as quatro atividades base
dução e gerência) devem ser considerados relacionadas com a produção de requi-
em conjunto ao se definir estratégias de Em paralelo à execução das atividades sitos.
trabalho com requisitos nas organizações definidas no processo da Figura 5, está o
(ver Figura 3). processo de gerência dos requisitos, vol-
Neste ponto podemos citar alguns dos tado ao endereçamento de modificações Levantamento
principais objetivos da engenharia de nos requisitos. Os aspectos relacionados Esta atividade relaciona-se à obtenção
requisitos: às atividades de gerência podem ser vis- dos requisitos do software. Para isto,
• estabelecer uma visão comum entre o tos na Figura 3. analistas e engenheiros de software
cliente e a equipe de projeto em relação A partir de agora conheceremos cada trabalham com clientes e usuários finais
aos requisitos que serão 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 serviços do sistema, o desempenho ne-
• registrar e acompanhar requisitos ao cessário, restrições de hardware e outras
longo de todo o processo de desenvolvi- Produção de Requisitos informações.
mento; A cada fase do ciclo de vida do software Existem algumas técnicas que apóiam
• documentar e controlar os requisitos produzimos um documento contendo as atividades de levantamento de requi-
alocados para estabelecer uma baseline uma representação distinta do softwa- sitos. Uma breve descrição de algumas
para uso gerencial e da engenharia de re a ser construído. Cada um desses delas é:
software; documentos representa o software em • Entrevista: esta técnica resume-se
• manter planos, artefatos e atividades um determinado nível de abstração. em “conversas” realizadas com o usuário
de software consistentes com os requisi- A tendência é diminuirmos o nível de (entrevistado) para levantar os requisitos
tos alocados. abstração através da inclusão de mais e do sistema a ser desenvolvido. Podemos
mais detalhes, até que, sua última repre- decompor esta técnica nas seguintes
Para apoiar o alcance destes objetivos, sentação seja o código 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 início 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 especificação 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 questões e a sua
quisitos. Poucas organizações têm um fundamental para o sucesso do projeto. estrutura.
processo de ER explicitamente definido Uma especificação de requisitos bem ela-
e padronizado. Entretanto, sugere-se que borada é pré-requisito para um software Uma entrevista pode ser estruturada de
cada organização deva desenvolver um de qualidade, embora não seja garantia três diferentes formas:
processo adequado à sua realidade. A Fi- disso. Desta forma, durante a produção o Estrutura em pirâmide: iniciamos
gura 4 apresenta um modelo genérico de de requisitos devemos possuir, além das as entrevistas com perguntas mais
atividades que pode descrever a maioria atividades essenciais de levantamento e especificas sobre o sistema e fecha-

Edição 01 – Engenharia de Software Magazine 49


mos com perguntas mais genéricas. volve atividades de preparação para as de requisitos pelos desenvolvedores
Geralmente utilizadas com usuários reuniões, sessões de workshop com os o Desenvolvedor não ouve o que os
mais relutantes; participantes, agenda para as reuniões, usuários têm a dizer e força suas pró-
o Estrutura em funil: iniciamos as en- participantes assumindo papeis de faci- prias visões e interpretações.
trevistas com perguntas mais genéricas litador / condutor e documentador além • Comunicação inadequada entre os
sobre o sistema e fechamos com per- de facilidades visuais, como a utilização desenvolvedores e usuários
guntas mais especificas. Geralmente de flipchart, quadro negro. o Usuários incapazes de expressar
utilizadas com usuários que tem uma Esta técnica deve ser utilizada nos casos suas necessidades apropriadamente;
relação mais afetiva com o assunto; onde existe a necessidade de consenso o Significados diferentes a termos
o Estrutura em diamante: esta es- entre diversos usuários, pois possibilita comuns.
trutura combina as duas estruturas a todos os envolvidos ter uma visão glo- • Dificuldade do usuário tomar deci-
anteriores e é utilizadas para manter bal do sistema, ajudando a consolidar sões
a usuário entrevistado interessado no interesses de diversos usuários quanto o Falta de entendimento sobre as
assunto e para isto se utiliza de per- ao sistema a ser desenvolvido. conseqüências das decisões ou as al-
guntas variadas. O objetivo desta técnica é aumentar ternativas possíveis.
o comprometimento e participação do • Problemas de comportamento
• Prototipação: é uma versão inicial de usuário e obter subsídios para elaborar o o O levantamento de requisitos é um
um sistema para experimentação. Permi- documento de Especificação de Requisi- processo social;
te aos utilizadores identificar os pontos tos para o sistema com consenso de todos o Conflitos e ambigüidades nos pa-
fortes e fracos do sistema por ser algo de forma a ser uma validação formal dos péis que os usuários e desenvolvedores
concreto que pode ser criticado. Temos requisitos do sistema. desempenham.
dois tipos de protótipos: O JAD é divido quem quatro fases. A Fi- • Questões técnicas
o Protótipos “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 difíceis de perceber; sitos não é trivial. Existe um conjunto Registro
o Protótipos Evolutivos: ajudam o grande e variado de fatores que a tornam Uma vez identificados e negociados, os
desenvolvimento rápido de uma versão complexa, por exemplo: requisitos devem ser documentados para
inicial do sistema e suportam os requi- • Falta de conhecimento do usuário das que possam servir de base para o restante
sitos bem definidos e conhecidos. suas reais necessidades do processo de desenvolvimento.
o Usuário com vaga noção do que Entre os muitos problemas que enfren-
Algumas das desvantagens da prototi- precisa e do que um produto de sof- tamos na documentação de requisitos,
pação são os custos de aprendizagem e tware pode oferecer. certamente, administrar o grande volume
os custos de desenvolvimento. • Falta de conhecimento do desenvolve- de informações gerado pelo processo de
• JAD (Joint Application Development): dor do domínio do problema requisitos é um dos principais.
é uma técnica que permite a interação o Desenvolvedor sem conhecimento Os requisitos são documentados em um
entre pessoas que necessitam tomar adequado do domínio, o que leva a nível apropriado de detalhe. Em geral é
decisões que afetem múltiplas áreas decisões erradas. produzido um documento de especifica-
de uma organização. Esta técnica en- • Domínio do processo de levantamento ção de requisitos, de forma que todos os
stakeholders possam entendê-lo.
O registro dos requisitos num documen-
to próprio facilita o controle de alterações
de todos os envolvidos na manutenção
dos requisitos, bem como a geração de
versões do documento e a facilidade de
acesso por todos os envolvidos.

Verificação
Esta atividade examina a especificação
do software, de forma a assegurar que
todos os requisitos foram definidos sem
ambigüidades, inconsistências ou omis-
sões, detectando e corrigindo possíveis
problemas ainda durante a fase de defi-
nição dos requisitos.
Neste contexto, sabe-se que o custo da
correção 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 – Introdução à Engenharia de Requisitos


requisi tos

progride. Revisões de artefatos de sof- aparentemente simples, esta atividade faz com que as economias de curto prazo
tware têm 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 validação longo prazo, verificadas com superação de
defeitos logo após 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. Não é Gerência de Requisitos atividades que devem ser consideradas
em vão que modelos de maturidade de Requisitos são por natureza voláteis. durante a gerência dos requisitos.
processo de software, como o CMMI e o Diversos fatores contribuem para sua
MPS BR exigem a condução de revisões. instabilidade ao longo do tempo. Mudan- Controle de Mudanças
Um tipo particular de revisão de softwa- ças externas no ambiente (mudanças de Conforme foi citado anteriormente, os
re são as inspeções. Inspeções possuem legislação, mudanças no mercado, mu- requisitos são voláteis e, portanto sofrem
um processo de detecção de defeitos dança no posicionamento estratégico da mudanças ao logo do tempo, para condu-
rigoroso e bem definido. Os benefícios empresa), erros incorridos no processo de zir estas mudanças recomenda-se pre-
de se aplicar inspeções são maiores para requisitos, entre outros. Todos esses fato- paro e planejamento. Uma das maneiras
artefatos desenvolvidos no início do pro- res fazem com que seja necessário alterar bastante utilizadas para organizar estas
cesso, como o documento de requisitos. os requisitos. Tais alterações precisam ser mudanças é a “baseline” de requisitos
Conheceremos um pouco mais sobre conduzidas de forma ordenada para que que nos permite diferenciar o que era o
inspeção de software em um segundo não se perca controle sobre o prazo e o requisito original, o que foi introduzido
artigo a ser publicado na segunda edição custo do desenvolvimento. e o que foi descartado. Além 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 mudanças, bem como utilizar
Validação gerenciamento de requisitos. Os bene- um sistema para este controle.
A validação representa a atividade fícios desta atividade são percebidos no Apresentamos a seguir uma sugestão
em que obtemos o aceite do cliente sob médio prazo, sendo que são necessários de passos que devem ser seguidos para
determinado artefato. No cenário de investimentos no curto prazo. Assim, a um processo de controle de mudança:
engenharia de requisitos, esta atividade atividade é, muitas vezes, tida como um • Checar validade da solicitação de
significa aprovar junto ao cliente os re- fardo desnecessário à condução do pro- mudança;
quisitos que foram especificados. Embora cesso. Contudo, sua não implementação • Identificar os requisitos diretamente

Edição 01 – Engenharia de Software Magazine 51


afetados com a mudança; • possibilitando ter um controle siste- reais do usuário devem coincidir com
• Identificar dependências entre requi- mático sobre todos os itens de configu- os requisitos identificados. Esta não é
sitos para buscar os requisitos afetados ração 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 mudança • tornando possível que sejam realiza- validação dos requisitos.
a ser realizada; das, mais facilmente, avaliações sobre seu • Não ambigüidade: um conjunto de
• Estimar custos da mudança; grau de evolução. requisitos é não ambíguo quando so-
• Obter acordo com usuário sobre o mente pode ser interpretado por todos
custo da mudança. Rastreabilidade os envolvidos em um projeto de uma
No centro da atividade de gerenciamen- única maneira.
Após a realização desta análise, po- to de requisitos está a rastreabilidade. • Completude: um conjunto de requi-
demos aceitar ou rejeitar a mudança, 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 direções (por exemplo: partindo ários. Estas demandas incluem requisitos
de requisitos e chegando a projeto ou, funcionais, de desempenho, restrições,
Gerência de Configuração 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 • Consistência: um conjunto de requisi-
mento, o software passa por uma série de todo o seu ciclo de vida. tos é dito consistente se nenhum subcon-
modificações, desde a especificação dos A dificuldade envolvida com a ras- junto destes requisitos entra em conflito
requisitos até a implantação do sistema. treabilidade está no grande volume de com os demais requisitos do sistema.
A gerência de configuração de software informações gerado. As informações do • Verificabilidade: um requisito é
existe no intuito de definir critérios que processo de requisitos devem ser catalo- verificável se existe uma forma efetiva,
permitam realizar tais modificações gadas e associadas aos outros elementos em termos de tempo e custo, para que
mantendo-se a consistência e a integri- de forma que possam ser referenciadas pessoas ou ferramentas indiquem se um
dade do software com as especificações, através dos diversos itens de informação sistema cumpre o requisito (IEEE). Em
minimizando problemas decorrentes ao registrados. É um trabalho extenso que, quase todas as situações, é difícil provar
processo de desenvolvimento, através sem o auxílio de ferramentas adequa- de forma conclusiva que um requisito é
de um controle sistemático sobre as das, muito provavelmente não poderá cumprido por um software. Entretanto,
modificações. ser feito escrever bem o requisito pode ajudar a
A criação de um plano de gerência de Para implementar a rastreabilidade, aumentar a confiança na avaliação.
configuração consiste em estabelecer nor- usualmente é confeccionado em conjun- • Modificabilidade: um conjunto de re-
mas, ferramentas e templates que permi- to com a especificação de requisitos um quisitos é modificável quando seu estilo
tam gerenciar de maneira satisfatória os artefato chamado matriz de rastreabi- e estrutura é tal que as alterações podem
itens de configuração de um sistema, que lidade, que tem como objetivo mapear ser realizadas de forma simples e consis-
são definidos por Pressman como: “cada os rastros dos requisitos descritos na tente com os demais requisitos.
um dos elementos de informação que são especificação.
criados durante o desenvolvimento de Os rastros dos requisitos podem ser de
um produto de software, ou que para este dois tipos: A gerência, neste cenário, é responsável
desenvolvimento sejam necessários, que • Pré-rastreabilidade: os rastros (artefa- por manter uma infra-estrutura necessá-
são identificados de maneira única e cuja tos: plano de negocio, atas de reunião com ria para atividades de verificação que tor-
evolução é passível de rastreamento”.  o usuário) que fundamentaram a criação nem possível investigarmos a qualidade
Em cada fase do processo de desenvolvi- do requisito. dos requisitos que estamos definindo.
mento, um conjunto bem definido de itens • Pós-rastreabilidade: os rastros (arte-
de configuração deve ser estabelecido. A fatos: código, documentos) que se forma- Conclusão
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 dúvida, um dos mais importantes conjun-
processo de desenvolvimento, pois ao tos de atividades a serem realizadas em
final de cada fase é estabelecida uma Gerência de Qualidade de Requisitos projetos de desenvolvimento de software.
nova baseline e, portanto, todos os itens Segundo o padrão IEEE 830, devemos Embora não garanta a qualidade dos
de configuração estão sob total controle considerar alguns critérios de qualidade produtos gerados, é um pré-requisitos
de seus desenvolvedores. Desta forma, ao trabalharmos com requisitos: básico para que obtenhamos sucesso no
nesta baseline é guardada “uma foto” dos • Correção: 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 fácil realizar modi- requisitos representam algo que deve tema, que deverá ser bastante explorado
ficações nos artefatos de maneira con- estar presente no sistema que está sen- em edições futuras da Engenharia de
trolada; do desenvolvido, ou seja, os requisitos Software Magazine.

52 Engenharia de Software Magazine – Introdução à Engenharia de Requisitos


Introdução a Teste de Software

T
este de software é o processo de desta tarefa é revelar o número máximo
execução de um produto para de falhas dispondo do mínimo de esforço,
determinar se ele atingiu suas es- ou seja, mostrar aos que desenvolvem se
pecificações e funcionou corretamente no os resultados estão ou não de acordo com
ambiente para o qual foi projetado. O seu os padrões 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 técnicas
equipe de desenvolvimento antes da en- e critérios de teste que podem ser utiliza-
trega final. Por conta dessa característica dos para verificação ou validação de um
das atividades de teste, dizemos que sua produto, assim como exemplos práticos
natureza é “destrutiva”, e não “construti- da aplicação de cada tipo de técnica ou
va”, pois visa ao aumento da confiança de critério de teste.
um produto através da exposição de seus
problemas, porém antes de sua entrega Conceitos básicos associados
Arilo Cláudio Dias Neto ao usuário final. a Teste de Software
(ariloclaudio@gmail.com)
O conceito de teste de software pode Antes de iniciarmos uma discussão
É Bacharel em Ciência da Computação for-
mado na Universidade Federal do Amazonas, ser compreendido através de uma visão sobre teste de software precisamos es-
Mestre em Engenharia de Sistemas e Compu- intuitiva ou mesmo de uma maneira clarecer alguns conceitos relacionados a
tação formado na COPPE/UFRJ, e atualmente formal. Existem atualmente várias defi- essa atividade. Inicialmente, precisamos
está cursando doutorado na área de Engenha- nições para esse conceito. De uma forma conhecer a diferença entre Defeitos, Er-
ria de Software da COPPE/UFRJ. Possui 5 anos
simples, testar um software significa veri- ros e Falhas. As definições que iremos
de experiência em análise, desenvolvimento e
teste de software. É editor técnico das Revis- ficar através de uma execução controlada usar aqui seguem a terminologia padrão
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 – Introdução a Teste de Software


Verific ação, Validação e Teste

Engineers – (IEEE 610, 1990). requisitos


• Defeito é um ato inconsistente come-
tido por um indivíduo ao tentar entender
uma determinada informação, resolver
um problema ou utilizar um método
ou uma ferramenta. Por exemplo, uma
instrução ou comando incorreto.
• Erro é uma manifestação concreta
de um defeito num artefato de softwa-
re. Diferença entre o valor obtido e o
valor esperado, ou seja, qualquer estado
intermediário incorreto ou resultado
Figura 1. Defeito x erro x falha (Uma versão similar pode ser obtida em http://www.projectcartoon.com/cartoon/611)
inesperado na execução de um programa
constitui um erro. tar as possibilidades de provocar falhas profissionais, permanecem presentes
• Falha é o comportamento operacional ou, quando isso não ocorre, estabelecer nos produtos, o que torna a atividade de
do software diferente do esperado pelo um nível elevado de confiança na correção teste fundamental durante o desenvolvi-
usuário. 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 Critério de Cobertura dos Testes: para avaliação do produto antes da sua
permitem a identificação de partes do entrega ao usuário final.
A Figura 1 expressa a diferença 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 físico (a aplicação propria- e indicar quando o mesmo foi suficien- no processo são dois possíveis fatores
mente dita) e são causados por pessoas, temente testado (RAPPS e WEYUKER, que aumentam a complexidade dessa
por exemplo, através do mal uso de uma 1982). Ou seja, determinar o percentual tarefa, e consequentemente aumentam
tecnologia. Defeitos podem ocasionar a de elementos necessários por um crité- a probabilidade de defeitos. Assim, a
manifestação de erros em um produto, ou rio de teste que foram executados pelo ocorrência de falhas é inevitável. Mas
seja, a construção 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 Critério de Adequação de Casos falhou? Basicamente significa que o
verso de informação). Por fim, os erros de Teste: Quando, a partir de um con- funcionamento do programa não está de
geram falhas, que são comportamentos junto de casos de teste T qualquer, ele é acordo com o esperado pelo usuário. Por
inesperados em um software que afetam utilizado para verificar se T satisfaz os exemplo, quando um usuário da linha
diretamente o usuário final da aplicação requisitos de teste estabelecidos pelo de produção efetua consultas no sistema
(universo do usuário) e pode inviabilizar critério. Ou seja, este critério avalia se os das quais só a gerência deveria ter acesso.
a utilização de um software. casos de teste definidos são suficientes Esse tipo de falha pode ser originado por
Dessa forma, ressaltamos que teste de ou não para avaliação de um produto ou diversos motivos:
software revela simplesmente falhas em uma função (ROCHA et al., 2001). • A especificação pode estar errada ou
um produto. Após a execução dos testes é o Critério de Geração de Casos de incompleta;
necessária a execução de um processo de Teste: quando o critério é utilizado para • A especificação pode conter requisitos
depuração para a identificação e correção gerar um conjunto de casos de teste T impossíveis de serem implementados
dos defeitos que originaram essa falha, adequado para um produto ou função, devido a limitações de hardware ou sof-
ou seja, Depurar não é Testar! ou seja, este critério define as regras e tware;
A atividade de teste é composta por diretrizes para geração 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 não seja permitido distin-
na formalização desta atividade. Esses com o critério de adequação definido guir os tipos de usuário;
elementos são os seguintes: anteriormente (ROCHA et al., 2001). • Pode ser que haja um defeito no algo-
• Caso de Teste. descreve uma condição ritmo de controle dos usuários.
particular a ser testada e é composto por Definidos os elementos básicos asso-
valores de entrada, restrições para a sua ciados aos testes de software, iremos a Os defeitos normalmente são introdu-
execução e um resultado ou compor- seguir discutir a origem dos defeitos em zidos na transformação de informações
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 necessários 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 são
(CRAIG e JASKIEL, 2002). software, todos os defeitos são humanos relatados textualmente em um docu-
• Critério de Teste: serve para selecionar e, apesar do uso dos melhores métodos mento de especificação de requisitos.
e avaliar casos de teste de forma a aumen- de desenvolvimento, ferramentas ou Esse documento é então transformado

Edição 01 – Engenharia de Software Magazine 55


em casos de uso, que por sua vez foi o Níveis 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 utilização do
software e definição de sua arquite- em diferentes níveis e em paralelo ao mesmo, como se fosse um usuário final.
tura utilizando diagramas de classes desenvolvimento do software (Figura 3). Dessa maneira, os testes são executados nos
da UML. Em seguida, esses modelos Buscando informação no Livro “Qualidade mesmos ambientes, com as mesmas con-
de projetos foram usados para a cons- de Software – Teoria e Prática” (ROCHA et dições e com os mesmos dados de entrada
trução do software em uma linguagem al., 2001), definimos que os principais níveis que um usuário utilizaria no seu dia-a-dia
que não segue o paradigma orientado a de teste de software são: de manipulação do software. Verifica se o
objetos. Observe que durante esse pe- • Teste de Unidade: também conhecido produto satisfaz seus requisitos.
ríodo uma série de transformações foi como testes unitários. Tem por objetivo • Teste de Aceitação: são 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 lógica e de implementação em operações de rotina do sistema de modo
exatamente a metáfora discutida nesse cada módulo, separadamente. O universo a verificar se seu comportamento está de
parágrafo. alvo desse tipo de teste são os métodos acordo com o solicitado.
Essa série de transformações resultou dos objetos ou mesmo pequenos trechos • Teste de Regressão: Teste de regressão
na necessidade de realizar testes em dife- de código. não corresponde a um nível de teste, mas
rentes níveis, visando avaliar o software • Teste de Integração: visa provocar é uma estratégia importante para redução
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 módulos quando esses são integrados aplicar, a cada nova versão 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 seção seguinte. que foi estabelecida na fase de projeto. foram aplicados nas versões ou ciclos
de teste anteriores do sistema. Pode ser
aplicado em qualquer nível 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
aceitação a partir do documento de re-
quisitos;
2. Após isso é planejado o teste de sis-
tema a partir do projeto de alto nível do
software;
3. Em seguida ocorre o planejamento
dos testes de integração a partir o projeto
detalhado;
4. E por fim, o planejamento dos testes
a partir da codificação.

Figura 2. Diferentes Interpretações ao longo do ciclo de desenvolvimento de um software Já a execução ocorre no sentido inverso.
Conhecidos os diferentes níveis de teste,
a partir da próxima seção descreveremos
as principais técnicas de teste de software
existentes que podemos aplicar nos dife-
rentes níveis abordados.

Técnicas de teste de software


Atualmente existem muitas maneiras
de se testar um software. Mesmo assim,
existem as técnicas que sempre foram
muito utilizadas em sistemas desenvol-
vidos sobre linguagens estruturadas
que ainda hoje têm 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 técnicas continua a ser o mesmo:

56 Engenharia de Software Magazine – Introdução a Teste de Software


Verific ação, Validação e Teste

encontrar falhas no software. nadas por estruturas de condições requisitos


são
As técnicas de teste são classificadas de testadas. A Listagem 1 apresenta um
acordo com a origem das informações código fonte, extraído 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 impõe-se a dor digitado como parâmetro, e a Figura
necessidade de se estabelecer uma estra- 5 apresenta o grafo de programa extraído
tégia de teste que contemple as vantagens a partir desse código, também extraído Figura 4. Técnica de Teste Estrutural.
e os aspectos complementares dessas téc- de (BARBOSA et al., 2000). A partir do
nicas. As técnicas existentes são: técnica grafo deve ser escolhido algum critério
funcional e estrutural. baseado em algum algoritmo de busca
A seguir conheceremos um pouco mais em grafo (exemplo: visitar todos os nós,
sobre cada técnica, mas iremos enfatizar arcos ou caminhos) para geração dos ca-
alguns critérios específicos para a técnica sos de teste estruturais para o programa
funcional. (PFLEEGER, 2004).
Um exemplo bem prático desta técnica
Técnica Estrutural de teste é o uso da ferramenta livre JUnit
(ou teste caixa-branca) para desenvolvimento de casos de teste
Técnica de teste que avalia o com- para avaliar classes ou métodos desen-
portamento interno do componente de volvidos na linguagem Java. A técnica de
software (Figura 4). Essa técnica trabalha teste de Estrutural é recomendada para
diretamente sobre o código fonte do com- os níveis de Teste da Unidade e Teste da
ponente de software para avaliar aspec- Integração, cuja responsabilidade prin-
tos tais como: teste de condição, teste de cipal fica a cargo dos desenvolvedores
fluxo de dados, teste de ciclos e teste de do software, que são profissionais que
caminhos lógicos (PRESSMAN, 2005). conhecem bem o código-fonte desenvol-
Os aspectos avaliados nesta técnica vido e dessa forma conseguem planejar
de teste dependerão da complexidade os casos de teste com maior facilidade.
e da tecnologia que determinarem a Dessa forma, podemos auxiliar na redu-
construção do componente de software, ção dos problemas existentes nas peque-
cabendo, portanto, avaliação de outros nas funções ou unidades que compõem Figura 5. Grafo de Programa (Identifier.c)
aspectos além dos citados anteriormente. um software. (BARBOSA et al., 2000).
O testador tem acesso ao código fonte
da aplicação e pode construir códigos Teste Funcional (ou teste caixa-preta)
para efetuar a ligação de bibliotecas e Técnica 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 código fonte e elaborando-se não 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. são fornecidos, o teste é executado e o
Dessa maneira, todas as variações origi- resultado obtido é comparado a um re- Figura 6. Técnica de Teste Funcional.

Listagem 1. Código 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 possível 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 */ }

Edição 01 – Engenharia de Software Magazine 57


sultado esperado previamente conhecido. Tipicamente uma condição de entrada identifier.c. Iremos apresentá-lo como
Haverá sucesso no teste se o resultado pode ser um valor numérico específico, exemplo do uso deste critério 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 condição se um identificador é válido ou não.
pode ser um método, uma função interna, lógica. As seguintes diretrizes podem
um programa, um componente, um con- ser aplicadas: “Um identificador válido deve começar
junto de programas e/ou componentes ou • Se uma condição de entrada especifica com uma letra e conter apenas letras ou
mesmo uma funcionalidade. A técnica uma faixa de valores ou requer um valor es- dígitos. Além disso, deve ter no mínimo
de teste funcional é aplicável a todos os pecífico, uma classe de equivalência válida 1 caractere e no máximo 6 caracteres
níveis de teste (PRESSMAN, 2005). (dentro do limite) e duas inválidas (acima de comprimento. Exemplo: “abc12” (vá-
Um conjunto de critérios de teste pode e abaixo dos limites) são definidas. lido), “cont*1” (inválido), “1soma” (inváli-
ser aplicado aos testes funcionais. A se- • Se uma condição de entrada especifica do) e “a123456” (inválido).”
guir conheceremos alguns deles. um membro de um conjunto ou é lógica,
uma classe de equivalência válida e uma O primeiro passo é a identificação das
Particionamento em classes de inválida são definidas. classes de equivalência. Isso está descrito
equivalência na Tabela 1.
Esse critério divide o domínio de entrada Devemos seguir tais passos para gera- A partir disso, conseguimos especificar
de um programa em classes de equivalên- ção dos testes usando este critério: quais serão os casos de teste necessários.
cia, a partir das quais os casos de teste são 1. Identificar classes de equivalência (é Para ser válido, um identificador deve
derivados. Ele tem por objetivo minimizar um processo heurístico) atender às condições (1), (3) e (5), logo é
o número de casos de teste, selecionando o condição de entrada necessário um caso de teste válido que
apenas um caso de teste de cada classe, o válidas e inválidas cubra todas essas condições. Alem disso,
pois em princípio todos os elementos 2. Definir os casos de teste será necessário um caso de teste para
de uma classe devem se comportar de o enumeram-se as classes de equi- cada classe inválida: (2), (4) e (6). Assim, o
maneira equivalente. Eventualmente, valência conjunto mínimo é composto por quatro
pode-se também considerar o domínio o casos de teste para as classes válidas casos de teste, sendo uma das opções:
de saída para a definição das classes de o casos de teste para as classes inválidas T0 = {(a1,Válido), (2B3, Inválido), (Z-12,
equivalência (ROCHA et al., 2001). Inválido), (A1b2C3d, Inválido)}.
Uma classe de equivalência representa Em (BARBOSA et al., 2000) é apresenta-
um conjunto de estados válidos e in- do a aplicação do critério de particiona- Análise do valor limite
válidos para uma condição de entrada. mento por equivalência para o programa Por razões não completamente iden-
tificadas, um grande número de erros
tende a ocorrer nos limites do domínio de
<3
entrada invés de no “centro”. Esse critério
>80 #produtos Fret e Grátis
de teste explora os limites dos valores de
cada classe de equivalência para preparar
> =3 os casos de teste (Pressman, 2005).
Valor comp ra Se uma condição 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 Decisão – Grafo de Causa-Efeito.
{1..10}; Casos de Teste  {1, 10, 0,11}.
Como exemplo, extraído de (BARBOSA
Condições de Entrada Classes Classes
et al., 2000), iremos considerar a seguinte
Tamanho t do identificador (1) 1 ≤ t ≤6 (2) t > 6 situação:
Primeiro caractere c é uma letra (3) Sim (4) Não
"... o cálculo do desconto por depen-
Só contém caracteres válidos (5) Sim (6) Não dente é feito da seguinte forma: a entra-
Tabela 1. Classes de Equivalência 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 grátis V

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

58 Engenharia de Software Magazine – Introdução a Teste de Software


Verific ação, Validação e Teste

convenc iona l serão obt idos ca- resultado esperado) = {(61,2,“frete requisitos
grá- gerenciamento e análise 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 redução de esforço
Grafo de causa-efeito Outras técnicas associado à tarefa em questão, seja ela
Esse critério de teste verifica o efeito Outras técnicas de teste podem e devem planejamento, projeto ou execução dos
combinado de dados de entrada. As ser utilizadas de acordo com necessidades testes. Após ter sua estratégia de teste
causas (condições de entrada) e os efeitos de negócio ou restrições tecnológicas. definida, tente buscar por ferramentas
(ações) são identificados e combinados Destacam-se as seguintes técnicas: teste de que se encaixem na sua estratégia. Isso
em um grafo a partir do qual é montada desempenho, teste de usabilidade, teste de pode reduzir significantemente o esforço
uma tabela de decisão, e a partir desta, carga, teste de stress, teste de confiabilida- de tal tarefa.
são derivados os casos de teste e as saídas de e teste de recuperação. Alguns autores Além disso, é importante ressaltar que
(ROCHA et al., 2001). chegam a definir uma técnica de teste diferentes tipos de aplicações possuem
Esse critério é baseado em quatro pas- caixa cinza, que seria um mesclado do uso diferentes técnicas de teste a serem
sos, que exemplificaremos utilizando o das técnicas de caixa preta e caixa branca, aplicadas, ou seja, testar uma aplicação
exemplo, também extraído de (BARBOSA mas, como toda execução de trabalho web envolve passos diferenciados em
et al., 2000): relacionado à atividade de teste utilizará comparação aos testes de um sistema
simultaneamente mais de uma técnica embarcado. Cada tipo de aplicação possui
“Em um programa de compras pela de teste, é recomendável que se fixem os características especificas que devem ser
Internet, a cobrança ou não do frete é conceitos primários de cada técnica. consideradas no momento da realização
definida seguindo tal regra: Se o valor dos testes. O conjunto de técnicas apre-
da compra for maior que R$ 60,00 e fo- Conclusões sentado neste artigo cobre diversas carac-
ram comprados menos que 3 produtos, O teste de software é uma das atividades terísticas comuns a muitas categorias de
o frete é gratuito. Caso contrário, o frete mais custosas do processo de desenvol- software, mas não é 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 módulo, Causas (condições de um projeto. O rigor e o custo associado atividades de teste que podemos abordar
de entrada) e efeitos (ações realizadas às a esta atividade dependem principalmente em próximos artigos, tais como processo
diferentes condições de entrada) são rela- da criticalidade da aplicação a ser desenvol- de teste de software, planejamento e con-
cionados, atribuindo-se um identificador vida. Diferentes categorias de aplicações trole dos testes e teste de software para
para cada um. requerem uma preocupação diferenciada categorias específicas de software, como
• Causa: valor da compra > 60 e #pro- com as atividades de teste. aplicações web. Até a próxima!
dutos < 3 Um ponto bastante importante para
• Efeito: frete grátis a viabilização da aplicação de teste de Agradecimentos
2. Em seguida, um grafo de causa- software é a utilização de uma infra- Agradecemos aos professores José Carlos
efeito (árvore de decisão) é desenhado estrutura adequada. Realizar testes Maldonado e Ellen Barbosa por terem
(Figura 7). não consiste simplesmente na geração gentilmente autorizado a publicação deste
3. Neste ponto, transforma-se o grafo e execução de casos de teste, mas envol- material, cujos exemplos utilizados estão
numa tabela de decisão (Tabela 2). vem também questões de planejamento, fundamentados em seus trabalhos.
4. As regras da tabela de decisão são,
então, convertidas em casos de teste. Referências

BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M..
Para a elaboração dos casos de teste,
“Introdução ao Teste de Software. XIV Simpósio Brasileiro de Engenharia de Software”, 2000.
devemos seguir todas as regras extraídas
da tabela. Esse critério 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 criação de casos de
teste válidos (extraídos das regras) e PFLEEGER, S. L., “Engenharia de Software: Teoria e Prática”, Prentice Hall- Cap. 08, 2004.
inválidos (valores foras da faixa defini- PRESSMAN, R. S.,“Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York,
da). Os casos de teste definidos a seguir NY, 2005.
refletem somente as regras extraídas da RAPPS, S., WEYUKER, E.J., “Data Flow analysis techniques for test data selection”, In: International
tabela de decisão. Fica como exercício Conference on Software Engineering, p. 272-278, Tokio, Sep. 1982.
pensar nos casos de teste inválidos para
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”,
este problema.
Prentice Hall, São Paulo, 2001.
• Casos de Teste (valor, qtd produtos,

Edição 01 – Engenharia de Software Magazine 59


Gestão de defeitos
Ferramentas Open Source e melhores práticas na gestão de defeitos

O
principal objetivo do teste de Neste artigo, você conhecerá os con-
software é medir o nível de ceitos, atividades e terminologia de um
qualidade de um sistema, seja a processo de gestão de defeitos. Também
aplicação executável ou os artefatos utili- será apresentado um exemplo prático uti-
zados na sua construção. A qualidade de lizando o Mantis, ferramenta Open Sour-
um sistema pode ser medida, essencial- ce para gestão de defeitos. E, por fim,
mente, pelo número de falhas encontra- serão apresentadas outras alternativas
das durante a execução dos testes. Open Source e comerciais caso o Mantis
Falha, nesse contexto, é a conseqüência de não atenda as suas necessidades.
um erro, defeito ou engano. Ou seja, é o des-
vio entre o que foi solicitado pelo usuário Processo de Gestão de defeitos
Cristiano Caetano por meio dos requisitos e o comportamento Um processo de gestão de defeitos tem o
c_caetano@hotmail.com
É certificado CBTS pela ALATS. Consultor de
apresentado pela aplicação executável. Em objetivo de definir práticas para prevenir
teste de software sênior com mais de 10 virtude da complexidade e tamanho de um os defeitos e minimizar os riscos de um
anos de experiência, já trabalhou na área de sistema ou para atender normas de quali- projeto. A utilização de uma ferramenta
qualidade e teste de software para grandes dade ou processos de maturidade, se faz automatizada, além de oferecer uma base
empresas como Zero G, DELL e HP Invent. É necessário utilizar um processo de gestão comum para a entrada de informações,
colunista na área de Teste e Qualidade de
software do site linhadecodigo.com.br e au-
de defeitos integrado ao ciclo de vida de também oferece um meio para fomentar
tor dos livros "CVS: Controle de Versões e De- desenvolvimento e teste. a integração entre o time de desenvolvi-
senvolvimento Colaborativo de Software" e Neste contexto, entender as atividades mento e o time de testes. Além disso, por
"Automação e Gerenciamento de Testes: Au- de um processo de gestão de defeitos meio dos relatórios de gestão e métricas
mentando a Produtividade com as Principais e escolher a ferramenta adequada para geradas por essas ferramentas, os gestores
Soluções Open Source e Gratuitas". O autor
mantém um blog sobre testes e qualidade
automatizar a gestão do ciclo de vida do projeto poderão promover a melhoria
de software, confira no seguinte endereço: de um defeito são tarefas fundamentais, contínua do processo estabelecido.
http://spaces.msn.com/softwarequality/. como veremos mais adiante. Genericamente, o termo Erro (Error)

60 Engenharia de Software Magazine – Gestão de Defeitos


Verific ação, Validação e Teste

é utilizado para indicar uma diferença rios com dados relevantes para acompa- não especificado no requisito.
entre valor computado, observado ou me- nhar o progresso dos testes e a qualidade
dido em relação ao esperado. No entanto, do sistema, assim como, a geração de Uma vez que o defeito for encontrado,
o padrão IEEE 610.12-1990 (IEEE Standard métricas para alimentar a atividade de seja por intenção ou por acidente, o
Glossary of Software Engineering Ter- melhoria do processo. próximo 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 gestão de defeitos.
finição de dados incorretos. Por exemplo, qualidade de um sistema pode ser me- Este mecanismo poderá ser, desde uma
uma instrução incorreta no código ou dida, essencialmente, pelo número de simples planilha, até uma ferramenta
uma falta num artefato estático; defeitos encontrados durante a execução automatizada. Por motivos óbvios, uma
• Engano (Mistake): Ação humana que dos testes. ferramenta automatizada e construída
produz um resultado incorreto, como por Podemos afirmar que os defeitos são para esse propósito será, sem sombra de
exemplo, uma ação incorreta tomada pelo encontrados por meio da execução formal dúvida, muito mais eficiente do que uma
desenvolvedor ou analista; dos testes (testes estruturais ou funcio- simples planilha ou solução alternativa.
• Falha (Failure): Desvio entre o resul- nais), durante a utilização do sistema em De qualquer forma, tão logo o defeito
tado/comportamento apresentado pela produção ou, até mesmo, por acidente. A seja relatado, ele deverá ser submetido a
aplicação em relação aos requisitos. A priori, podemos classificar os defeitos nas um ciclo de vida pré-definido pelo pro-
falha ocorre em conseqüência de um erro, seguintes categorias: cesso de gestão 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 aplicação. 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 genérica, podendo representar porque o requisito foi implementado processo de gestão de defeitos apresen-
um erro, engano, defeito ou falha. Se- incorretamente; tado anteriormente. Devemos lembrar
gundo o livro, “Base de Conhecimento • Acréscimo (Extra): O defeito ocorre que esse é um exemplo didático, existem
do CSTE” do QAI, os elementos chave em virtude de um comportamento ou fluxos alternativos e papéis que não estão
de um processo de gestão de defeitos elemento que foi implementado, mas foi presentes nesta figura.
são (Figura 1):
• Prevenção de defeitos: Com base
nos levantamento dos riscos críticos do
projeto, devem ser promovidas ações de
prevenção e planejamento de contingên-
cias para minimizar o impacto caso os
riscos tornem-se problemas;
• Linha base entregável: Estabeleci-
mento formal de linhas base (baselines)
por meio da Gerência de Configuração
de Software. Cada linha base deve de- Figura 1. Elementos chave de um processo de gestão de defeitos.
terminar quais requisitos/artefatos serão
liberados e submetidos ao teste;
• Identificação do defeito: Definição
das técnicas necessárias para encontrar,
reportar e classificar os defeitos, assim
como, os critérios para reconhecê-los;
• Solução do defeito: Definição das
atividades para a correção e posterior
notificação da resolução do defeito. Mui-
tas destas atividades são definidas pela
Gerência de Configuração de Software
para garantir o histórico e rastreamento
das modificações por meio do controle
de versões;
• Melhoria do processo: Análise das mé-
tricas e relatórios de gestão para entender
a causa raiz dos problemas e promover a
melhoria contínua do processo;
• Relatório de gestão: Geração de relató- Figura 2. Ciclo de vida de um defeito genérico.

Edição 01 – Engenharia de Software Magazine 61


Recomendações para o relato evitando manifestações de humor, Severidade X Prioridade
de defeitos emoção, etc; A classificação 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 genérica, em virtu- relato de defeitos, um ponto normalmen-
mentais do processo de gestão de defeitos, de de que este problema também pode te negligenciado e foco de interpretações
normalmente ele é relegado para segundo acontecer em outras situações ou fun- incorretas. A classificação 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 ineficiência da priori-
rante o relato de um defeito com base nas seja reproduzível e descreva os passos zação e agendamento da correção dos
recomendações descritas no livro “Base de necessários para a sua reprodução; defeitos. O efeito colateral direto desse
conhecimento em teste de software”: • Evidenciar: Evidencie a existência do problema é a má utilização dos recursos
• Resumir: Descreva claramente o de- defeito encontrado por meio de arquivos em função do enfoque na correção de
feito, mas de forma resumida; de saída, printscreens das telas, etc; defeitos menos prioritários.
• Precisão: Certifique-se que o defeito • Revisar: Revise a descrição 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 não 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 aplicação. Por outro lado, a prioridade
• Neutralizar: Relate apenas os fatos, plano de testes, etc. Trate-o como tal; indica a ordem de correção do defeito
(defeitos com alta prioridade são corrigi-
dos imediatamente ou num curto prazo
Severidade Descrição
de tempo). De modo geral, defeitos com
Alta Bloqueia completamente a utilização de uma funcionalidade básica ou da aplicação inteira alta severidade são classificados com alta
prioridade. No entanto, podem existir
Bloqueia a utilização de uma funcionalidade. Mas, no entanto, a funcionalidade pode ser usada por meio da utilização
Média diversas situações onde não podemos
de um contorno (workaround) conhecido
aplicar essa regra. Por exemplo, a cor-
Baixa Problemas cosméticos e solicitações de melhorias rupção dos dados de uma aplicação no
Windows 3.11 é um defeito com alta se-
Tabela 1. Classificação da prioridade.
veridade mas, no entanto, deve ter baixa
Prioridade Descrição
prioridade em virtude de que 99,9% dos
usuários da aplicação utilizam versões
1 O defeito deve ser corrigido imediatamente (até um dia útil). A aplicação não pode ser liberada sem a correção deste defeito mais atuais do Windows. A justificativa
para esse critério é: Por que priorizar a
É altamente desejável que o defeito seja corrigido tão logo seja possível (até cinco dias úteis). A aplicação não pode ser
2 correção de um defeito que vai beneficiar
liberada sem a correção deste defeito
apenas 0,01% dos usuários?
3 Defeito de baixa prioridade. A aplicação pode ser liberada com esse defeito Para evitar a subjetividade da classifica-
ção, sugere-se que os critérios para cada
Tabela 2. Classificação da severidade.
nível de prioridade e severidade sejam
definidos na documentação do processo
de gestão de defeitos. Para fins didáticos
e de entendimento, serão apresentados na
Tabela 1 e Tabela 2 exemplos de critérios
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 gestão 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-
lizáveis, como pode ser observado na
Figura 3.
O endereço do site do Mantis está
disponível na seção Links. Caso você
tenha interesse de conhecê-lo com maior
Figura 3. Página inicial do Mantis. profundidade, os passos para a instalação

62 Engenharia de Software Magazine – Gestão de Defeitos


Verific ação, Validação e Teste

são os seguintes: • Controle de acesso e níveis de permis- o seu fechamento.


1. As pré-condições para a instalação sões para os usuários; Tão logo um testador ou usuário encon-
são (PHP 4.0.6 ou superior, MySQL 3.23.2 • Ciclo de vida dos defeitos (worflow) tre um defeito, seja por intenção ou por
ou superior, Apache ou IIS). personalizável; acidente, o próximo passo deverá ser o
2. Faça o download do Mantis no site • Gerador interno de relatórios e gráfi- relato (ou reporte) desse defeito.
disponível na seção Links. cos (possibilidade para exportar os dados No nosso cenário, vamos relatar um de-
3. Descompacte o arquivo zip do Mantis nos formatos CSV, Excel e Word); feito (problema no recurso de seleção de
na pasta www ou htdocs do servidor • Mecanismo para a criação de campos textos quando existe uma tabela no topo
WEB (Apache ou IIS). personalizáveis (custom fields); do documento) do OpenOffice Writer
4. Abra o seu navegador e acesse o • Notificações por email automáticas (processador de texto Open Source).
seguinte endereço: (http://localhost/ ou por meio de RSS Feeds; Para realizar tal tarefa, você deverá
mantis_1.0.5/). • Integração com ferramentas de con- selecionar o menu “Relatar Caso” do
5. Na janela Pre-Installation Check, pre- trole de versões (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 usuário para acesso ao banco integração com outras ferramentas; do defeito, a descrição, os passos para
de dados MySQL e o campo password • MantisWAP – Suporte a dispositivos reproduzir e assim por diante, como pode
com a senha. móveis (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 exposição preenchimento dos campos severidade
7. Pressione o botão Install/Upgrade sobre as principais funcionalidades do (gravidade) e prioridade neste passo é de
Database. Mantis e como elas atendem os principais extrema importância para a priorização e
8. Ao final do processo, abra o seu fluxos de um ciclo de vida de um defeito, agendamento da correção do defeito.
navegador e acesse o seguinte ende- vamos simular na prática o relato de um Assim que o defeito for relatado, o ana-
reço: (http://localhost/mantis_1.0.5/ defeito e acompanhar todos os passos até lista de teste (ou líder de desenvolvimen-
login_page.php).
9. Faça o primeiro login com o usuário
padrão (administrator/root). Lembre-se
de mudar a senha deste usuário.

O Mantis é instalado em inglês por


padrão. Caso você prefira utilizar o
Mantis com os textos traduzidos para a
língua portuguesa, então siga os passos
descritos abaixo:
1. Faça o login normalmente com o seu
usuário e senha.
2. Clique no menu “My Account” e en-
tão selecione a opção “Preferences”.
3. No campo Language selecione a op-
ção "portuguese_brazil".
4. Pressione o botão "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 vários bancos de dados (MyS-
QL, MS SQL, PostgreSQL);
• Suporta múltiplos mecanismos de
autenticação (Interna, LDAP, HTTP Basic,
Active Directory);
• Traduzido em 68 línguas diferentes
(incluindo "portuguese_brazil");
• Criação ilimitada de projetos e relatos
de defeitos; Figura 4. Relato de um defeito.

Edição 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 invés de um mal entendimento
do comportamento esperado.
Se for confirmado que o relato não é um
problema, ele é imediatamente fechado.
Caso contrário, o analista de teste (ou
líder 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, também poderão ser re-
alizadas a projeção da complexidade e
a estimativa do tempo necessário para
finalizar a correção 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, priorização e agendamento da correção de um defeito. os defeitos atribuídos a ele diretamente
no Mantis por meio da página “Minha
Visão”. Nesta página (Figura 7), são
apresentados e consolidados todos os
defeitos, inclusive os defeitos associados
ao usuário logado no Mantis.
Assim que o desenvolvedor receber
o e-mail notificando que a correção do
defeito foi programada e atribuída a
ele, o próximo passo será a execução da
correção propriamente dita.
Dessa forma, tão logo a correção seja
finalizada, o desenvolvedor deverá re-
portar a correção do defeito por meio do
Mantis. Para tal tarefa, o desenvolvedor
deverá mudar a resolução do defeito para
“Corrigido” e descrever quais foram as
modificações necessárias para corrigir o
defeito no campo “Anotação”, como pode
ser visto na Figura 8.
Por fim, assim que for reportada a
correção 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 – Gestão de Defeitos


Verific ação, Validação e Teste

testador poderá identificar que o defeito


não 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
comentário sobre o fechamento no campo
“Anotação”, como pode ser visto na Fi-
gura 9. Dessa forma, chegamos ao final
da simulação de um ciclo de vida de um
defeito e a apresentação das principais
funcionalidades do Mantis.

Métricas e relatórios de gestão Figura 7. Consolidação dos defeitos associados ao usuário logado.
A norma IEEE Std 829-1998 (IEEE Stan-
dard for Software Test Documentation)
define a documentação e relatórios ne-
cessários para a execução de um projeto
de teste de software. Dentre os relatórios
sugeridos, existe um relatório chamado
“Relatório de Incidente de Teste”. Este re-
latório registra e consolida as ocorrências
que precisam de algum tipo de investi-
gação. Ele é normalmente utilizado para
registrar os defeitos encontrados durante
a execução dos testes.
Ferramentas automatizadas de gestão
de defeitos, tais como o Mantis, geram di-
versos relatórios e gráficos com métricas
que poderão fornecer dados para alimen-
tar o Relatório de Incidente de Teste.
O Mantis, além de oferecer um relató-
rio com o resumo consolidado de todos
os defeitos relatados (Figura 10), também
permite a visualização de gráficos com
as principais métricas utilizadas na
gestão de defeitos (Figura 11). Na lista-
gem a seguir, são apresentadas diversas
sugestões de indicadores e métricas de
um processo de gestão de defeitos eficaz,
afinal, você não pode gerenciar o que
Figura 8. Reporte da correção de um defeito.
você não pode medir:

Edição 01 – Engenharia de Software Magazine 65


• Densidade dos defeitos: Indica o
número de defeitos por uma unidade. É
normalmente utilizado para identificar
a quantidade de defeitos por cada mil
linhas de código (KLOC);
• Taxa de abertura dos defeitos: Utili-
zado para acompanhar o progresso da
execução dos testes e o nível da qualidade
do sistema em teste;
• Taxa de correção 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 correção
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
contrário, vai privilegiar testadores que
encontram dezenas de defeitos bobos em
detrimento dos testadores que encontram
poucos defeitos (porém são defeitos com-
plexos e difíceis de reproduzir);
• Taxa de defeitos corrigidos agrupados
por desenvolvedor: Identifica a taxa de
correção dos defeitos por desenvolvedor.
Deve ser analisada em conjunto com ou-
tros dados, caso contrário, vai privilegiar
desenvolvedores que corrigem dezenas de
defeitos bobos em detrimento dos desen-
volvedores que corrigem poucos defeitos
(porém são defeitos de difícil resolução);
• Severidade por módulo: Utilizado
para identificar os módulos que contém
muitos defeitos com severidade alta.
Com base nesses dados, podemos tomar
alguma decisão para identificar a causa
raiz dos problemas e promover alguma
modificação no processo para diminuir
a quantidade de defeitos com severidade
alta no módulo;

Links
Comparação entre ferramentas de gestão 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 – Gestão de Defeitos


Verific ação, Validação e Teste

• Prioridade por módulo: Identifica


módulos 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 métrica de
http://scarab.tigris.org/ http://www.atlassian.com/software/jira/
Severidade por módulo;
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/
Integração, Sistema e Aceitação). Dessa
Tabela 3. Ferramentas de gestão de defeitos alternativas.
forma, podemos identificar que a abor-
dagem e cobertura de testes utilizada na
fase de testes de Sistema não foram mui-
to eficientes em virtude de que muitos
defeitos “vazaram” e foram encontrados
durante a fase de testes de Aceitação;
• Bug Convergence: Identifica o ponto
de declínio 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 gráfico de
defeitos encontrados a partir do momento
do declínio da taxa de abertura dos de-
feitos (Bug Convergence). Os vales desse
gráfico representam os pontos no tempo
onde não existem defeitos conhecidos
com status igual a aberto, ou seja, estes
são os melhores momentos para liberar
o sistema para a próxima fase ou para o
cliente;
Figura 11. Principais métricas utilizadas na gestão de defeitos.
Conclusão
Neste artigo foram apresentados os
conceitos e melhores práticas na gestão
de defeitos. O objetivo principal do artigo
era destacar a importância da gestão de
defeitos como um processo de apoio ao
desenvolvimento e teste de software. Para
facilitar o entendimento do leitor, foram
demonstrados na prática os conceitos
discutidos por meio da utilização do
Mantis (ferramenta Open Source para
gestão de defeitos).
Se o leitor quiser se aprofundar no
assunto, são apresentadas na Tabela
3 algumas das principais ferramentas
comerciais e Open Source para a gestão
de defeitos. Não foram esgotadas todas
as opções disponíveis, mas já é um bom
ponto de partida para auxiliar o leitor
a encontrar a solução ideal para a sua
necessidade.

Edição 01 – Engenharia de Software Magazine 67


Introdução à Inspeção de Software
Aumento da qualidade através de verificações intermediárias

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
Computação (COPPE/UFRJ). Mestre em En-
como em outras disciplinas de possibilidade de se realizar inspeções nos
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Ciências da Computação (UFRJ, engenharia, é necessário consi- diferentes artefatos de software.
2001). Diretor executivo e instrutor da Kali derar variáveis como esforço, produtivi- De forma resumida, o processo tradicio-
Software (www.kalisoftware.com), empresa dade, tempo e custo de desenvolvimento. nal de inspeção envolve o planejamento
de consultoria e treinamento em Engenharia Essas variáveis são afetadas negativa- da inspeção, indivíduos revisando um
de Software. Professor e pesquisador do curso
mente quando artefatos defeituosos são determinado artefato, um encontro em
de Ciência da Computação do Centro Univer-
sitário 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 implementação e avaliação do MPS.BR custo do retrabalho para correção de autor do artefato para que possam ser
tendo colaborado na elaboração do guia geral defeitos aumenta na medida em que o corrigidos e uma avaliação final sobre a
e do guia de implementação deste modelo.
processo de desenvolvimento progride. necessidade de uma nova inspeção.
Desta forma, iniciativas devem ser reali- A importância de inspeções na redução
Rodrigo Oliveira Spínola
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 tão logo sejam introduzidos. Uma de software está bem documentada na
Computação (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 seção seguinte apresenta a
Bacharel em Ciências da Computação (UNI-
reduzindo o retrabalho e melhorando a definição de alguns conceitos utilizados
FACS, 2001). Colaborador da Kali Software
(www.kalisoftware.com), tendo ministrado qualidade dos produtos é a revisão dos ao longo deste trabalho. Veremos ainda
cursos na área de Qualidade de Produtos e artefatos produzidos ao longo do processo neste artigo alguns benefícios de se rea-
Processos de Software, Requisitos e Desen- de desenvolvimento de software. lizar inspeções em artefatos produzidos
volvimento Orientado a Objetos. Consultor Inspeção de software é um tipo parti- ao longo do processo de desenvolvimento
para implementação do MPS.BR. Atua como
cular de revisão que pode ser aplicado a de software são descritos; conceitos
Gerente de Projeto em projetos de consulto-
ria na COPPE/UFRJ. É colaborador da Enge- todos os artefatos de software e possui sobre técnicas de leitura para detecção
nharia de Software Magazine. um processo de detecção de defeitos rigo- de defeitos em artefatos de software;

68 Engenharia de Software Magazine – Introdução à Inspeção de Software


Verific ação, Validação e Teste

o processo de inspeção de software e tos constituiria um tipo de defeito. Assim, É importante ressaltar que estas classes
suas características, e; o estado atual da a seguinte taxonomia foi definida: genéricas de defeitos podem ser dividi-
utilização de inspeções na prática e do • Omissão: (1) Algum requisito im- das em classes mais específicas, depen-
suporte ferramental existente. portante relacionado à funcionalidade, dendo da necessidade. Além disto, esta
ao desempenho, às restrições de projeto, classificação não pretende ser definitiva
Definição dos Conceitos ao atributo, ou à interface externa não foi e cada organização pode acrescentar
O termo defeito muitas vezes é utilizado incluído; (2) não está definida a resposta mais tipos de defeito de acordo com suas
de forma genérica. No entanto, é importante do software para todas as possíveis si- necessidades.
ter em mente que sua interpretação depen- tuações de entrada de dados; (3) faltam
derá do contexto em que ele for utilizado. seções na especificação de requisitos; (4) Benefícios da Aplicação de
Defeitos encontrados através de revisões faltam referências de figuras, tabelas, e Inspeções de Software
estarão relacionados às faltas no artefato diagramas; (5) falta definição de termos Esforço, Produtividade, Tempo e Custo
sendo revisado. Quando um defeito se e unidades de medidas. O esforço gasto por organizações de
manifesta através de atividades de teste, • Ambigüidade: Um requisito tem software com retrabalho pode variar em
por sua vez, estaremos lidando com uma várias interpretações devido a diferentes média entre 40% e 50% do esforço total
falha no software. Estas definições seguem termos utilizados para uma mesma ca- do desenvolvimento de um projeto. Uma
a terminologia padrão para Engenharia de racterística ou vários significados de um estimativa da distribuição 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 • Inconsistência: Dois ou mais requi- software está ilustrada na Figura 2.
um indivíduo ao tentar entender uma sitos são conflitantes. Analisando a Figura 2, é possível veri-
determinada informação, resolver um • Fato Incorreto: Um requisito des- ficar que o retrabalho tende a aumentar
problema ou utilizar um método ou uma creve um fato que não é verdadeiro, na medida em que o desenvolvimento
ferramenta. considerando as condições solicitas para progride. Uma das razões para isto é o
• Defeito (ou Falta): É uma manifes- o sistema. aumento no esforço para corrigir defei-
tação concreta de um erro num artefato • Informação Estranha: As informa- tos nas atividades finais do processo de
de software. Um erro pode resultar em ções fornecidas no requisito não são desenvolvimento. Através da análise de
diversos defeitos. necessárias ou mesmo usadas. 63 projetos, BOEHM (1981) apresenta o
• Falha: É o comportamento operacio- • Outros: Outros defeitos como a inclu- custo relativo da correção de defeitos
nal do software diferente do esperado são de um requisito numa seção errada encontrados em cada uma das atividades
pelo usuário. 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-


pância será utilizado. Este termo refere-
se a um suposto defeito encontrado. No
nosso contexto, uma discrepância poderá
ser considerada um defeito de fato ou um
chamado falso positivo. Figura 1. Inspeções de Software nos Diferentes Artefatos. Adaptado de (ACKERMAN et al., 1989)
Para obter uma classificação para os
defeitos encontrados nas revisões (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 transformação de
artefatos ao longo do desenvolvimento
de software.
Um padrão IEEE (IEEE 830, 1998), que
recomenda práticas para especificação
de requisitos de software, define atribu-
tos de qualidade que um documento de
requisitos deve possuir. Foi considerado Figura 2. Distribuição do retrabalho pelas atividades de desenvolvimento de
que a falta de qualquer um destes atribu- software. Adaptado de (WHEELER et al., 1996).

Edição 01 – Engenharia de Software Magazine 69


Assim, um dos maiores benefícios de quando inspeções são aplicadas, quando que deixa explícita a sua contribuição
se utilizar inspeções de software é a comparado ao desenvolvimento sem uti- para a melhoria da qualidade.
detecção de defeitos nas fases iniciais lizar inspeções, se encontra na Figura 4. Uma outra maneira de detectar defeitos
do processo de desenvolvimento de Esta estimativa representa bem os benefí- em artefatos é através da aplicação de
software, facilitando a correção destes cios apresentados nesta seção. É possível testes. No entanto, a aplicação de testes
defeitos com menor esforço e custo. Desta observar que utilizando inspeções se descobre apenas sintomas de problemas e,
forma, de acordo com (JONES, 1991), o obtém um aumento na produtividade, desta forma, pode ocasionar um trabalho
esforço com retrabalho é reduzido em já que projetos são concluídos em menos refinado e custoso para detectar o defeito
média para 10% a 20% do esforço total tempo e envolvem menos gastos. que causou o sintoma. BOEHM e BASILI
de desenvolvimento. Esta redução no (2001) ressaltam ainda que inspeções 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 redução de esforço é requisitos funcionais e não funcionais Portanto, é interessante aplicar tanto
gerada pela melhoria de (1) maturidade que têm sido explicitamente declarados, inspeções quanto testes para detectar
de processos de software, (2) arquitetu- (2) padrões de desenvolvimento que te- defeitos em artefatos de software.
ras de software e (3) gerência de riscos é nham sido claramente documentados e Além disto, precedendo os testes com as
proveniente da redução do retrabalho. (3) características implicitamente espera- inspeções, defeitos podem ser removidos
Resultados experimentais mostram como das de todo software a ser desenvolvido. nas fases iniciais do processo de desen-
este benefício pode afetar as variáveis De forma resumida, qualidade consiste volvimento e os desenvolvedores terão
esforço, produtividade, tempo e custo, de um conjunto de requisitos e de um uma visão mais ampla da complexidade
mencionadas na seção anterior: produto ou serviço que esteja em confor- do sistema. Esta visão os deixa mais bem
• Esforço. O departamento de desenvol- midade com estes requisitos e, por esta preparados para o momento em que se
vimento da Ericsson em Oslo, Noruega, razão, atenda completamente às neces- confrontam com esta complexidade e com
calculou uma redução bruta do esforço 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 inspeções. Além disto, resultados qualidade de software se encontram:
de estudos mostram que a introdução • Revisões de software; Outros Benefícios
de inspeções de projeto pode reduzir o • Testes; A aplicação de inspeções de forma bem
esforço com retrabalho em 44%. • Padrões e procedimentos formais; planejada pode trazer diversos outros
• Produtividade. De acordo com (GILB • Controle de mudanças; benefícios:
e GRAHAM, 1993), inspeções aumentam • Métricas de software; • Aprendizado. Inspetores experientes
a produtividade de 30% a 50%; • Procedimentos para coleção e disse- podem tentar detectar padrões de como
• Tempo. De acordo com (GILB e minação de informações. os defeitos ocorrem e definir diretrizes
GRAHAM, 1993), inspeções reduzem o que ajudem na detecção destes. Além
tempo de desenvolvimento de 10% a 30%; A importância das revisões na garantia disto, bons padrões de desenvolvimento
• Custo. Resultados de estudos mostram da qualidade é destacada pelo modelo podem ser observados durante a inspe-
que a introdução de inspeções de código CMMI, que exige a realização de revi- ção, sendo possível sua descrição como
pode reduzir os custos de implementação sões como uma prática específica do melhores práticas para a organização.
de projetos em 39%. processo de verificação. Sabe-se ainda • Integração entre processos de detecção
que inspeções de software, em particular, e de prevenção 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 contingência que

Figura 4. Estimativa dos gastos de desenvolvimento utilizando e não


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

70 Engenharia de Software Magazine – Introdução à Inspeção de Software


Verific ação, Validação e Teste

evitem a sua ocorrência. inspeção continue no próximo dia. SAUER et al., (2000) propuseram uma
• Produtos mais inteligíveis. Os auto- • Retrabalho. O autor corrige os defeitos reorganização do processo tradicional
res dos diversos artefatos, sabendo que encontrados pelos inspetores e confirma- de inspeção. Essa reorganização visa
estes serão inspecionados, passarão a dos pelo moderador. a adequação do processo tradicional a
produzir artefatos de uma forma que sua • Continuação. O material corrigido inspeções com reuniões assíncronas e
compreensão seja facilitada. A produção pelos autores é repassado para o mode- equipes geograficamente distribuídas.
de artefatos mais inteligíveis, além de rador, que faz uma análise da inspeção Assim, mudanças para reduzir o custo e o
facilitar a inspeção, trará benefícios para como um todo e re-avalia a qualidade do tempo total para a realização deste tipo de
as fases seguintes do processo de desen- artefato inspecionado. Ele tem a liberda- inspeção foram introduzidas. Este projeto
volvimento, incluindo principalmente a de de decidir se uma nova inspeção deve alternativo para inspeções de software
fase de manutenção. ocorrer ou não. mantém a estrutura rígida 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 é possível lacionam no processo de inspeção está atividades de preparação e de reunião do
fazer ajustes no processo para evitar a ocor- ilustrada na Figura 5. Note que a ativi- processo tradicional por três novas ativi-
rência de defeitos deste mesmo tipo. dade de apresentação, opcional, não está dades seqüenciais: detecção de defeitos,
representada na figura. coleção de defeitos e discriminação de
O Processo de Inspeção de Software Entre as características 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 inspeção de software, os artefatos produzidos ao longo do • Detecção de Defeitos. Cada um dos
uma forma detalhada de se realizar uma processo de desenvolvimento, permi- inspetores selecionados pelo moderador
revisão. Neste processo, existem seis tindo a utilização de técnicas de leitura no planejamento realizará uma atividade
atividades principais: de artefatos específicos na atividade de de detecção de defeitos. A principal tarefa
• Planejamento. Um usuário, desem- preparação individual. Além disto, ele desta atividade consiste em buscar defeitos
penhando o papel de moderador da possui uma estrutura rígida, com aspec- no documento a ser inspecionado e assim
inspeção, define o contexto da inspeção tos colaborativos, onde papéis, atividades produzir uma lista de discrepâncias.
(descrição da inspeção, técnica a ser utili- e os relacionamentos entre atividades • Coleção de Defeitos. O moderador
zada na detecção de defeitos, documento estão bem definidos. agrupa as listas de discrepâncias dos ins-
a ser inspecionado, autor do documento, petores. Esta atividade envolve eliminar
entre outros), seleciona os inspetores e A Reorganização do Processo discrepâncias repetidas (encontradas por
distribui o material a ser inspecionado. de Inspeção mais de um inspetor), mantendo só um
• Apresentação. Os autores dos artefatos Baseados em diversos estudos expe- registro para cada discrepância.
a serem inspecionados apresentam as rimentais sobre inspeções de software • Discriminação de Defeitos. O modera-
características destes. Esta fase pode ser
omitida se os inspetores possuem conhe-
cimento sobre o projeto e os artefatos que
devem ser inspecionados.
• Preparação. Os inspetores estudam
os artefatos individualmente, e even-
tualmente fazem anotações sobre estes
produzindo uma lista de discrepâncias.
O fornecimento de técnicas de leitura
pode facilitar a execução desta tarefa.
• Reunião. Uma reunião em equipe
ocorre, envolvendo o moderador, os
inspetores e os autores do documento.
Discrepâncias são discutidas, e classi-
ficadas como defeito ou falso positivos.
A decisão final sobre a classificação de
uma discrepância sendo discutida é
do moderador. A solução dos defeitos
não é discutida durante a reunião, que
não deve exceder duas horas, uma vez
que após este tempo a concentração e
a capacidade de análise dos inspetores
costuma reduzir drasticamente. No caso
em que uma reunião precisar de mais de
duas horas, é sugerido que o trabalho de Figura 5. Processo de inspeção de software, conforme definido em (adaptado de FAGAN, 1976).

Edição 01 – Engenharia de Software Magazine 71


dor, o autor do documento e os inspetores de coordenação, afinal discrepâncias avaliado em estudos experimentais e se
discutem as discrepâncias de forma encontradas por mais de um inspetor mostrado adequado.
assíncrona. Durante esta discussão, al- são encaminhadas diretamente para a No entanto, muito deste conhecimento
gumas discrepâncias serão classificadas atividade de retrabalho e as discrepâncias não tem sido utilizado na prática por or-
como falso positivo e outras como defeito. encontradas por apenas um inspetor não ganizações de software ao realizarem suas
Os falso positivos serão descartados e os precisam ser discutidas necessariamente inspeções, e é negligenciado na maioria
defeitos serão registrados em uma lista por todos os inspetores. das propostas de apoio ferramental ao
de defeitos, que então será passada para o processo de inspeção de software.
autor para que a correção possa ocorrer. Estado Atual: Prática de Revisões Esta seção apresenta o estado da prática
em Organizações de Software e de revisões de software e o ferramental
A forma como as atividades se rela- Suporte Ferramental Existente de apoio atualmente existente.
cionam na reorganização do processo Ao longo dos anos, muito conhecimento
de inspeção de SAUER et al. (2000) está tem sido produzido na área de inspeções de Prática de Revisões em Organizações
ilustrada na Figura 6. software. Incluindo variantes do processo de Software
Este processo permite a utilização de tradicional de inspeção, técnicas de estima- Em um artigo comparando as diversas
um número grande de inspetores em pa- tiva do número de defeitos de documentos abordagens sobre inspeções de software
ralelo para a detecção de defeitos e, assim, e da cobertura de inspeções, técnicas de encontradas na literatura, LAITENBER-
aumentar a probabilidade de se encontrar leitura de documentos visando aumentar GER e DEBAUD (2000) mostraram que,
defeitos difíceis de serem encontrados. Um o número de defeitos encontrados por ins- conforme representado na Figura 7, ins-
grande número de inspetores tem um efei- petores, diretrizes para pontos de tomada peções em código são as mais comuns.
to no custo, mas não no tempo de detecção de decisão do processo de inspeção, dentre No entanto, sabe-se que os benefícios de
de defeitos e não implicará em problemas outras. Parte deste conhecimento tem sido inspeções são maiores para os artefatos
produzidos no início do ciclo de desen-
volvimento. É importante destacar aqui
que estas informações podem não refletir
o estado atual de desenvolvimento de
software, estamos em 2008.
Um survey foi realizado em 2002 visan-
do avaliar o estado da prática de revisões
de software (CIOLKOWSKI et al., 2003).
De acordo com seus resultados, embora
muitas organizações de software reali-
zem revisões, a forma como as revisões
são realizadas ainda é pouco sistema-
tizada, pouco conhecimento da área
de inspeções de software é utilizado e
assim o verdadeiro potencial das revisões
raramente é explorado. Este argumento
é baseado em três observações sobre as
organizações participantes do survey:
• (1) Revisões raramente cobrem siste-
maticamente as fases de desenvolvimento
de software. Cerca de 40% das organiza-
ções responderam realizar inspeções em
Figura 6. Reorganização do processo de inspeção, adaptada de (SAUER et al., 2000).

Figura 7. Distribuição do Uso de Inspeção nos Diferentes Artefatos. Adaptado de Figura 8. Cobertura de defeitos estimada para as organizações
(LAITENBERGER e DEBAUD, 2000). participantes do survey. Adaptado de (CIOLKOWSKI et al., 2003).

72 Engenharia de Software Magazine – Introdução à Inspeção de Software


Verific ação, Validação e Teste

requisitos e 30% inspeções em código. não fornece apoio a técnicas específicas das técnicas ad-hoc e de checklists. Na
• (2) Muitas vezes a atividade de detecção de detecção de defeitos, apenas ad-hoc. reunião de inspeção desta proposta as
de defeitos não é realizada sistematica- Uma taxonomia é fornecida junto com o discrepâncias encontradas na detecção
mente. Cerca de 60% das organizações artefato a ser inspecionado. Os elementos de defeitos são tratadas como tópicos
responderam não conduzir uma atividade desta taxonomia representam, de forma de discussão, onde mensagens podem
de detecção de defeitos regularmente. hierárquica, os tópicos abordados no arte- ser acrescentadas e o moderador pode
• (3) Organizações raramente utilizam fato a ser inspecionado. As discrepâncias realizar a classificação das discrepâncias
revisões de software no contexto de um dos inspetores são então agrupadas de como defeito ou falso positivo. IBIS não
programa sistemático de avaliação e acordo com os elementos da taxonomia. fornece apoio aos pontos de tomada de
melhoria do processo. Mais da metade Assim, uma discrepância na descrição do decisão do processo de inspeção, sendo as
das empresas participantes do survey caso de uso Mantendo Usuário poderia ser atividades de planejamento e de continu-
respondeu não coletar dados (40%) ou co- adicionada utilizando a seguinte navega- ação do processo tratadas como simples
letar dados e não os utilizar para realizar ção pela taxonomia: Requisitos Funcionais cadastros, sem apoio para a realização
uma análise (18%). > Casos de Uso > Mantendo Usuário > de suas tarefas. IBIS tem sido utilizada
Descrição. Os artefatos em si são lidos na em estudos experimentais recentes para
A utilização pouco sistematizada de ferramenta mais conveniente ao inspetor. obter conhecimento na área de inspeções
revisões na prática tem sido um fator de Desta forma, GRIP é capaz de lidar com de software e para avaliar aspectos da
confusão entre os resultados esperados diferentes tipos de artefato, bastando que reorganização do processo de inspeção. A
e os obtidos através de sua aplicação. 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 reunião de discrepâncias na atividade de detecção
estimada das revisões realizadas pelas GRIP fornece apoio para a classificação de defeitos utilizando um checklist.
organizações participantes do survey. das discrepâncias que de acordo com um • ISPIS (KALINOWSKI e TRAVASSOS,
Visando apoiar a realização de revisões estudo experimental, mostrou reduzir o 2004). Esta ferramenta também visa
na prática de forma mais sistemática esforço da reunião e apoiar a classificação apoiar a reorganização do processo de
foram elaboradas propostas de apoio fer- correta de discrepâncias; inspeção 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 sessão seguinte. a web em conjunto com notificações por zando uma metodologia experimental,
e-mail para apoiar inspeções assíncronas levando em consideração conhecimento a
Ferramentas de Apoio ao Processo de com equipes geograficamente distribu- respeito de inspeções de software selecio-
Inspeção ídas. IBIS visa explicitamente apoiar a nado criteriosamente, dando preferência
Entre as ferramentas que apóiam a reorganização do processo de inspeção a conhecimento efetivamente avaliado.
coordenação e as diversas atividades proposta em SAUER et al. (2000) e permi- ISPIS é a única ferramenta que possibilita
do processo de inspeção que tem sido tir a sua realização de forma sistematiza- o uso automatizado deste conhecimento
efetivamente avaliadas e utilizadas re- da. IBIS não limita o tipo de artefato a ser sem que a equipe de inspeção precise
centemente na indústria de software des- inspecionado e na detecção de defeitos adquiri-lo através de revisões bibliográ-
tacamos as seguintes: GRIP (GRoupware atualmente permite apenas a utilização 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 Inspeção de Software). Esta última
sendo tecnologia nacional desenvolvida
na COPPE/UFRJ, em processo de regis-
tro junto ao INPI. Uma descrição destas
ferramentas se encontra a seguir:
• GRIP (Grünbacher 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 inspeções
em requisitos de software. Assim, GRIP
fornece um framework e ferramentas co-
laborativas para a realização de inspeções
assíncronas com equipes geograficamente
distribuídas. GRIP fornece suporte a
um processo próprio de inspeção que
envolve quatro atividades: planejamento,
inspeção individual, reunião assíncrona, Figura 9. Apoio de IBIS ao registro de discrepâncias na atividade de detecção de
e avaliação da inspeção. A ferramenta defeitos (LANUBILE et al., 2003).

Edição 01 – Engenharia de Software Magazine 73


pontos de tomada de decisão do processo
são apoiados por resultados de técnicas
de estimativa e dados quantitativos
representando a realidade da própria
organização. ISPIS pode ser utilizada
para coordenar e apoiar a inspeção de
qualquer tipo de artefato de software
(documentos de requisitos, de projeto,
código, etc) e, opcionalmente, faz uso de
um mecanismo de integração para se co-
municar com ferramentas de detecção de
defeitos existentes para artefatos específi-
cos. Outra característica da ferramenta é
permitir reuniões de inspeção tanto sín-
cronas quanto assíncronas. As inspeções
com reuniões assíncronas se adequam ao Figura 10. Telas do apoio de ISPIS ao planejamento de uma inspeção de software (KALINOWSKI et al., 2004).
contexto de desenvolvimento global de
software. Assim, ISPIS pôde, por exem- Referências
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 distribuídos entre
Rio de Janeiro, Nova Iorque e Londres. A • KALINOWSKI, M., SPÍNOLA, R.O., TRAVASSOS, G.H., Infra-Estrutura Computacional para Apoio ao Processo de Inspeção de Software. No:
ferramenta tem ainda sido utilizada para Simpósio Brasileiro de Qualidade de Software, 2004, Brasília.
a realização de projetos na indústria. 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
inspeções de software, ISPIS resultou em Estimation with COCOMO II, Prentice Hall.
artigos científicos em conferências reno- • BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall.
madas. Sua aplicabilidade na indústria • CIOLKOWSKI, M., LAITENBERGER, O., BIFFL, S., 2003,“Software Reviews: The State of the Practice”, IEEE Software 20 (6): 46-51.
permitiu ainda publicações 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 experiência. A Figura 10 • GILB, T., GRAHAM, D., 1993,“Software Inspection”, Addison-Wesley.
ilustra algumas telas do apoio de ISPIS à
• Grünbacher, 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.
Conclusão
O objetivo de inspeções 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 através de sua análise, 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 próxima 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 aplicação • PRESSMAN, R.S., 2001, Software Engineering: A Practitioner´s Approach, Fifth Edition, McGraw Hill.
de inspeções 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.
benefícios para organizações de software.
• WHEELER, D.A., BRYKEZYNSKI, B., MEESON, R.N., 1996, Software Inspections: An Industry Best Practice, IEEE Computer Society.
O processo de inspeção foi inicialmente
elaborado por FAGAN (1976). Argumen-
tos da literatura e estudos experimen-
tais, visando avaliar este processo, vêm sistematizada e pouco conhecimento COPPE/UFRJ. no contexto da disserta-
indicando reuniões assíncronas para da área de inspeções de software é uti- ção de mestrado do Marcos Kalinowski
inspeções de software. Tendo em vista lizado. Assim o verdadeiro potencial (um dos autores deste artigo).
as inspeções com reuniões assíncronas das revisões raramente é explorado,
SAUER et al., (2000), baseados em estudos introduzindo um fator de confusão entre Reconhecimento
experimentais, apresentam uma reorga- os resultados esperados pelas revisões e Aos pesquisadores Forrest Shull, Gui-
nização com mudanças para reduzir o os obtidos na prática. Visando endereçar lherme Horta Travassos e Jeffrey Carver
custo e o tempo total da realização deste este problema e permitir a realização de por suas contribuições acadêmicas para
tipo particular de inspeção. inspeções mais sistemáticas algumas a área de inspeções de software, fun-
Atualmente muitas organizações re- propostas de apoio ferramental surgi- damentais para a elaboração da tese de
alizam revisões, mas a forma como as ram. Entre estas propostas destacamos mestrado que, entre outros, reúne os co-
revisões são realizadas ainda é pouco a infra-estrutura ISPIS, desenvolvida na nhecimentos discorridos neste artigo.

74 Engenharia de Software Magazine – Introdução à Inspeção de Software

Anda mungkin juga menyukai