You are on page 1of 61

Rodrigo Oliveira Spnola

rodrigo.devmedia@gmail.com
Doutor e Mestre em Engenharia de Software pela COPPE/UFRJ. Realizou seu Ps-Doutorado na
University of Maryland Baltimore County e Centro Fraunhofer nos Estados Unidos. Atualmente
Professor Titular do Programa de Ps-Graduao em Sistemas e Computao da Universidade
Salvador - UNIFACS.

Marco Antnio Pereira Arajo


maraujo@devmedia.com.br
66 Edio - 2014
Doutor e Mestre em Engenharia de Sistemas e Computao pela COPPE/UFRJ, Especialista em
Corpo Editorial Mtodos Estatsticos Computacionais e Bacharel em Matemtica com Habilitao em Infor-
mtica pela UFJF.
Editor
Rodrigo Oliveira Spnola Eduardo Oliveira Spnola
Colaboradores eduspinola@gmail.com
Marco Antnio Pereira Arajo Colaborador das revistas Engenharia de Software Magazine, Java Magazine e SQL Magazine.
Eduardo Oliveira Spnola bacharel em Cincia da Computao pela Universidade Salvador (UNIFACS).
Nicolli Souza Rios

Consultor Tcnico
Daniella Costa Nicolli Souza Rios
nicolli.devmedia@gmail.com
Jornalista Responsvel Formanda em Cincia da Computao na Universidade Salvador (UNIFACS), Gerente de Projetos da
Kaline Dolabella - JP24185 COMMIT Empresa Jnior de Computao da UNIFACS e Estagiria de Desenvolvimento de Software
Na Web na BAHIAGS. Faz parte do grupo de pesquisa em Engenharia de Software do Programa de Ps-
http://www.devmedia.com.br/revista-engenharia-de-software-magazine Graduao em Sistemas e Computao da UNIFACS.

Atendimento ao Leitor Fale com o Editor!


A DevMedia conta com um departamento exclusivo para o atendimento ao leitor. muito importante para a equipe saber o que voc est achando da revista: que tipo de artigo voc

Se voc tiver algum problema no recebimento do seu exemplar ou precisar de algum gostaria de ler, que artigo voc mais gostou e qual artigo voc menos gostou. Fique a vontade para

esclarecimento sobre assinaturas, exemplares anteriores, endereo de bancas de entrar em contato com os editores e dar a sua sugesto!

jornal, entre outros, entre em contato com: Se voc estiver interessado em publicar um artigo na revista ou no site ES Magazine,
entre em contato com os editores, informando o ttulo e mini-resumo do tema que voc gostaria
www.devmedia.com.br/central
(21) 3382-5038 de publicar.

Publicidade
Para informaes sobre veiculao de anncio na revista ou no site entre em
contato com:
publicidade@devmedia.com.br
Contedo sobre Agilidade, Artigo no estilo Prtico

06 Desenvolvimento gil: anlise sobre requisitos tradicionais


[ Mauricio M. O. Matos, Nicolli Souza Rios Alves e Rodrigo Oliveira Spnola ]
Sumrio
Contedo sobre Agilidade

14 Scrum backlog: requisitos no funcionais


[ Srgio Salles Galvo Neto ]

Artigo no estilo Prtico

23 IFPUG SNAP: medindo requisitos no funcionais


[ Thiago Chierici Cunha ]

Contedo sobre Boas prticas, Artigo no estilo Curso

29 Use Case Point : estimativas de projeto Parte 1


[ Anderson Pinheiro Balbo, Wilson Vendramel e Maria Beatriz Felgar de Toledo ]

Contedo sobre Boas prticas, Artigo no estilo Curso

40 Desvendando o Gerenciamento de Projetos Parte 3


[ Ary dos Santos Rocha Jnior ]
Feedback
eu
s
D

Contedo sobre Engenharia, Contedo sobre Boas Prticas

44 Trabalhando com Engenharia de Requisitos sobre e


[ Elaine G.M de Figueiredo ]
s
ta
edio

Contedo sobre Engenharia, Artigo no estilo Mentoring D seu feedback sobre esta edio!
49 Especificando casos de uso eficazes
[ Rodrigo Oliveira Spnola ] A Engenharia de Software Magazine tem que ser
feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha
Contedo sobre Boas prticas
da revista!
www.devmedia.com.br/esmag/feedback
52 Gesto de Regras de Negcios
[ Marco Ikuro Hisatomi, Anderson de Souza Ges e Rodolfo Mirando de Barros ]
Edio 05 - Engenharia de Software Magazine 5
Agilidade

Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.

Desenvolvimento gil: anlise sobre


requisitos tradicionais
Entenda os benefcios e dificuldades das abordagens tradicionais e geis

Fique por dentro:


A especificao dos requisitos uma etapa
crucial no processo de criao de um software.
Diferentes abordagens surgiram com o objetivo
de realizar esta etapa, porm, o diferencial est
nos princpios que cada uma aplica em seus
processos. Este artigo apresenta a realizao de

A
Mauricio M. O. Matos especificao de requisitos um estudo de caso com objetivo de investigar
matos_mauricio@hotmail.com
Formado em Cincia da Computao pela pode ser, em muitos casos, um na prtica as vantagens e desvantagens da es-
Universidade Salvador - UNIFACS. J atuou problema complexo, principal- pecificao de requisitos entre as metodologias
na rea de Testes/Qualidade e atualmente mente quando o analista de requisitos geis e tradicionais. O estudo foi iniciado a par-
exerce a funo de Analista de Requisitos no tem domnio sobre o negcio do tir da elaborao de dois tipos de documento
na Softwell Solutions
cliente. Compreender a natureza do de requisitos de software, um proveniente da
problema pode ser muito difcil, espe- metodologia de especificao gil e o outro da
cialmente se o sistema for novo. Em tradicional. Os requisitos definidos esto no
Nicolli Souza Rios Alves decorrncia disso, surgiu a engenharia contexto de um sistema escolar hipottico, um
nicolli.devmedia@gmail.com de requisitos que pode ser definida como cadastro de usurios e uma emisso de relat-
Bacharel em Cincia da Computao na o termo usado para descrever as ativida- rio de usurios.
Universidade Salvador (UNIFACS), Mes-
des relacionadas produo e gerncia
tranda em Sistemas e Computao no
Programa de Ps-Graduao em Siste- de requisitos. Este artigo abordar, sob
mas e Computao da UNIFACS na linha diferentes perspectivas e metodologias, tradicional realizada a partir de casos de
de Engenharia de Software. editora da as atividades do processo de produo uso, e a gil que utiliza estrias de usu-
Engenharia de Software Magazine. dos requisitos com foco em especificao rios como documento de requisitos.
de requisitos. Tais abordagens diferem em certos
Os requisitos funcionais de um sistema aspectos na especificao. A anlise
Rodrigo Oliveira Spnola descrevem as funcionalidades ou os destas diferenas importante para
rodrigo.devmedia@gmail.com
Editor Chefe Engenharia de Software servios que se espera do sistema. Para saber quando cada abordagem a mais
Magazine registrar estes requisitos, so utilizados indicada para solucionar o problema
diferentes tipos de abordagens, sendo a do cliente.

6 Engenharia de Software Magazine - Desenvolvimento gil: anlise sobre requisitos tradicionais


agilidade

Neste artigo, sero investigadas as vantagens e desvantagens Como de caracterstica dos MAs, o Manifesto gil tem um
de se trabalhar com ambas as metodologias de especificao enfoque muito maior em interao com o cliente do que com o
de requisitos, na perspectiva do analista de requisitos e do cumprimento metdico de processos. Partindo deste princpio,
desenvolvedor. Para realizar esta avaliao, um estudo de caso passaram a valorizar:
foi planejado e foram elaboradas dois tipos de documentao: Indivduos e interaes mais que processos e ferramentas;
uma considerando a metodologia gil e outra a tradicional. Software em funcionamento mais que documentao
Aps isto, estas documentaes foram entregues a quatro de- abrangente;
senvolvedores para realizarem suas funes e, ao fim, respon- Colaborao com o cliente mais que negociao de
derem um questionrio a respeito das dificuldades e benefcios contratos;
encontrados no uso de cada tipo de especificao. Responder a mudanas mais que seguir um plano.

Metodologias de especificao de requisitos MAs tm foco na interatividade dos envolvidos e em respos-
Um processo de engenharia de requisitos um conjunto tas rpidas como forma de atender os requisitos do usurio.
estruturado de atividades a serem seguidas para criar, va- A abordagem de requisitos em MAs pode permitir bons resul-
lidar e manter um documento de requisitos [2]. O processo tados a partir de sua combinao com aspectos favorveis do
de produo do documento de requisitos constitudo pelas contexto. Entretanto, isto pode requerer, por exemplo, que a
atividades de levantamento de requisitos, registro, validao ER seja adaptada principalmente devido ao fato de que essas
e verificao como demonstrado na Figura 1. metodologias abdicam, em parte, de documentos e controle
de artefatos muito presentes neste processo.
Produzir, manter e rastrear documentao de requisitos exige
um esforo que na viso gil pode comprometer a entrega do
software funcionando. MA precisa de processos rpidos, defi-
nidos, que sejam curtos, quando se tratando da documentao
gerada no diferente. Esta deve conter o necessrio para guiar
o tema da discusso entre o desenvolvedor e o cliente, de onde
sair todos os detalhes necessrios para a implementao do
requisito.
User Stories um dos modelos de especificao de requi-
sitos indicados para MAs. Uma User Story (US) descreve
uma funcionalidade que valiosa para o cliente ou usurio
do sistema. Este modelo de especificao composto pelas
Figura 1. Engenharia de Requisitos [2] seguintes caractersticas:
A descrio da estria usada para servir de planejamento
Este processo foi evoluindo utilizando-se as boas prticas de e lembrete, como demonstrado na Figura 2;
engenharia de requisitos. Porm, fatores como a rpida evolu- necessrio discutir sobre a estria para se esclarecer quais-
o tecnolgica, presso para o sistema entrar no mercado e quer detalhes;
mudanas cada vez mais frequentes no ambiente de negcio Testes e anotaes so inseridos na estria para que auxiliem
do cliente esto desafiando as abordagens da ER. no desenvolvimento de regras e detalhes que a funciona-
Os mtodos geis surgiram com o objetivo de suprir estas lidade deve possuir. A estria estar concluda a partir do
necessidades, onde o objetivo principal da abordagem ga- momento que o sistema passar por todos os testes e contenha
rantir a entrega do sistema em um menor prazo, com maior as anotaes.
qualidade e satisfazendo as necessidades do cliente.

Metodologia gil
As exigncias do mercado mudaram e com isso, a engenharia
de requisitos teve que se adequar a elas. Os mtodos geis
(MAs) alteraram o processo da ER tradicional e o adaptou para
seus interesses. Tradicionalmente, ER fortemente baseada em
documentao para compartilhar conhecimento, enquanto que Figura 2. Um exemplo de descrio de uma User Story
MAs so focados em colaborao face a face entre desenvolve-
dores e clientes para garantir objetivos similares. Para se criar uma boa US necessrio que esta seja caracte-
Para estabelecer um modelo de boas prticas, um grupo de rizada por seis atributos:
profissionais especialistas na rea criou um padro para as Independente;
metodologias geis, chamado Manifesto gil, em que centra- Negocivel;
lizaram princpios baseados em diversos mtodos existentes. Valiosa para o cliente ou usurio;

Edio 66 - Engenharia de Software Magazine 7


Estimvel; atividades que necessitam ser cumpridas com certa ordem para
Pequena; que o processo como um todo funcione. Alguns dos principais
Testvel. objetivos da ER so:
Estabelecer uma viso comum entre o cliente e a equipe de
Dependncias entre US podem causar transtornos no mo- projeto em relao aos requisitos que sero atendidos pelo
mento do desenvolvimento do sistema. Por exemplo, o cliente projeto de software;
definiu que uma US prioridade mxima, mas para inici-la Registrar e acompanhar requisitos ao longo de todo o pro-
necessrio terminar outra de prioridade inferior. cesso de desenvolvimento;
As USs precisam ser negociveis, uma vez que elas so apenas Documentar e controlar os requisitos alocados para esta-
lembretes da funcionalidade desejada pelo cliente/usurio. belecer uma baseline para uso gerencial e da Engenharia de
Caso haja alguma observao muito importante que dever Software;
ser lembrada no momento da codificao, o cliente/usurio Manter planos, artefatos e atividades de software consisten-
poder adicionar notas US. Sempre tomando cuidado para tes com os requisitos alocados.
no exagerar nos detalhes, em muitos casos, especificar deta-
lhes muito cedo s cria mais trabalho. A Figura 3 mostra um A especificao de requisitos comumente utilizada nesta
exemplo de US com anotao. metodologia so os Casos de Uso (UC do ingls Use Case).
Um UC uma sequncia de interaes entre o ator, algum ou
algo que interage com o sistema, e este, que acontece de forma
atmica na perspectiva do ator.
Por ser um documento que ser entregue e validado pelo
cliente, que nem sempre da rea de TI, um UC descrito de
forma que o cliente entenda a funcionalidade do sistema sem
necessidade de explicar tecnicamente como ocorre operao.
Na Tabela 1 tem-se um conjunto de definies que so im-
Figura 3. Um exemplo de anotao em uma User Story portantes em um caso de uso.

Uma boa prtica deixar que o cliente/usurio escreva as Estudo de Caso


estrias, podendo ter um auxlio do desenvolvedor para isso. Esse estudo tem como objetivo analisar as metodologias de
Assim, as USs sempre sero de valor para os interessados. especificao de requisitos gil e tradicional, com o propsito
importante tambm que as USs sejam estimveis. Para isso, de definir as vantagens e desvantagens de cada abordagem,
necessrio que o desenvolvedor possua os conhecimentos com respeito aplicao destes conceitos no desenvolvimento
tcnicos, do negcio e que as USs possuam tamanhos ideais de software, do ponto de vista de quatro desenvolvedores
(estrias muito grandes so difceis de estimar). e um analista de requisitos no contexto da elaborao da
Uma US no pode ser muito grande, pois no possvel elabo- documentao e desenvolvimento das funcionalidades a
rar um planejamento concreto baseando-se nela. Nestes casos, partir das documentaes fornecidas, especficas de cada
necessrio desagreg-las em USs menores e consistentes. abordagem.
Por fim, uma US precisa ser testvel. Os testes servem para Alm disso, para este estudo de caso foram elaborados
o desenvolvedor saber quando a implementao da estria foi alguns instrumentos definidos no cenrio de um sistema de
concluda. Se ela passar em todos os seus testes, significa que informao. Para isso, foram considerados dois requisitos: um
foi desenvolvida com sucesso. Os testes podem ser escritos no de cadastro bsico de usurio e outro de emisso de relatrios.
verso do carto como demonstrado na Figura 4. Para cada um dos requisitos, foram definidos os casos de uso
e estrias do usurio correspondentes:
Caso de Uso do cadastro de usurios (ver Tabela 2): Este caso
de uso define como as operaes de incluso, alterao, exclu-
so e consulta de usurios so efetuadas no sistema. Note que
para isso temos um fluxo principal representando a operao
de consulta. Em complemento, foram definidos seis fluxos
alternativos para funcionalidades auxiliares, como cancela-
Figura 4. Verso de um carto, demonstrando os testes da US mento de uma operao e outros para as funcionalidades de
incluso, alterao e excluso de usurios. Alm disso, foram
Metodologia tradicional definidas trs regras de negcio.
Ao contrrio da metodologia gil de ER, a tradicionalmente Observe tambm que cada fluxo alternativo foi definido no
aplicada permite um controle maior do andamento do proje- momento em que ele pode ser utilizado durante a interao do
to, produzindo documentaes gerenciais e de especificao ator com o sistema. De forma semelhante, as referncias s re-
muito mais detalhadas e consistentes. Alm de uma srie de gras de negcio foram definidas. Por fim, foi definido tambm

8 Engenharia de Software Magazine - Desenvolvimento gil: anlise sobre requisitos tradicionais


agilidade

Objetivo: Contm uma breve descrio do objetivo do caso de uso.


Requisitos: Neste campo indicamos a qual requisito funcional o caso de uso em questo est associado.
Atores: Neste campo definimos a lista de atores associados ao caso de uso. Ator qualquer entidade externa que interage com o sistema (neste caso, com o caso de uso em questo).
Prioridade: Informao identificada junto ao usurio que auxilia na definio dos casos de uso que sero contemplados em cada iterao do desenvolvimento do software.
Pr-condies: Neste campo devemos informar as condies que devem ser atendidas para que o caso de uso possa ser executado.
Frequncia de uso: Informao identificada junto ao usurio que auxilia na definio dos casos de uso que sero contemplados em cada iterao do desenvolvimento do software.
Criticalidade: Informao identificada junto ao usurio que auxilia na definio dos casos de uso que sero contemplados em cada iterao do desenvolvimento do software.
Condio de
Neste campo definimos qual ao do ator dar incio interao com o caso de uso em questo.
Entrada:
Fluxo Principal: Esta uma das sees principais do caso de uso. onde descrevemos os passos entre o ator e o sistema. O fluxo principal o cenrio que maisacontece no caso de uso e/ou o mais importante.
Fluxo alternativo o caminho alternativo tomado pelo caso de uso a partir do fluxo principal, ou seja, dada uma condio de negcio o caso de uso seguir por outro cenrio que no
Fluxo Alternativo:
o principal caso essa condio seja verdadeira.
Extenses: Nesta seo colocamos todos os casos de uso que estendem o caso de uso base e em quais pontos eles so chamados dentro dos fluxos de eventos.
Ps-condies: Neste campo devemos informar o estado em que o sistema (ou entidade manipulada no caso de uso) estar depois que o caso de uso for executado.
Regras de negcio: Nesta seo descrevemos todas as regras funcionais que o caso de uso deve cumprir durante sua execuo.
Tabela 1. Definies importantes de um Caso de Uso

Objetivo Permitir a incluso, alterao, excluso e consulta de usurios.


Requisitos O software deve permitir o gerenciamento de usurios.
Professor-Administrador
Atores Professor
Aluno
Prioridade Alta
Pr-condies No se aplica
Frequncia de uso Eventual
Criticidade Mdia
Condio de entrada O ator seleciona a opo de gerenciar usurios.
1. O sistema apresenta o formulrio no registro do usurio logado
2. O ator consulta os dados no formulrio, que contm as seguintes informaes e funcionalidades:
#Nome (Campo texto. Indica o nome do usurio do sistema)
#Login (Campo texto. Indica o Login para acesso ao sistema)
#Senha (Campo texto, com mscara de senha. Indica a senha de acesso ao sistema)
#Administrador? (Campo texto com domnio fechado, possveis valores: Sim; No. Indica se o usurio ser administrador do sistema.) [RN3]
#Perfil (Campo texto com domnio fechado, possveis valores: Professor; Aluno. Indica o perfil do usurio, ser parmetro para acesso outras funcionalidades do sistema)
E-mail (Campo texto. Indica o e-mail do usurio)
Fluxo principal
Telefone (Campo numrico, com mscara de telefone. Indica o telefone do usurio)
Opo de inserir um novo usurio [FA1] [RN1]
Opo de alterar um usurio [FA2] [FA3] [RN2]
Opo de excluir um usurio [FA4] [RN1]
Opo de cancelar ao [FA5]
Opo de buscar usurio [FA6]
Opo de emitir o relatrio de usurios [E1]
3. O caso de uso encerrado.
[FA1] O ator seleciona a opo de inserir
1. O sistema altera o modo do formulrio para incluso, apresentando os seguintes campos a serem preenchidos:
Nome
Login
Fluxo alternativo Senha
Administrador? (Valor padro: No)
Perfil (Valor padro: Aluno)
E-mail
Telefone
Tabela 2. Caso de uso de cadastro de usurios

Edio 66 - Engenharia de Software Magazine 9


um fluxo de exceo que trata o preenchimento incorreto de Caso de Uso do relatrio de usurios (ver Tabela 3): Este
campos durante o cadastro do usurio. caso de uso, mais simples que o definido na Tabela 2,
Ainda no contexto deste caso de uso, vale observar que ao final descreve como a consulta e gerao do relatrio so efe-
de cada fluxo definido explicitamente para qual passo da funcio- tuadas. Observe que basicamente temos uma tela de con-
nalidade o sistema ser direcionado (por exemplo: o caso de uso sulta seguida do relatrio gerado a partir das informaes
encerrado ou o sistema retorna ao passo X do fluxo principal). consultadas.

2. O ator preenche os campos disponibilizados


3. O ator seleciona a opo salvar [FE1]
4. O sistema retorna ao passo 2 do fluxo principal.
[FA2] O ator seleciona a opo de alterar seu registro
1. O sistema altera o modo do formulrio para alterao, habilitando apenas os seguintes campos para edio:
Nome
Login
Senha
E-mail
Telefone
2. O ator altera os campos desejados
3. O ator seleciona a opo salvar [FE1]
4. O sistema retorna ao passo 1 do fluxo principal.
[FA3] O ator seleciona a opo de alterar registro de outro usurio
1. O sistema altera o modo do formulrio para alterao, habilitando os seguintes campos para edio:
Senha
Administrador?
Perfil
2. O ator altera os campos desejados
Fluxo alternativo
3. O ator seleciona a opo salvar [FE1]
4. O sistema retorna ao passo 2 do fluxo principal.
[FA4] O ator seleciona a opo de excluir um registro
1. O sistema solicita a confirmao da excluso com as opes de confirmar e cancelar
2. O ator confirma a excluso
3. O registro removido e o sistema retorna ao passo 2 do fluxo principal.
[FA5] O ator seleciona a opo de cancelar a ao
1. O sistema solicita a confirmao do cancelamento com as opes de confirmar e cancelar
2. O ator confirma o cancelamento da ao
3. O sistema fecha o formulrio e o caso de uso encerrado.
[FA6] O ator seleciona a opo de buscar usurios
1. O sistema exibe os seguintes campos para busca
Nome
Login
Administrador?
2. O ator executa a funo de busca
3. O sistema exibe a relao de usurios de acordo com os filtros definidos
4. O ator seleciona o usurio desejado
5. O sistema retorna ao passo 2 do fluxo principal.
[FE1] Campos obrigatrios no preenchidos
Fluxo de exceo 1. O sistema emite uma mensagem de erro informando qual campo obrigatrio no foi preenchido;
2. O sistema retorna ao passo onde este fluxo de exceo foi chamado.
Extenses [E1] Caso de uso UC02 - Emitir Relatrio de Usurios.
Ps-condies Ser realizada a manuteno dos usurios.
[RN1] Apenas os professores que forem administradores tero permisso para realizar esta ao.
[RN2] Os professores administradores podero alterar seus prprios registros por inteiro, de outros usurios apenas os campos:Senha,Perfil e Administrador?. Quem no
Regras de negcio
for administrador, poder editar o seu registro parcialmente, apenas os campos:Nome,Login,E-mail e Telefone.
[RN3] Apenas professores podero ser administradores.
Continuao: Tabela 2. Caso de uso de cadastro de usurios

10 Engenharia de Software Magazine - Desenvolvimento gil: anlise sobre requisitos tradicionais


agilidade

Objetivo Permitir que os administradores emitam uma relao dos usurios cadastrados
Requisitos O software deve permitir a emisso do relatrio de usurios
Atores Professor-Administrador
Prioridade Mdia
Pr-condies No se aplica
Frequncia de uso Eventual
Criticidade Mdia
Condio de entrada O ator seleciona a opo de emitir relatrio de usurios
1. O sistema apresenta os seguintes campos para filtro do relatrio de usurios:
Perfil (Campo texto com domnio fechado, possveis valores: Aluno; Professor)
Administrador? (Campo texto com domnio fechado, possveis valores: Sim; No)
2. O ator executa a funcionalidade de emitir o relatrio [FA1] [FE1]
3. O sistema exibe o relatrio de usurios de acordo com os filtros definidos. De cada usurio sero exibidas as seguintes informaes:
Nome
Fluxo principal
Login
Administrador?
Perfil
E-mail
Telefone
4. O caso de uso encerrado.
[FA1] O ator executa a funcionalidade de emitir o relatrio sem preencher os filtros
1. O sistema exibe o relatrio de usurios com todos os usurios cadastrados. De cada usurio sero exibidas as seguintes informaes:
Nome
Login
Fluxo alternativo Administrador?
Perfil
E-mail
Telefone
2. O caso de uso encerrado
[FE1] O ator executa a funcionalidade de emitir o relatrio, mas no h usurios a serem retornados de acordo com os filtros
Fluxo de exceo 1. O sistema emite uma mensagem de erro informando que a consulta no retornou usurios
2. O sistema retorna ao passo 1 do fluxo principal
Extenses No se aplica
Ps-condies Ser exibido o relatrio de usurios
Regras de negcio No se aplica

Tabela 3. Caso de uso de relatrio de usurios

User Story do cadastro de usurios (ver Tabelas 4 e 5):


De forma semelhante ao que foi representado na Tabela 2, O sistema deve permitir a consulta, incluso, excluso e alterao de um usurio.
essa US representa a funcionalidade de cadastro de usurio. Apenas o administrador poder incluir e excluir um usurio
Oberve que ela bastante simples em termos de informaes Notas Apenas o administrador poder alterar registros alm do seu.
descritas. Por outro lado, tambm so definidas algumas Definir as permisses de acesso aos campos e registros
informaes que objetivam orientar a execuo dos testes
Tabela 4. User story cadastro de usurio Frente do Carto
para a funcionalidade (informao no presente diretamente
na especificao do caso de uso).
Note que a US apresenta apenas uma viso geral das Testar insero, alterao e excluso de usurios;
funcionalidades. Sendo assim, seus detalhes devem ser Testar como um aluno, a incluso de um novo usurio;
identificados apenas medida que as funcionalidades Testar como um administrador, a alterao do prprio registro e o de outros usurios
sejam desenvolvidas. Isso tende a causar uma necessidade (acessibilidade aos campos).
de maior aproximao entre a equipe de desenvolvimento Testar incluso ou alterao sem preencher um ou mais campos obrigatrios.
e o cliente. Tabela 5. User story cadastro de usurio Fundo do Carto

Edio 66 - Engenharia de Software Magazine 11


User Story do relatrio de usurios (ver Tabelas 6 e 7): Ao longo das entrevistas ficou claro que a dependncia
De forma semelhante, pode-se obervar que a descrio da user maior do cliente na utilizao de US como documento de
story do relatrio de usurios bastante simples: definimos requisitos. Os desenvolvedores solicitaram inmeras vezes
apenas as funcionalidades que estaro presentes, maiores de- esclarecimento das regras de negcio, restries de acesso
talhes sobre cada uma delas so definidos apenas no momento e campos. J no UC eles encontram todas as respostas no
de sua implementao. prprio documento.
Ao se tratar de Casos de Uso, os desenvolvedores, por
O sistema deve permitir a emisso do relatrio de usurios unanimidade, ficaram satisfeitos com a quantidade de
Apenas o professor administrador poder emitir os relatrios informaes e detalhes das funcionalidades e responde-
Notas
Os relatrios podero ser filtrados pelos campos perfil e administrador ram no questionrio que possvel desenvolver as fun-
Tabela 6. User story relatrio de usurios Frente do Carto cionalidades apenas com as informaes do UC. Por ser
um documento maior e detalhado, o UC gerou algumas
Testar emitir o relatrio sem definir filtros; poucas dvidas de entendimento como sinalizado pelo
Testar como um aluno, emitir o relatrio; desenvolvedor 2: Alguns smbolos especficos do docu-
Testar emitir o relatrio quando no houverem registros a serem retornados. mento podem gerar dvidas., porm, a aceitao geral
foi positiva.
Tabela 7. User story relatrio de usurios Fundo do Carto
Os desenvolvedores 1 e 3 salientaram que h um risco para
o projeto caso a discusso sobre a US seja entre o desenvol-
Para realizao da comparao das duas abordagens consi- vedor e o cliente, visto que nem sempre o desenvolvedor o
derando o estudo de caso desenvolvido, foram definidos dois profissional mais indicado para a funo. O desenvolvedor
questionrios: 1 afirmou ... o desenvolvedor muitas vezes possui dificul-
Questionrio sobre cada abordagem: os participantes apresen- dades at mesmo de comunicao e relao interpessoal.,
tam as dificuldades de entendimento do documento e sobre a o que aumenta os riscos de fracasso do projeto.
quantidade de informao/detalhe contidos no documento. Por ser um documento detalhado, o desenvolvedor 1
Questionrio comparativo das abordagens: so informadas afirma que o UC Aumenta a produtividade na etapa do
as vantagens e desvantagens encontradas na abordagem tradi- desenvolvimento.... Outro fator importante mencionado
cional utilizando casos de uso e na abordagem gil utilizando pelo desenvolvedor 4 foi a questo da validao do docu-
user story. mento feita pelo cliente indicando que h um Respaldo e
segurana sobre o que foi discutido..
Sobre a escolha dos participantes, um analista de requisitos As vantagens encontradas na metodologia gil em relao
ser selecionado para especific-los e produzir as documen- a tradicional foram:
taes. Outros quatro desenvolvedores sero escolhidos para Menor custo e tempo na elaborao de documentos;
apresentar seus pareceres referentes documentao prove- Foco no desenvolvimento;
niente das duas abordagens. Contato direto com o cliente para solucionar dvidas.

Analisando os resultados As vantagens encontradas na metodologia tradicional


Executado o estudo de caso planejado, identificou-se que o em relao a gil foram:
esforo para elaborao dos artefatos foi proporcional aos seus Documento detalhado de linguagem comum entre
tamanhos. As USs, por serem pequenas e possurem poucos usurio e desenvolvedor, o que facilita aceites e evitar
detalhes, apresentaram pouca dificuldade. Em contrapartida, futuras inconformidades entre o que foi desenvolvido e
os UCs necessitaram de esforo considerveis por possurem o que foi pedido;
diversas regras de implementao e detalhes dos requisitos. Documento completo e detalhado, suficiente para im-
A partir das entrevistas com os desenvolvedores, foi possvel plementao da funcionalidade;
tirar algumas concluses a respeito dos diferentes modelos de Documentao elaborada por analista de requisitos o
documento de requisitos. Em relao as USs, nenhum desen- que diminui a possibilidade de erros do levantamento de
volvedor expressou alguma dificuldade de entendimento da requisitos.
documentao. A falta de informao os preocupou inicial-
mente, mas aps a conversao, todas as dvidas foram escla- A partir do estudo de caso realizado foi possvel observar
recidas. O desenvolvedor 4 pontuou O documento pode ser que a metodologia gil de especificao de requisitos de
facilmente entendido, porm no h maiores detalhamentos e fato otimiza o tempo gasto com documentao quando
precisa ser discutido.... Tendo esta deficincia de informaes, comparado metodologia tradicional. O papel do analista
os desenvolvedores responderam que possvel desenvolver as de requisitos foi citado como essencial mesmo na aborda-
funcionalidades parcialmente. O desenvolver 3 pontuou ... h gem gil, a funo de especificao na entrevista fica clara
a necessidade de entrevistar o cliente para obter informaes e para isto importante que seja o profissional indicado
complementares. para a funo.

12 Engenharia de Software Magazine - Desenvolvimento gil: anlise sobre requisitos tradicionais


agilidade

Foi tambm constatado que h a necessidade de haver o a negociaes. J a abordagem tradicional exigiu mais
contato direto entre o detentor do negcio, cliente ou ana- tempo para ser executada, porm sua documentao mais
lista de requisitos, e o desenvolvedor, pois no h como completa e rica em detalhes, o que praticamente extinguiu
desenvolver as funcionalidades por completo baseando-se a necessidade do cliente estar disposio para elucidar
apenas nos US. Tendo isto em vista, aconselhvel utilizar possveis dvidas.
esta abordagem quando h uma disponibilidade plena do
cliente para transmitir as informaes. Referncias:
Apesar de envolver mais processos para chegar sua
verso final e demandar um tempo maior para ser imple- 1. Beck, K.; Beedle, M.; Van, A.; Bennekum; Cockburn, A.; Cunningham, W.;
mentada, a documentao tradicional a partir de Casos de Fowler, M.; James; Genning; Highsmith, J.; Hunt, A.; Jeffries, R.; Kern, J.;
Uso foi considerada a mais completa pelos desenvolvedo- Marik, B.; Martin, R. C.; Mellor, S.; Schwaber, K.; Sutherland, J.; Thomas, D.
res. O UC um documento de linguagem comum entre (2001) Manifesto para Desenvolvimento gil de Software.
http://agilemanifesto.org/iso/ptbr, Novembro
usurio e desenvolvedor, deste modo, possvel garantir
que certas funcionalidades foram verificadas e validadas 2. dAmorim, F. R. S. (2008), Engenharia de Requisitos para Mtodos geis.
pelo cliente.
Mesmo podendo gerar algumas dvidas na documenta- Voc gostou deste artigo?
o, com seu nvel de detalhamento, possvel entender
por completo o que a funcionalidade dever fazer e assim
D seu voto em www.devmedia.com.br/esmag/feedback
implement-la sem dificuldades.
Concluindo, a abordagem gil, de fato, se mostrou mais efi- Ajude-nos a manter a qualidade da revista!
ciente em relao ao tempo de elaborao, e mais suscetvel

Edio 66 - Engenharia de Software Magazine 13


Agilidade

Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.

Scrum backlog: requisitos no funcionais


Criando um ambiente favorvel para gerenciar melhor o Backlog

Fique por dentro:


Requisitos no funcionais nem sempre so
abordados de forma clara durante a adoo
ou uso das metodologias geis, como o Scrum.
Este artigo sugere uma forma mais ampla de

A
produo de software atravs enxergar o tratamento destes requisitos, tam-
de modelos geis de desen- bm considerados fatores crticos de sucesso
volvimento, como o Scrum, das aplicaes. Este artigo procura abordar os
popularmente adotada por empresas riscos envolvidos em no se cuidar devidamen-
e equipes de diversos tamanhos e te dos requisitos no funcionais do software e
seguimentos. de como o time Scrum deve estar estruturado
Porm, existem alguns pontos que para tratar ou evitar surpresas as quais po-
merecem uma ateno por se tratarem dem levar qualquer produto ao fracasso.
de peas fundamentais no desenvolvi-
mento de um software: os requisitos no
funcionais. Estes podem levar o software Podemos perceber que houve uma sen-
do sucesso ao fracasso. svel melhora, desde a 1 aferio em 1994
A equipe de desenvolvimento tambm at a ltima em 2012 onde, de apenas
precisa possuir um ambiente favorvel 16% de sucesso nos projetos, alcanou-
para lidar com tudo isso e, por vezes, se os 39%. Isso significa uma melhoria
pode no ter notado o que seria neces- de quase 100%. mas considerar que de
Srgio Salles Galvo Neto srio para poder alcanar um ambiente todos os projetos, apenas 39% destes so
ssallesinf@hotmail.com
Gerente de Projetos certificado PMP, ITIL,
mais produtivo e seguro. entregues conforme o planejado, torna-
Microsoft entre outras. Atuando na rea Veja os nmeros apresentados na Figu- se um fator preocupante.
de informtica desde 1992 e, a mais de ra 1 publicados no ltimo relatrio gera- Em complemento, a Tabela 1 apresenta
10 anos liderando equipes em projetos do pelo Standish Group em Maro/2013. os fatores considerados crticos para o
de desenvolvimento e implantao de Este grfico demonstra o percentual de sucesso dos projetos.
softwares. Nos ltimos cinco anos, atuando
como Scrum Master em projetos em diver-
falha, mudanas e sucesso nos projetos De acordo com os dados deste relatrio,
sas tecnologias e ramos de negcio. de desenvolvimento de software. podemos destacar os seguintes pontos:

14 Engenharia de Software Magazine - Scrum backlog: requisitos no funcionais


agilidade

A conscientizao, por parte das empresas, sobre a impor- O relatrio X est muito lento e est atrapalhando os
tncia da TI como pea fundamental no sucesso. Isso fez com usurios;
que a maior parte das empresas colocassem seus executivos O sistema cai quando atinge 1.000 usurios simultneos;
(os patrocinadores dos projetos) frente para auxiliar a TI, O sistema ficou 24 horas fora do ar devido a no possuir
oferecendo maior suporte e acompanhamento; ou no terem funcionado as devidas contingncias;
Em decorrncia desta conscientizao gerou-se um maior
envolvimento dos usurios, promovendo otimizao das Esta lista de questes so puramente requisitos no funcio-
aplicaes em pequenos projetos, com investimentos em co- nais no observados e/ou no atendidos.
nhecimento, aumentando o capital intelectual das equipes, se- Em praticamente toda a literatura associada ao uso do Scrum,
guido por uma melhor viso e entendimento mais slido sobre existe um assunto que no claramente tratado mesmo sendo
gerenciamento de projetos e a adoo de Processos geis. de extrema importncia: os requisitos no funcionais. Na es-
trutura de trabalho do Scrum, temos os papeis bem definidos:
Chaos Manifesto 2013 - The Standish Group Product Owner, Scrum Master e a equipe, que composta
Failed Challenged Successful
sempre por membros com diversos conhecimentos e habilida-
de (multidisciplinar), mas nem sempre se observa a presena
16
(ou a necessidade) de recursos detentores de conhecimentos
27 26 28
34 29
35 32 37 39
especficos, como de um arquiteto, um DBA ou um especialista
de infraestrutura, o qual domine a parte de arquitetura da
53 33 soluo implementada.
46
49
51
53 46
44
42 43
As empresas as quais adotaram ou iro adotar o Scrum pre-
cisam ter em mente a questo de que se um novo requisito no
31
40
28
funcional ou um problema grave de performance na aplicao
23 19 24 21
18 18
15
surgir, pode comprometer o sucesso do produto. Na verdade,
1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 um requisito no funcional to ou mais importante que um
requisito funcional.
Figura 1. Percentual de Falhas, Mudanas e Sucesso em projetos de TI

Fatores de sucesso Pontos Entendendo os requisitos funcionais e no funcionais


preciso entender o papel dos requisitos funcionais e no
Suporte da Gesto Executiva 20
funcionais para poder trat-los de forma correta:
Envolvimento dos Usurios 15
Funcionais: O que o produto deve fazer, que necessidades
Otimizao 15 de negcio deve atender, os cadastros, relatrios, funcionali-
Recursos Especializados 13 dades tangveis ao usurio: estes so cadastrados no Product
Experincia em Gesto de Projetos 12 Backlog e posteriormente se transformam em estrias, que
Processos geis 10 so priorizadas pelo Product Owner, entendidas e oradas
pela equipe e, durante o planejamento, transformam-se na
Objetivos Comerciais Claros 6
meta da Sprint;
Maturidade Emocional 5
No Funcionais: So aqueles no tangveis diretamente ao
Execuo 3 usurio final (Cliente), mas que determinam como e onde a
Ferramentas e Infraestrutura 1 aplicao (produto) deve funcionar, critrios de segurana e crip-
tografia, escalabilidade, disponibilidade, compatibilidade, etc.
Tabela 1. Fatores de Sucesso dos Projetos de TI

Ambos so itens do backlog, so premissas e fazem parte do


Observe que muitos desses fatores esto alinhados com as Escopo do Produto. Ento, precisamos entend-los e abord-
prticas geis de desenvolvimento. los adequadamente durante o processo de desenvolvimento
do software.
A importncia e os desafios na adoo das Desenvolver software representa diversos desafios e, cuidar
metodologias geis do produto e da equipe, sem sombra de dvidas, to ou mais
possvel verificar a importncia do entendimento e adoo importante do que todo o resto. Quando aprendemos a obser-
das metodologias geis para garantir o sucesso nos projetos de var estas variveis de forma mais clara, no apenas a equipe,
desenvolvimento de software. Nelas o foco est em entregar mas principalmente a empresa, temos uma viso e um com-
software funcionando. prometimento muito maior, pois estabelece um entendimento e
Seguindo esta linha, imaginemos uma aplicao produzi- uma comunicao mais transparente. o que podemos chamar
da com o Scrum ou outra metodologia gil. Este software de fazerem todos falarem a mesma lngua.
encontra-se em produo e em uso por usurios e num dado Para quem no sabe, segundo o prprio Project Management
momento surgem questes como: Institute (PMI.org), um Gerente de Projetos usa at 90% do seu

Edio 66 - Engenharia de Software Magazine 15


tempo em comunicao. Esta no um tema a ser abordado at que seja a referncia a um item de configurao. Sugere-
neste momento, mas muito importante lembrar que a Comu- se coloc-lo na mesma linha do requisito funcional pois,
nicao correta e clara entre todos os envolvidos essencial na maioria das vezes, um requisito no funcional pode ser
para o sucesso de qualquer projeto. criado especificamente para um requisito funcional. Pode-se
tambm serem abordados os objetos (componentes, classes,
Estruturando o produto e a equipe bibliotecas). Lembrando que a maneira a ser adotada deve ser
Um produto nasce para atender determinada necessidade de aquela que Equipe preferir ou se sentir mais confortvel. Pode
negcio e/ou administrativa. Para desenvolv-lo precisamos haver mais de um requisito no funcional para um mesmo
definir o ambiente de desenvolvimento. Mas, qual a finalidade requisito funcional. Observe o exemplo na Tabela 2 onde o
de termos esse setup? A equipe deve conhecer o produto no requisito Cadastro de Pedidos possui dois requisitos no
qual ir trabalhar e ser capaz de capacitar todos seus mem- funcionais Workflow e Acessos Simultneos;
bros quanto ao escopo deste produto e todo o arcabouo de Descrio: Uma breve descrio do requisito no funcional,
informaes, cdigos fonte, especificaes, estrias, backlogs informando seu objetivo central ou para o que ela se destina.
(onde ficam e como so acessadas). Ou seja, a equipe s pode Em uma arquitetura orientada a objetos, estes podem (e devem)
cuidar de algo o qual: ser construdos de forma mais genrica permitindo seu reuso
Ela conhea (O que faz); em diversos pontos do sistema.
Ela entenda (Por que faz);
Ela tenha a clara viso da importncia/essncia de cada Alm destas informaes, pode-se incrementar com outros
parte do produto. campos como: data de criao, data de atualizao, usar hiper-
links para levar para outro documento, ou at criar um cdigo
Ento, para cada parte, sugere-se realizar este setup identificador para cada requisito. No menos importante, pode
considerando estes dois pontos: Produto e Ambiente de ser interessante associar as estrias criadas para atender a cada
desenvolvimento. um dos requisitos.
Como outras sugestes, pode-se tambm incluir a verso, a
Sugesto do setup do produto data de entrega de cada um destes requisitos.
Para se estabelecer um produto, sugere-se criar um ponto de Devemos lembrar que um requisito no funcional pode ser
partida, uma referncia ou, ao termo mais conhecido em desen- definido globalmente, ou seja, ele est presente no software
volvimento de software que criar uma Baseline. A partir como um todo e no apenas em uma ou outra funcionalidade
da criao desta referncia, ser possvel entender melhor, no (requisito funcional) em especfico. Mesmo assim, por uma
apenas o que o produto deve fazer, mas sim como ele deve questo de visualizao e controle inicial, estes requisitos no
suportar. Para criar esta baseline, ser necessrio envolver funcionais devem ser mapeados junto com os requisitos fun-
todos, principalmente o Product Owner e o Scrum Master. cionais de forma que no sejam esquecidos durante a avaliao
Criar uma lista de requisitos funcionais e no funcionais da e o Sprint Planning.
aplicao no precisa ser uma tarefa complexa. Quanto mais
clara e objetiva ela for, melhor cumprir com seu objetivo que Critrios de classificao de demandas (issues) do
descrever sucintamente o produto. Pode-se utilizar de uma produto
simples tabela, conforme o exemplo na Tabela 2, a ser usada Temos agora uma lista de referncia, um ponto de partida
como consulta e referncia. e, assim, temos condies de classificar as demandas que
Temos quatro campos: temos. Antes de se cadastrar os itens no Product Backlog (lista
Requisito Funcional: Destinado a identificar o requisito pelo geral de demandas do produto), deve-se ter bem claro o que
nome, designao ou identificador do requisito ou funciona- ser entendido como bug (erro), mudana, nova funcionalidade
lidade do software. Podemos dizer at que seja a referncia a ou novo requisito no funcional.
um item de configurao; Ao adotar estes quatro tipos de classificao, o processo de
Descrio: Uma breve descrio do requisito ou funciona- priorizao de demandas tambm ficar mais fcil. Um bug
lidade, informando seu objetivo central ou para o que ela se grave ou crtico sempre ser mais prioritrio do que uma
destina; mudana ou nova funcionalidade e, por vezes, ambos sero
Requisito No Funcional: Nome, designao ou identifi- igualmente crticos ou dependentes. Existiro momentos onde
cador do requisito no funcional do software. Podemos dizer no haver escolha e, tanto o bug quanto a mudana ou a nova
funcionalidade devero ser resolvidos numa mesma Sprint.

Requisito Funcional Descrio Requisito No Funcional Descrio


Cadastro de Usurio Manter dados do usurio Criptografia Criptografar a senha do cliente
Workflow Distribuir automaticamente os pedidos entre as linhas de produo
Cadastro de Pedidos Manter os pedidos de Venda
Acessos Simultneos Permitir at 1.000 acessos simultneos

Tabela 2. Exemplo de Baseline Produto

16 Engenharia de Software Magazine - Scrum backlog: requisitos no funcionais


agilidade

Os pesos e critrios para orar cada um destes tipos tambm Ao adotar uma ferramenta, d preferncia quelas que faam
podero ser levados em conta. Iremos comparar, brevemente, o controle de verses e, alm disso, que disponha da facilidade
bugs e novos requisitos de maneira a podermos elencar os de controle por branches (ramificaes).
pesos e critrios com maior propriedade. Seguem: Controlar verses significa poder controlar o que foi alterado
Bug um erro sobre algo existente ento, por mais comple- no contedo do cdigo fonte, quem o alterou e quando. E ainda,
xo que seja resolv-lo, ser mais fcil corrigi-lo do que algo poder estabelecer qual membro da equipe pode ou no acessar
novo; partes do cdigo ou todo ele.
Mas, o que seria algo novo? Uma nova funcionalidade ou um O recurso de branch permitir que vrios membros da
novo requisito no funcional podem esconder complexidades equipe possam trabalhar em separado, cada um em sua
ou dependncias que no foram ou no puderam ser identificadas branch em separado e, sem poluir o cdigo estvel com
logo no incio ento, a partir da, temos um ponto de interroga- cdigo em desenvolvimento durante os processos de corre-
o, um alerta de risco e, este fator de risco deve incorporar a o e/ou evoluo. Este recurso aumentar a produtividade
estimativa (de forma racional e comprometida pelos membros da equipe e reduzir o ndice de falha por serem gerados
da equipe) considerando que a estimativa pode falhar e, neste builds com cdigo inacabado. A parte de Builds ser
caso, tem o fator da novidade. Obviamente que o bom senso abordada mais adiante.
sempre dever imperar: uma nova funcionalidade a qual, todos No devemos nos esquecer de ter um repositrio, ou rea
sabem ser uma cpia quase fiel de uma j existente, no pode ser dentro do repositrio de cdigo fonte, para os documentos
considerada nova do ponto de vista tcnico, correto? como os backlogs de Produto e da Sprint, ou de documentos
contendo as estrias implementadas e a implementar.
Enfim, agora temos uma viso do produto, seus requisitos importante lembrar tambm que as polticas de acesso e
funcionais, no funcionais e uma classificao para cada tipo permisses devem ser geridas pela equipe de infraestrutura,
de demanda que faz parte do backlog e, desta forma, a equipe a fim de garantir que todos os membros da equipe possuam
est pronta para orar, planejar as sprints e gerar estimativas. tudo o que precisam e tambm tenham seus acessos conforme
Por outro lado, temos um Product Owner ciente dos desafios sua necessidade.
impostos pelo backlog existente e as decises e os caminhos Em ltimo lugar, mas no menos importante, esta ferra-
para alcanar o sucesso. menta de repositrio permitir a execuo do backup (cpia
de segurana).
Sugesto de setup para a equipe de desenvolvimento
Para se estabelecer uma equipe gil, motivada e produtiva,
no bastam bons computadores e boa remunerao agregada
com excelentes benefcios. Um ambiente favorvel e bem es-
truturado so peas fundamentais.
Da mesma forma que o foi abordado no item produto, co-
mear minimamente com um ambiente e equipe estruturadas,
as chances de se alcanar uma boa produtividade, qualidade
do produto e satisfao da equipe, so muito maiores. Seguem
alguns itens a serem considerados e disponibilizados equipe
de desenvolvimento: ferramentas, rotinas e, ambientes.

Ferramenta de repositrio de cdigo fonte


no cdigo fonte que tudo comea para um sistema.
essencial saber quem e quando alterou o cdigo fonte e qual
verso do mesmo. Para isso, se faz necessrio adotar um
repositrio de cdigo e no estamos dizendo em ter uma
pasta compartilhada na rede, mas sim uma ferramenta que
desempenhe este papel. Podemos citar vrias como CVS, SVN,
Team System, GIT, entre outras.
A principal funo de um repositrio a de centralizar o
armazenamento do cdigo fonte, evitando que cada membro
da equipe possua uma cpia do cdigo em sua prpria estao
de trabalho. Um repositrio unificado significa um ganho
considervel em performance e segurana geral. Com este
repositrio, no haver mais preocupaes como: quem est
alterando o cdigo x? ou qual a verso mais recente e
estvel do cdigo y?.

Edio 66 - Engenharia de Software Magazine 17


Uma vez que o cdigo fonte e/ou documentos encontra-se Sprint(s) (corrida(s)), sero realizadas inmeras e simultneas
em um local centralizado, torna-se simples e eficaz fazer as alteraes no cdigo fonte, por diversas pessoas e, a todo o
cpias de segurana, obedecendo aos critrios e polticas da momento. Estas alteraes sero entregues atravs de novas
empresa. verses do software. A cada nova verso (ou Build), para ser
considerado entregue, dever ocorrer instalao e configu-
Ferramenta de gerao de builds rao dos componentes do software (deploy) em um ambiente
Outro ponto crtico no desenvolvimento de sistemas a definido, de forma a disponibilizar esta nova verso do sistema
cultura de se gerar as Builds ou Verses. Build, no contexto para os testes e homologao necessrios.
do desenvolvimento de software, significa uma verso com- importante ressaltar que: o ato de um deploy considerado
pilada de um software ou parte dele que contm um conjunto como uma alterao no ambiente. Isso significa que sempre
de recursos que podero integrar o produto final. Existem que um deploy ocorrer, algo novo (seja uma atualizao ou um
diversas opes, algumas at j integradas aos repositrios novo sistema) ser instalado e afetar os itens de configurao
de cdigo fonte. Algumas tecnologias exigem compiladores atuais no(s) ambiente(s) onde forem aplicados. Desta maneira,
especficos. Enfim, o que importa ter o conceito e a cultura sempre se deve preocupar em se ter um ponto de retorno, ou
estabelecida dentro da empresa e da equipe. seja, ter uma verso estvel para voltar.
Gerar builds sempre que houver uma mudana significativa Dependendo do tamanho e/ou da complexidade da verso
no produto e que se permita sua avaliao, uma boa prti- (Build) entregue, podem ser consumidas algumas horas de
ca para dar continuidade ao processo de desenvolvimento, um ou mais profissionais para realizar o deploy (instalao)
testes, homologao e roll out (disponibilizar o software em do software. O tempo ainda pode aumentar muito se houver
produo). a necessidade de se atualizar itens de configurao da prpria
Possuir um ambiente com o fim de se gerarem as builds mquina como, por exemplo, verses de objetos, pacotes de
aumenta a garantia da qualidade do software. Podemos dizer correo (patches ou service packs), atualizao de componen-
que este ambiente um ou o mais importante e necessrio dos tes do sistema operacional ou do sistema de gerenciamento do
ambientes para a equipe desenvolver seu trabalho. banco de dados, enfim, tudo isso leva tempo e ainda, corre-se
o risco de algo dar errado.
Rotina de deploy automatizado Se algo no sair conforme o planejado, precisarmos dar o
Uma rotina pode ser entendida como processo repetvel, ou rollback e voltar situao anterior. O processo de desfazer
melhor, sempre que algo de uma natureza especfica tiver de uma atualizao (ou deploy) pode ser proporcional ou maior
ser feito, que o seja seguindo-se uma sequncia de passos de do que o processo normal de deploy. Pode-se dizer que se o
execuo previamente definidos, estruturados, documentados tempo estimado para realizar um deploy for de uma hora,
e conhecidos pelos membros da equipe. caso seja necessrio desfaz-lo, poder ser gasto a mesma uma
Um bom exemplo prtico do termo rotina seria a Rotina de hora ou at mais. Portanto, o processo de deploy precisa ser
Backup da empresa. Dizer que existe uma Rotina de Backup muito bem estruturado, documentado e conhecido por todos
seria o mesmo que dizer sempre que uma cpia de segurana os membros da equipe envolvidos nesta atividade. No opo
de dados for gerada, ser da forma X. Esta forma X representa ter um processo de deploy o qual no contemple o caminho
sua ocorrncia (periodicidade), contemplar os dados arma- de volta (rollback). Vale muito a pena investir recursos (pes-
zenados nas mquinas e/ou locais determinados, e os arqui- soas + tempo) para conceber, estruturar, documentar, treinar
vos de backup sero gravados (salvos) em um determinado e estabelecer o processo de deploy na empresa.
dispositivo (unidade de disco, fita, disco ptico, etc.) e sero Estamos falando sobre deploy, mas no podemos nos esque-
fisicamente guardados em determinado local seguro. Enfim, cer das pessoas responsveis por esta atividade. Por se tratar
chamar de rotina condiz com o detalhamento da(s) ao(es) de algo to essencial, deve existir uma equipe dedicada a esta
a(s) qual(is) existem para sua execuo. atividade de deploy que a equipe de infraestrutura. Esta
Chamamos de deploy a ao de instalar ou entregar o equipe dever possuir conhecimentos mais especficos com
software desenvolvido e compilado (uma build) em um am- relao aos ambientes (mquinas hardware e programas
biente. Esta ao pode ser feita manualmente, porm exige software).
muita ateno e extremamente suscetvel a falhas. Esta equipe de infraestrutura existe para salvaguardar o
Aliando as definies de rotina e deploy tem-se que: sempre ambiente e no permitir que este seja modificado sem o devido
ao se instalar alguma atualizao de um software, os passos planejamento. Portanto, deve-se sempre manter a equipe de
de 1 at N devero ser seguidos, verificados e, caso ocorra infraestrutura ciente do planejamento destas intervenes de
algum erro, dever haver um procedimento de retorno es- maneira que tudo continue funcionando corretamente.
pecfico definido. Para entender melhor sobre a importncia e a criticidade deste
Agora imaginemos, na prtica, uma equipe de desenvolvi- assunto gostaramos de citar uma ocorrncia: Certa vez, uma
mento de software, a qual adotou uma metodologia de desen- consultora em CMMi e MPS.Br comentou: o maior risco nos
volvimento gil (como Scrum ou XP). As aes de criao e/ou projetos de Tecnologia , e to somente, a prpria tecnologia.
alterao do software ocorrero durante uma Sprint. Nesta(s) O tempo que se investe em escrever a aplicao (software),

18 Engenharia de Software Magazine - Scrum backlog: requisitos no funcionais


agilidade

testar, homologar e disponibiliz-lo em produo , infini- Ambiente de Teste


tamente menor, do que a caa aos problemas oriundos de Antes de falarmos sobre o ambiente de testes, importante
atualizaes de verses de qualquer componente do ambiente, relembrarmos o que so testes. Conforme comentamos ante-
seja hardware ou software. Geralmente so problemas os quais riormente, um produto de software deve possuir um escopo,
exigem horas e horas de pessoas e geralmente, so resolvidos de ou seja, estabelecer o que e como deve se comportar. A
uma maneira totalmente adversa e sem uma explicao lgica. partir do escopo definido, surgem os requisitos funcionais e os
Aqueles que no tem a menor lgica para acontecer porm, no funcionais. De posse destas definies, deve-se estabelecer
acontecem e so extremamente avassaladores com nossa rotina uma validao para verificar se o o que e o como foram
de trabalho. H grande sentido nesta colocao desta consulto- atendidos. A esta validao, d-se o nome de Testes.
ra e refora a necessidade e importncia em se ter um processo Testes devem ser aplicados para qualquer criao ou alterao
de deploy muito bem estruturado e documentado. no cdigo fonte. Eles servem para verificar se o que foi feito;
implementao, a correo ou o novo software est atendendo
Ambientes de Infraestrutura: definio aos requisitos solicitados.
Pode-se dizer que um ambiente composto por uma ou mais Existe uma vasta literatura contemplando a gesto e execu-
mquinas, que contm os requisitos necessrios para hospedar o de testes. Nosso objetivo agora no explicar esta parte,
o software desenvolvido. Estas mquinas tambm devero mas sim de ressaltar sua importncia no processo como um
possuir o software bsico (sistema operacional, sistema de todo e ainda, ressaltar a necessidade de execut-los dentro de
gerenciamento de banco de dados, software de servidor de um ambiente dedicado e seguindo os critrios necessrios e,
aplicao, etc.), devidamente instalado e configurado, a fim acima de tudo, registrar o resultado dos testes de forma que
de suportar a aplicao. possamos tomar decises sobre o que deve ser feito e sua
Podemos dizer que existem basicamente, trs ambientes criticidade e severidade.
necessrios para o desenvolvimento de software: Desenvol- Mas, no basta simplesmente testar, imprescindvel ser
vimento, Testes e Produo. criado e seguido um roteiro, um plano de testes. Para que os
A seguir sero abordados os ambientes sugeridos e mini- testes ocupem um papel mais central, recomendvel que seja
mamente necessrios para viabilizar e otimizar o processo adotada uma metodologia voltada para este fim chamada TDD
de desenvolvimento de software considerando uma estrutura desenvolvimento orientado a testes. Adotando este mtodo
baseada em metodologia gil (Scrum). TDD, todo o desenvolvimento ser orientado ao teste o que
minimizar os erros bsicos.
Ambiente de integrao contnua Segundo as definies existentes na metodologia chamada
Antes de explicarmos quanto ao ambiente tecnolgico para Extreme Programming ou XP, o termo TDD pode ser descrito
receber a Integrao contnua, necessrio contextualizar o seu da seguinte maneira: Test Driven Development (TDD), ou em
conceito. Segundo Martin Fowler, Integrao Contnua uma portugus Desenvolvimento orientado a testes, uma tcnica
pratica de desenvolvimento de software onde os membros de de desenvolvimento de software que se baseia em um ciclo cur-
um time integram seu trabalho. Geralmente, cada pessoa integra to de repeties: primeiramente o desenvolvedor escreve um
pelo menos diariamente podendo haver mltiplas integraes caso de teste automatizado que define uma melhoria desejada
por dia. Cada integrao verificada por um build automatizado ou uma nova funcionalidade. Ento, produzido cdigo que
(incluindo testes) para detectar erros de integrao o mais rpido possa ser validado pelo teste para posteriormente o cdigo ser
possvel. Muitos times acham que essa abordagem leva a uma refatorado para um cdigo sob padres aceitveis.
significante reduo nos problemas de integrao e permite que Agora que j entendemos um pouco sobre os conceitos de
um time desenvolva software coeso mais rapidamente. testes e de uma sugesto de metodologia, precisamos entender
Seguindo este conceito, para um ambiente mais produtivo de mais sobre a importncia e o significado dos testes. Da mesma
uma equipe de desenvolvimento de software, recomenda-se forma que um cdigo implementado pode ter sucesso, podem
a adoo da Integrao Contnua, pois durante uma Sprint o existir erros. Se durante os testes algum erro foi identificado,
resultado das alteraes e/ou correes no cdigo fonte rea- isso ocorreu porque houve o pleno entendimento pela equi-
lizadas pela equipe de desenvolvimento devero gerar novas pe do o que e do como os requisitos foram definidos no
verses (Builds) e estas builds devero ser disponibilizadas escopo, estes requisitos foram traduzidos em casos de teste
(deploy) automaticamente em um ambiente de Integrao e estes testes aferiram corretamente a execuo do cdigo
Contnua. O objetivo do ambiente de Integrao Contnua ser gerado. Testar e no encontrar erros, isso sim pode ser sinal
um ambiente para o desenvolvedor, e os demais membros da de problemas.
equipe, verificar se a implementao est de acordo com o es- Encontrar um erro durante os testes poupa muitos problemas
perado, aplicando seus testes unitrios e at automatizados. os quais, se ocorressem em produo, poderiam ser devasta-
Se o cdigo funcionar neste ambiente, podemos dizer que dores, desde a perda da credibilidade ou at gerar prejuzos
temos quase 15% (percentual de completude e no percentual financeiros para todos os envolvidos.
de esforo) do trabalho concludo. Com o cdigo funcionando, Para que seja possvel executar os testes se faz necessrio
basta mandar essa verso para os testes. possuir um ambiente destinado a isso. Um ambiente de teste

Edio 66 - Engenharia de Software Magazine 19


servir para execuo dos testes internos pela equipe (sem Trabalhando com os requisitos no funcionais
interveno ainda do cliente). Este ser o ambiente o qual Em se tratando de metodologias geis, temos dois grupos
receber a verso (Build) gerada no ambiente de Integrao de pessoas: a equipe de desenvolvimento e o Product Owner.
Contnua aps ter sido realizado o deploy desta verso. Cada grupo possui suas necessidades especficas. Para o
Em termos de configurao, dever se assemelhar ao Product Owner foi abordada a necessidade de se estabelecer
ambiente de Homologao e/ou ao ambiente de Produo. o escopo do produto (Baseline) e tambm, uma forma melhor
O ideal que o ambiente de testes seja o mais prximo possvel de se registrar e classificar o backlog do produto.
ao ambiente de Produo. A equipe j adotou e est confortvel para construir software
de forma gil. Mas, por outro lado, a realidade de sua empre-
Ambiente de homologao sa pode ainda no ter alcanado tudo isso e, agora, devemos
neste ambiente onde sero aplicados os testes e validaes operacionalizar os requisitos no funcionais. Conforme expu-
do que est sendo entregue. Quem dever execut-los sero os semos anteriormente, existem alguns problemas relacionados
usurios e/ou clientes do software. Damos tambm o nome de ao tratamento incorreto destes requisitos no funcionais.
Testes de Aceitao a este processo de Homologao realizado Mas, qual seria a origem desses problemas? Para cada um
pelo cliente. deles podem haver inmeras causas:
Em linhas gerais, significa que se o cliente aceitar ou con- 1. No houve modelagem do Banco de Dados?
siderar homologado o software entregue, o cliente endossa o 2. A mquina que hospeda o Banco de Dados foi corretamente
produto em termos de escopo e qualidade. dimensionada?
No incomum que este ambiente seja disponibilizado pelo 3. Faltou adotar alguma boa prtica do Banco de Dados como
prprio cliente. Sendo assim, os tpicos anteriores que mencio- uso de ndices, Procedures, Queries, Views, entre outros?
nam o processo de deploy se fazem mais necessrios do que 4. A aplicao foi desenhada para suportar quantos usurios
nunca. Possuir um processo estabelecido de deploy aumenta a simultneos?
credibilidade sobre a empresa e o profissionalismo da equipe 5. O conjunto de mquinas, o DataCenter ou a infraestrutura
envolvida na construo do software contratado. disponibilizada para hospedar a aplicao foi dimensionada
neste ambiente tambm que devero ser aplicados os testes para suportar alta disponibilidade?
relacionados aos requisitos no funcionais. Geralmente, para
execuo de testes de performance/carga, ser necessria a Quem deveria ter se preocupado com isso? Olhando para
construo de robs que simulem acessos simultneos e o quem (pessoa), existem dois papis: o ScrumMaster e o
transaes para aferir se o software entregue aguenta con- Product Owner e, objetivamente, os dois so os verdadeiros
forme o que foi estabelecido. Existem ferramentas disponveis responsveis por no terem se preocupado com a falta de
no mercado para este fim. definio dos requisitos no funcionais.
A configurao deste ambiente deve se assemelhar, o mximo Pode parecer estranha essa colocao em atribuir a respon-
possvel, da configurao do ambiente de produo (hardwa- sabilidade destas falhas ao ScrumMaster e ao Product Owner,
re e software). Quanto mais prxima estiver do ambiente de mas sim, estes papeis deveriam ter se preocupado com isso.
produo, maior a garantia de sucesso nos testes. Existem inmeras justificativas para a no observao destes
requisitos no funcionais como tempo, falta de foco nesta
Ambiente de produo questo entre outras. mas o fato que no foram observados
Chama-se de Ambiente de produo aquele conjunto de estes requisitos.
hardware e software destinado a hospedar a aplicao desen- Planejar e tratar os requisitos no funcionais no , original-
volvida e testada pela equipe, homologada e aceita pelo cliente mente, uma questo bem definida nas metodologias geis. Ao
e/ou usurio(s) que a utilizaro. observarmos leituras da forma clssica de desenvolvimento
Trata-se de um ambiente o qual dever ser controlado e de software (Cascata/Waterfall) como, por exemplo, o Unified
protegido rigorosa e cuidadosamente por uma equipe dedi- Process (Processos Unificados), os requisitos funcionais ou no
cada geralmente a equipe de Infraestrutura da Empresa ou funcionais, o centro de tudo. Ao nos remetermos poca da
do prprio cliente. adoo desta forma clssica relevante ressaltar que no exis-
O ato de criao de um software passa por muitos cami- tiam mtodos eficazes de produzir software e, com a adoo
nhos at que chegue neste estgio de disponibiliz-lo em desta metodologia, houve ganhos significativos relacionado ao
produo. sucesso dos projetos de desenvolvimento de software.
Neste ponto, o processo de deploy ser colocado prova. Construir software de boa qualidade e de forma rpida po-
Tenha certeza em seguir todos os passos j estabelecidos e deria ser impensvel, at o advento das metodologias geis.
executados nos momentos anteriores. Da mesma maneira que A partir da popularizao destas metodologias, conquistou-se
foi feito o deploy nos ambientes de testes e de homologao, a velocidade e o cumprimento das expectativas alcanando
o processo de deploy em produo deve seguir os mesmos timos resultados para as partes interessadas.
moldes e, ainda, com um pouco mais de ateno. Isso garantir Na verdade, esta popularizao tambm levou muitos a dar
o sucesso de todo o esforo investido. mais foco na agilidade, velocidade, visibilidade e deixando um

20 Engenharia de Software Magazine - Scrum backlog: requisitos no funcionais


agilidade

pouco de lado as premissas, o escopo, enfim, os requisitos. os itens do backlog (as estrias) equilibrando os conhecimentos
preciso entender o fato: problemas como os relatados an- e a quantidade de pessoas disponveis para a execuo dos
teriormente so graves e, muitas vezes, de difcil e demorada trabalhos durante o perodo em que a outra parte das pessoas
resoluo. Uma arquitetura mal definida, um banco de dados estiver em treinamento.
mal modelado, uma infraestrutura mal dimensionada, geram Com relao rotatividade, o departamento de Recursos
todos estes e tantos outros problemas. Humanos dever atuar de forma a gerar mecanismos que
Por esta razo que foi mencionado a importncia de se ter incentivem a reteno das pessoas atravs de polticas de reco-
uma referncia (baseline) do produto para que esta sirva de nhecimento bem como acordos onde as pessoas que receberem
nivelamento de comunicao, fazendo com que todas as partes treinamento se comprometam a permanecer na empresa.
interessadas tenham acesso e absorvam integralmente os obje- Obviamente que existem diversos outros aspectos relacio-
tivos a serem alcanados pelo software a ser desenvolvido. nados a Recursos Humanos e polticas especficas de cada
corporao, mas o fato que se deve observar esta opo de
Como podemos evitar tais problemas? capacitar a equipe, analisando clara e objetivamente os pontos
O Scrum Master e o Product Owner devem conversar, positivos e negativos para uma correta tomada de deciso.
alinhando seus conhecimentos. O Product Owner possui Quanto a opo de contratar novos recursos, sejam estes
o entendimento e as necessidades comerciais e conseguir efetivos ou temporrios, a forma de contratao depender
definir os requisitos no funcionais. Com o auxlio do Scrum das polticas e da realidade da empresa. O ponto chave desta
Master, que detm uma bagagem tcnica, conseguir en- opo ter em mente que as lacunas de pessoas e skills sejam
tender os requisitos funcionais e no funcionais bem como preenchidas para atender o objetivo. Mesmo assim, os novos
seus impactos no software. O resultado desta conciliao de recursos demandaro investimentos em treinamento quanto
necessidades e conhecimentos ser a definio de uma lista de ao projeto, o produto e a forma de trabalho da empresa e ainda,
requisitos funcionais e no funcionais a serem contemplados sempre haver uma curva de aprendizado versus produtivida-
pelo software, ou melhor, o Baseline do Produto conforme de onde, dependendo das circunstncias, o novo recurso estar
mencionamos anteriormente. mais alocado em treinamentos, consumindo tambm recursos
Uma vez que temos uma lista de requisitos (funcionais e da equipe os quais tenham condies de ensinar e ambos, no
no funcionais), o Scrum Master ter condies de verificar estaro produzindo neste nterim. A produtividade plena da
os conhecimentos e habilidades necessrias (skills) para equipe s atingir os patamares desejados aps este perodo
transformar estes requisitos em software. Determinando essa de ensino e a aprendizagem estiverem concludos.
lista de skills, o prximo passo identificar se os membros da De forma resumida, os tempos e a quantidade de pessoas
equipe contemplam estas exigncias. Se os membros da equi- disponveis, at atingirem sua plenitude em termos de pro-
pe j possurem as qualificaes, timo, caso contrrio, resta dutividade iro variar. Estes fatores devero ser considerados
apenas duas alternativas: capacitar s pessoas ou contratar tanto na opo de capacitar a equipe tanto quanto a contratao
novos recursos. de novos recursos. Vale ressaltar que, acima de tudo, tanto a
Qualquer uma das opes exigir investimentos da empresa Organizao (Empresa) quanto as equipes devem estar con-
e, neste momento, o Scrum Master aliado ao Product Owner, fortveis e comprometidas com a deciso tomada.
devero levar estas demandas alta direo da empresa e Considerando que todas as questes de organizao dos
justific-la. backlogs, da lista de requisitos, das equipes e de toda a infra-
Capacitar equipe existente gera sempre um sentimento estrutura necessrias estejam atendidas, chega o momento de
de valorizao da equipe e muitas pessoas sentem-se extre- organizar o trabalho e iniciar o processo de planejamento das
mamente motivadas, este seria o principal ponto positivo ao Sprints. A execuo dos processos permitir a operacionali-
optar-se pela capacitao da equipe. Outro ponto importante zao de todos os tpicos explicados neste artigo conforme
seria o fato de que estas pessoas levaro para o treinamento os passaremos a explicar.
desafios conhecidos, possibilitando um maior aproveitamento A execuo dos processos da metodologia Scrum inicia-se
tanto do treinamento em si quanto a aplicao dos conheci- com o Planejamento das Sprints, a esta etapa d-se o nome
mentos adquiridos na prtica. de Sprint Planning (Planejamento da Sprint). A atividade de
Como pontos negativos da opo de capacitar a prpria Planejamento da Sprint (Sprint Planning) serve para orar
equipe, destacam-se o tempo das pessoas, pois enquanto elas os itens priorizados pelo Product Owner e, caber equipe
estiverem em treinamento, no estaro produzindo e tambm, dizer se so possveis ou no de serem tratados em uma ou
as chances de rotatividade destas pessoas uma vez que esti- mais Sprints. Percebam que estamos tratando apenas os itens
verem mais qualificadas, sero mais cobiadas e at assedias priorizados e no o Backlog geral.
pelo mercado. neste momento, durante o planejamento, que estes requi-
Para lidar com estes pontos positivos e negativos, a alta dire- sitos devero ser revistos, atualizados, e normalmente, serem
o da empresa dever balancear estas questes. Considerando transformados em estrias e devidamente orados, planejados
os aspectos negativos, com relao ao tempo, o Product Owner, e implementados nas Sprints pela equipe. Da mesma forma
o Scrum Master e a equipe, devero se organizar para priorizar que o ritual de reviso do Product Backlog ocorre.

Edio 66 - Engenharia de Software Magazine 21


Ao final de cada Sprint, as metodologias geis, como o Scrum, Esta mudana poder ser aferida na medida em que a produtivi-
indicam a necessidade de ser feita uma reviso. A esta reviso dade e a qualidade melhorem, bem como com reduo do esforo.
d-se o nome de Sprint Review ou Retrospective Meeting O resultado prtico ser percebido quando a equipe conseguir
(Retrospectiva da Sprint). Nesta ocasio, so verificados os produzir mais itens do backlog dentro de um mesmo prazo
resultados alcanados, as falhas e os pontos de melhoria. de Sprint.
A reunio de Retrospectiva de fato no o evento a ser Para concluir, sabemos que existem inmeros desafios no que
utilizado para o fim de revisar os requisitos. Sugerimos que tange o desenvolvimento de software. Para superar estes, as
seja criado um novo evento, o qual pode ser denominado de metodologias geis como o Scrum, oferecem diversos recursos
Product Review ou Product Retrospective. Este novo evento que visam alcanar o sucesso de forma descomplicada e rpida,
dever ocorrer logo aps a Reunio de Retrospectiva e, obriga- e ainda, garantindo a qualidade e satisfao do cliente.
toriamente, antes de ser iniciado o Planejamento da prxima Toda e qualquer metodologia oferece um framework como
Sprint. Este evento servir para criar e atualizar a lista de itens forma de demonstrar diversos cuidados os quais se deve ter
de escopo do Produto (Product Baseline). para garantir o sucesso em sua adoo, porm a forma de como
Seguindo esta sugesto de criar este novo evento, permitir implement-los ficar por conta de seus praticantes, dando-
que a lista de requisitos, o baseline do Produto, seja criado lhes a liberdade de adaptar o que for necessrio para adequar
igualmente de forma gil e, ao longo do tempo, torne este base- estas metodologias realidade das empresas e das equipes.
line do Produto tangvel, completo, atendendo as necessidades
da empresa e da equipe.
Links:
Estas sugestes esto baseadas no fato de que, conforme
descrito nas metodologias geis, no existe o detalhamento The Standish Group
ou indicao dos momentos ou eventos a serem dedicados http://blog.standishgroup.com/
ao estudo do produto exclusivamente. A Atividade de
orar o Backlog do Produto (Product Backlog) um bom The Standish Group - Chaos Report 2013
http://versionone.com/assets/img/files/ChaosManifesto2013.pdf
exemplo disso.
Ao verificar as metodologias geis, durante a fase de encerra- Artigo de Martin Fowler sobre Integrao Contnua
mento, existe o evento de Retrospectiva da Sprint. Dentro deste http://martinfowler.com/articles/continuousIntegration.html
evento de Retrospectiva existe o ponto chamado de Fazer a
Extreme Programming Extreme Testing
Melhoria Contnua dos processos.
http://c2.com/cgi/wiki?ExtremeProgramming
Fazer a Melhoria Contnua dos processos significa rever,
junto com a equipe, tudo que foi bom e tudo o que poderia ser Extreme Programming - Test Driven Development (TDD)
feito de uma melhor maneira. Todos os membros da equipe http://c2.com/cgi/wiki?TestDrivenDevelopment
devem sugerir e eleger mudanas. Geralmente estas mudanas
devem objetivar o aumento da produtividade e/ou da qualida- Voc gostou deste artigo?
de da prpria equipe. Tais mudanas devem ser implantadas
estabelecendo-se critrios de avaliao permitindo que os
D seu voto em www.devmedia.com.br/esmag/feedback
ganhos sejam medidos aps a adoo das mudanas.
Ao se criar este novo evento de Reviso do Produto houve, Ajude-nos a manter a qualidade da revista!
na verdade, uma melhoria no processo atual da empresa.

22 Engenharia de Software Magazine - Scrum backlog: requisitos no funcionais


Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.

IFPUG SNAP: medindo requisitos no


funcionais
Um framework para a medio dos requisitos no funcionais

Fique por dentro:


Neste artigo iremos entender o contexto de
mercado que exigiu a criao de uma nova
metodologia de metrificao no funcional.
Ser explicado o que so os requisitos no
funcionais e suas principais categorias na viso
da ISO e do IFPUG. Na sequncia, veremos os

A
medio do software to im- principais objetivos e benefcios do SNAP e co-
portante quanto de qualquer nheceremos a metodologia em si. Finalizando,
outro produto vendido por veremos um exemplo simples, porm completo
quantidade, peso ou volume. O fra- de uma contagem no funcional e iremos anali-
mework SNAP apresenta uma diviso de sar as concluses sobre o que foi exposto neste
trs dimenses em que o software preci- trabalho.
saria ser medido: os requisitos tcnicos, A medio do escopo serve de base para gera-
os requisitos de qualidade e os requisitos o da maior parte das mtricas do ciclo de vida
funcionais. Para os requisitos funcionais, do desenvolvimento de software. A utilizao
o mercado adota largamente a anlise de do tamanho no funcional como parte do esco-
pontos de funo (APF BOX 1) definida po medido, permitir uma melhor adequao
Thiago Chierici Cunha pelo IFPUG e padronizada pela ISO des- das estimativas, principalmente em mtricas
Thiago.cunha@gmail.com de 2009, apesar da ISO tambm definir relacionadas a esforo e custo.
Profissional certificado em pontos de fun- outras metodologias como COSMIC,
o pelo IFPUG desde 2009. Especialista FiSMA, Mark-II e NESMA.
em Educao Tecnolgica pela UEMG e
Enquanto a APF define bem como
graduado em Processamento de Dados
pela Anhanguera. Atualmente leciona em medir os requisitos funcionais, os re- podem gerar distores no planejamento
alguns cursos de Ps graduao do IGTI e quisitos tcnicos e de qualidade no e nos custos.
atua como arquiteto de software na CI&T. so contemplados pela mesma. Assim, Para tentar corrigir tais distores, o
Nos ltimos 15 anos tambm acumula medies feitas apenas com APF normal- IFPUG havia definido uma etapa da
experincias em gesto de processos e
mente ignoram dimenses importantes medio funcional, chamada de fator de
projetos e desenvolvimento em diversas
plataformas. do desenvolvimento do software, que ajuste, que consistia em um ajuste de at

Edio 66 - Engenharia de Software Magazine 23


mais ou menos trinta e cinco por cento no tamanho funcional Histrico
original, ou seja, se o sistema possua 100 pontos de funo (PF), Em 2007 a diretoria do IFPUG formalizou o incio dos
seu tamanho ajustado poderia ser um valor entre 75 PF e 135 trabalhos do que chamavam na poca de Framework de Ta-
PF de acordo com os requisitos no funcionais considerados. manho Tcnico. O IFPUG buscava com este framework uma
O uso do fator de ajuste no foi muito bem aceito pelo mer- forma de medir os aspectos tcnicos de projeto de software
cado, assim como pela ISO, que a partir de 2009, sugeriu que com uma metodologia independente da APF, utilizada na
o mesmo no mais fizesse parte da metodologia APF. Desde medio funcional. A importncia desta independncia seria
l, o fator de ajuste passou a ser descontinuado e disponi- para manter a compatibilidade de resultados e histrico de
bilizado como um apndice do guia do IFPUG. O principal projetos legados j medidos e mtricas corporativas que j
motivo para a mudana seria o fato de que o requisito no se baseavam na APF. A iniciativa foi apoiada pela diretoria
funcional no deveria alterar o tamanho funcional da apli- e membros do IFPUG.
cao, mas sim ser contado de forma independente. Surgia Em Outubro de 2009 foi publicada a primeira verso do
a necessidade de uma nova metodologia para medio dos SNAP com o objetivo de permitir uma reviso do trabalho
requisitos no funcionais. que vinha sendo feito e ajustar a direo e expectativas. Esta
verso chamada 0.1 ainda no era aberta comunidade e foi
BOX 1. Anlise de Pontos de Funo revisada apenas pela diretoria do IFPUG e comits especficos
A APF tem suas origens em um trabalho feito na IBM em 1979 por Allan Albrecht que foi de reviso.
formalizado como um guia em 1984. J em 1988, a verso 2.0 foi publicada pela primeira vez Como fruto desta reviso e consequentes ajustes, cerca de
sob a responsabilidade do International Function Point Users Group, o IFPUG. Na verso 3.0 de um ano depois foi lanada a verso 1.0 Beta do Manual de
1990 o IFPUG transformou o que era um conjunto de vrias interpretaes sobre como contar Prticas de Avaliao SNAP - APM. Esta verso foi lanada em
pontos de funo em um guia mais organizado e coerente. A partir da verso 4.1 de 1999 o novembro de 2010 e no incio do prximo ano comearam os
guia comeou a sofrer revises constantes, graas ao enorme crescimento no uso da tcnica e a testes Beta executados por empresas do mundo inteiro.
um maior apoio da comunidade para que o processo pudesse amadurecer. No Brasil a APF teve Ainda em 2011 foi liberada uma nova verso do guia que foi
um grande crescimento a partir da publicao da Instruo Normativa 2 de 2008, que sugere o definida como 1.0, que j levavam em considerao os resul-
uso de unidade de medida que permita a mensurao dos resultados. tados e observaes dos processos de teste Beta executados no
incio daquele ano. Esta primeira verso estabilizada j trazia
definies de conceitos, processos e regras para a avaliao
Requisitos no funcionais dos requisitos no funcionais.
A ISO/IEC 14143-1:2007, que trata de medio de software, A verso vigente durante a criao deste artigo, a 2.0, foi lan-
especialmente a medio da parte funcional, mas que tambm ada em janeiro de 2013. Esta verso trouxe mais maturidade ao
define e trata os principais conceitos relacionados, divide os guia, apresentando novos conceitos que eram utilizados, mas
requisitos de usurio (RU) em dois grupos: no eram bem explicados. Foram feitos ajustes nos processos e
Requisitos funcionais de usurio (RFU); regras e algumas subcategorias foram reorganizadas de acordo
Requisitos no funcionais de usurio (RNF); com o retorno obtido da comunidade.
O APM ainda se define como um guia vivo, ou seja, novas
Sobre as normas e demais definies relacionadas aos RFUs, verses sero lanadas com certa frequncia para tentar ajus-
no iremos nos aprofundar neste artigo. J para os RNFs, a tar o guia realidade e s necessidades do mercado. Como o
ISO/IEC/IEEE 24765:2010 os define como um requisito de processo possui definies e regras para cada subcategoria
software que descreve no o que o software ir fazer, mas como funcional, esperado que novas verses fossem lanadas
o software ir fazer. Outra norma que trata sobre os RNFs sempre que novas tecnologias ou necessidades surjam no
a ISO/IEC 25010:2011, que define caractersticas da qualidade mercado. Uma preocupao permanente dever existir para
e suas categorias, listadas a seguir: que estas evolues mantenham a compatibilidade e histrico
Adequao funcional; de contagens que utilizem verses anteriores do guia.
Eficincia de desempenho;
Compatibilidade; Objetivos e benefcios do SNAP
Usabilidade; De acordo com o guia do SNAP, so dois os principais ob-
Confiabilidade; jetivos da metodologia: o primeiro seria medir o tamanho
Segurana; no funcional de determinado software que solicitado ou
Manutenibilidade; recebido por um cliente, muito til no momento da contratao
Portabilidade; de um desenvolvimento e na validao do que foi entregue e
sua conformidade com a solicitao original; o segundo obje-
As categorias utilizadas no mtodo SNAP que sero apre- tivo medir o desenvolvimento e manuteno de requisitos
sentadas neste artigo no so as mesmas utilizadas pelo ISO, no funcionais, como por exemplo, alterar a tecnologia de
porm todas as categorias podem ser enquadradas em ambas implementao de um determinado aplicativo ou criar um
as vises sem muita dificuldade. mecanismo de segurana em um software j existente.

24 Engenharia de Software Magazine - IFPUG SNAP: medindo requisitos no funcionais


agilidade

Ao criar o SNAP, o IFPUG tambm pretendia ter uma metodo-


logia simples o bastante para que fosse necessria a dedicao
de pouco tempo para fazer as medies (BOX 2), incentivando
uma maior adoo por vrios projetos e empresas.

BOX 2. Estimativa x Medio

Muitas vezes observamos o uso destes dois termos como se tivessem o mesmo significado no
contexto de mtricas de software, porm temos algumas diferenas sutis, mas importantes
Figura 1. Os passos do processo SNAP
entre os conceitos, j que podem servir de critrio contratual ou de auditoria interna ou externa.
As estimativas ou aproximaes podem ser feitas sem termos todos os detalhes necessrios para
A primeira seo do processo SNAP equivale ao planejamen-
fazer uma medio completa ou mesmo em caso que temos estes detalhes, mas desejamos uma
to do que ser medido. Neste passo iremos definir o motivo de
mtrica com maior produtividade e no precisamos de tanta preciso. Abaixo temos a Tabela 1,
estarmos fazendo a contagem, e deixar claro onde ela comea e
adaptada do guia do SNAP, que ilustra quando normalmente podemos fazer aproximaes e
onde termina. Para isso detalharemos os seguintes aspectos:
quando podemos fazer medies em um ciclo de desenvolvimento generalista.
Propsito da avaliao;
Fase do ciclo de vida PS podem ser estimados PS podem ser medidos Tipo da avaliao;
Proposta Sim No Escopo da avaliao;
Fronteira da aplicao;
Requisitos Sim No
Parties.
Projeto Sim Sim
Construo Sim Sim O propsito da avaliao define de forma textual o objetivo
Entrega Sim Sim do trabalho de medio ou aproximao que ser feito.
Manuteno (Preventiva, atravs dele que podemos buscar o tipo e escopo da avaliao.
Sim Sim
adaptativa ou perfectiva) Um possvel exemplo de propsito poderia se parecer com os
Tabela 1. Estimativas e medies de Pontos SNAP (PS) exemplos:
Fornecer o tamanho no funcional do projeto de desenvol-
vimento do software XXX, para servir de base para o clculo
de esforo e custos para elaborao de proposta tcnica e
Ao criar o SNAP, o IFPUG tambm pretendia ter uma metodo- comercial;
logia simples o bastante para que fosse necessria a dedicao Fornecer o tamanho no funcional entregue pela mudana
de pouco tempo para fazer as medies, incentivando uma de tecnologia do banco de dados do sistema YYY.
maior adoo por vrios projetos e empresas.
De acordo com o guia oficial as empresas podem utilizar o Assim como na contagem de pontos de funo, o tipo da
SNAP como: avaliao ter trs possibilidades. Esta informao normal-
Uma metodologia para medir o tamanho no funcional de mente utilizada para clculo de outras mtricas derivadas.
um produto de software, para dar suporte a anlises de qua- A produtividade, por exemplo, ser diferente para projetos de
lidade e produtividade; melhoria e de desenvolvimento, mesmo que tenham a mesma
Uma metodologia para estimar custos e recursos necessrios quantidade de pontos de funo ou pontos SNAP:
ao desenvolvimento e manuteno de software; Projeto de desenvolvimento: quando estivermos metrifican-
Um fator de normalizao para a comparao de softwares; do a criao de um determinado software.
Uma metodologia para determinar o tamanho no funcional Projeto de melhoria: quando estivermos alterando um soft-
de um pacote de aplicativos adquirido, atravs da avaliao de ware existente.
todas as partes e categorias includas no pacote; Aplicao quando estivermos medindo uma aplicao j
Uma metodologia para ajudar os usurios a determinar os existente.
benefcios de um pacote de aplicativos para sua organizao,
atravs da avaliao de partes ou categorias que satisfaam O escopo ser criado a partir do propsito da contagem e
seus requisitos especficos. define o conjunto de requisitos no funcionais do usurio a
serem includos na avaliao. O escopo pode incluir mais de
O processo de avaliao no funcional uma aplicao e, normalmente, ir incluir um conjunto de par-
Na Figura 1 temos uma viso geral do processo SNAP. ties, alm de uma lista de categorias e subcategorias SNAP.
O primeiro passo tem uma viso mais conceitual, mas que Tanto as parties quanto as categorias sero detalhados nos
importante para orientar os passos seguintes. No segundo, prximos tpicos.
normalmente utilizaremos o guia como referncia para con- A fronteira da aplicao tambm um conceito comum com
seguir escolher as categorias corretas. Os demais (passos 3 a 6) a APF e a separao conceitual entre o software avaliado
representam os passos mais prticos da contagem. e seus usurios. a fronteira que define o que externo

Edio 66 - Engenharia de Software Magazine 25


aplicao. O IFPUG costuma dizer que a fronteira funcio- Como contar
na como uma membrana pela qual os dados so recebidos A terceira seo do SNAP comea a contagem dos pontos
pela aplicao, processados e devolvidos para o usurio. no funcionais propriamente dita, identificando as unidades
A fronteira no deve considerar questes estritamente tc- de contagem SNAP (UCSs). A medio ser feita nos passos
nicas para ser definida. seguintes para cada UCS. importante saber que um mesmo
Uma partio define um conjunto de funes do software, requisito de usurio pode gerar, ao mesmo tempo, pontos de
dentro de uma mesma fronteira, que compartilham critrios de funo e pontos no funcionais (pontos SNAP). O UCS pode ser
avaliao do SNAP e que exigem esforo para implementao uma atividade, um componente do software ou um processo
que no seriam cobertos por uma mtrica APF. As parties, que se enquadre na estrutura de categorias apresentada no
assim como as funcionalidades medidas em APF, devem ser tpico anterior.
baseadas na viso do usurio, no podem ter sobreposies e Na quarta seo vamos definir a complexidade de cada UCS
serviro para atender aos requisitos no funcionais do softwa- mapeado na etapa anterior. De acordo com a categoria e sub-
re. Na Figura 2 representamos visualmente alguns dos itens categoria em que o UCS foi identificado, responderemos um
relacionados ao passo 1. conjunto de questes disponveis no guia, que diro a comple-
xidade deste UCS. De acordo com a complexidade levantada,
cada UCS receber uma pontuao no funcional.
Na quinta seo vamos calcular a quantidade de pontos
SNAP (PS) totais por subcategoria. Para isso devemos somar o
tamanho obtido para cada UCS no passo anterior. importante
observar que um mesmo UCS poder gerar PSs para mais de
uma subcategoria, quando este estiver relacionado a mais de
uma categoria ou subcategoria.
J no sexto e ltimo passo, devemos somar as parciais ob-
tidas por subcategoria para chegar aos totais por categoria.
Na sequncia, somaremos todos os PSs para obter o tamanho
no funcional total, para nosso projeto ou aplicativo.
Figura 2. Viso de alguns conceitos do passo 1 do SNAP

Exemplo de contagem
A segunda seo do SNAP trata de como vamos relacionar Nosso exemplo ser estruturado em trs etapas. Na primei-
cada requisito funcional a uma categoria e subcategoria SNAP. ra parte iremos apresentar a descrio de uma determinada
As categorias foram criadas de forma generalista para tentar demanda de desenvolvimento. Na segunda, iremos seguir o
agrupar necessidades no funcionais, mesmo que ainda nem processo SNAP para calcular o tamanho no funcional da de-
foram inventadas ou definidas. A diviso contempla todos os manda. Na ltima, iremos mostrar informaes que podemos
requisitos tcnicos e de qualidade conforme definidos na ISO/ derivar das mtricas iniciais, e como podemos nos beneficiar
IEC 9126-1 ou pela ISO/IEC 25010. As categorias SNAP esto destes nmeros ao longo do ciclo de vida do projeto e do hist-
agrupadas da seguinte forma: rico da empresa. Em alguns momentos, alguns detalhes podem
Operaes de Dados ser ocultos para tornar o exemplo mais didtico.
- Validaes na Entrada de Dados A Tabela 2 representa a solicitao do nosso cliente fictcio,
- Operaes Lgicas e Matemticas que a primeira parte do nosso exemplo. Nela representamos
- Formatao de Dados uma requisio de funcionalidades que, indiretamente exige a
- Movimentaes de Dados Internos implementao de um conjunto de requisitos no funcionais.
- Entregar valor agregado aos usurios por configurao de No escopo deste exemplo, no focaremos na medio do ta-
dados manho funcional da demanda.
Projeto de Interface De acordo com a Figura 1 comearemos nossa contagem
- Interfaces do Usurio fazendo algumas definies conforme detalhamos abaixo:
- Mtodos de Ajuda Propsito da contagem: fornecer o tamanho no funcional
- Mltiplos Mtodos de Entrada da demanda para calcular todas as mtricas que permiti-
- Mltiplos Mtodos de Sada ro gerar os custos da demanda 0001 do sistema de Gesto
Ambiente Tcnico Patrimonial;
- Mltiplas Plataformas Tipo da avaliao: projeto de melhoria;
- Tecnologia de Banco de Dados Escopo da avaliao: est definido na ficha representada
- Processos Batch na Tabela 2;
Arquitetura Fronteira: no exemplo no temos muitos detalhes do sistema,
- Software baseado em componentes mas neste caso no fica dvida do que faz parte da fronteira
- Mltiplas Interfaces de Entrada / Sada da aplicao que est sendo contada;

26 Engenharia de Software Magazine - IFPUG SNAP: medindo requisitos no funcionais


agilidade

Parties: no escopo desta contagem temos apenas uma Formatao de Dados:


partio.
Nesta subcategoria tambm utilizaremos o termo DER, s
Na medio do tamanho no funcional deste exemplo iremos que para denotar os campos que so formatados ou converti-
considerar os requisitos relacionados apenas a uma das categorias dos para exibio. J para definir a complexidade desta UCS a
do SNAP, a Operaes de dados. Como abordamos anterior- regra um pouco menos matemtica e mais textual, conforme
mente, cada categoria exige um tratamento especial, e de acordo a Tabela 4.
com o escopo do artigo no seria possvel exemplificar todas as
categorias, mas o processo para cada uma delas o mesmo. Nvel de complexidade
Baixa Mdia Alta
Converses de tipos de
Solicitao de implementao - 0001 Sistema: Gesto patrimonial Solicitante: Thiago Cunha Casos que no sejam Criptografia ou
Critrio dados ou formatao
Criar um cadastro de ativo que ir compor um novo mdulo de gesto de ativos do sistema de Baixa ou Alta descriptografia
simples
gesto patrimonial. Frmula (PS =) 2* #DERs 3* #DERs 5* #DERs
Campos:
ID do ativo - Alfanumrico - Opcional Tabela 4. Frmula da categoria Formatao de dados
Cdigo corporativo - Numrico - Opcional
Nome do ativo - Alfanumrico - Obrigatrio Em nosso exemplo temos trs casos de formatao de
Valor estimado - Numrico - Opcional - Maior que zero - Reais valores, sendo uma formatao de data, uma de moeda e
Data aquisio - Data Opcional - YYYY/MM/DD uma de percentual. Em todos os casos temos formataes
Depreciao - Numrico - Obrigatrio - Maior que zero - Percentual simples, caracterizando que o nvel de complexidade desta
UCS baixo. Desta forma utilizaremos a primeira frmula da
Tabela 2. Solicitao feita por nosso cliente fictcio
tabela chegando a 6 PSs relativos Formatao de dados.
De acordo com o ltimo passo do SNAP, podemos obter
Agora vamos completar o segundo passo do SNAP (asso- o total de SPs da nossa demanda. Neste exemplo teramos
ciar RNFs com categorias e subcategorias) e tambm definir 10 SPs. importante ressaltar que este valor representa o
o terceiro. Podemos observar neste exemplo a ocorrncia de tamanho no funcional da demanda. O tamanho funcional
algumas subcategorias de Operao de dados listadas a seguir. (PFs) ainda precisaria ser medido em pontos de funo de
Para cada uma contaremos um UCS, j que estamos contando forma independente.
apenas uma funcionalidade. Definindo a complexidade e a Para casos mais complexos, poderamos ter UCS de vrias
quantidade de pontos de cada UCS, estaremos cumprindo os categorias e subcategorias relacionados a um mesmo requi-
passos 4 e 5 respectivamente: sito de usurio. Para cada subcategoria, o APM apresenta
Validaes na Entrada de Dados: uma diferente tabela para clculo da complexidade da UCS.
Neste exemplo, apresentamos duas destas tabelas. As de-
Pela solicitao recebida, temos que validar os campos Valor mais so parecidas e podem ser utilizadas facilmente com
estimado e Depreciao, pois ambos exigem valores positi- o apoio do guia.
vos. No primeiro caso, a validao s ser feita se o campo for Com isso, podemos perceber que boa parte das etapas
preenchido, ou seja, se eu no digitar nenhum valor, eu no de medio tem caractersticas comuns com o processo do
precisarei validar se ele maior que zero. Este tipo de valida- SNAP, o que pode facilitar o aprendizado e aceitao desta
o condicional o que chamamos de nvel de aninhamento. nova metodologia pelo mercado. Por outro lado, no SNAP
J cada campo validado ser chamado de DER. Com estas temos diferentes parmetros na contagem de acordo com a
informaes j podemos entender a tabela de referncia desta categoria no funcional coberta, o que torna mais importante
subcategoria, conforme a Tabela 3. o uso de referncias durante a contagem.
Aps conhecer os conceitos bsicos e possuir um guia de
Nvel de complexidade
referncia com as categorias e pontuaes de referncia,
Baixa Mdia Alta
um profissional no ter grande dificuldade para fazer
Critrio 1-5 aninhamentos 6-14 aninhamentos 15+ aninhamentos
contagens. Este artigo fornece a viso conceitual, mas no
Frmula (PS =) 2* #DERs 3* #DERs 4* #DERs
fornece o guia de categorias e suas frmulas que pode ser
Tabela 3. Frmulas da categoria Validaes na Entrada de Dados o prprio guia disponibilizado pelo IFPUG.
Apesar de vrias compatibilidades, de acordo com a verso
Como no nosso exemplo temos apenas dois nveis de aninha- atual do APM, o tamanho total da aplicao no deve ser
mento de validaes, o nvel de complexidade desta subcate- obtido atravs da soma do PFs e dos SPs. Cada uma das con-
goria ser baixo e para calcular os Pontos SNAP da mesma, tagem deve ser tratada de forma independente. O IFPUG ain-
vamos utilizar a primeira frmula, ou seja, teremos 2 * #DERs. da planeja novas pesquisas relacionadas possibilidade de
J que teremos dois campos validados teremos 4 PSs relativos utilizar uma nica mtrica como tamanho total (funcional
Validaes na Entrada de Dados. mais no funcional) e quais seriam as implicaes disso.

Edio 66 - Engenharia de Software Magazine 27


Sobre o impacto de um ponto SNAP na produtividade ou Links:
esforo total, somente o uso em determinado contexto pode
trazer respostas. Assim como com os pontos de funo, cada IFPUG
combinao de equipe de desenvolvimento, cliente e processo, http://www.ifpug.org/
tero diferentes produtividades. Grupo de discusso SNAP (requer aprovao)
Com relao tcnica de fator de ajuste, pudemos observar http://www.linkedin.com/groups?home=&gid=1854919&trk=anet_ug_hm
que esta foi descontinuada e no deve mais ser utilizada como
forma de medir requisitos tcnicos e de qualidade de projetos BFPUG: Comunidade nacional sobre mtricas
http://www.bfpug.com.br/
e aplicativos, tornando o SNAP uma excelente opo para este
tipo de medio em projetos e aplicativos que utilizem ou no
a APF para medir os requisitos funcionais. Voc gostou deste artigo?

D seu voto em www.devmedia.com.br/esmag/feedback


Ajude-nos a manter a qualidade da revista!

28 Engenharia de Software Magazine - IFPUG SNAP: medindo requisitos no funcionais


Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.

Use Case Point: Estimativas de Projeto


Parte 1
Medio de software

Fique por dentro:


Anderson Pinheiro Balbo Um grande desafio dos Gestores de Projetos
anderson.balbo@gmail.com
Possui graduao em Informtica com nfase
Este artigo faz parte de de Software tem sido a estimativa de prazo,
em Gesto de Negcios pela Faculdade de um curso custo, e esforo adequados durante o ciclo de
Tecnologia da Zona Leste, especializao em vida do software, desde o planejamento at
Engenharia de Software pelo Instituto de o produto final. Este trabalho mostra como a
Computao-UNICAMP e especializao em aplicao de medidas se torna uma importan-
Gesto de Projetos em TI pela Fundao Carlos
Alberto Vanzolini-USP. Atualmente supervi-
te ferramenta de apoio a deciso no planeja-
sor de TI na Caixa Econmica Federal. mento de projetos de software, permitindo ao
lder responsvel a adequao dos elementos

A
Wilson Vendramel s empresas que concorrem no necessrios para a entrega do produto ou
wilson.vendramel@fatec.sp.gov.br mercado de software buscam servio com qualidade, usando a tcnica Use
Possui especializao em Engenharia de constantemente aperfeioar a Case Point e considerao de seus resultados
Software e mestrado em Cincia da Com- qualidade dos seus servios prestados, aplicados no estudo de caso de uma fbrica de
putao pelo Instituto de Computao-
a fim de obter diferencial competitivo e software.
UNICAMP, e especializao em Melhoria
de Processo de Software pela Universidade fidelidade do cliente. Uma das maiores
Federal de Lavras. Atuou como Especialista preocupaes dessa indstria tem sido a
de Sistemas na IBM Brasil. previsibilidade de projetos, onde apenas
34% dos projetos de software atingem das estimativas so a falta de controle
Maria Beatriz Felgar de Toledo seus objetivos dentro do cronograma e adequado de custo e cronograma e a
beatriz@ic.unicamp.br oramento planejados. inadequao dos mesmos no ciclo de
Possui graduao e mestrado em
Decises que so tomadas com ba- vida do projeto.
Cincia da Computao pelo Instituto de
Computao-UNICAMP e doutorado em ses empricas conduzem o projeto a Diante dos problemas apresentados,
Sistemas Distribudos pela Universidade de dados de prazo e custo inconsistentes. desejvel que a empresa possua o conhe-
Lancaster, Inglaterra. Atualmente profes- O Standish Group destaca que 43% dos cimento sobre as tcnicas de estimativa
sora associada na Universidade Estadual de erros localizados em um projeto esto para o projeto em questo, assim como
Campinas. Tem interesse nas reas de ges-
relacionados ao fator custo. Dessa for- fundamental que haja uma base de
to de processos de negcio, servios Web,
Web semntica e arquiteturas orientadas a ma, as consequncias imediatas de um dados a respeito de projetos anteriores
servios. processo de software sem planejamento e que possibilitem o seu aproveitamento,

Edio 66 - Engenharia de Software Magazine 29


pois dessa forma o gerente estar capacitado a planejar o pro- desse ambiente em relao qualidade, custo, produtividade
duto a ser desenvolvido baseando-se em informaes concisas das pessoas e processos, alm dos impactos causados pelas
e realistas. inovaes tecnolgicas.
Gestores que tomam decises com bases empricas tendem
a estimar prazos fictcios, na maior parte dos casos, a favor Quando se fala a respeito de medies, importante distin-
do cliente, uma vez que so pressionados por um mercado guir esse termo de medida e mtrica, embora ambos estejam
competitivo onde o menor custo e prazo so determinantes intimamente ligados com o primeiro. A medida em engenharia
para a escolha do fornecedor de software. de software pode ser entendida como um indicador quan-
Consequentemente, a ausncia de tempo necessrio para as titativo de um atributo, enquanto que a medio o ato de
etapas do ciclo de vida do projeto levam as equipes a reduzir determinar a medida, e a mtrica a quantidade de medidas
o esforo; em alguns casos, excluem atividades consideradas individuais de um atributo ou processo de desenvolvimento.
menos importantes (anlise e testes, em geral, so deixados de Com isso, entende-se que a medida de software possa mensu-
lado, e a prioridade dada para a codificao). Dessa forma, rar extenso, capacidade, ou qualquer outro fator quantitativo
o produto, ao passar por uma auditoria de qualidade, retorna que esteja relacionado a uma caracterstica ou propriedade
s mos de seus desenvolvedores, gerando o retrabalho e a envolvida. Atravs da medio so descritas as medidas ne-
necessidade de um prazo maior para entrega, no antes esti- cessrias para se obter os valores e resultados.
pulado. Com isso, o custo tambm ampliado, gerando outros O conjunto de medidas obtido conduz s mtricas, permitin-
problemas como a insatisfao do cliente. do a extrao de dados que, aliados a um indicador, permitem
A adaptao do processo de software ao cronograma e a anlise conjunta do universo de pesquisa. O indicador o
custo previamente estimados reduz a possibilidade de erros valor ou o agrupamento de valores de referncia que, quando
no produto, considerando que ele ser produzido dentro do comparado com as mtricas, permite analisar se estas esto
tempo necessrio para as atividades propostas. Os integrantes ou no ajustadas com o valor esperado.
da equipe conhecero as suas atribuies claramente, uma O processo de medio pode ser dividido em formulao,
vez que trabalharo no prazo acordado para a realizao das coleta, anlise, interpretao e realimentao. A atividade
etapas de desenvolvimento. de formulao abstrai as medidas e mtricas adequadas do
Neste contexto, o objetivo desta srie de artigos apresentar projeto, considerando apenas aquelas que sejam viveis para
a tcnica adequada para as estimativas de custo, esforo e a anlise. A coleta acumula os dados abstrados do projeto,
prazo necessrios em uma organizao cuja finalidade seja a que daro suporte anlise. A atividade de anlise calcula as
produo de software. mtricas. A interpretao analisa as mtricas calculadas em
busca da representatividade das informaes. A atividade de
Medidas de software realimentao leva equipe as orientaes para o ajuste do
A medio de software pode ser considerada um fator crucial processo, de acordo com as informaes interpretadas.
para concretizar a gesto das melhorias de processo, pois a
base para se manter o controle do mesmo, alm de ser tratado Classificao das mtricas de software
como indicador de desempenho de software. Em geral, as mtricas podem ser classificadas conforme a
As medies que tratam de tamanho associado ao custo, sua complexidade de medio, modelo de abstrao utilizado
prazo e esforo em processo de desenvolvimento de software no desenvolvimento do software, ou ainda com foco em um
so considerados fatores primordiais de sucesso em gerencia- determinado fator de anlise no projeto. Chiossi e Germano [3]
mento de projetos. as classificam conforme a sua aplicao, podendo ser diretas ou
As estimativas documentadas constituem a base para a ela- indiretas, tradicionais, de sistemas estruturados ou orientados
borao de um plano do projeto de software. As estimativas a objetos, e ainda em mtricas de produtividade, qualidade,
de tamanho de projetos de software devem ser utilizadas para tcnicas, ou orientadas a pessoas.
a derivao das estimativas de custo, esforo e cronograma, As mtricas diretas so obtidas de atributos facilmente quan-
conforme as diretrizes do CMMI. tificveis como tempo de durao, linhas de cdigo, custo, entre
As medies que se referem ao tamanho, prazo e esforo so outros; as mtricas indiretas so derivadas de duas ou mais
denominadas operacionais, pois esto diretamente associadas mtricas simples, para gerar informaes como qualidade,
s estimativas do processo; as demais estimativas recebem complexidade do produto, confiabilidade e outros.
da operacional os recursos necessrios para outras medies, As mtricas tradicionais baseiam-se nos dados que so inse-
conforme segue: ridos no sistema e nas informaes que so geradas pelo mes-
Medies Estratgicas: so medies de comparao com mo, ou simplesmente entrada/sada; as mtricas de sistemas
os padres de qualidade e em relao s demais empresas de estruturados tm como abordagem as medies em diagrama
tecnologia, assim como o diagnstico do custo do software e de fluxo de dados, enquanto as mtricas orientadas a objetos
seus componentes associados; concentram-se em diagramas como os de classes.
Medies Tticas: so medies responsveis por dar suporte As mtricas de produtividade obtm do resultado do processo
gesto do ambiente de software e analisar as tendncias a produtividade da equipe; as mtricas de qualidade validam

30 Engenharia de Software Magazine - Use Case Point: Estimativas de Projeto Parte 1


planejamento

as funcionalidades do produto contra os requisitos do cliente; aplicavam a tcnica de pontos de funo, e 10,3% baseavam-se
as mtricas tcnicas destinam-se aos atributos do software, em linhas de cdigo.
independente do processo no qual foi desenvolvido; as mtricas Um dos modelos mais recentes aplica o FP a casos de uso.
orientadas a pessoas concentram-se na forma como as pessoas Esse modelo, criado em 1993, denominado Pontos por
desenvolvem o software e a sua interao com as ferramentas Caso de Uso (UCP), e tem como finalidade a estimativa
e mtodos de desenvolvimento. de tamanho e esforo que so extrados diretamente dos
requisitos do projeto.
Mtricas utilizadas no Projeto
Para que uma mtrica seja vivel em um projeto, ela deve ter Mtricas de processo
atributos mensurveis, e no sofrer influncia dos envolvidos As mtricas de controle, associadas ao processo, referem-se
no projeto; a coleta de dados tambm no deve prejudicar o durao, custo de esforo e nmero de incidentes associados
processo de desenvolvimento [3]. Alm disso, as mtricas de- ao processo. Tambm fornecem indicadores que podem servir
vem ser analisadas sob o ponto de vista de pessoas, processo como base para anlise em outros projetos, possibilitando que
e produto (ver Figura 1). se verifique o seu andamento, alm de possveis riscos e pro-
blemas, levando a melhorias nos processos de software.
Entretanto, a medio do processo somente determina a
qualidade do produto se associada medio deste.
Uma abordagem que auxilia na medio de processo a
Meta-Questo-Mtrica (Goal-Question-Metric - GQM). Esta
integra os objetivos das mtricas com os modelos de processo,
produto e perspectivas de qualidade de software, alinhando
as suas necessidades s metas da organizao e s questes
associadas ao seu aperfeioamento.
As metas so as expectativas da organizao de melhoria do
processo, como por exemplo, reduo do tempo de desenvol-
Figura 1. Mtricas associadas ao projeto vimento, melhoria de produtividade da equipe, reduo do
retrabalho. As questes so indagaes associadas s metas
As mtricas de projeto e seus indicadores so utilizados por de melhoria, buscando na resposta a soluo pontual para o
um gerente e sua equipe, a fim de adaptar o fluxo de trabalho e problema levantado. As medies do processo, ao compor as
as atividades tcnicas que agregam valor ao projeto, tornando mtricas do GQM, fornecem os resultados das aes aplicadas
essas mtricas estratgicas. no processo, confirmando se as metas foram atingidas e se as
A partir da obteno das medidas de esforo e tempo em questes foram solucionadas.
projetos anteriores, so formados indicadores que podem ser Por envolver a qualidade do processo, a GQM pode ser situ-
usados com as atuais medies do projeto, gerando estimativas ada no contexto da abordagem do CMMI.
que auxiliem nas decises do gerente. Essas decises tm como
objetivo reduzir o prazo do projeto atravs de correes de atra- Mtricas de pessoas
sos e problemas, e aperfeioar a qualidade do produto durante As mtricas de pessoas indicam a produtividade, tamanho
o seu ciclo de vida, assim como a reduo de defeitos. da equipe, quantidade de comunicao associada ao projeto e
medida que os defeitos so minimizados, h melhoria da habilidades individuais, possibilitando ao gerente verificar se
qualidade do produto, e a quantidade de retrabalho durante o a equipe est alinhada com as necessidades do projeto. Uma
projeto tambm reduzida; isso leva diminuio de custos vez convertidos em indicadores, esses dados se tornam base
no projeto. de anlise para futuras mtricas.
Embora cada modelo de medida possua suas prprias tc- Podemos relacionar produtividade ao esforo utilizando a
nicas de clculo, a maioria deles tem como base os pontos de equao: Produtividade = Esforo / Tamanho do software.
funo ou linhas de cdigo, dos quais derivam as mtricas de Considerando essa equao, pode-se concluir que o esforo
produtividade. da equipe de software diretamente proporcional ao tama-
As linhas de cdigo (LOC) so medidas que levam em con- nho do software, e assim como o esforo, obtido atravs de
siderao a quantidade de linhas produzidas essenciais para mtricas como a Anlise de Pontos de Funo ou Pontos por
a execuo de um programa ou componente. Os pontos de Caso de Uso, por exemplo.
funo (FP), esto voltados ao domnio da informao que in-
terage com o software, e no s linhas de cdigo que definem Mtricas de Produto
a funcionalidade do produto. As mtricas preditivas, associadas ao produto, avaliam o seu
Dados estatsticos obtidos por Drach [4] confirmam que em tamanho e complexidade da estrutura lgica, de dados e de
2001 apenas 30% das empresas utilizavam mtricas para medir funes combinados ou isoladamente, alm da quantidade de
produtividade dos processos de software, sendo que 18,2% atributos e operaes em objetos, de um projeto.

Edio 66 - Engenharia de Software Magazine 31


Fatores de Avaliao dos Indicadores de Produtos
Correo Determina se um programa est de acordo com a especificao e as necessidades do cliente
Confiabilidade Refere-se preciso com que o produto atende aos requisitos do cliente
Eficincia Suporte dos recursos de computao necessrios para que o produto desempenhe o seu papel
Integridade Refere-se ao controle do acesso aos dados do sistema
Usabilidade o esforo empregado na interao com o produto
Manutenibilidade Esforo vinculado correo de erros
Flexibilidade O quanto o programa suscetvel a alteraes
Testabilidade Grau de facilidade em se testar um programa contra as funes requeridas para o mesmo
Portabilidade Esforo necessrio para adequar o produto a outro ambiente operacional
Reutilizao Refere-se aos componentes (ou o programa como um todo) que possam ser utilizados por outras aplicaes
Interoperabilidade Grau de facilidade para a juno de sistemas

Tabela 1. Fatores de Avaliao dos Indicadores de Produtos

Os principais fatores avaliados pelos indicadores de produto estrutura das medidas que devem atender s necessidades
esto apresentados na Tabela 1. de informao, e o de processo, que define o processo de
As mtricas de produto podem ser divididas em classes de medio.
mtricas dinmicas, coletadas por medies de um programa
em execuo, e estticas, coletadas atravs de documentaes
ou dados do programa. Ao se medir um programa em exe-
cuo possvel verificar a sua resposta s aes do usurio
(confiabilidade) e se suas tarefas esto sendo executadas cor-
retamente (eficincia).
Quando a anlise feita a partir de documentos, ou de um
programa que no esteja em execuo, a documentao pode
fornecer ao usurio a viso do quanto o programa simples
de se manusear (usabilidade), e ao ser comparada contra o pro-
grama, possvel verificar se os requisitos foram corretamente
aplicados, no apresentando erros (manutenibilidade).

Medio prtica de software


A medio prtica de software (Practical Software Manage- Figura 2. Ferramenta oficial do PSM, o PSM Insight
ment - PSM) tem o objetivo de fornecer as melhores prticas
e ferramentas de medio para a anlise de prazos e custos Modelo de Informao
em desenvolvimento de projetos de software e sistemas. O modelo de informao composto por trs diferentes nveis
A ferramenta oficial do PSM o PSM Insight, que automatiza de medida, como consta a Tabela 2.
os processos de medio (ver Figura 2). Detalhes da construo da medio permitem visualizar a
O PSM foi desenvolvido pelo Departamento de Defesa e o exr- aplicao dos trs nveis de medida no modelo de informao,
cito norte-americano como um projeto que visa estabelecer um identificados na Figura 3.
processo adequado de medio para o gerenciamento de softwa- Os atributos das entidades so obtidos por mtodos de me-
re e sistema, assim como fornecer a base para uma comunicao dio, formando com isso as medidas bsicas. As funes de
e tomada de deciso objetiva, e a base para o gerenciamento medio so responsveis por agregar duas ou mais medidas
do desempenho na organizao. Alm desses fatores, o PSM bsicas (o resultado so as medidas derivadas). Semelhante
tambm define os seguintes propsitos para o projeto: s funes de medio, o modelo tambm utiliza clculos
Desenvolver prticas efetivas de medies destinadas s algortmicos para gerar os indicadores que do suporte
necessidades de gerenciamento de informaes e tcnicas de informao.
software e sistemas;
Passar para uso geral medidas integradas que resultem no Modelo de Processo
aumento de desempenho. O modelo de processo do PSM composto por quatro ativi-
dades principais: planejar, aplicar, e avaliar as medies, alm
So apresentados dois modelos integrados para o PSM: o de estabelecer e sustentar o comprometimento, atividades essas
de informao, responsvel pelo modo de especificao e a baseadas na sequncia tpica Planejar-Fazer-Verificar-Agir.

32 Engenharia de Software Magazine - Use Case Point: Estimativas de Projeto Parte 1


planejamento

Nveis de Medida Descrio atividade se dispe a identificar aes de melhoria para ga-
Medida adquirida diretamente dos atributos de um produto ou processo rantir atualizao constante do processo, de modo a satisfazer
Bsica as necessidades de informao.
em medio, convertidos em valores;
Derivada Medida adquirida atravs duas ou mais medidas;
As aes de melhoria aumentam a qualidade do processo,
e consequentemente do projeto de desenvolvimento do sis-
Indicadores Conjunto de medidas que do suporte s necessidades de informao.
tema, permitindo ao lder do projeto estabelecer parmetros
Tabela 2. Nveis de medida do modelo de informao de controle das etapas do processo e a adequada anlise dos
resultados que geram diferencial competitivo organizao,
em relao s organizaes que no adotam os procedimentos
de melhoria.
Essa atividade no PSM permite que a organizao, ao deter
as informaes geradas pelas medies, promova o seu ama-
durecimento constante, em relao s medies obtidas.

Estabelecimento e Sustentao do Compromisso


Essa atividade assegura que as medies so suportadas
tanto a nvel organizacional quanto do projeto provendo
a infraestrutura organizacional e os recursos necessrios
para implementar um programa de medio vivel (ver
Figura 4).

Figura 3. Construo de uma medio pelo PSM

Planejamento das Medies


A atividade de Planejamento das Medies identifica as ne-
cessidades de informao no projeto e a seleo de medidas
apropriadas que atendam a essas necessidades. Podemos asso-
ciar o planejamento formalizao da coleta de dados, anlise
e divulgao dos procedimentos adotados, incluindo assuntos
relacionados ao planejamento para avaliar os resultados das
medies na forma de produtos de informao.
Figura 4. Modelo de Processo de Medio do PSM
O Planejamento das Medies tambm caracterizado por
prover a integrao das medies para o gerenciamento de
processos e projetos tcnicos existentes. Mais do que forar um O Paradigma da Meta-Questo-Mtrica
projeto a implementar e pr-definir medidas, o PSM, atravs O paradigma da GQM utilizado para suportar decises
dessa integrao, assegura que as medidas selecionas sero sobre que medies devem ser feitas e a forma como elas sero
efetivas no contexto do projeto. utilizadas. Essa abordagem surgiu a partir da dificuldade em
saber o que deve ser medido, e a necessidade de melhoria dos
Aplicao das Medies processos levou os seus desenvolvedores a associarem essa
A Aplicao das Medies consiste em uma das atividades prtica aos estgios de maturidade do CMMI.
ncleo que direcionam os requisitos dos usurios das medi- O GQM implica a construo de um modelo para medio
es. Trata-se da coleta e processamento dos dados de medio. imprescindvel obteno dos resultados das mtricas.
Esses dados so utilizados tanto para atender s necessidades Considerando o GQM como orientado s metas ou obje-
de informaes individualmente como para as informaes tivos, trs passos fundamentais para sua elaborao so
inter-relacionadas a outras questes. definidos:
Ela responsvel por gerar os produtos de informao para Conceitual: define o objeto a ser medido, podendo ser um
apresentar os resultados de anlises, aes alternativas, e re- produto, processo ou recurso;
comendaes para a tomada de decises no projeto. Operacional: define questes para caracterizar o objeto de
estudo e o seu papel no contexto da qualidade;
Avaliao das Medies Quantitativo: trata da obteno de um conjunto de dados
A Avaliao das Medies aplica tcnicas de medio e associados ao nvel de realizao conceitual e operacional, de
anlise a fim de avaliar o prprio processo de medio. Essa modo que sejam respondidos com o apoio das mtricas.

Edio 66 - Engenharia de Software Magazine 33


Fases do GQM Descrio
Planejamento Relaciona a equipe que participar do GQM, seleciona a rea que deve ser melhorada, define os projetos que sero analisados pelo GQM, e treina a equipe para aplicao do GQM.
Definio Define os objetivos do GQM, adapta os modelos de software ao mtodo, define as questes a serem solucionadas, e promove a reviso dos planos de GQM.
Coleta de Dados Coleta os dados obtidos atravs das mtricas.
Interpretao Analisa os dados contra as questes, a fim de respond-las.

Tabela 3. Fases do mtodo GQM

Alm dos nveis de realizao, o GQM tambm prev qua- Tcnicas de estimativa
tro fases para definir as medies, conforme apresentado na A evoluo tecnolgica trouxe aos ambientes de desenvolvi-
Tabela 3. mento de software a oportunidade de trabalharem com novos
Durante a elaborao do GQM, so produzidos cenrios paradigmas de medio no projeto, pois para cada abordagem
que apresentam os objetivos e as questes com as mtricas de linguagem de programao utilizada, novos ajustes ou me-
associadas. O mapeamento desses cenrios tem como base todologias para obteno das mtricas eram adotados.
o ponto de vista do cliente, gerente de projetos, e integrantes Nenhum modelo de estimativa adequado a todos os pro-
da equipe. cessos de desenvolvimento, pois para cada um deles h uma
Os objetivos so compostos por propsitos, questes, objetos e amostra limitada do projeto, passvel de ajustes para que possa
ponto de vista. Cada questo pode apresentar uma ou mais m- ser utilizado.
tricas, de acordo com o processo em anlise (ver Figura 5). Os modelos utilizados para estimativas, quando tratam de
sistemas de grande extenso, podem dividi-los em componen-
tes menores (subsistemas), de modo a facilitar a anlise dos
dados na medio. Ao iniciar a anlise pelos componentes a
fim de se obter as estimativas de custo, adota-se a abordagem
bottom-up. Aps analisar os componentes separadamente em
uma abordagem bottom-up, os custos so adicionados, totali-
zando o esforo total para o desenvolvimento do sistema.
A anlise inicial pela tcnica top-down permite ao res-
ponsvel pela medio conhecer as interaes entre os
subsistemas na formao do sistema maior, possibilitando
a viso da funcionalidade do sistema. Alm destas, atri-
bumos estimativa top-down os custos relacionados ao
sistema como um todo, alm do gerenciamento do sistema
e sua documentao.
Ao se utilizar os modelos de medio, possvel justificar a
solicitao de recursos monetrios, de tempo e pessoas; avaliar
a necessidade de treinamento e recrutamento de pessoas; gerar
compensaes de produtividade, custo e qualidade; avaliar
e mitigar o impacto das mudanas; negociar o oramento de
acordo com as novas exigncias de desenvolvimento. Essas
razes para estimar o custo de software explicam o uso dos
modelos de estimativas.
Figura 5. Objetivo Verificar Aderncia ao Processo A seguir sero apresentados os modelos CoCoMo 81 e sua
verso atual (CoCoMo II), alm do mtodo de Delphi, o mo-
Os resultados da implantao das mtricas, obtidas atra- delo de Anlise de Pontos de Funo, e o modelo de Pontos
vs das questes de ordem operacional, possibilitam que por Caso de Uso.
indicadores para anlises futuras mais consistentes sejam
gerados. CoCoMo 81 X CoCoMo II
O GQM tambm recomendvel por se tratar de uma abor- O Modelo de Custo Construtivo (Constructive Cost Model -
dagem objetiva dos problemas da organizao quanto aos CoCoMo) foi baseado inicialmente em uma anlise de banco de
processos, que podem ser solucionados pelo levantamento dados com 63 projetos, realizada na dcada de 70 pelo Prof. Dr.
das questes pontuais que envolvem esses problemas, e cujas Barry Boehm, da Universidade do Sul da Califrnia. O modelo
repostas possam ser convertidas nas mtricas. Os resultados fornece frmulas detalhadas para determinar o cronograma do
so os dados estatsticos que do suporte a tomada de aes tempo de desenvolvimento, alm de ser o mais completo para
corretivas. estimativas de esforo baseado em linhas de cdigo.

34 Engenharia de Software Magazine - Use Case Point: Estimativas de Projeto Parte 1


planejamento

Ao se analisar as linhas de cdigo como fator de clculo O modelo intermedirio considera, alm das linhas de cdigo,
no CoCoMo, importante desconsiderar as linhas de co- 15 fatores direcionadores de custo (cost driver), com valores
mentrios no cdigo do programa, pois no so essenciais pr-determinados e que auxiliam o responsvel pela mtrica
para a execuo do mesmo; elas apenas descrevem as ca- a se dedicar a uma anlise apurada que associe o cost driver
ractersticas ou aes que o trecho do cdigo realizar no certo a formula, de forma a gerar informaes mais precisas.
programa. De acordo com Chiossi e Germano [3], aps calcular o esforo,
Dessa forma, as linhas de comentrios precisam ser excludas deve-se multiplicar o resultado pelo valor fornecido na Tabela 5,
para, a seguir, elaborar o modelo com base em trs modos de de modo a ajustar o esforo aos atributos que interagem com
desenvolvimento: o projeto e que, portanto, interferem no desenvolvimento do
Embutido: o desenvolvimento no modo embutido aplicvel sistema.
a ambientes onde h constantes inovaes, com rgidas restri- Considerando um projeto desenvolvido no modo embutido,
es e alteraes mais frequentes em requisitos; e utilizando o modelo intermedirio para a produo de 20
Orgnico: dedicado a ambientes estveis, com equipe peque- KLOC, temos o seguinte esforo:
na e que desenvolvem sistemas relativamente simples; Esforo = 2,8 X 20 1,20 = 102 pessoas-ms
Geminado: dedicado a ambientes que possuem caractersti-
cas do modo embutido e do modo orgnico. Cada um dos fatores de ajuste pode adequar o esforo de
forma a se aproximar da realidade do desenvolvimento. Por
O CoCoMo 81 conta com os estgios de desenvolvimento exemplo, em um ambiente onde a capacidade do programador
bsico, intermedirio e completo, evoluindo de um para outro alta e o tempo de resposta rpido, podemos adaptar o esforo
medida que seus detalhes so implementados. multiplicando-o por 0,86 e 1,07, respectivamente. O resultado
O modelo bsico tem como foco fornecer a estimativa de obtido (94), ajustado aos demais atributos direcionadores de
forma rpida, e tambm mede o tamanho do programa em custo, compe o trabalho para a produo do software.
linhas de cdigo para obter as estimativas de esforo e custo O modelo detalhado utiliza as mesmas equaes do interme-
no projeto. dirio para obter a estimativa de esforo, entretanto duas carac-
No contexto do modelo bsico, o modo orgnico tem uma tersticas so determinantes para reajustar as mtricas [3]:
produtividade de, por exemplo, 352 LOC por pessoa em um Multiplicadores fase sensitivos para esforo: nele, a anlise
ms, enquanto que esse valor cai para 105 LOC no modo do cost-driver se aplica a cada fase do projeto, ao invs do pro-
embutido. jeto como um todo, pois alguns fatores podem ser alterados
Chiossi e Germano [3] utilizam o tamanho em milhares de no decorrer dessas fases;
linhas de cdigo (KLOC) para expor os mtodos de clculo Hierarquia do produto em trs nveis: a anlise do cost-
do esforo (E) e do tempo em meses de desenvolvimento (Td), driver tambm abrange o nvel de sistema, subsistema e
considerando vinte e dois dias de trabalho por ms, para os mdulo.
trs modos de desenvolvimento (ver Tabela 4).
A abordagem do CoCoMo II prope o desenvolvimento das
Esforo nominal estimativas de custo associado ao reuso do cdigo. Utilizamos
Modo Tempo nominal a seguinte frmula, com valores representados na Tabela 6,
Modelo Bsico Modelo Intermedirio
para calcular o reuso do cdigo no CoCoMo II:

Orgnico E = 2,4 S 1,05 E = 3,2 S 1,05 Td = 2,5 E 0,38


ESLOC = ASLOC x (AA + SU + 0,4 DM + 0,3 CM + 0,3 IM) / 100

Geminado E = 3,0 S 1,12 E = 3,0 S 1,12 Td = 2,5 E 0,35


O CoCoMo II tambm utiliza medidas indiretas de software,
como a contagem de telas, relatrios e componentes, citada
Embutido E = 3,6 S 1,20 E = 2,8 S 1,20 Td = 2,5 E 0,32
como contagem de pontos por objeto por. A seguir temos a
Tabela 4. Equaes dos modelos bsico e intermedirio do CoCoMo equao dos pontos de objeto para obter a produtividade,
considerando o cdigo reutilizado:
Supondo, para um projeto de software desenvolvido no modo
embutido, uma estimativa de 70 KLOC para uma aplicao. Nmero de Pontos de Objeto =
Atravs do modelo bsico, o esforo requerido e o tempo de pontos por objeto X (100 - % de reuso)
desenvolvimento dessa aplicao podem ser calculados con- 100
forme segue:
Esforo = 3,6 X 40 1,20 = 301 pessoas-ms Produtividade = Nmero de Pontos de Objeto / pessoa-ms
Tempo = 2,5 X 301 0,32 = 15,5 meses
A Tabela 7 traduz o resultado dessa equao, onde possvel
Logo, o clculo do nmero de pessoas necessrio no projeto : concluir, atravs do nmero de pontos de objeto, se a comple-
N = 301 / 15,5 = 20 pessoas xidade desses objetos simples, mdia ou difcil.

Edio 66 - Engenharia de Software Magazine 35


Cost-Driver Descrio Muito Baixa Baixa Nominal Alta Muito Alta Extra Alta
Atributos do Produto
RELY Confiabilidade necessria nos requisitos 0,75 0,88 1,00 1,15 1,40 -
DATA Tamanho do banco de dados - 0,94 1,00 1,08 1,16 -
CPLX Complexidade do produto 0,70 0,85 1,00 1,15 1,30 1,65
Atributos do Computador
TIME Restries tempo de execuo - - 1,00 1,11 1,30 1,66
STOR Restrio armazenamento principal - - 1,00 1,06 1,21 1,56
VIRT Volatilidade da mquina virtual - 0,87 1,00 1,15 1,30 -
TURN Tempo de resposta - 0,87 1,00 1,07 1,15 -
Atributos do Pessoal
ACAP Capacidade do analista 1,46 1,19 1,00 0,86 0,71 -
AEXP Experincia na aplicao 1,29 1,13 1,00 0,91 0,82 -
PCAP Capacidade do Programador 1,42 1,17 1,00 0,86 0,70 -
VEXP Experincia com mquina virtual 1,21 1,10 1,00 0,90 - -
LEXP Experincia na linguagem de programao 1,14 1,07 1,00 0,95 - -
Atributos do Projeto
MODP Prticas modernas de programao 1,24 1,10 1,00 0,91 0,82 -
TOOL Utilizao de ferramentas de desenvolvimento 1,24 1,10 1,00 0,91 0,83 -
SCED Requisitos do cronograma de desenvolvimento 1,23 1,08 1,00 1,04 1,10 -

Tabela 5. Atributos (Cost drivers) considerados como previsores no CoCoMo [3]

Fator Representao Mtodo de Delphi


ESLOC linhas do novo cdigo O mtodo Delphi para obteno de estimativas de custo
ASLOC linhas do cdigo reutilizvel tem como objetivo ajustar as mtricas obtidas a fim de gerar
um valor mdio que torne os resultados mais precisos.
AA custo para avaliao de viabilidade do software
O mtodo de Delphi colabora com a coordenao das in-
SU custo necessrio para a compreenso do software pela equipe
formaes adquiridas e clculo de estimativas confiveis,
DM percentual do projeto modificado pelo reuso do cdigo atravs dos seguintes passos (ver Figura 6) :
CM percentual do cdigo modificado A especificao do projeto e demais informaes perti-
IM percentual de esforo de integrao do cdigo reutilizado nentes so apresentadas aos especialistas;
A reunio para discutir as estimativas formalizada;
Tabela 6. Representao da frmula de ajuste de esforo no CoCoMo II
Cada especialista preenche os formulrios com as suas
estimativas e esforos obtidos, acrescentando o valor pro-
Peso da complexidade vvel, com limite superior e limite inferior;
Tipo de Objeto
Simples Mdio Difcil As estimativas do grupo e individuais so resumidas em
Tela 1 2 3 um relatrio, acessvel a todos os envolvidos;
Relatrio 2 5 8 O coordenador, responsvel pelas etapas acima, convo-
ca uma reunio com os especialistas para discusso das
Componente 3 GL 10
estimativas geradas no relatrio.
Tabela 7. Um sistema de classificao por esteira rolante
O processo de levantamento das estimativas somente
Em seguida, o nmero de pontos de objeto dividido pelo termina quando a equipe chega a um consenso quanto
nmero de pessoas-ms, de forma a obter a estimativa de ao valor mais preciso. Peters e Pedrycz [6] apresentam o
produtividade da equipe de projeto e a maturidade / capa- consenso das estimativas individuais atravs do seguinte
cidade do ambiente. O nvel de produtividade muito baixo clculo:
tem valor 4, enquanto o valor 7 est associado a baixa ma-
turidade do ambiente e da equipe, o valor 13 considerado Estimativa = (LIe + 4 X estimativa mais provvel + LS e) /
normal, o nvel 25 est associada a alta produtividade, e 50 6, onde LI o limite inferior da estimativa e LS o limite
produtividade muito alta. superior da estimativa.

36 Engenharia de Software Magazine - Use Case Point: Estimativas de Projeto Parte 1


planejamento

Como exemplo, um projeto de sistema


apresentado a sete especialistas, de
tal forma que todos so instrudos a
levantarem estimativas de custo para
produzir o software requerido.
Cada especialista analisa o projeto e ex-
trai dele os dados para medio, utilizando
a tcnica que consideram a mais adequa-
da. Aps obterem as mtricas necessrias,
os especialistas devem preencher formu-
lrios com questes que envolvem os re-
sultados individuais. Nele, os especialistas
incluem os desvios padro para o valor
Figura 6. Etapas para obteno das estimativas
aproximado gerado nos clculos.
O coordenador do processo rene as
sete estimativas e prepara o relatrio
com o consolidado das mesmas. O re-
sumo annimo, facilitando a anlise
imparcial do relatrio consolidado pelos
especialistas, conforme a Tabela 8.
Nela tambm apresentada a varincia
de cada especialista, que a mdia entre
o limite superior e inferior da estimativa.
Cada iterao tambm tem o propsito
de reduzir a varincia do grupo, pois Figura 7. Viso geral do processo de contagem de pontos de funo
isso pode significar o alcance do con-
senso dos especialistas. Nmero do especialista LI e Estimativa mais provvel LS e Estimativa Varincia
1 10 15 32 17 3,7
Anlise de Pontos de Funo 2 17 24 40 25,5 3,8
O modelo de Anlise de Pontos de Fun-
3 13 27 35 26 3,7
o foi criado na dcada de 70 por Allan
Albrecht, e aplicado pela IBM, levando a 4 18 30 37 29,2 3,2
criao do Grupo Internacional de Usu- 5 20 28 40 28,7 3,3
rios de Pontos de Funo em 1986. 6 14 25 36 25 3,7
A abordagem da contagem de pontos 7 23 30 39 30,3 2,7
de funo em uma aplicao surgiu
Mdia 16,4 25,6 37 26,0 3,4
como alternativa aos modelos baseados
em linhas de cdigo, pois consiste em Tabela 8. Mdia das estimativas e varincias
medir o tamanho do produto baseado
em especificao funcional, sem se pre- questo. Embora haja a entrada de novos instalao, incluindo a converso de da-
ocupar com a tecnologia utilizada no projetos para a empresa, alguns deles dos necessria para essa implantao;
processo, conforme ser visto adiante. no requerem que a equipe o desenvolva Contagem de projetos de melhoria:
A tcnica de Pontos de Funo tem do incio; existem projetos no qual o pro- mede a adio, modificao ou excluso
como foco os valores do domnio da duto vem parcial ou totalmente pronto, de funes em projetos j implantados,
informao, ou seja, as estimativas de sendo requisitado empresa o trabalho incluindo a converso de dados;
entradas, sadas, consultas, arquivos e de melhoria do produto. H casos tam- Contagem de uma aplicao: mede
interfaces externas para software CAD. bm em que o desenvolvimento ocorre as funcionalidades de sistemas de de-
A contagem dos pontos de funo, ne- em apenas um ou mais produtos que senvolvimento j implantados a fim de
cessrio seguir alguns passos, conforme compem o sistema. obter valores de referncia (baselines)
descrito na Figura 7. Drach [5] apresenta os trs tipos de atualizveis a cada medio dos projetos
contagem de pontos de funo, conforme de melhoria.
Tipo de contagem a sua aplicao no projeto:
Quando se planeja estimar um softwa- Contagem de projetos de desenvol- A definio do tipo de contagem
re, utilizando pontos de funo, deve-se vimento: mede a funcionalidade en- determinante para o clculo dos pontos
atentar quanto ao tipo de projeto em tregue ao usurio atravs da primeira de funo no ajustados.

Edio 66 - Engenharia de Software Magazine 37


Escopo da contagem e fronteira da aplicao Aps definir os EIs, EOs e EQs, deve-se identificar os DETs,
O escopo da contagem verifica se a medio envolve o sistema e os tipos de arquivos que so referenciados por uma transa-
completo ou apenas parte dele, se todas as funcionalidades so o (File Types Referenced - FTR). O FTR pode ser qualquer
requeridas, apenas as utilizadas pelo usurio, ou ainda algum arquivo lgico interno ou de interface externa, desde que
grupo especfico, como relatrios, por exemplo. tenha sido lido ou mantido atravs de uma transao, con-
A fronteira da aplicao pode ser entendida como a interface forme Tabelas 10 e 11.
entre o software a ser medido e qualquer usurio, sistema ou
outro agente que interaja com este. DET
Nmero de Elementos
O IFPUG determina que, para identificar a fronteira, esta deve 1 a 19 20 a 50 Maior que 50
ser baseada na viso do usurio, a fronteira entre aplicaes 1 Baixa Baixa Mdia
deve atender s regras de negcio e no a consideraes tec-

RET
2a5 Baixa Mdia Alta
nolgicas, e a fronteira inicial no deve ser influenciada pelo
Maior que 5 Mdia Alta Alta
escopo de contagem. Por fronteira inicial entende-se aquela
que j foi definida no incio do projeto. Tabela 9. Complexidade funcional dos ILFs e EIFs

Funes do tipo dados Nmero de Elementos


DET
Na anlise das funes do tipo dados, encontra-se aquelas refe- 1a4 5 a 15 Maior que 15
rentes a arquivos lgicos internos e arquivos de interface exter- 0a1 Baixa Baixa Mdia
na. Podemos defini-los, respectivamente, como agrupamentos
FTR
2 Baixa Mdia Alta
lgicos de dados dentro das fronteiras da aplicao e mantidos
por entradas externas, e agrupamentos lgicos de dados exter- Maior que 2 Mdia Alta Alta
nos aplicao e que fornece dados para a aplicao. Tabela 10. Complexidade funcional das Eis
Considerando esse ponto de vista, pode-se entender que os
arquivos lgicos internos (ILFs), so grupos de dados que so DET
Nmero de Elementos
produzidos e armazenados dentro da aplicao, enquanto que 1a6 6 a 19 Maior que 19
os arquivos de interface externa (EIFs), so grupos de dados 0a1 Baixa Baixa Mdia
que permanecem fora da aplicao em questo, ainda que
FTR

2a3 Baixa Mdia Alta


esteja dentro de uma outra aplicao, e fornecem dados para
Maior que 3 Mdia Alta Alta
a aplicao que est sendo medida, interferindo na contagem
dos pontos de funo. Tabela 11. Complexidade funcional das EOs e EQs
Uma vez definidos os ILFs e EIFs, o prximo passo determi-
nar os tipos de elementos de dados (DETs) e tipos de elementos Contagem de pontos de funo no ajustados
de registros (RETs). Uma vez identificadas s complexidades (baixa, mdia ou
Os RETs so os grupos de dados reconhecidos pelo usurio alta) para os dados e transaes, o prximo passo calcular
do sistema, e os DETs so campos no recursivos de infor- os pontos de funo no ajustados (UFP). Os valores para cada
maes dinmica, identificveis pelo usurio. Se um DET for tipo de dado ou arquivo so pr-determinados, possibilitando
recursivo, apenas o levantamento da primeira informao a dessa forma o clculo de cada uma das funes do sistema
respeito deve ser considerado para a contagem. A contagem (ver Tabela 12).
dos DETs e RETs permite a anlise da complexidade da funo
atravs da Tabela 9. UFP ILF = 7 x 3 ILF baixa + 10 x 3 ILF mdia + 15 x 3 ILF alta
UFP EIF = 5 x 3 EIF baixa + 7 x 3 EIF mdia + 10 x 3 EIF alta
Funes do tipo transao
UFP EI = 3 x 3 EI baixa + 4 x 3 EI mdia + 6 x 3 EI alta
As funes do tipo transao descrevem as funcionalidades
de processamento de dados fornecidas ao usurio pela apli- UFP EO = 7 x 3 EO baixa + 10 x 3 EO mdia + 15 x 3 EO alta
cao. Seus elementos de contagem so as entradas externas UFP EQ = 7 x 3 EQ baixa + 10 x 3 EQ mdia + 15 x 3 EQ alta
(External Inputs - EIs), as sadas externas (External Outputs UFP = UFP ILF + UFP EIF + UFP EI + UFP EO + UFP EQ
- EOs), e as consultas externas (External Inquiries - EQs).
Tabela 12. Clculo dos pontos de funo no ajustados
As entradas externas so processamentos de dados no sistema
originados pelo usurio ou por outro sistema. Essas entradas
de dados so usadas para atualizar os arquivos lgicos inter- Fator de ajuste
nos. As sadas externas so informaes fornecidas do sistema Todo sistema sofre a influncia de fatores externos, res-
para o usurio, como relatrios ou mensagens exibidas em ponsveis pelo desempenho do software e a sua resposta s
tela. As consultas externas so envios de dados para o sistema exigncias do usurio. Dessa forma, a contagem apenas da
com o objetivo de se obter respostas imediatas em forma de complexidade dos dados e transaes torna-se insuficiente
novos dados. para determinar o custo de um sistema. necessrio adaptar

38 Engenharia de Software Magazine - Use Case Point: Estimativas de Projeto Parte 1


planejamento

Caractersticas Gerais do Sistema


Comunicao de Dados Refere-se comunicao da aplicao com o processador, atravs do envio e recebimento de dados.
Processamento Distribudo Nvel em que a aplicao transfere dados entre os seus componentes.
Desempenho Refere-se ao tempo de processamento e de resposta, alm das taxas de transao.
Configurao Altamente Utilizada Mede o nvel de restries dos recursos computacionais no desenvolvimento das aplicaes.
Volume de Transaes Descreve a influncia das transaes no projeto, desenvolvimento, instalao e suporte da aplicao.
Entrada de Dados On-line Descreve o nvel das entradas de dado realizadas pelas transaes.
Eficincia do Usurio Final So os fatores humanos como a facilidade de uso pelo usurio final.
Atualizao On-line Mede o nvel de atualizao dos ILFs on-line.
Processamento Complexo Refere-se ao nvel do processamento lgico ou matemtico na aplicao.
Reusabilidade O quanto o cdigo projetado para uma aplicao pode ser reaproveitado em outra.
Facilidade de Instalao Nvel de adaptao entre a aplicao e o ambiente que a recebe.
Facilidade de Operao Autonomia da aplicao para atividades de inicializao, segurana e recuperao.
Mltiplos Locais Refere-se aplicao ter sido desenvolvida para locais ou organizaes diversas.
Modificao Facilitada Nvel de flexibilidade para alterao do comportamento da aplicao.

Tabela 13. Fatores para Ajustes dos Pontos de Funo

o valor j obtido dos pontos de funo no ajustados com as Links e Referncias:


caractersticas gerais do sistema, que so os principais fatores
de influncia no funcionamento do produto (ver Tabela 13). 1. HAZAN, C.; STAA, A. Anlise e Melhoria de um Processo de Estimativas de
Cada fator para ajuste dos pontos de funo deve ser nivelado Tamanho de Projetos de Software. In: VI Simpsio Internacional de Melhoria
quanto a sua influncia por pontuaes de 0 (zero) a 5 (cinco), de Processos de Software. Rio de Janeiro: 2004, p.34.
sendo respectivamente nenhuma, mnima, moderada, mdia, http://www.simpros.com.br/simpros2004/VisualizarConteudo.aspx. 77.html
significativa ou de grande influncia.
As pontuaes obtidas em cada um dos quatorze fatores de- 2. FERNANDES, A.A.; TEIXEIRA, D.S. Fbrica de Software: implantao e gesto
de operaes. So Paulo: Atlas, 2004.
vem ser somadas, e seu valor total (V total) deve ser calculado
na seguinte frmula:
3. CHIOSSI, T.C.S.; GERMANO, F.S.R. Gerenciamento de Projetos de Software.
So Paulo: UNICAMP - Universidade de Campinas, 2005.
Pontos de Funo Ajustados = (V total x 0,01 + 0,65) x UFP

4. DRACH, M.D. Aplicabilidade de Mtricas por Pontos de Funo em Sistemas


O tamanho funcional do sistema definido, podendo ser
Baseados em Web. So Paulo: UNICAMP - Universidade de Campinas, 2005.
utilizado como varivel para obteno do custo do software. http://libdigi.unicamp.br/document/?code=vtls000359854
Os pontos de funo, por no depender da tecnologia emprega-
da, possibilitam uma melhor comparao entre projetos, alm 5. ANDA, B. et al. Estimating Software Development Effort Based on Use
da elaborao das estimativas na fase inicial do projeto. Cases - Experiences from Industry, Toronto: Departamento de Informtica
- Universidade do Oslo, 2001.
Voc gostou deste artigo? http://www.bfpug.com.br/artigos.htm

D seu voto em www.devmedia.com.br/esmag/feedback 6. VAZQUEZ, C.E.; SIMES, G.S.; ALBERT, R.M. Anlise de Pontos de Funo:
Medio, Estimativas e Gerenciamento de Projetos de Software. So Paulo:
Ajude-nos a manter a qualidade da revista! rica, 2003.

Edio 66 - Engenharia de Software Magazine 39


Planejamento e Gerncia
Nesta seo voc encontra artigos voltados para o planejamento
e gerncia de seus projetos de software.

Desvendando o gerenciamento de projetos


Parte 3
Fase de Iniciao

Fique por dentro:


Vamos apresentar de forma simples as princi-
pais reas e os principais processos necessrios
Este artigo faz parte de ao gerenciamento de um projeto que esto
um curso contidos no Guia PMBOK 4 Edio. Neste ar-
tigo, em especfico, ser abordada a fase de
iniciao dos projetos. Assim, sero retratados
conceitos teis no gerenciamento de qualquer
projeto envolvendo tecnologia da informao,

N
os dias atuais, sabemos da desde desenvolvimento de aplicaes simples
importncia de um bom ge- at implantaes complexas de ERP. Conceitos
renciamento de projetos. Por estes que qualquer gerente de projetos deve
consequncia, gesto de projetos um ter em mente para serem aplicados em seu dia
dos principais assuntos discutidos em a dia. No sero apresentados modelos dos do-
boa parte das organizaes, principal- cumentos aqui citados, porm, voc pode cri-
mente pelos benefcios conquistados los, desde que o contedo dos mesmos reflita a
com sua adoo ou prejuzos por no necessidade do projeto.
se adotar gerenciamento de projetos de
forma efetiva.
Para que as organizaes realmente Desta forma, os assuntos aqui rela-
colham resultados positivos na gesto cionados podem contribuir de forma
Ary dos Santos Rocha Jnior
ary@aryrochajunior.com.br
de projetos, elas devem se estruturar de substancial para o enriquecimento dos
Bacharel em Cincia da Computao pela forma que uma metodologia de gesto conceitos relacionados a gerenciamento
Universidade Federal de Uberlndia, Mes- possa ser aplicada. O primeiro passo de projetos. Ao longo deste artigo per-
tre em Cincias com nfase em Inteligncia para que isto ocorra capacitar um gru- ceberemos a importncia de todos os
Artificial pela mesma Universidade. Possui po de colaboradores em especfico para grupos de processos de gerenciamento
mais de 15 anos de experincia profissio-
nal, atuando sempre na rea de desenvol-
as funes de gerenciamento de projetos de projetos, mas em especial o primeiro
vimento de sistemas, liderana de equipes, e das metodologias escolhidas para se deles, que o grupo de processos de
gerenciamento de projetos e como CIO. gerir qualquer projeto da empresa. iniciao.

40 Engenharia de Software Magazine - Desvendando o gerenciamento de projetos Parte 3


planejamento

Grupos de Processos de Gerenciamento de Projetos Objetivos de escopo: o que se espera em termos de caracte-
O PMBOK considerado hoje um dos principais guias de rsticas e funcionalidades do projeto, ou seja, qual o produto
gerenciamento de projetos, sendo utilizado no mundo inteiro. ou servio que ser entregue no final do projeto.
E neste guia, esto descritos os cinco grupos de processos de
gerenciamento de projetos. So eles: Para que um projeto tenha um bom incio, ressalta-se que
1. Grupos de Processos de Iniciao; as principais caractersticas de um gerente de projetos so:
2. Grupos de Processos de Planejamento; ter atitude, ser responsvel, ser honesto e cativador de sua
3. Grupos de Processos de Execuo; plateia e equipe. Estas caractersticas devem ser muito bem
4. Grupos de Processos de Monitoramento e Controle; observadas ao selecionar o gerente do projeto. Com isto, por
5. Grupos de Processos de Encerramento. consequncia, h uma probabilidade maior de que todos os
membros da equipe do projeto possam convergir para o ca-
O objetivo principal deste artigo focar no primeiro grupo minho que o gerente de projetos direcionar, minimizando o
de processos de gerenciamento de projetos, que o grupo de risco de insucesso do projeto.
processos de iniciao. Dentre os cinco grupos de processos, Com a nomeao do gerente do projeto, este ir atuar no
nenhum pode ser citado como o principal, nem o mais im- grupo de processos de iniciao. Para este grupo de processos
portante; porm, iniciar bem um projeto o primeiro passo podemos citar cinco pontos de grande importncia, a saber:
para que este venha a ter sucesso. Caso no se inicie bem, os 1) Criao do Termo de Abertura do Projeto;
problemas tendem a aumentar durante o projeto. 2) Criao de um plano de atividades para o projeto;
Um projeto, por definio, uma atividade ou grupo de 3) Definio dos recursos envolvidos por parte do cliente no
atividades que tem incio, meio e fim. Caso seja uma ativi- projeto;
dade que no se conclua, por exemplo, esta atividade uma 4) Apresentao da metodologia de gesto de projetos para os
atividade rotineira, repetitiva e no pode ser considerado recursos do cliente;
um projeto. Todo projeto tem sua etapa de iniciao, poste- 5) Apresentao formal da abertura do projeto para os
riormente realizado o planejamento, em sequncia a exe- envolvidos.
cuo o projeto, durante todas as suas etapas, mantido sob
monitoramento e controle total do gerente de projetos. Por O primeiro ponto trata de um documento que formalmente
fim, aps todas as atividades do escopo serem executadas, o autoriza o projeto e contm os requisitos iniciais que satisfazem
projeto encerrado. as necessidades e expectativas das partes interessadas. O termo
O grupo de processos de iniciao consiste nos processos de abertura deve conter obrigatoriamente as necessidades do
realizados para que o projeto seja formalmente iniciado, como negcio, a descrio do escopo do produto ou servio e o plane-
o prprio nome j sugere. O primeiro passo a definio jamento estratgico para o projeto. Este planejamento estratgi-
do escopo do projeto e a alocao e aprovao dos recursos co do projeto deve dar suporte ao planejamento estratgico da
financeiros para o mesmo. Neste momento tambm so iden- empresa e deve ser considerado em todo e qualquer momento
tificadas todas as partes interessadas no projeto e tambm do projeto, ou seja, o planejamento estratgico do projeto deve
formalizado o nome do gerente do projeto, que conduzir ser desenvolvido pensando no planejamento estratgico da
todas as etapas do mesmo. empresa de forma a garantir que a boa execuo do projeto ir
Aps a nomeao do gerente do projeto, ele deve iniciar suas contribuir para que o plano da empresa tambm seja cumprido
atividades e as principais aes a serem executadas so: de forma eficiente. Logo, o planejamento estratgico do projeto
Examinar os objetivos do projeto e as restries que impactam deve estar sempre disposio dos stakeholders.
estes objetivos; Outro ponto a ser considerado que no termo de abertura
Desenvolver uma estratgia de aes para alcanar os obje- no se deve esquecer-se de fazer referncia ao contrato que
tivos do projeto e os objetivos dos envolvidos e interessados, faz a ligao entre contratante e contratada para a execuo
e que, ao mesmo tempo, considere as restries; formal do projeto. De forma mais simples, podemos pensar que
Constituir uma equipe de projeto, identificar os outros recur- para criar o termo de abertura do projeto, um dos principais
sos necessrios e avaliar qual a disponibilidade de recursos documentos que daro suporte a ele o contrato.
humanos e materiais para a execuo do projeto. Depois de desenvolver todas essas atividades, pensar em
todos os aspectos supracitados, teremos a concluso do termo
Alm destas atividades, o gerente de projetos deve sempre de abertura consolidado em um documento contendo:
atuar de maneira bem prxima aos patrocinadores do projeto, Ttulo do projeto: nome que ser dado ao projeto;
deixando bem claros os principais objetivos: Misso do projeto: misso que o projeto deve cumprir;
Objetivos Tcnicos: o que ser entregue tecnicamente; Propsito e justificativa do projeto: objetivos do projeto,
Objetivos de Prazo: qual o prazo estimado para se executar qual o propsito dele para a companhia e as justificativas para
o projeto e para que o mesmo seja entregue com sucesso; que ele seja executado;
Objetivos de Custo: qual o custo estimado do projeto, com Objetivos mensurveis do projeto e critrios de sucesso
sua respectiva margem de erro; relacionados: descrever os objetivos mensurveis do projeto

Edio 66 - Engenharia de Software Magazine 41


e quais os critrios e fatores de sucesso esto relacionados a Como parte do grupo de processos de iniciao, o gerente
cada um para que se possa fazer esta medida e comparao de projetos recebe a autoridade para aplicar recursos orga-
a qualquer momento; nizacionais s atividades subsequentes do projeto.
Requisitos bsicos do projeto: definio de quais so os Outra atividade inerente ao grupo de processos de
requisitos bsicos para a execuo do projeto; iniciao a criao do plano de atividades do projeto.
Descrio do projeto: descrio de todos os itens que Este documento nada mais do que uma lista de todas
compem o projeto; as principais atividades que compem o projeto. O plano
Riscos do projeto: documentao de todos os riscos do proje- de atividades deve descrever as macro atividades, pois na
to, incluindo forma de combat-los e at mesmo elimin-los; prxima etapa do projeto, que engloba o grupo de proces-
Resumo de cronogramas e marcos do projeto: deve-se sos de planejamento, ser desenvolvido um documento
apresentar um resumo do cronograma macro e os macros que o plano do projeto e nele, todo o escopo e todos os
das pequenas entregas e validaes que o projeto poder planos envolvidos no projeto estaro definidos minucio-
sofrer; samente. Assim, nesse documento no h necessidade de
Resumo do oramento do projeto: descrio macro do grande detalhamento e seu principal objetivo apresentar
oramento aprovado para o projeto; aos stakeholders tudo o que ser feito durante o projeto.
Requisitos para aprovao do projeto e das etapas subse- Outro ponto importante a definio dos recursos
quentes: definio e descrio dos requisitos para aprovaes humanos envolvidos no projeto. Eles so de grande im-
durante todo o desenvolvimento do projeto; portncia para que todas as atividades do projeto sejam
Gerente do projeto, responsabilidade e nvel de autoridade realizadas. Podemos dizer que a identificao e nome-
designado: definio do gerente do projeto, suas responsabi- ao das pessoas chave da empresa, que iro compor a
lidades e nvel de autoridade que foi designado a ele; equipe do projeto, um dos principais fatores para que o
Nome e autoridade do patrocinador do projeto, assim como projeto obtenha sucesso. Mas, como estas pessoas devem
a assinatura do mesmo no referido documento, dando incio ser escolhidas? Elas devem ser selecionadas levando em
formalmente ao projeto; considerao inmeros fatores, dentre os quais podemos
Identificao das partes interessadas: neste documento destacar: pr-atividade, conhecimento da rea em que atua
todas as partes interessadas e seus respectivos interesses e nvel de envolvimento com a empresa. No entanto, tais
devem estar devidamente documentados. pr-requisitos no podem ser considerados como regra
geral. Cada cliente pode definir os seus prprios requisitos
O principal objetivo do termo de abertura do projeto que desejveis para seleo de sua equipe, da melhor forma
este documento sirva como base para aprovao ou no do que lhes convier. Aps a definio da equipe, importante
projeto. Sendo aprovado, o projeto torna-se oficialmente au- que o gerente de projetos avalie todos os integrantes e
torizado para ser iniciado. Neste momento os critrios para informe ao patrocinador do projeto se alguma pessoa
o sucesso do projeto tambm so definidos, a influncia e os selecionada pode gerar algum risco ao projeto. Tudo isto
objetivos das partes interessadas so avaliados. Com isto, h para que o projeto realmente tenha os melhores recursos,
uma definio clara se vai ser dado continuidade ao projeto, se com a finalidade de minimizar os riscos e maximizar a
ele vai ser interrompido ou suspenso. Logo, este documento possibilidade de sucesso.
deve estar assinado pelo gerente de projetos e tambm pelo Para que todos os envolvidos no projeto tenham conhe-
patrocinador do projeto, no mnimo. cimento da forma com a qual o mesmo ser conduzido,
No entanto, de uma forma geral, uma boa prtica envol- deve-se fazer uma apresentao da metodologia de gesto
ver o cliente desde a iniciao, aumentando a probabilidade do projeto. Assim, os stakeholders conhecero todos os
de sucesso, compartilhando melhor os riscos e objetivos do passos, alm de saber a necessidade e importncia da
projeto. Alm disso, a aceitao da entrega tende a ser mais documentao, cronogramas e prazos. Durante a apre-
fcil e a satisfao do cliente e das partes interessadas tende a sentao, o gerente do projeto pode conquistar e contagiar
aumentar. Tudo isto pelo simples fato deles terem participado todas as partes envolvidas no projeto, demonstrando toda
de todo o projeto, desde o incio. sua competncia para conduzir o projeto. Assim, o gerente
Durante todo o projeto, praticamente tudo relacionado a ele do projeto pode conseguir gerar como resultado da apre-
deve ser documentado e assinado por todas as partes interes- sentao, a garantia do controle do projeto, possuindo
sadas. Em especial, no grupo de processos de iniciao, este responsabilidade mxima sobre a conduo do referido
cuidado deve ser ainda maior, para que o projeto seja bem projeto, possuindo confiana dos stakeholders.
iniciado e qualquer problema futuro que possa ocorrer seja A apresentao formal da abertura do projeto tambm
resolvido com base em documentos previamente definidos. um item que compe o grupo de processos de iniciao. o
Desta forma, ao criar o termo de abertura do projeto, deve momento onde se apresenta todo o termo de abertura para
observar com clareza a descrio dos objetivos deste, inclusive os patrocinadores do projeto, ou seja, para o cliente. Neste
os motivos que caracterizam o referido projeto como a melhor momento que o termo de abertura assinado e o projeto
alternativa para a empresa. tem a autorizao para iniciar. Alm disso, este momento

42 Engenharia de Software Magazine - Desvendando o gerenciamento de projetos Parte 3


planejamento

de grande importncia para que qualquer desvio que possa Contratos bem elaborados, propostas comerciais claras,
ser diagnosticado no incio do projeto seja sanado. reunies com as partes envolvidas, definio dos objetivos e
Em suma, o grupo de processos de iniciao consiste nos oramento do projeto so de grande valia neste momento.
processos realizados para executar as atividades ineren- Mesmo com toda esta ateno, no se pode esquecer tambm
tes ao incio do projeto. Todas as atividades so de grande que um dos pontos principais que devem ser verificados e que
importncia, haja vista que todo incio de projeto deve ser afetam quase todos os projetos, principalmente neste momento
documentado e assinado pelos stakeholders e sponsors. Em de iniciao, a falta de atitude do gerente de projetos. O geren-
todo em qualquer projeto, podemos fazer uma comparao te de projetos deve ter clareza e certeza de que quem domina o
grosseira com a construo de uma casa. Toda construo projeto ele. Por mais que o cliente seja o suporte financeiro,
inicialmente precisa de uma fundao, de uma base slida, quem domina o projeto o gerente. Logo, ele deve possuir
para que a construo tenha uma boa qualidade e que a casa habilidades para negociar com o cliente e apresentar para ele
tenha uma boa durabilidade. Se no for bem feita, no futuro com clareza todo e qualquer desvio logo que ele ocorrer para
a casa poder apresentar problemas. Da mesma forma, em que impactos futuros sejam minimizados.
um projeto, o grupo de processos de iniciao no pode ser
mal feito ou menosprezado. Apesar disso, vrios gerentes de
projeto esquecem este grupo de processos e j partem para o
planejamento ou mesmo para a execuo, o que um erro gra- Links e Referncias:
vssimo. Nestes casos, a qualquer momento que se necessitar
MARTINS, J. C.C. Tcnicas para Gerenciamento de Projetos de Software. 1.
de algum documento anterior ao plano do projeto, o gerente
Edio Editora Brasport, 2007.
no ter nada em mos para recorrer.
Os grupos de processos de gerenciamento de projetos geram PMI. Um Guia do Conhecimento em Gerenciamento de Projetos. Guia PMBOK
uma srie de documentos com a finalidade de se documentar 4. Edio EUA: Project Management Institute, 2008.
todas as atividades do projeto. O objetivo principal dos mes-
mos deve ser registrar todos os fatos e atividades dos projetos, VARGAS, Ricardo. Manual Prtico do Plano de Projeto Utilizando o PMBOK
unificando palavras e conceitos. Com isto, no haver a possi- Guide 4. Edio Brasport, 2009.
bilidade de uma pessoa A imaginar uma coisa e uma pessoa B
imaginar outra. Valer o que est escrito, documentado. VIEIRA, Marconi. Gerenciamento de Projetos de Tecnologia da Informao
Alm disso, no se deve esquecer em momento algum, em 2. Edio Editora Elsevier, 2007.
qualquer grupo de processos de gerenciamento de projetos,
Site do PMI Brasil
dos registros das atas das reunies. Estes registros podem ser
http://brasil.pmi.org/brazil/home.aspx
registrados em papel, e-mail, vdeos de apresentaes, dentre
outros, desde que documente quem estava presente e tambm
as aprovaes, quando necessrio. Voc gostou deste artigo?
Para concluir, cabe reforar que a cautela com os itens de todos
os grupos de processos de gerenciamento do projeto deve ser D seu voto em www.devmedia.com.br/esmag/feedback
imperativa. Mas o grupo de processos de iniciao deve receber
Ajude-nos a manter a qualidade da revista!
um pouco mais de ateno, pois o momento crucial do projeto.
Portanto, ateno redobrada nas documentaes.

Edio 66 - Engenharia de Software Magazine 43


Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros

Trabalhando com Engenharia de Requisitos


Boas e ms prticas

Fique por dentro:


Este artigo til para que desenvolvedores de
software conheam medidas importantes que
podem auxiliar todo o processo de desenvol-
vimento de software a partir do momento em
que essas prticas ajudam na compreenso dos

A
engenharia de requisitos a requisitos de software, dos solicitantes destes
disciplina que de fato tem a requisitos, da alterao dos mesmos, e dos
misso de ajudar a equipe de principais problemas aos quais os requisitos
desenvolvimento a entender o software de software esto sujeitos. Por fim, a maior
a ser elaborado. a base slida para se utilidade est em prover a compresso sobre
andar do projeto at a construo. Ela como se executar bem a fase de engenharia de
constituda pelas fases apresentadas na requisitos.
Figura 1. So elas:
Concepo: fase inicial que define o
escopo do problema de software;
Elaborao: fase em que os requi-
sitos so refinados e modelados em Requisitos: O necessrio para
Elaine G.M de Figueiredo cenrios; entend-los
mira.figueiredo@gmail.com Validao: a fase em que ocorre a vali- Um requisito uma capacidade que o
Mestrado em Ciencias da Computano dao dos requisitos, onde a equipe faz software deve possuir com a finalidade
com enfase em engenharia de software,
ps graduao em gerncia de projetos,
uma reviso dos mesmos, para que se te- de resolver um problema do usurio.
oito anos de atuao na rea de desen- nha a certeza de que os requisitos foram Os requisitos servem como especifica-
volvimento e qualidade de software. Atu- elicitados de maneira no ambgua; o do que deve ser implementado no
almente gerente de projetos na multina- Gerncia de Requisitos: fase em que se sistema. Os requisitos devem descrever
cional espanhola Indra Company, membro controla, analisa e registra as mudanas uma facilidade para o usurio, uma pro-
colaborador do grupo de pesquisa ASSERT
Advanced System and Software Engi-
de requisito, isto a fim de verificar os priedade ou uma restrio do sistema,
neering Research Technologies Lab pela impactos das alteraes no produto de ou ainda, uma restrio do processo de
universidade federal de Pernambuco. software em desenvolvimento. desenvolvimento do sistema.

44 Engenharia de Software Magazine - Trabalhando com Engenharia de Requisitos


en gen haria

Grau de impacto que a implementao de um requisito pode


ter em relao elaborao de um sistema;
O requisito pode impactar muito, pode impactar modera-
damente, ou ainda causar pouco impacto em um projeto de
software. Este tipo de classificao muito importante para
deixar ciente toda a equipe de desenvolvimento, de quais re-
quisitos podem trazer resultados desastrosos caso no sejam
bem gerenciados ou implementados;
Grau de prioridade que o requisito tem diante s necessi-
dades do cliente, um requisito pode ser altamente prioritrio
para o cliente, ou para o sistema, sua implementao e gesto
devem ser muito bem elaboradas, caso contrrio, a funciona-
lidade do sistema ser deficitria. Um requisito tambm pode
ter prioridade mdia ou baixa.

Este entendimento sobre a classificao dos requisitos im-


Figura 1. Engenharia de Requisitos. portante, pois ao identificar os tipos de requisitos, as equipes
podem organiz-los em grupos, e conhec-los melhor, o que
Os requisitos de software so de trs tipos: torna mais fcil o controle sobre as mudanas e, como consequ-
Requisitos funcionais: so requisitos que descrevem uma ncia, o gerenciamento. Assim, como veremos, a classificao
ao que o software deve ser capaz de realizar; dos requisitos a primeira boa prtica a ser seguida logo no
Requisitos no funcionais: so requisitos que tratam das incio do projeto.
restries do software visando sempre a qualidade, ou seja, O estabelecimento de tipos diferentes de requisitos em um
uma qualidade que o software deve possuir durante a sua projeto ajuda a equipe a classificar os pedidos de alteraes e
execuo; a se comunicar mais claramente e firmemente com os clientes,
Requisitos inversos: so requisitos que definem o que nunca portanto, a classificao j proporciona um entendimento e
deve ocorrer durante a execuo do software; planejamento mais consistente sobre o que ser implementado
e em qual ordem.
Os requisitos funcionais so de dois tipos: Os requisitos de um software so sistemticos, ou seja, algo
Requisitos estveis: requisitos que no so alterados ou mo- em que suas propriedades so conhecidas, mas que tambm so
dificados com frequncia, sua alterao algo excepcional; suscetveis s mudanas. O Rational Software Corporation (RUP)
Requisitos volteis: so requisitos que vivem em constante oferece bons esclarecimentos que justificam a complexidade dos
modificao, eles podem ser divididos em quatro categorias: requisitos de software, estes esclarecimentos foram pontuados a
compatveis, mutveis, emergentes e consequentes. seguir, os mesmos auxiliam no exerccio de ms prticas:
Os requisitos podem vir de vrias fontes e nem sempre so
Os requisitos ainda podem ser divididos em outra categoria, bvios;
se vistos pelo aspecto da implementao: Expressar os requisitos em palavras no to fcil;
Requisitos do cliente, ou requisitos de alto nvel: so aqueles Existem nveis de detalhes para cada requisito;
expostos pelo cliente em linguagem natural, ou ainda em forma O nmero de requisitos pode prejudicar a gerncia de requi-
de desenhos ou casos de uso, qualquer tcnica que facilite o sitos, se no for controlado;
entendimento. Cada requisito nico;
O importante que esses requisito se caracterizam por dizer Os requisitos mudam.
apenas aquilo que o usurio ou cliente quer que o sistema
faa, no h a preocupao de como aquela funcionalidade Aps a explanao anterior, importante exibir as ms pr-
ser implementada; ticas. Vale frisar que mais importante do que entender o que
Requisitos do sistema, ou requisitos de baixo nvel: so re- deve ser feito como boas prticas em um processo entender
quisitos mais detalhados, que relatam no s o que deve ser o que no deve ser feito, bem como as armadilhas preparadas
implementado, mas como deve ser implementado, eles fazem para provocar os erros.
restries a aspectos de implementao e arquitetura, possuem
detalhes que geralmente so obscuros para o cliente, mas que Ms prticas
certamente os desenvolvedores conhecem bem. De forma direta e objetiva, segue o que no deve ser ado-
tado em processos de software na fase de engenharia de
Olhando por um aspecto mais ligado a gerncia, outras duas requisitos:
classificaes podem ser ofertadas aos requisitos, elas foram 1. No corrigir erros e inconsistncias em requisito durante
relatadas por Spence (2000), e so pontuadas a seguir: sua anlise, ou fase de elaborao;

Edio 66 - Engenharia de Software Magazine 45


2. No entender que os clientes e usurios finais do software 3. Fazer o levantamento das necessidades dos envolvidos
costumam evoluir sua compreenso sobre o que desejam com o em pelo menos cinco reas importantes para o sistema:
passar do tempo. Nem to pouco se preparar para este fato; funcionalidade, usabilidade, confiabilidade, desempenho e
3. Provocar problemas tcnicos e principalmente alteraes suportabilidade;
bruscas de custo ou cronograma, isto acarreta mudana nos 4. Identificar membros da equipe que sero coautores e contri-
requisitos que podem ser impactantes para o produto; buiro para a formulao de um ou mais tipos de requisitos;
4. No conhecer o cliente e o usurio final da aplicao; 5. Decidir qual rastreabilidade de requisitos ser necessria. A
5. No se preparar para as mudanas no ambiente em que o rastreabilidade de requisitos o mecanismo mais eficiente de
software ser implementado; auxlio gerncia de requisitos, ela responsvel pela manu-
6. Ofertar as tarefas de requisitos para um profissional que teno das modificaes nos relacionamentos entre objetos e
no tem talento e principalmente apreo pela engenharia de requisitos. Tal rastreabilidade pode ser feita por meio de uma
requisitos; matriz. Com a rastreabilidade possvel ter visibilidade das
7. Desconhecer o negcio e a finalidade da instituio que est consequncias da alterao de um requisito;
propondo o software a ser desenvolvido; 6. Desenvolver uma Matriz de Rastreabilidade de Requisitos.
8. No fazer a modelagem de negcio (regras de negcio) antes A matriz uma das formas mais usuais de se apresentar e
de iniciar a engenharia de requisitos. estabelecer a rastreabilidade de requisitos, ela que prov a
9. No adotar uma linguagem familiar com os clientes e soli- visualizao dos relacionamentos entre os objetos, ou artefa-
citantes dos requisitos; tos de um projeto de software. A Matriz de Rastreabilidade
10. Ofertar uma soluo ao invs de se entender e registrar as um recurso til dentro da gerncia de requisitos, seu uso
necessidades e problemas dos solicitantes de requisitos; extremamente recomendado pelos programas de melhoria
11. No controlar a quantidade de requisitos solicitados, e nem de desenvolvimento de software. Um modelo de matriz
dividir esses requisitos em grupos de implementao; representado na Tabela 1;
12. No relacionar os requisitos entre sim, e entre os produtos 7. Criar relatrios de progresso e status da matriz de rastre-
do processo de desenvolvimento de software; abilidade e dos requisitos, para que a equipe desenvolvedora
13. Estimar mal a quantidade de recursos humanos necessrios entenda o impacto da alterao de um requisito;
para controlar as mudanas nos requisitos;
14. Falta de habilidade para manter os documentos de requi- Projeto <nome> - Matiz de Rastreabilidade
sitos consistentes; Requisito Documento Fonte Arquitetura Componente Caso de Teste
15. Ouvir muitos solicitantes de requisitos sem selecionar
previamente os que mais entendem do negcio;
16. No exibir para os interessados os requisitos em prototi-
paes grficas. Tabela 1. Exemplo de Matriz de Rastreabilidade

Boas prticas 8. A equipe responsvel pela engenharia de requisitos deve


Para se conhecer e definir quais as boas prticas a serem receber todas as solicitaes de alterao nos requisitos por
aplicadas na engenharia de requisitos interessante formular um formulrio prprio, ou por um sistema automatizado, bem
uma poltica de engenharia de requisitos. Tal poltica deve ex- como as solicitaes de adio de novos requisitos;
plicar os objetivos dos processos definidos para engenharia de 9. Aprovar os requisitos com o cliente, usurios e demais
requisitos de forma clara aos envolvidos no projeto. Alm disso, solicitantes, isto dar oportunidade de conhecer requisitos
deve levar em conta os padres organizacionais, as regras de errneos e corrigi-los prematuramente;
negcio da organizao, e as caractersticas de cada projeto, 10. Efetuar revises em planos e produtos de trabalho vi-
alm das aptides de cada profissional da equipe. Por si s, tal sando identificar e corrigir inconsistncias em relao aos
poltica j se caracteriza como uma boa prtica. requisitos;
Uma forte recomendao dentro da engenharia de requisitos 11. Deve-se eleger um gerente de requisitos que deve avaliar
passar a ideia de que requisitos nunca podem ser congelados, o impacto das modificaes solicitadas nos requisitos, e em
e dificilmente sero em algum projeto. Sendo assim, outra boa tudo que est relacionado a eles;
prtica aplicar o gerenciamento de requisitos com o protocolo 12. Deve ser mantido um histrico de alteraes para cada
que deve ser seguido neste gerenciamento, pois a tarefa de se requisito;
gerenciar requisitos pode ser extremamente burocrtica, sem 13. Toda modificao em requisito deve ser comunicada aos
necessariamente agregar valor engenharia de requisitos e envolvidos, devido aos impactos em potencial;
ao processo de software. 14. Uma coleta peridica das mtricas deve ser feita para me-
Outras boas prticas so: lhor acompanhamento da gerncia de requisitos. As mtricas
1. Concordar com um vocabulrio comum para o projeto; daro visibilidade da quantidade de alteraes feitas e de que
2. Descreve de forma clara e objetiva o problema a ser resolvido natureza elas so. Isto contribui para que a equipe saiba o que
pelo sistema, bem como de seus recursos principais; esperar em projetos futuros com requisitos semelhantes.

46 Engenharia de Software Magazine - Trabalhando com Engenharia de Requisitos


en gen haria

Em relao ao ltimo tpico, a importncia de se ter uma Tudo na gerncia de requisitos parte da ideia de que requisitos
mtrica se deve ao fato do gerente de requisitos poder ter o nunca podem ser congelados, e dificilmente sero em algum
percentual de requisitos alterados, includos ou excludos, projeto. Sendo assim, para que a gerncia de requisitos cumpra
dentro de um determinado perodo de tempo. Isto poder sua misso necessrio que ela desenvolva algumas boas pr-
dar maior poder estratgico para os prximos projetos de ticas, como: ter um modelo para rastrear requisitos, inclusive
software, onde o gerente poder saber exatamente em que com a utilizao de ferramentas que faam rastreabilidade.
perodo ocorre maior modificao nos requisitos. Definir um modelo de rastreabilidade de requisitos para
importante salientar que muitos dos tpicos acima esto um projeto depende de muitos fatores, o primeiro deles o
relacionados alterao de requisitos. Assim relativamente software que est sendo construdo. Projetos com relativa es-
fcil notar que a fase de gerncia de requisitos uma das tabilidade costumam ter os requisitos alterados na ordem de
mais importantes dentro da engenharia. Para a gerncia de 1% ao ms. Portanto, observar as caractersticas do sistema
requisitos todas as mudanas precisam ser identificadas, algo que no se pode omitir (mais uma boa prtica agregada).
avaliadas, documentadas, comunicadas e acompanhadas Deste modo, fica evidente que um modelo de rastreabilidade
at sua finalizao. o que defende o CMMI. sempre nico e distinto de qualquer outro.
Quando uma mudana ocorre, primeiramente deve-se ana- Um modelo de rastreabilidade inicia suas boas prticas se-
lisar o requisito que est ligado quela mudana, verificar lecionando os requisitos que devem ser rastreados. Rastrear
a prioridade dele, as quais outros artefatos o requisito est muitos requisitos uma tarefa burocrtica e difcil, que pode
ligado, verificar o impacto sobre estes artefatos; deve-se agregar atrasos e erros ao analista de requisitos. Ademais,
verificar tambm se o requisito prprio do cliente ou do nem todo requisito, depende da sua classificao, necessita
sistema, se voltil, ou seja, se j se esperava esta solicitao ser rastreado.
de mudana, e qual a situao atual do requisito dentro do Outra boa prtica dentro da rastreabilidade de requisitos esta-
processo, enfim, deve-se tratar esta mudana a comear do belece que necessrio verificar (selecionar) as ferramentas de
reconhecimento do requisito. rastreabilidade que apoiaro de forma mais eficaz o processo
Oberg (2002) escreveu que uma indstria americana formulou de rastreabilidade de requisitos, necessrio ainda treinar a
um estudo publicado na conferncia internacional de requisi- equipe para o uso da ferramenta.
tos, este estudo apontava que 76% de um total de 500 gerentes sadio ainda definir os momentos de registro e de controle da
de TI nos Estados Unidos e no Reino Unido entrevistados, j rastreabilidade, isto pode ocorrer no momento de fechamento
tinham tido falhas em projetos inteiros durante suas carreiras. de fases, por exemplo: efetuar rastreabilidade na finalizao
A causa mais frequentemente apontada como falha dos proje- da etapa de anlise e projeto, e na finalizao da etapa de
tos foi a alterao de requisitos. Atualmente, este percentual codificao. No se pode esquecer que requisitos mudam a
deve ter pelo menos duplicado, no s pelo aumento no nmero todo o momento e podem impactar mudanas em todos os
de sistemas implementados, mas tambm pelo aumento da artefatos de software.
complexidade nas relaes e regras de negcios. Os pontos citados nos trs pargrafos acima so os mais rele-
A gerncia de requisitos fundamental para o controle de vantes, sendo que o primeiro mais ainda, visto que no todo
mudanas dos requisitos, pois estes seguem evoluindo com requisito que passvel de rastrear. Deve-se fazer um catlogo,
o passar do tempo, j que esto inseridos em um ambiente e observar atravs das questes a seguir, se no requisito elici-
real que muda com o tempo. A rastreabilidade de requisitos tado pode-se descobrir as informaes exigidas nas questes.
contribui para a previso do impacto que as mudanas dos Se o requisito atender a todas, possivelmente ele ser candidato
requisitos causaro no projeto de software, sendo assim, a rastreabilidade. As questes so pontuadas a seguir:
gerncia de requisitos pode contribuir para a garantia da Deve-se saber quem geriu o requisito;
qualidade do sistema. A gerncia de requisitos se restringe Saber o porqu da sua existncia;
aos seguintes aspectos: Saber quais outros requisitos esto relacionados ao requisito
Gerenciar mudanas em requisitos existentes; elicitado;
Gerenciar relacionamento entre os requisitos; Como o requisito elicitado se relaciona com o sistema a ser
Gerenciar dependncias entre os produtos de trabalho implementado;
durante o desenvolvimento de software. Que documentaes do processo de software podem ser
afetadas pela modificao do requisito.
Para que a gerncia desenvolva seu papel de forma sa-
tisfatria, necessrio de antemo, definir novamente Aps obter respostas a essas questes, em relao aos requi-
um conjunto de polticas. Estas polticas devem explicar sitos, devem-se saber os objetos a serem monitorados, bem
os objetivos dos processos definidos de forma clara aos como, os tipos de rastreabilidade que sero efetuadas, alm de
envolvidos no projeto. E deve levar em conta os padres estabelecer corretamente o tipo de ligao que ser gerenciada
organizacionais, as regras de negcio da organizao, e as nesta matriz, isto depender exclusivamente da caracterstica
caractersticas de cada projeto, alm das aptides de cada dos objetos (produtos de software), dos processos de software
profissional da equipe. utilizados pela organizao, e dos prazos e custos do projeto

Edio 66 - Engenharia de Software Magazine 47


em questo. Executando essas aes, mais fcil fazer da Aps os conceitos que j foram repassados sobre a tcnica de
rastreabilidade, uma tarefa que demande um trabalho pouco rastreabilidade, possvel notar que a gerncia de requisitos
oneroso e com garantias na finalizao. contribui muito para o tratamento de riscos do projeto de soft-
Tambm importante saber o grau de instabilidade dos ware. 80% dos riscos em projetos de software so oriundos da
requisitos. Ou seja, se so requisitos volteis. Deve-se saber, evoluo dos requisitos. Tal gerncia um processo chave ao
ou pelo menos deduzir, com que frequncia eles podem vir processo de gerncia de software, pois a sua correta execuo
a se modificar. pode mostrar ao gerente de projetos os problemas que o desen-
Conhecer a instabilidade dos requisitos do software a ser volvimento de software poder enfrentar futuramente.
desenvolvido algo que tambm facilita o estabelecimento Percebeu-se at agora, que a gerncia de requisitos, ao con-
de uma matriz de rastreabilidade, visto que, alguns sistemas trrio de outros processos que podem ser gerenciados dentro
possuem requisitos funcionais que so pouco volteis, onde de um nico grupo de negcios, pode envolver qualquer va-
os fatores que podem ocasionar mudanas existem, mas no rivel, ambiente, grupo de pessoas, ou processo, que possam
so constantes, no provocam muitas variaes. Esses sistemas contribuir com o seu desenvolvimento. Este gerenciamento
desenvolvem uma matriz relativamente simples, com poucos inclui as pessoas envolvidas com a elicitao de requisitos,
requisitos, ou com requisitos que no so to volteis. Neste e tambm com a definio dos testes pelo qual o sistema ir
caso, o gerenciamento facilitado e pode-se usar at mesmo passar. Gerentes de desenvolvimento, de qualidade, analistas,
uma planilha eletrnica como ferramenta. engenheiros, clientes, podem e devem participar do processo
Vale salientar que se faz necessrio a determinao de um de gerncia de requisitos.
modelo de matriz de rastreabilidade para todo software que Apesar da importncia discutida neste artigo, a engenharia
ser construdo. Alis, todo sistema deve fazer uso da rastrea- de requisitos na prtica ainda pouco utilizada em muitos
bilidade de requisitos, mesmo os mais estveis. Os sistemas que ciclos de desenvolvimento. Isto se deve ao fato de muito dos
necessitam de mais ateno na elaborao da matriz possuem processos que compem esta engenharia serem feitos de forma
o seguinte perfil: burocratizada. Um desafio para os executores dos processos e
Aplicaes para Internet, onde modificaes surgem a todo tarefas relacionados aos requisitos prover solues prticas
o momento em vrias etapas; e tcnicas geis a tais processos.
Sistemas em que a equipe desenvolvedora geralmente possui
prazos relativamente curtos para o desenvolvimento;
Aplicaes que possuem seus requisitos em constante Links e Referncias:
evoluo.
1. Alves, S. R. e Alves, L. A. (2009), Engenharia de Requisitos em Mtodos
geis.
Aps a definio do modelo, alguns outros aspectos, em
relao ao desenvolvimento da rastreabilidade devem ser 2. Cohn, M. (2004) User Stories Applied For Agile Software D evelopment.
levados em considerao: Addison Wesley, Kent Beck, p. 17-29 .
Durante o processo de desenvolvimento da rastreabilidade,
3. dAmorim, F. R. S. (2008), Engenharia de Requisitos para Mtodos geis.
os elos (relacionamento entre os requisitos e os objetos de
software) devem ser monitorados, pois eles tambm sofrem Os Processos Tpicos da Engenharia de Requisitos
modificaes, por exemplo: um elo que antes era de satisfao http://www.choose.com.br/infochoose/artigos
passa a ser de dependncia, para isso, basta que o objeto a que
ele esteja ligado sofra alguma alterao; Requirements Engineering Laboratory
http://www.cin.ufpe.br/~ler/index.php
Conscientizar a equipe da importncia do processo de ras-
treabilidade, evidenciar que a rastreabilidade de requisitos Traceability Strategies for Managing Requirements With Use Cases.
sim um fator de sucesso para a agilidade do processo e para SPENCE, Ian; PROBASCO, Leslee.
o tratamento das mudanas, e isto impacta diretamente em http://www.embeddedstar.com/technicalpapers/content/t/embedded818.html
tempo e custo;
Aps o trmino do projeto, analisar e avaliar criticamente a Voc gostou deste artigo?
eficincia e eficcia do processo de rastreabilidade, verificando
os pontos positivos e os que necessitam de melhorias. O esforo D seu voto em www.devmedia.com.br/esmag/feedback
da equipe, o controle sobre as informaes manipuladas, e as
lies aprendidas devem ser considerados. Ajude-nos a manter a qualidade da revista!

48 Engenharia de Software Magazine - Trabalhando com Engenharia de Requisitos


Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros

Especificando casos de uso eficazes


Conhea algumas boas prticas

Cenrio:
Requisitos so a base para diferentes etapas
do desenvolvimento de um software. Isto faz
deles um fator decisivo para o sucesso do pro-
jeto. Neste artigo partiremos de um exemplo
comum de ser encontrado em sistemas de
Este artigo do tipo mentoring informao - uma consulta seguida da exclu-
saiba mais: so de itens cadastrados - e aprimoraremos a
www.devmedia.com.br/mentoring-saibamais especificao realizada inicialmente, conside-
rada equivocada, no sentido de torn-la mais
completa para que outros membros da equipe
de desenvolvimento possam trabalhar de for-

U
m questionamento comum que ma mais eficiente.
muitos profissionais fazem ao
iniciar os trabalhos na rea de
requisitos se existe um formato de des-
crio de casos de uso a ser seguido. Em- informaes necessrias para que os
bora exista uma definio de estrutura demais membros da equipe de desen-
bastante difundida baseada no modelo volvimento desempenhem de forma
de documento de caso de uso proposto satisfatria suas atividades. Contudo,
pelo RUP (Rational Unified Process), no mesmo este formato funcionando ade-
existe uma regra sobre como eles devem quadamente em uma empresa, isso no
ser descritos. quer dizer que ele possa ser utilizado
Na verdade, a prtica da escrita de de forma satisfatria por outra organi-
casos de uso varia de empresa para a zao. Maiores ou menores nveis de
Rodrigo Oliveira Spnola empresa e cada cenrio deve ser respei- detalhamento na descrio podem ser
rodrigo.devmedia@gmail.com
Editor Chefe Engenharia de Software tado. Se um determinado formato fun- necessrios.
Magazine ciona adequadamente para a empresa Enfim, no h uma regra. Entretanto,
X, por que ele contem o conjunto de um conjunto de boas prticas tem sido

Edio 66 - Engenharia de Software Magazine 49


percebido ao longo dos anos e que, se consideradas, podem utilizada pela equipe de desenvolvimento. A partir de agora
contribuir positivamente para que a especificao do caso veremos como corrigir os problemas presentes nesta especifi-
de uso seja realizada de forma mais satisfatria. Satisfatria cao atravs da aplicao de um conjunto de boas prticas.
neste caso significa poder ser utilizada por outros membros
da equipe de desenvolvimento (testadores, projetistas e Boas prticas aplicadas ao caso de uso
desenvolvedores, por exemplo) sem a necessidade de novas O conjunto de boas prticas apresentadas neste artigo est
intervenes na especificao para que ela possa ser mais bem organizado em trs grupos:
compreendida. Navegao: boas prticas que dizem respeito definio
Neste cenrio, partiremos de uma especificao de caso de de informaes na descrio de caso de uso que permitam
uso simplificada para um requisito de consulta e excluso ao desenvolvedor entender como ser a interao do usurio
de itens cadastrados. Esta verso simplificada ser aprimo- com o sistema;
rada aos poucos considerando um conjunto de boas prticas. Campos: boas prticas que dizem respeito definio de
Ao final, teremos uma especificao bem definida e que ir informaes que permitam o correto entendimento sobre
considerar vrias das prticas que tm sido adotadas por as informaes manipuladas pelo sistema, assim como suas
equipes de desenvolvimento de software. propriedades como formatos e obrigatoriedade;
Regras de Negcio: boas prticas relacionadas a preocupa-
Cenrio utilizado es que devem ser consideradas quando se estiver definindo
Para ilustrar o uso de boas prticas na descrio de um as regras de negcio associadas ao caso de uso.
caso de uso, partiremos do seguinte requisito funcional: o
software deve permitir que funcionrios efetuem buscas por Para o grupo navegao, as boas prticas consideradas
itens cadastrados e, uma vez retornado o resultado da busca, sero:
itens possam ser excludos. A partir deste requisito funcional, 1. Definir explicitamente os diferentes fluxos de uso do soft-
busca-se detalhar sua descrio de forma que outros membros ware nos casos de uso;
da equipe de desenvolvimento possam realizar suas ativida- 2. Definir explicitamente condies de entrada para cada um
des como projetar o software, planejar os testes e codificar o dos fluxos;
produto. 3. Definir explicitamente o ponto em que o software estar
A Tabela 1 apresenta uma possvel verso simplificada (que ao sair de cada fluxo;
no considera o conjunto de boas prticas descritas na prxima
seo) deste caso de uso. Observe que esta verso apresenta Os resultados da aplicao dessas prticas na especificao
vrios problemas associados a itens que precisam estar pre- do caso de uso apresentada na Tabela 1 podem ser obser-
sentes numa descrio de caso de uso como: vados na Tabela 2. As linhas em vermelho representam as
Campos a serem preenchidos; informaes que foram acrescentadas especificao inicial.
Fluxos alternativos; Observe que acrescentamos um conjunto de informaes que
Fluxos de exceo; permitem agora, equipe de desenvolvimento, entender como
Opes presentes na tela. se d a interao entre o ator e o sistema para realizao da
funcionalidade.
Objetivo: Permitir que itens fossem procurados e excludos do sistema. Contudo, ainda no temos nenhuma informao sobre as
Atores: Funcionrio informaes manipuladas pela funcionalidade. sobre isso
1. O ator seleciona a opo Buscar Itens que falaremos a partir de agora. Para o grupo campos, as boas
2. O sistema apresenta tela de busca prticas consideradas sero:
3. O ator informa os dados do filtro e seleciona a opo buscar 1. Definir explicitamente os diferentes campos que so apre-
Fluxo Principal: 4. O sistema apresenta os itens recuperados sentados em cada passo do caso de uso;
5. O ator seleciona os itens que deseja excluir e seleciona a opo 2. Definir explicitamente a obrigatoriedade dos campos;
excluir 3. Definir explicitamente se os campos so editveis ou so-
6. O sistema exclui os itens selecionados mente leitura;
Fluxo Alternativo: - 4. Caso o campo contenha uma lista de opes fixa, definir
explicitamente as opes disponveis;
Fluxo de Exceo: -
5. Caso o campo possua um comportamento diferenciado,
[RN1] Apenas itens cujo status seja igual a Pendentes podem ser
Regras de negcio: definir este comportamento explicitamente atravs de uma
excludos
regra de negcio.
Tabela 1. Caso de uso Excluir Itens Cadastrados Verso com Problemas
Os resultados da aplicao dessas prticas na especificao
Podemos afirmar que por conta do conjunto de omisses do caso de uso apresentada na Tabela 2 podem ser observados
encontradas na especificao, ela est mal elaborada, necessi- na Tabela 3. As linhas em vermelho representam as informa-
tando que ajustes sejam realizados de forma que ela possa ser es que foram acrescentadas. Observe que foi adicionado um

50 Engenharia de Software Magazine - Especificando casos de uso eficazes


en gen haria

Objetivo: Permitir que itens fossem procurados e excludos do sistema. Objetivo: Permitir que itens fossem procurados e excludos do sistema.
Atores: Funcionrio Atores: Funcionrio
Condio de Entrada O ator seleciona a opo Buscar Itens Condio de Entrada O ator seleciona a opo Buscar Itens
1. O sistema apresenta tela de busca 1. O sistema apresenta tela de busca contendo as informaes [RN2]
2. O sistema apresenta ao final as opes Buscar e Cancelar [RN3]:
3. O ator informa os dados do filtro e seleciona a opo buscar [A01] - Nome (campo editvel)
4. O sistema apresenta os itens recuperados - Status (contendo as seguintes opes: Pendente, Confirmado, Todos)
5. O sistema apresenta ao final as opes Excluir e Voltar (campo editvel)
Fluxo Principal:
6. O ator seleciona os itens que deseja excluir e seleciona a opo excluir 2. O sistema apresenta ao final as opes Buscar e Cancelar
[A02] [RN1] [EX01] 3. O ator informa os dados do filtro e seleciona a opo buscar [A01]
7. O sistema exclui os itens selecionados 4. O sistema apresenta para cada item recuperado as seguintes
8. O sistema retorna para a tela inicial informaes:
9. O caso de uso encerrado Fluxo Principal: - Opo de seleo (campo editvel)
[A1] O ator seleciona a opo Cancelar - Nome (somente leitura)
1. O sistema retorna para a tela inicial - Descrio (somente leitura)
Fluxo Alternativo: 2. O caso de uso encerrado - Status (somente leitura)
[A2] O ator seleciona a opo Voltar 5. O sistema apresenta ao final as opes Excluir e Voltar
1. O sistema retorna ao passo 4 do fluxo principal 6. O ator seleciona os itens que deseja excluir e seleciona a opo excluir
[E1] Item no pode ser excludo [A02] [RN1] [EX01]
1. O sistema apresenta mensagem indicando quais itens no podem ser 7. O sistema exclui os itens selecionados
excludos 8. O sistema retorna para a tela inicial
Fluxo de Exceo:
2. O sistema apresenta ao final a opo OK 9. O caso de uso encerrado
3. O ator seleciona a opo OK [A1] O ator seleciona a opo Cancelar
4. O sistema retorna ao passo 4 do fluxo principal. 1. O sistema retorna para a tela inicial
[RN1] Apenas itens cujo status seja igual a Pendentes podem ser Fluxo Alternativo: 2. O caso de uso encerrado
Regras de negcio:
excludos [A2] O ator seleciona a opo Voltar
Tabela 2. Caso de uso Excluir Itens Cadastrados Prticas do Grupo 1. O sistema retorna ao passo 4 do fluxo principal
Navegao Aplicadas [E1] Item no pode ser excludo
1. O sistema apresenta mensagem indicando quais itens no podem
ser excludos
conjunto de informaes que permitem agora entender quais Fluxo de Exceo:
2. O sistema apresenta ao final a opo OK
informaes so manipuladas e quais as restries de seu uso.
3. O ator seleciona a opo OK
Alm disso, essa definio permitiu equipe de desenvolvi-
4. O sistema retorna ao passo 4 do fluxo principal.
mento definir mais duas regras de negcio associadas aos
[RN1] Apenas itens cujo status seja igual a Pendentes podem ser
campos Nome e Status da tela de busca.
excludos
Neste momento j temos uma descrio de casos de uso bem
Regras de negcio: [RN2] O campo nome opcional.
definida. Apresentaremos agora o ltimo grupo: Regras de
[RN3] O campo Status vem com a opo Todos selecionados como
Negcio. Para este grupo, podemos considerar as seguintes
padro.
boas prticas:
1. Caso a regra seja de difcil entendimento, complementar sua Tabela 3. Caso de uso Excluir Itens Cadastrados Prticas do Grupo
descrio atravs de um exemplo. Campos Aplicadas

Esta ltima boa prtica no se aplica ao nosso exemplo, con-


tudo, importante estar atento a ela. Lembre-se, a regra ser Referncias:
utilizada por outros membros da equipe de desenvolvimento,
e no apenas pela equipe de analistas de requisitos que, por Alves, S. R. e Alves, L. A. (2009), Engenharia de Requisitos em Mtodos
interagir diretamente com o cliente, tem um conhecimento geis.
mais completo do negcio que est sendo mapeado.
Concluindo, importante estar atento ao fato de que estas
prticas podem ou no ser adequadas s necessidades de sua Voc gostou deste artigo?
organizao. importante lembrar tambm que o conjunto
apresentado no e nem pretende ser uma lista final de D seu voto em www.devmedia.com.br/esmag/feedback
boas prticas. Outras certamente existem e quase sempre so Ajude-nos a manter a qualidade da revista!
provenientes da experincia de analistas nos projetos que
participa.

Edio 66 - Engenharia de Software Magazine 51


Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros

Gesto de Regras de Negcios

Fique por dentro: profissionais formados em diferentes universida-


Marco Ikuro Hisatomi Um desafio no desenvolvimento de software des. Este artigo tem como finalidade a implanta-
marco.hisatomi@gmail.com
sempre foi atender s necessidades dos usurios o de um modelo de gesto de regras de neg-
Possui graduao em Tecnologia em Proces-
samento de Dados pela UEM, especialista em finais, com maior preciso e rapidez em nveis cios paralelamente gesto do desenvolvimento
Desenvolvimento Gerencial e Gesto da Quali- operacionais e estratgicos da organizao. Ain- de software, ofertando uma viso transparente
dade pela FECEA. Mais de 27 anos de vivncia da, a complexidade tem crescido rapidamente aos usurios finais quanto aos processos de seus
em desenvolvimento de software e gerencia- em funo das fortes demandas por sistemas negcios. Atravs deste modelo de gesto de re-
mento de projetos, engenharia de Software,
que exigem integraes com outros sistemas. quisitos, possvel efetuar a gesto das regras
engenharia de testes, fbrica de software, em
pequeno e grande porte. Professor em cursos Os fatores que exigem maior gerenciamento no de negcios com foco na garantia da qualidade e
de graduao desde 2004. desenvolvimento de software esto nas diversas integralidade das implementaes destas regras
plataformas tecnolgicas, multidisciplinaridade no software, alinhadas aos processos de neg-
Anderson de Souza Ges demandadas no desenvolvimento de software e cios da organizao.
andersonsouzagoes@gmail.com
Graduado em Cincia da Computao pela Uni-
versidade Estadual de Londrina - UEL (2011).

A
Atualmente aluno regular pela mesma ins-
tituio. Tem experincia na rea de Cincia gesto da informao requer a proposta est na melhoria da gesto
da Computao com nfase em Sistemas da uma disciplina de execuo do conhecimento. A partir de problemas
Informao e Engenharia de Software. dos procedimentos bem defi- evidenciados no processo de desenvol-
nidos. Existem vrias fontes de infor- vimento de software e perda de infor-
maes e tambm inmeras formas maes, algumas anlises esto sendo
Rodolfo Mirando de Barros de expressar a mesma informao [1]. formalizadas, como base para demons-
rodolfo@uel.br
Rodolfo Miranda de Barros graduado em Ci- E por estes motivos que softwares nem trar as melhorias que so possibilitadas
ncia da Computao pela Universidade Federal sempre possuem as funcionalidades de com o uso deste modelo.
de So Carlos (UFSCar) e em Administrao de acordo com as regras de negcios da Num formato mais prximo da reali-
Empresas pela Universidade Estadual de Lon- organizao patrocinadora do projeto dade do usurio e dos procedimentos da
drina (UEL). Concluiu o mestrado em Cincia da
de desenvolvimento. empresa na qual a regra aplicada, esta
Computao pela Universidade Federal do Rio
Grande do Sul (UFRGS) em 1997 e o doutorado Atravs de um modelo de gesto das definio reflete exatamente os passos a
em Engenharia Eltrica pela Universidade Es- regras de negcios, desde sua formali- serem seguidos para alcanar os resulta-
tadual de Campinas (UNICAMP) em 2008. zao at a validao de aplicabilidade, dos esperados pela empresa. A partir das

52 Engenharia de Software Magazine - Gesto de Regras de Negcios


boas prticas

Figura 1. Metodologia de pesquisa. Fonte: adaptada de [2]

regras de negcios consistentes s necessidades da empresa, em uso para a avaliao de processos do desenvolvimento de
inicia-se o processo de desenvolvimento do software, atravs software foi aplicado, neste trabalho, um modelo de avaliao
das tcnicas e metodologias escolhidas para o projeto. genrico para o desenvolvimento de artigos. Foram seguidas
A diferena fundamental em ter a gesto das regras de neg- atividades de acordo com as trs etapas: Anlise Terica, De-
cios segregadas da gesto de requisitos est na possibilidade senvolvimento e Avaliao.
da avaliao do prprio usurio, de que suas regras foram Em princpio, os trabalhos pesquisados foram planejados
integralmente implementadas no software desenvolvido. por ano de publicao e assunto relacionados gesto do
Neste artigo, o modelo da gesto das regras de negcios est conhecimento com foco nas regras de negcios. Especi-
complementado com os princpios da transdisciplinaridade ficamente limitados a trs anos, a partir de 2010, para os
entre a comunicao, a colaborao e a agilidade na gesto do peridicos e livros de autores com histrico em Engenharia
conhecimento [2]. Tendo como foco a participao ativa dos de Software e Qualidade no Processo de Desenvolvimento
envolvidos e responsveis pela informao que deve estar de Software.
atualizada; obtendo resultados muito maiores que uma simples Dentre os assuntos relacionados gesto do conhecimento,
somatria dos conhecimentos catalogados. com foco no desenvolvimento de software, foram escolhidos
a gesto de regra de negcio, gesto da regra de requisitos,
Metodologia seguida e outras abordagens avaliao de requisitos implementados e avaliao das regras
Nesta seo, com a finalidade de estruturar o artigo e fornecer de negcios atendidas por aplicativos de software. Para me-
os subsdios necessrios para a sua construo, ser apresen- lhor compreenso, as atividades executadas foram ilustradas
tada a metodologia de pesquisa utilizada para seu desenvol- pela Figura 1.
vimento. Para finalizar, sero apresentados os estudos mais Na primeira etapa, so executadas duas macro atividades,
recentes relacionados ao gerenciamento de regras de negcio sendo a Fundamentao Terica (1), relacionados pesquisa
no processo de desenvolvimento de software. em artigos publicados. Esta tem como origem a busca em base
de dados para referncias e estudos desenvolvidos no seg-
Metodologia de Pesquisa mento de desenvolvimento de software e gesto de regras de
O desenvolvimento do modelo da gesto de regras de negcio negcios. Em consequncia da pesquisa, elaborada a tabela
foi aplicado com base na organizao GAIA que tem como ob- comparativa dos principais artigos que trataram de forma
jetivo o desenvolvimento de software. Baseado na metodologia explcita os assuntos.

Edio 66 - Engenharia de Software Magazine 53


A etapa intermediria, de Desenvolvimento (2), que tambm com as metas da organizao. Atravs da incorporao com
contempla a consolidao do modelo de gesto da regra de a poltica organizacional, as regras de negcios conduzem a
negcios, so cumpridas com quatro macro atividades: Elabo- alcanar as metas desejadas.
rao do modelo de gesto da regra de negcio e Consolidao Na Tabela 1 possvel identificar a extenso em que a gesto
do modelo de Gesto da Regra de Negcio; sendo que as ativi- das regras de negcios percorre para obter a eficincia e eficcia
dades Estabelece critrio de avaliao e Aplicao do modelo desta gesto nas organizaes de desenvolvimento de softwa-
so compartilhadas com a etapa de Avaliao. re. E tambm verifica-se que os itens pesquisados refletem a
Na elaborao do modelo, foram adequadas abordagem realidade de organizaes que possuem o conhecimento como
proposta, as definies identificadas em trabalhos anteriores. um de seus ativos organizacionais. Na qual, com a aplicao
Tendo como o principal diferencial, [3] a segregao das Regras dessas propostas percebem o benefcio da utilizao da gesto
de Negcios dos Requisitos de Software, para que tenha uma das regras de negcios como fonte de qualidade em software e
validao [4] de que o software estar contribuindo efetiva- o domnio destas regras ao longo da vida da organizao.
mente aos negcios da organizao.
Para obter uma validao completa e conclusiva, um dos Outros trabalhos
mtodos de elaborao do questionrio inclui a colaborao Agora, para poder validar o estudo realizado, foi construda
dos membros da equipe que participaram neste estudo, de uma reviso de literatura com as principais vertentes desse
modo a exatido das informaes prestadas associada ao trabalho. Nesse processo de reviso, foram abordados os traba-
comprometimento dos participantes. Os critrios de avaliao lhos mais recentes (ltimos cinco anos), que foram publicados
e a aplicao do modelo contemplam concomitantemente nas em bases de dados de alta qualidade e de alta confiabilidade,
etapas de Desenvolvimento e de Avaliao (3), mantendo a tais como, Scopus, ACM Library, IEEE Xplore, Science Direct,
objetividade da execuo e da avaliao. entre outras. Tendo como finalidade expressar o verdadeiro
Na etapa 3, a macro atividade Avaliao do Resultado teve estado da arte das seguintes estruturas fundamentais para
como finalidade analisar cada resposta do questionrio, atra- esse trabalho: Regra de Negcio, Levantamento de Requisitos
vs da tabulao com a indicao de uso satisfatrio do modelo e Gesto do Conhecimento.
de gesto. As respostas so obtidas atravs da macro atividade
de Aplicao do questionrio de avaliao. Regra de Negcio
Uma definio clara de regra de negcio foi descrita por [2]
Trabalhos Relacionados cujo entendimento ter a descrio atmica, na qual no pode-
A linha mestre para elaborar o quadro comparativo foi r ser subdividida em partes; e deve afirmar, ou influenciar ou
transitar pelos diversos nveis da organizao. Desde o nvel controlar o comportamento dos negcios de uma organizao.
estratgico, de responsabilidade da alta administrao, at Dentre inmeras caractersticas da regra de negcio, o mesmo
o de validao das regras no software desenvolvido. Obvia- autor cita algumas fundamentais:
mente, consultando as premissas da gesto do conhecimento, Para tornar os processos de negcios com mais flexibilidade
do processo de gesto das regras de negcios e do impacto no as regras devem ser armazenadas separadamente de fcil
desenvolvimento de software. recuperao;
O ponto inicial de qualquer atividade relacionada gesto do Deve prever que as regras de negcio evoluem ou se modifi-
conhecimento est na explicitao, padronizao e gerencia- cam independente do modelo de processos de negcios;
mento do conhecimento, enfatizado por [4]. Complementado comum que as regras de negcios se alteram com maior
pelo armazenamento destes conhecimentos em separado quan- frequncia do que os processos de negcios;
do se trata de regras de negcios e requisitos de sistemas. Estando armazenado em separadas, num s repositrio, as
Com o foco em sistemas de informaes, necessria a regras de negcio podem ser reutilizadas em vrios processos
descrio das regras de negcios em modelos de testes. Este de negcio;
modelo tem grande influncia na validao das regras im- A descrio padronizada facilita o entendimento e reutili-
plementadas nos softwares, aumentando a sua qualidade. zao da regra de negcio em outro contexto.
Complementando a mesma linha de validao [1] defende a
melhoria da qualidade dos requisitos de usurios, tendo em Em uma regra de negcio, a descrio deve ter clareza para
vista que ele recomenda a separao dos requisitos de sistemas que a implementao desta regra tenha sucesso nos resultados
dos requisitos de usurios. esperados pelo cliente [3], assegurando uma descrio e enten-
Um fator importante na gesto das regras de negcio est dimento de cada regra. Tambm deve existir uma sequncia
na dependncia destas com o processo de negcios da orga- lgica de aplicao das mesmas. Atravs desta sequncia que
nizao. O relacionamento entre as regras e os processos de o sistema poder ser desenvolvido com garantia de sucesso na
negcios proporciona mudanas rpidas das regras quando implementao. Para cada conjunto de regras, exemplificado
existir alteraes da estratgia da organizao. em um cenrio de uma transportadora de mercadorias, confor-
A alta administrao tem fundamental contribuio na ges- me Tabela 2, existe uma sequncia lgica e ao mesmo tempo
to das regras de negcios, em funo do comprometimento cada regra representa a sua individualidade.

54 Engenharia de Software Magazine - Gesto de Regras de Negcios


boas prticas

Jr, E M Bizerra
Thi, Thanh Thoa Pham
Tosanguan, Piyanuch Silveira, D S
Helfert, Markus
Autores / Tcnicas e Mtodos Suwannasart, Taratip Gawe, Bartomiej (2012) Cruz, M L P M Sommerville, Ian (2011)
Hossain, Fakir
(2012) Wanderley, F J A
Dinh, Thang Le (2011)
Introduo, I (2012)
Alta administrao estabelece
Faz parte da estratgia para
estratgia para a Gesto da Regra - - - -
atingir as metas da Organizao
de Negcios
Apoio Gesto de RN um processo Incorporadas na poltica
- - - -
da Cultura Organizacional organizacional
Jr, E M Bizerra
Thi, Thanh Thoa Pham
Tosanguan, Piyanuch Silveira, D S
Helfert, Markus
Autores / Tcnicas e Mtodos Suwannasart, Taratip Gawe, Bartomiej (2012) Cruz, M L P M Sommerville, Ian (2011)
Hossain, Fakir
(2012) Wanderley, F J A
Dinh, Thang Le (2011)
Introduo, I (2012)
As regras de negcios so
Possui processo de Gesto da Regra As regras demandam
- - derivadas dos Processos de -
de Negcio definido mudanas rpidas
negcios
Procedimento para explicitao de Explicitao das regras de Regras descritas em Todas as regras devem estar
Descrio das regras de negcio -
regras de negcio negcios modelos de testes descritas
Padres de escrita da regra de Cita vrias regras: CIM, PSM, Usando OCL - Object Decomposio dos processos de
Prope padro prprio -
negcio SVBR, JSR-94 Constraint Language negcio para as regras de negcios
Processos de negcios e
Tratar Regras de negcios Separa o requisito de
Separa as regras de negcio dos tecnolgicos descritas de Considera regras de negcio em
separadas por nveis de decises da - Usurio com o requisito de
cdigos de aplicaes forma independentes (CIM, nveis
organizao e aplicaes Sistema
PIM, PSM)
Armazenar as regras de negcios Armazenar de acordo com Recomenda o
separadamente dos requisitos de - o nvel de negcio e de - - armazenamen-to em
softwares sistemas separado
A qualidade est na
Gerenciar regras de negcios Atravs de casos de testes
- - - validao dos requisitos
aumenta a qualidade do software com uso de ferramentas
de usurio
Validao da regra de negcio com Validar regras de negcios aos
- - - -
as regras da organizao processos da organizao
Validao da regra de negcio com a Validando as regras na fase
- - - -
aplicao em software de testes

Tabela 1. Comparativo em publicaes sobre a GRN

#Regra Definio da regra de negcio


1 As encomendas devem ser atendidas de acordo com a classificao dos Clientes.
A prioridade atender os clientes da classe A, conforme estabelecido em regra especfica. Exemplo: os clientes da Classe A so atendidos em primeiro lugar, com os melhores veculos e
2
motoristas disponveis. Sequencialmente, os clientes a classe B sero atendidos posteriormente ao da classe A.
Os clientes com classificao Z, por inadimplncia devero ter suas encomendas colocadas em lista de espera, sem programao para embarque, at que tenham a situao
3
regularizada.
Tabela 2. Definio de regra de negcios (exemplos).

A linguagem descrita estabelecida conforme entendimen- textos podero ser alterados, porm o contedo do ponto de vista
to dos profissionais da rea operacional da organizao que semntico jamais poder ser alterado. Inclusive, esse um dos
abrigam as regras de negcios. pontos crticos que podem levar ao fracasso no desenho e, con-
A partir do momento em que as regras esto entendidas, sequentemente, o desenvolvimento e a entrega do software.
possvel iniciar o design do software, de acordo com o crono-
grama previsto para sua execuo. Em muitas situaes, estas Levantamento de Requisitos
regras podem ser reescritas de acordo com os procedimentos Antes de iniciar um estudo sobre o levantamento de requi-
definidos na Gesto de Requisitos da organizao. Sendo que os sitos, para um melhor entendimento, se faz necessrio um

Edio 66 - Engenharia de Software Magazine 55


processo de explicitao dos seus significados iniciando com Um dos mtodos mais conhecidos e utilizados para espe-
a definio de um requisito, que pode ser compreendido como cificao de sistemas o JAD (Joint Application Development).
uma condio necessria para a obteno de um determinado A principal funcionalidade do JAD a descrio de uma va-
objetivo. No entorno desse artigo, adotaremos a definio de riedade de mtodos para conduzir workshops entre clientes
um requisito no mbito de um sistema de software, que pode e desenvolvedores, fazendo com que esses trabalhem juntos
ser compreendido como a descrio das funes e restries nas fases de desenvolvimento, principalmente durante a es-
que o produto a ser desenvolvido deve possuir. pecificao dos requisitos.
Com esses termos bem definidos, o prximo passo explorar Um segundo mtodo bastante utilizado so os pontos de
os conceitos referentes ao levantamento de requisitos. Que de vistas orientados tcnica. Um exemplo bastante clssico desse
acordo com [5] a fase primordial no processo de desenvolvi- mtodo o VORD (Viewpoint Oriented Requirements Definition),
mento de software em que ocorre uma pesquisa de mercado em que so definidos e estruturados diferentes pontos de vista
(junto ao cliente) para de forma simples e completa, encontrar, ficando a cargo do analista a integrao dos requisitos. Por fim,
organizar e rastrear as diversas funcionalidades que o sistema todos esses mtodos, tcnicas e definies demonstram que o
deve obter. levantamento de requisitos uma parte essencial e funcional
Continuando com [5] e acrescentando ideias de [6] o levanta- durante o processo de desenvolvimento de software.
mento de requisitos pode ser definido como um conjunto de
mtodos e tcnicas empregadas para levantar, detalhar, docu- Gesto do Conhecimento
mentar e validar os requisitos de um produto para sistemas Continuando na mesma linha de investigao e arguio dos
de informtica. Esse processo longo, moroso e com intensa termos cruciais para a execuo desse projeto, o prximo passo
captura, combinao e disseminao do conhecimento. definir e esmiuar ao mximo o significado da gesto do
nesse processo que todos os envolvidos no projeto, devem conhecimento, principalmente referente ao contexto da regra
trocar informaes sobre o contexto e as atividades que sero de negcio. Vale definir, inicialmente, o que seria a gesto, que
executadas pelo software durante o seu desenvolvimento. pode ser entendida como um processo de coordenar tarefas,
Durante, a sua descrio, essa atividade parece um tanto atividades e projetos de maneira que sejam desempenhados
quanto simplria, no entanto, realizar um bom levantamento de forma eficaz e eficiente, sempre tendo em vista o objetivo
de requisitos um grande desafio. de gerenciar o conhecimento.
Durante a sua elaborao, diferentes pontos de vistas e O conhecimento, dentro desse contexto, assume duas formas
expectativas divergentes entre, desenvolvedores, usurios e principais, o Tcito e o Explcito. O primeiro refere-se ao co-
clientes, tornam essa tarefa difcil e conflituosa. Fato este que nhecimento que est armazenado na cabea das pessoas, sendo
j se inicia com o cliente, tendo em vista, que em inmeros pertencente somente ao indivduo que o detm. E o segundo,
casos, o cliente no est completamente certo das suas reais explcito, refere-se ao conhecimento estruturado, inerente ao
necessidades. indivduo, sendo pertence a sua organizao mantedora.
Portanto, tudo isso fez e faz da fase de especificao de re- A principal funcionalidade da gesto do conhecimento se
quisitos uma atividade complexa e de alto risco para empresa, refere a realizar a transformao do conhecimento tcito para
influenciando diretamente no sucesso do projeto. explcito. Processo esse, em que, o conhecimento deixa de ser um
A maioria dos problemas encontrados nessa fase representam bem apenas pertencente ao indivduo, e se torna, de forma es-
cerca de 55% dos empecilhos em sistemas computacionais. trutura, um ativo a todos os mtodos que desejarem utiliza-lo.
82% do esforo dedicado correo de erros est relacionada Alguns autores colocam algumas definies interessantes
a essa fase. Com tais dados em evidncia, pode-se novamente sobre gesto do conhecimento, que uma abordagem da
reafirmar que os requisitos so a base de todo projeto, carac- empresa em busca de pontos, onde o conhecimento venha a
terizando de forma real o que os clientes necessitam para usar trazer uma vantagem competitiva. Ela pode ser vista como
ou modificar um sistema, e como este deve funcionar. um amplo processo de criao, uso e disseminao do conhe-
Interessante abordar tambm que esta constatao no se cimento dentro de toda e qualquer organizao que possua o
torna verdica apenas no desenvolvimento de software, no conhecimento como um de seus ativos capitais.
obstante tambm para qualquer processo que envolva a confec- A gesto do conhecimento pode assumir diferentes defini-
o de novos artefatos. Tudo isso demonstra que para chegar a es e denominaes, no entanto, mesmo que ora dispares,
requisitos que realmente contemplem o sistema pretendido, todas as formas de expressar seu significado possuem no final
necessrio que esses sejam devidamente explicitados. ao menos um aspecto de similaridade em seus sentidos.
Dentre as atividades que fazem parte desse contexto, pode- Outra definio bastante interessante a que coloca a gesto
se citar o domnio da regra de negcio, captura e classificao do conhecimento como uma estratgia que busca transformar
de requisitos, estabelecimento de prioridades, resoluo de bens intelectuais da organizao - informaes registradas e o
conflitos, verificao de inconsistncias e ambiguidade, e talento de todos os seus usurios - em uma maior produtivida-
finalmente, a negociao dos requisitos do sistema. Para au- de. Ela procura apresentar novos valores dentro da organizao
xiliar na execuo dessas atividades, alguns mtodos podem e proporcionar de uma forma geral um aumento final na sua
ser utilizados. capacidade de produtividade.

56 Engenharia de Software Magazine - Gesto de Regras de Negcios


boas prticas

Por conseguinte, a gesto do conhecimento pode ser com- fonte novas necessidades para resolver um problema existente
preendida como uma ferramenta gerencial de administrao, por falha no processo; ou por uma nova oportunidade no
planejamento e controle do conhecimento modelando parte mercado que proporcionar divisas ou novos lucros para a
do conhecimento que existe na cabea das pessoas em regras organizao;
de negcio, tornando-as visveis toda organizao de uma Analisar regras de negcio existentes a nova regra de
forma simples e de fcil acesso, executando assim a principal negcio, tambm considerada como regra candidata, deve ser
funcionalidade da gesto do conhecimento . avaliada quanto a sua aplicao como sendo nica antes de ser
detalhada em definitivo;
Modelo da Gesto de Regras de Negcios Especificar regra de negcio candidata a descrio da
O processo de software compreendido como sendo um ciclo regra deve ter as caractersticas essenciais para o entendimento
de atividades que se inicia na definio dos requisitos de softwa- [4] para ter a compreenso suficiente para que seja aplicada
re at a entrega do produto desenvolvido. Sendo que neste ciclo corretamente, sem ambiguidade e ter a preciso nos resultados
est compreendido tambm o planejamento do desenvolvimento esperados;
dos requisitos de software, a codificao e teste do software, Aprovar regras de negcios candidatas quando a regra
implantao da aplicao com os requisitos de software. de negcio est alinhada estratgia da organizao e es-
O modelo proposto por este artigo, conforme Figura 2, alm tratgia de negcios, com resultados mensurveis, deve ser
deste ciclo do processo de software, fica prevista a gesto aprovada;
das regras de negcios, antes da definio dos requisitos de Adequar a especificao da regra de negcio caso no
software. tenha aprovao da regra, esta deve ser adequada para ter o
Da mesma forma, esta gesto tambm est compreendida mnimo dos quesitos necessrios para ser aprovada, para tanto
num ciclo de atividades que contempla inicialmente a identi- se necessita da adequao da especificao;
ficao das necessidades e oportunidades de negcios, at a Gesto das regras de negcios este um processo intei-
implantao destas regras na rotina das atividades operacio- ramente destinado manuteno da regra desde a sua espe-
nais da organizao. Um conjunto de atividades fica elencado cificao at a desativao. Toda regra pode sofrer alteraes
a seguir: ao longo de um perodo para se adequar s novas realidades
Identificar necessidade ou oportunidade de negcio em que a organizao est submetida, assim requerendo uma
basicamente, a origem de uma regra de negcio tem como manuteno constante;

Figura 2. Fluxo das atividades do modelo de gesto de regras de negcio

Edio 66 - Engenharia de Software Magazine 57


Validar regra de negcio no software o software que os processos, tratando os dados de entradas e formatando as
atende s regras de negcio devem ter estas regras validadas informaes resultantes, at que o processo reflita as definies
pelo resultado almejado, pela fidelidade regra aprovada para das regras de negcios.
uso na organizao; De modo geral, as regras de negcio definem as condies
Processo de Desenvolvimento de Software este um em que um processo realizado ou as novas condies aps
processo conhecido pelas atividades de planejamento, le- a concluso de um processo. A grande vantagem em separar
vantamento de requisitos at a entrega efetiva do produto de a regra de negcio do requisito de software est na validao
software. Conforme descrito por [1], as atividades previstas do sistema com a lgica do negcio. Uma vez que a regra de
no processo deve ter como objetivo a qualidade final do negcio passa a ser um processamento, descrito por um requi-
software. sito de software, esta deve validada.
O principal objetivo deste artigo foi modelar um processo
Considerando que a gesto do conhecimento um processo de gerenciamento de regras de negcios possvel de ser uti-
nico e delimitado pelo seu domnio, em funo da natureza, lizado numa organizao em que estas regras so utilizadas
objetivo e responsabilidade; se torna perceptvel a separao somente como insumo para o desenvolvimento de software.
o controle das necessidades de negcios e dos requisitos de Foi escolhido o GAIA para aplicar o modelo proposto neste
softwares. Outro fator est relacionado evoluo das necessi- artigo, com o objetivo de aumentar a qualidade dos produtos
dades de negcios que tm velocidades e amplitudes diferentes desenvolvidos.
dos requisitos de softwares. Este modelo ser aplicado em ambiente especificamente
Ao iniciar o desenvolvimento de software, o objetivo prin- de desenvolvimento de software, dando como foco princi-
cipal atender s necessidades dos usurios finais atravs pal o gerenciamento da regra de negcio por uma equipe
dos requisitos do sistema. Na organizao, as atividades so que conhece o gerenciamento de requisitos de software.
executadas seguindo um modelo de processo que analisa os Com a nova viso para regra de negcio as pessoas estaro
requisitos e projeta uma arquitetura do software para aten- comprometidas tambm com os objetivos estratgicos da
der aos requisitos analisados. Efetivamente, mecanizando organizao.

Figura 3. Fluxo ilustrativo do modelo de GRN

58 Engenharia de Software Magazine - Gesto de Regras de Negcios


boas prticas

Atualmente o GAIA contempla um modelo de desenvol-


Referncias:
vimento com o ciclo de vida caracterizado pelo processo de
software, no qual a gesto de requisito prioriza os requisitos 1. I. Sommerville, Engenharia de Software. 9 edio. Editora Pearson do
de sistemas. Com o novo modelo passar a executar atividades Brasil, 2011.
de gesto das regras de negcios que contempla maiores esfor-
os na manuteno dos requisitos de usurios com objetivos 2. Sujithra S. and Chandrashekar R., Externalizing business rules from
business processes for model based testing, International Conference on
estratgicos da organizao.
Industrial Technology, 2012, pp. 312-318.
Cada projeto desenvolvido pelo GAIA passar por um critrio
mais efetivo na escolha da funcionalidade a ser desenvolvida 3. Wan-Kadir, WMN; Pericles Loucopoulos; Relating evolving business rules
juntamente com as regras priorizadas pela organizao. Como to software design, 2012, pp. 367-382.
podemos observar na Figura 3, as atividades de desenvolvi-
4. P. Tosanguan, T. Suwannasart, An Approach for Defining Rules as Functions
mento de software esto representadas pelo fluxo em amarelo, in Rule-Based Rule-Based Software Development, International Conference
enquanto que no fluxo azul ficam demonstradas as atividades on Digital Information Management, 2012, pp. 30-34.
da manuteno das regras de negcios.
O modelo tem como objetivo aumentar a qualidade do 5. Wen B., Z. Luo, P. Liang Distributed and Collaborative Requirements
software desenvolvido, desde a sua concepo, projeto, de- Elicitation based on Social Intelligence, Ninth Web Information Systems
and Applications Conference, 2012, pp. 127-130.
senvolvimento, entrega e resultados de sua aplicabilidade. No
fluxo tradicional da gesto de requisitos e sua implementao, 6. D. P. A. Junior and R. Campos Definio de requisitos de software baseada
o objetivo atender as definies descritas nestes requisitos numa arquitetura de modelagem de negcios. Prod. Vol. 18 n1, So Paulo.
funcionais e no-funcionais. Enquanto que com a implemen- ISSN 0103-6513, 2008.
tao do fluxo acrescido da gesto de regras de negcios, o
comprometimento fica ampliado aos resultados que o software Voc gostou deste artigo?
deve proporcionar organizao patrocinadora do projeto.
D seu voto em www.devmedia.com.br/esmag/feedback
Ajude-nos a manter a qualidade da revista!

Edio 66 - Engenharia de Software Magazine 59


60 Engenharia de Software Magazine - Gesto de Regras de Negcios
boas prticas

Edio 66 - Engenharia de Software Magazine 61

You might also like