Escolar Documentos
Profissional Documentos
Cultura Documentos
D
iversas metodologias de desenvolvimento de software voltadas para o con-
trole têm sido elaboradas uma vez que um projeto de software, ao longo do
seu ciclo de vida, tem uma grande quantidade de itens de informação tais
como documentos, código-fonte, dados, manuais e outros, produzidos e até modifi-
cados, pelos mais diversos motivos.
Para que a qualidade do software seja garantida, em função destas modificações, é
Ano 2 - 24ª Edição - 2010 Impresso no Brasil necessário que se faça uso da Gerência de Configuração de Software (GCS). A Gerên-
cia de Configuração de Software tem como objetivo gerenciar e controlar a evolução
de um software através do controle formal de versão e solicitação de mudanças. É
Corpo Editorial uma forma sistemática e organizada de controlar as modificações de um software
tornando possível manter sua integridade ao longo do tempo. A quantidade de itens
Colaboradores que podem estar sob controle da GCS e os níveis de controle exigidos sobre estes
Rodrigo Oliveira Spínola itens irá variar de empresa para empresa ou mesmo de projeto para projeto. Sendo
rodrigo@sqlmagazine.com.br assim, o uso desta prática em conformidade com modelos de maturidade mantidos
Marco Antônio Pereira Araújo por entidades que possuam credibilidade nacional e internacional, e também o uso
Eduardo Oliveira Spínola de ferramentas adequadas que garantam a qualidade deste processo, é fundamental
para que uma empresa obtenha êxito e reconhecimento.
Capa e Diagramação
Para empresas de grande porte, isto não chega a ser um grande problema pois
Romulo Araujo - romulo@devmedia.com.br
normalmente se dispõem de capital e pessoal qualificado para manter tais práticas.
Coordenação Geral Entretanto, quando voltamos a olhar para as pequenas empresas, o cenário é exata-
Daniella Costa - daniella@devmedia.com.br mente o oposto.
Neste contexto, a Engenharia de Software Magazine destaca nesta edição uma ma-
Revisor e Supervisor téria cujo objetivo é mostrar uma solução especifica, de boa qualidade e baixo custo,
Thiago Vincenzo - thiago.v.ciancio@devmedia.com.br
que atenda as exigências dos modelos de maturidade e que possa ser utilizada para
Na Web implementar a Gerência de Configuração de Software em pequenas empresas. Uma
www.devmedia.com.br/esmag leitura muito interessante.
Além desta matéria, esta edição traz mais seis artigos:
• Automatizando Testes Funcionais em Aplicações Web
Apoio
• Testes de segurança
• A Comunicação no Processo de Software
• Testes funcionais automatizados com Hudson e Selenium RC
• Medição de Software
• Análise Quantitativa de Riscos e suas Técnicas
ÍNDICE
Engenharia
06 - Testes de segurança
Eduardo Habib
14 - Gerência de Configuração
Alberto Boller Filho, Rodrigo Oliveira Spinola, Marcelo Nascimento Costa e Marcos Kalinowski
31 - Medição de Software
Monalessa Perini Barcellos
Agilidade
38 - A Comunicação no Processo de Software
Márcia Regina Simm Cantú
Planejamento e Gerência
43 - Análise Quantitativa de Riscos e suas Técnicas
Marcio Souza, Cristine Gusmão e Hermano Perrelli
Desenvolvimento
49 - Automatizando Testes Funcionais em Aplicações Web
Arilo Cláudio Dias Neto
Testes de segurança
Testes de segurança em aplicações web
A
segurança. Possui três anos de experiência le-
cionando no ensino superior. Freqüentemente
segurança dos softwares de focados nos pontos onde a segurança
ministra treinamentos e/ou palestras relacio- senvolvidos atualmente está tem uma probabilidade maior de ser
nados a testes de software já tendo, inclusive, se tornando um ponto cada vez comprometida.
ministrado a disciplina de Testes de Software mais importante a ser testado. Entretan Nesse artigo será demonstrada a im
na PUC Minas. Possui as certificações CQA - to, testar a segurança de um software portância de se realizar testes de segu
Certified Quality Assurance da IBM e CTFL do
BSTQB. Atualmente é Gerente de testes no
é algo muito complexo e custoso. Por rança em aplicações web. Serão apresen
SYNERGIA - DCC/UFMG. tanto, os testes de segurança devem ser tadas quais as falhas de segurança são
mais comuns em aplicações web e algumas ferramentas livres Gartner, em que se estima que os ataques contra os sistemas
que auxiliam nesses testes. do departamento de defesa dos EUA foram 60% maiores em
2009, se comparados com o ano anterior.
Testes de segurança Além do aumento do número de invasões que podem ser
No início da internet existiam apenas sites estáticos. Os visualizados na Figura 1, um estudo publicado pela Univer
sites existentes desempenhavam papel apenas de repositó sidade de Michigan, revelou que mais de 75% dos sites de
rios de informações que continham documentos estáticos, bancos, que são os que mais investem em segurança, não são
e os navegadores web foram criados como uma forma de inteiramente seguros como dizem ser e estão sujeitos a falhas
visualização desses documentos. A maioria dos sites não de segurança. Outro estudo, do instituto de pesquisa WhiteHat
autenticava usuários porque não havia necessidade já que Security, publicou dados demonstrando que cerca de 64% dos
a mesma informação era exibida para todos os usuários. Se 1364 sites de companhias avaliados possuíam pelo menos uma
um invasor comprometesse um servidor, ele normalmente falha de segurança crítica.
não ganhava acesso a nenhuma informação confidencial,
visto que toda a informação já estava liberada para o
público. No máximo, o invasor poderia escrever algum
conteúdo no site ou utilizar o servidor como repositório
de arquivos.
Hoje em dia a internet é completamente diferente. A
maioria dos web sites são aplicações complexas e possuem
um fluxo de informações nos dois sentidos (servidor e
navegador). Elas suportam login, transações financeiras e
acesso a dados pessoais. O conteúdo exibido para os usu
ários geralmente é gerado dinamicamente e muitas vezes
é específico para cada usuário. Muitos dos dados proces
sados, e exibidos, são pessoais. A segurança é, portanto,
uma grande questão: ninguém utilizará uma aplicação web
caso acredite que suas informações confidenciais serão
exibidas para terceiros.
Atualmente, para as aplicações web proverem as funcio Figura 1. Total de incidentes reportados ao CERT.br
nalidades mais básicas, muitas vezes é necessário acessar
sistemas internos da empresa e esses sistemas, muitas Isso é muito crítico para as empresas já que o aumento do
vezes, contêm dados sigilosos. Uma falha em uma dessas faturamento das empresas que comercializam produtos na
aplicações web pode comprometer todo o servidor. Um web está diretamente ligado à sua reputação. Poucas pessoas
invasor que conseguir comprometer a aplicação web pode gostariam de fazer negócio com um site inseguro e, devido a
roubar informações pessoais e com isso realizar ações isso, as organizações não costumam publicar detalhes sobre
maliciosas contra os outros usuários. a segurança de seus dados, ataques sofridos e vulnerabili
Tanto as empresas desenvolvedoras de software quanto dades, com o objetivo de não adquirir uma má reputação.
os usuários finais têm grande interesse na segurança das Por isso, os números podem ser ainda mais alarmantes do
aplicações: as empresas, devido à necessidade de aumentar que os publicados pelo CERT.br.
o faturamento com comércio na internet, os usuários por Dentre os diversos fatores que influenciam o aumento
que eles terão mais segurança para utilizar aplicativos. do número de incidentes de segurança, como a maior
popularização da internet pelo mundo e o surgimento de
Por que fazer testes de segurança? ferramentas que auxiliam nesses ataques, deve-se destacar
Apesar de recentemente ter havido uma aumento da pre outro fator que contribui para o aumento dos ataques: a
ocupação com segurança, notícias de invasões continuam evolução constante da tecnologia utilizada nas aplicações
no noticiário e o número de incidentes de segurança tem web. Como a tecnologia utilizada no desenvolvimento de
aumentado ano a ano. aplicações web evolui muito rapidamente, as aplicações web
Segundo dados divulgados pelo Centro de Estudos, Res trazem consigo, a todo o momento, uma nova variedade de
posta e Tratamento de Incidentes de Segurança no Brasil falhas de segurança. Novos ataques, que antes do desen
(CERT.br), e que podem ser visualizados na Figura 1, em volvimento da aplicação não eram conhecidos, são criados
2009 foram registradas 358.343 notificações de incidentes após o desenvolvimento e podem ser exploradas até serem
de segurança. Isso representa um aumento de 61% em corrigidos.
relação a 2008 e de 11530% em relação ao número de inci Alguns problemas, como a injeção SQL têm diminuído a
dentes registrados em 1999, primeiro ano da medição. Esses frequência de ocorrência conforme os desenvolvedores se
números são coerentes com outro estudo publicado pela conscientizam deles. Entretanto, a introdução cada vez mais
teste de segurança seja mais efetivo, exige-se a é convidado a encontrá-la e, caso o testador não a encontre, o WebGoat
utilização de ferramentas adicionais para que seja permite a solicitação de dicas para a identificação da falha. Caso não se
possível encontrar mais falhas de segurança. Mui consiga identificar a falha, após dicas de como encontrá-la, é possível
tas dessas ferramentas funcionam em conjunto ainda consultar uma descrição da solução. Se mesmo assim o testador não
com o navegador, quer como extensões que modi entender como encontrar a falha, pode-se consultar vídeos demonstrando
ficam a sua funcionalidade, ou como ferramentas passo a passo como identificá-la. O WebGoat é uma aplicação de extrema
externas que funcionam ao lado do navegador e necessidade, principalmente para iniciantes nos testes de segurança e que
modificam sua interação com o aplicativo alvo. querem aprender a realizar alguns testes. Os exemplos de utilização das
Para testar uma aplicação procurando por falhas ferramentas e extensões para navegadores apresentadas nesse artigo foram
de segurança é necessário ter domínio sobre essas feitos utilizando-se o WebGoat como aplicação alvo.
ferramentas. Nas próximas sessões, serão citadas
algumas extensões para o Firefox e ferramentas Navegadores
livres utilizadas para auxiliar o testador durante Um navegador web não é exatamente uma ferramenta hacker. Porém, a
os testes de segurança. escolha pelo navegador utilizado pode auxiliá-lo no teste a uma aplicação
web. O Firefox é, hoje, o segundo navegador mais utilizado do mundo
Ferramentas necessárias para a realização compreendendo, segundo alguns estudos, cerca de 25% do mercado e
dos testes possui diversas extensões que auxiliam o testador no teste de segurança
A primeira ferramenta que o testador deve de uma aplicação web. Abaixo iremos descrever algumas das extensões
possuir para realizar os testes, além do próprio que podem auxiliar nessa tarefa.
navegador, é um Proxy interceptador. Um Proxy • FoxyProxy: Permite o gerenciamento das configurações de proxy do
interceptador permite visualizar e modificar navegador, possibilitando a troca rápida entre os proxies utilizados,
todas as mensagens HTTP que passam entre o realização de configurações de Proxies diferentes para URLs diferentes.
navegador e a aplicação. Como os Proxies são ferramentas essenciais em testes de aplicações web,
Atualmente, além dos Proxies básicos existem
suítes que se tornaram muito poderosas por
possuírem, além dos Proxies, um conjunto de
outras funções projetadas para ajudá-lo no ataque
a aplicações web.
A segunda categoria principal de ferramenta é
conhecida como Web Spider. Essas ferramentas
agem solicitando páginas web, analisando os links
para outras páginas, e em seguida, solicitando
essas páginas. Eles continuam recursivamente até
que todo o conteúdo de um site seja descoberto.
A terceira categoria principal de ferramenta é o
Scanner de aplicação web. Essas ferramentas são
concebidas para automatizar muitas das tarefas
envolvidas no ataque a uma aplicação web reali
zando desde o mapeamento inicial até a sondagem
por vulnerabilidades. Essas ferramentas fazem
uma busca automática por toda a aplicação subme
tendo dados e analisando as respostas para, com
isso, tentar encontrar automaticamente falhas de
segurança conhecidas.
A quarta categoria principal de ferramenta ne
cessária, principalmente quando o testador quer
realizar alguns testes em seu ambiente, é uma
aplicação cheia de falhas onde ele possa fazer
alguns experimentos. Essa aplicação existe. O
WebGoat é uma aplicação Web Open Source do
projeto OWASP. Nessa aplicação as falhas foram
inseridas propositalmente e seu principal objetivo
é ser um laboratório onde o testador aprende, na
prática, as principais vulnerabilidades encontra
das em aplicações Web. Para cada falha, o usuário
• Extensibilidade, permitindo que a funcionalidade incorpo as ferramentas livres ainda estão muito distantes de serem
rada seja alterada e estendida de forma arbitrária por código tão boas quanto as ferramentas comerciais disponíveis no
de terceiros; mercado, já que, como eles encontram muitos falsos positi
• Salvamento das configurações utilizadas na ferramenta, vos, acabam desperdiçando o tempo do testador na análise
permitindo que uma configuração específica seja reutilizada de falhas que não existem.
na próxima execução da suíte; Por fim, pôde-se perceber que o bom entendimento de
• O WebScarab é independente de plataforma, permitindo que como utilizar as ferramentas utilizadas é de extrema im
seja executado em todos os sistemas operacionais populares. portância para a melhoria da segurança dos Web Sites, visto
que mesmo os melhores Web Scanners proprietários podem
Conclusão não encontrar a maioria dos defeitos de segurança presente
Cada uma das ferramentas apresentadas neste artigo possui em uma aplicação Web.
funcionalidades importantes e que, juntas, permitem ao testa
dor a realização de testes de segurança de forma satisfatória.
Todas são eficazes e muito populares entre a comunidade que
utiliza softwares livres para testar a segurança de aplicativos Feedback
Dê seu feedback sobre esta edição! eu
na web. Com isso, a escolha de qual suíte será utilizada é uma
s
Dê
questão de preferência pessoal. Recomenda-se que seja feito A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
o download das ferramentas descritas para que o próprio Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
testador escolha qual ferramenta utilizar em seus testes. Dê seu voto sobre este artigo, através do link:
Entretanto, apesar das ferramentas livres terem evoluído www.devmedia.com.br/esmag/feedback
bastante, pode-se perceber que em relação aos Web Scanners,
Referências e links
STUTTARD, Dafydd, PINTO, Marcus. The Web Application Hacker’s Handbook: Discovering and Projeto Owasp
Exploiting Security Flaws. Wiley Publishing, 2007. http://www.owasp.org
MCGRAW, Gary, Software Security: Building Security In. Addison Wesley Professional, 2006. WebScarab
http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
Testing Experience: The Magazine for Professional Testers, Security Testing, Junho de 2009.
WebGoat
SUTO, Larry. Analyzing the Accuracy and Time Costs of Web Application Security Scanners. São http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project
Francisco, Fevereiro de 2010.
Paros - for web application security assessment
Widespread security flaws revealed in online banks http://www.parosproxy.org/index.shtml
http://www.ur.umich.edu/0708/Jul28_08/02.php
Gerência de Configuração
Definições Iniciais, Ferramentas e Processo
C
científicos sobre Engenharia de Software publica- om um mercado cada vez mais um processo de desenvolvimento de software.
dos em revistas e conferências renomadas, dentro exigente, as empresas que fabri
e fora do país. Experiência de participação em
cam software tem revisto seus
diversos projetos de consultoria para diferentes
empresas tendo atuado com gerência de projetos, processos de construção com o intuito de software voltadas para o controle tem
requisitos e testes de software. Implementador aumentar a qualidade de seus produtos sido elaboradas uma vez que um pro
certificado do MPS.BR, tendo também experiência e também sua produtividade. Diversas jeto de software, ao longo do seu ciclo
atuando junto a empresas certificadas CMMI. metodologias de desenvolvimento de de vida, tem uma grande quantidade
de itens de informação tais como documentos, código-fonte, A primeira lei da engenharia de sistemas diz:
dados, manuais e outros, produzidos e até modificados, pelos “Independente de onde você está no ciclo de vida de um sistema, o
mais diversos motivos. sistema vai se modificar e o desejo de modificá-lo vai persistir ao longo de
Para que a qualidade do software seja garantida, em fun todo o ciclo de vida”. Bersoff (1980 apud Pressman, 2006, p. 600)
ção destas modificações, é necessário que se faça uso da
Gerência de Configuração de Software (GCS). A Gerência Produtos de software normalmente envolvem quantidades
de Configuração de Software tem como objetivo gerenciar significativas de artefatos que são manuseados por diversas
e controlar a evolução de um software através do controle pessoas envolvidas em seu projeto.
formal de versão e solicitação de mudanças. É uma forma Assim sendo, a possibilidade de introdução de defeitos au
sistemática e organizada de controlar as modificações de menta à medida que alterações são efetuadas sem uma analise
um software tornando possível manter sua integridade ao antes da sua execução, sem o registro formal antes da sua imple
longo do tempo. A quantidade de itens que podem estar mentação, sem a comunicação às pessoas que necessitam saber
sob controle da GCS e os níveis de controle exigidos sobre delas ou ainda sem um controle que vise melhorar a qualidade
estes itens irá variar de empresa para empresa ou mesmo e reduzir os erros.
de projeto para projeto. Sendo assim, o uso desta prática em Existem quatro fontes fundamentais de modificações de
conformidade com modelos de maturidade mantidos por en software:
tidades que possuam credibilidade nacional e internacional, • Novas condições de negócio e/ou mercado, modificam regras
e também o uso de ferramentas adequadas que garantam de negócio;
a qualidade deste processo, é fundamental para que uma • Novas necessidades do cliente exigem modificações de
empresa obtenha êxito e reconhecimento. funcionalidades;
Para empresas de grande porte, isto não chega a ser um • Reorganização e/ou crescimento/diminuição do negócio;
grande problema pois normalmente se dispõem de capital • Restrições de orçamento ou cronograma, causando redefinição
e pessoal qualificado para manter tais práticas. Entretanto, do sistema;
quando voltamos a olhar para as pequenas empresas, o
cenário é exatamente o oposto. As dificuldades e o custo Conceitos e Terminologias
envolvidos para se adotar um modelo de gestão, treinar pes A Gerência de Configuração de Software (GCS) ou Software
soal, adquirir ferramentas que apóiem a pratica de GCS, e Configuration Management (SCM) é uma atividade abrangente
ainda obter certificação em um determinado nível de modelo que ocorre ao longo de todo o ciclo de vida de um software e
de maturidade, de uma entidade reconhecida, pode levar que gerencia e controla sua evolução, através do controle de
uma pequena empresa a desistir rapidamente da adoção de versões e solicitações de mudanças, permitindo que os diver
um processo de GCS com qualidade, e como conseqüência, sos envolvidos na sua criação e manutenção tenham acesso ao
perder em competitividade para outras empresas. Este artigo histórico destas modificações, fornecendo-lhes subsídios para
foi feito com o foco voltado para estas empresas. o entendimento do sistema na sua forma atual, e também nas
Neste contexto, o objetivo deste artigo é mostrar uma solu suas formas anteriores.
ção especifica, de boa qualidade e baixo custo, que atenda As atividades de GCS incluem:
as exigências dos modelos de maturidade e que possa ser • Identificar modificações;
utilizada para implementar a Gerência de Configuração de • Controlar modificações;
Software em pequenas empresas. • Garantir a implementação adequada das modificações;
Sob esta perspectiva, será apresentada uma revisão bi • Relatar as modificações a outros que possam ter interesse.
bliográfica sobre GCS, sua aplicação dentro dos modelos
de maturidade CMMI e MPS e uma solução especifica uti Segundo Pressman (2006, p. 599), diferentemente da ativida
lizando as ferramentas Mantis e Subversion, através de um de de suporte de software, que ocorre depois que o software
estudo de caso de uma empresa fictícia de pequeno porte foi entregue ao cliente, a GCS é um conjunto de atividades de
que atenda as exigências do modelo de maturidade MPS, e acompanhamento e controle que começam quando o projeto
que possa servir como alternativa para empresas reais que de engenharia de software tem início e só terminam quando o
estejam buscando a implementação do processo de GCS. software é retirado de operação.
Serão apresentados também os aspectos de instalação e A Gerência de Configuração de Software tem especial impor
configuração das ferramentas, a fim de facilitar àqueles tância na garantia da qualidade do software e no apoio a gestão
que forem utilizá-las. de projetos, sendo imprescindível sua aplicação nas empresas que
desejam obter a certificação do Capability Maturity Model Integra
Gerência de Configuração tion (CMMI) nível 2 ou na obtenção da certificação do modelo para
Ao longo do ciclo de vida de um software, diversas modifi Melhoria de Processo do Software Brasileiro (MPS-BR) nível F.
cações podem ocorrer em seu projeto original. Os motivos Segundo Pressman (2006 p. 606), o processo de gestão de
e origens destas modificações podem ser os mais variados configuração de software define uma série de tarefas que têm
possíveis e podem ocorrer em qualquer época. quatro objetivos principais:
Os ICS’s são retirados e inseridos nos repositórios, através • Durante cada fase, a modificação de uma configuração-base
das seguintes operações: somente pode ser feita de forma controlada, mediante um
• LOCK: Garante que apenas um usuário detém o acesso para processo bem definido;
alterar um determinado ICS. Apesar de resolver o problema • Ao ser estabelecida, cada baseline incorpora integralmente
de atualização simultânea, o lock serializa o trabalho dos a anterior.
desenvolvedores. • O estabelecimento de cada baseline somente é realizado
• CHECK-OUT: Recupera a última versão de um item de após ser aprovada por procedimentos de consistência interna,
configuração guardado no repositório, copiando-o para a área verificação e validação;
de trabalho do desenvolvedor.
• CHECK-IN: Insere ou atualiza um item de configuração Na Figura 2 vemos uma representação de baselines adaptada
no repositório, incrementando a versão do ICS, e fazendo o de Molinari (2007, p 56).
registro das informações de mudança.
Identificação de ICS’s
A identificação dos ICs é uma área de extrema importância
dentro da Gerência de Configuração de Software. Sem uma
identificação correta de um item, é impossível gerenciar este
processo.
Cada ICS deve ser identificado através de características
Figura 2. Entendendo um baseline
distintas que o caracterizam unicamente. Estas características
podem ser um nome, uma descrição, uma lista de recursos etc. Controle de Versão
É necessário que cada organização defina suas convenções de Segundo Pressman (2006, p. 608), controle de versões
identificação. combina procedimentos e ferramentas para gerir diferentes
versões de objetos de configuração que são criados durante
Baseline o processo de software. Um sistema de controle de versão
Um baseline pode ser descrito como a situação de uma cole implementa ou está diretamente integrado com quatro ca
ção de ICS’s similares em um momento especifico do ciclo de pacidades principais:
vida de um software que foram aprovados e armazenados em • Um banco de dados de projeto (repositório) que guarda
uma biblioteca controlada. Pode ser descrito também como a todos os objetos de configuração relevantes;
conexão de um item de configuração com um determinado • Uma capacidade de gestão de versão que guarda todas as
marco no projeto (milestone). Um baseline pode ser visto como versões de um objeto de configuração;
um conjunto de itens de configuração identificados e liberados • Uma facilidade de construir que permite ao engenheiro de
para uso, independente de suas versões. software coletar todos os objetos de configuração relevantes
É importante identificar e agrupar estes ICS’s dentro dos e construir uma versão especifica do software;
baselines apropriados pois desta forma, cria-se uma estrutura • Capacidade de acompanhamento de tópicos (também cha
que facilita o rastreamento de mudanças à estes ICS’s. mado de acompanhamento de bugs).
Em cada fase do processo de desenvolvimento, um conjunto
bem definido de itens de configuração deve ser estabelecido. Segundo Molinari (2007, p. 168), alguns colocam que a prin
Tal conjunto representa um estágio do desenvolvimento, o qual cipal missão de um sistema de controle de versões é permitir
é passível de modificações apenas mediante um mecanismo a edição colaborativa e o compartilhamento de dados, outros
formal de alterações. A este conjunto é dado o nome de base dizem que o sistema de controle de versões rastreia e controla
lines, ou configurações base do sistema. todos os artefatos do projeto e desse modo consegue coorde
Em princípio, baselines poderiam ser estabelecidas em qual nar o trabalho paralelo de desenvolvedores.
quer ponto do desenvolvimento. Entretanto, a grande vanta Ainda segundo Molinari (2007, p.168), independente do que
gem do conceito está em se fazer coincidir o estabelecimento de cada um pensa sobre controle de versões, algumas das suas
baselines com os finais de fase do ciclo de vida do produto. características perceptíveis são:
O desenvolvimento com configurações base pode, então, ser • Mantém e disponibiliza cada versão já produzida de cada
resumido nos seguintes pontos: item do projeto;
• Caracterização do ciclo de vida, identificando-se as fases • Possui mecanismos para gerenciar diferentes ramos de
pelas quais o desenvolvimento do software irá passar; desenvolvimento possibilitando a existência de diferentes
• Definição do conjunto de baselines, estabelecendo-se quais versões de maneira simultânea;
serão os ICS’s que a irão compor; • Estabelece uma política de sincronização de mudanças que
• Estabelecer o marco o qual a baseline irá representar. Uma evita a sobreposição de mudanças;
nova baseline é estabelecida no final de cada fase do ciclo de • Fornece um histórico completo de alterações sobre cada
vida do software; item do projeto.
seu objetivo é controlar estas mudanças e manter informações • Revisões técnicas formais;
sobre os pedidos de mudança, nos produtos e as implementa • Auditoria de configuração de software.
ções realizadas em função destas mudanças.
Informações do tipo quem, quando, por que e o que foi mu A revisão técnica tem como foco a correção técnica do ICS
dado, em um item de configuração, são guardadas para que que foi modificado a partir de uma requisição. Revisores
seja possível haver uma rastreabilidade entre suas versões avaliam o ICS para determinar se o mesmo é consistente.
anteriores e posteriores. Revisões técnicas formais normalmente são feitas para todas
O processo de controle de mudanças começa quando o clien as modificações, exceto as mais triviais.
te emite um pedido de comunicação. Este pedido passa pela A auditoria de configuração de software tem como objetivo
análise de uma Comissão de Controle de Modificações (do complementar a revisão técnica formal e trata dos seguintes
inglês Change Control Board – CCB), que é responsável pela aspectos:
sua aprovação ou não. É gerada então uma ordem de modifi • Verifica se a modificação técnica especificada foi realizada e
cação de engenharia (Engineering Change Order – ECO) pra as se foi incorporada alguma modificação adicional;
modificações aprovadas. O ICS é retirado do repositório para • Verifica se uma revisão técnica formal foi feita para avaliar
uma área de trabalho exclusiva do profissional, que irá executar a correção técnica;
as mudanças. As mudanças são executadas, as atividades de • Verifica se o processo de software foi seguido;
SQA são aplicadas, e os ICS’s modificados são introduzidos • Verifica se constam anotados no ICS modificado, dados de
no repositório com os mecanismos adequados de controle rastreabilidade tais como data da modificação, autor, nº de
de versão. Controles para acesso aos ICS’s pelos engenheiros requisição etc.;
e controles de sincronização de modificações paralelas por • Verifica se os procedimentos de GCS para registrar e relatar
pessoas diferentes são usados nesta etapa. a modificação, foram seguidos;
A Figura 4 esboça o processo formal de controle de modifi • Verifica se todos os ICS’s relacionados foram atualizados de
cações segundo Pressman (2006, p 610). forma adequada.
Relatórios de Estado
Os relatórios de estado é uma tarefa de GCS que tem por
objetivo responder às seguintes questões:
• O que aconteceu ?
• Quem fez ?
• Quando aconteceu ?
• O que mais será afetado ?
por diversos outros projetos e empresas. Algumas de suas Institute) na Carnegie Mellon University a pedido do Depar
características são: tamento de defesa dos EUA que necessitava de um modelo
• Capacidade de pesquisa avançada; para avaliar os seus fornecedores de software. A versão 1.1
• Notificações por e-mail controladas pelas preferências de foi publicada em 2002 e a atual, versão 1.2 , foi publicada em
usuários; agosto de 2006.
• Lista de defeitos em diversos formatos; A missão inicial da equipe que produziu o CMMI era com
• Relatórios periódicos (diários, semanais etc.) enviados por binar três modelos:
e-mail; • Capability Maturity Model for Software (SW-CMM) v. 2.0
• Controle de tempo de execução de uma solicitação; draft C
• Sistema de atribuição de tarefas; • Systems Engineering Capability Model (SECM)
• Diversas versões de localização (incluindo Português • Integrated Product Development Capability Maturity Model
– Brasil). (IPD-CMM) v. 0.98
Interamericano de Desenvolvimento (BID). Sua estrutura está Este modelo surgiu pelo fato de muitas empresas ao busca
dividida em duas áreas de apoio: rem certificação CMM/CMMI se depararem com os custos
• Fórum de Credenciamento Controle (FCC) cujas atribui elevados de implementação/avaliação, inviabilizando as
ções são: certificações para pequenas empresas.
I. Emitir parecer que subsidie decisão da SOFTEX sobre o Uma das metas do programa MPS.BR é definir e aprimorar
credenciamento de Instituições Implementadoras (II) e Ins um modelo de melhoria e avaliação de processo de software
tituições Avaliadoras (IA); visando preferencialmente às micro, pequenas e médias em
II. Monitorar os resultados das Instituições Implementa presas, de forma a atender as suas necessidades de negócio
doras (II) e Instituições Avaliadoras (IA), emitindo parecer e ser reconhecido nacional e internacionalmente como um
propondo à SOFTEX o seu descredenciamento no caso de modelo aplicável à indústria de software.
comprometimento da credibilidade do modelo MPS. A base técnica para a construção e aprimoramento deste
• Equipe Técnica do Modelo (ETM) cuja atribuição é apoiar a modelo de melhoria e avaliação de processo de software é
SOFTEX sobre os aspectos técnicos relacionados ao Modelo composta pelas normas ISO/IEC 12207:2008 [ISO/IEC, 2008a]
de Referência (MR-MPS) e Métodos de Avaliação (MA-MPS) e ISO/IEC 15504-2 [ISO/IEC, 2003]. O MPR.BR se propõe ser
para: compatível com o modelo CMM/CMMI para software.
I. Criação e aprimoramento contínuo do MR-MPS, MA-MPS Na Figura 6 temos uma visão geral dos principais compo
e seus guias específicos; nentes MPS.BR.
II. Capacitação de pessoas por meio de cursos, provas e O Modelo de Referência, MR-MPS, define níveis de ma
workshops. turidade que são uma combinação entre processos e sua
capacidade. Para cada nível de maturidade são estabelecidos software utilizando-se das ferramentas Mantis para controle de
processos que caracterizam estágios de melhoria da imple modificações e Subversion para controle de versões.
mentação de processos na organização. O MR-MPS define sete
níveis de maturidade: Nivel Processos
• A (Em Otimização); A
• B (Gerenciado Quantitativamente); B Gerência de Projetos – GPR (evolução)
• C (Definido); C Gerência de Riscos – GRI
• D (Largamente Definido); Desenvolvimento para Reutilização – DRU
• E (Parcialmente Definido); Gerência de Decisões – GDE
• F (Gerenciado); D Verificação – VER
• G (Parcialmente Gerenciado). Validação – VAL
Projeto e Construção do Produto – PCP
Integração do Produto – ITP
Desenvolvimento de Requisitos – DRE
E Gerência de Projetos – GPR (evolução)
Gerência de Reutilização – GRU
Gerência de Recursos Humanos – GRH
Definição do Processo Organizacional – DFP
Avaliação e Melhoria do Processo Organizacional – AMP
F Medição – MED
Garantia da Qualidade – GQA
Gerência de Portfólio de Projetos – GPP
Figura 6. Visão geral dos componentes do MPS.BR Gerência de Configuração – GCO
Aquisição – AQU
O primeiro nível da escala é o “G” e o último o “A”. A G Gerência de Requisitos – GRE
Tabela 2 mostra os processos exigidos para cada nível de Gerência de Projetos – GPR
maturidade.
Tabela 2. Níveis de Maturidade do MR-MPS
Segundo definição do MPS.BR Guia de Implementação (2009,
p. 16), o propósito do processo de Gerência de Configuração Estudo de caso de uma implementação de GCS com
é estabelecer e manter a integridade de todos os produtos de Mantis e Subversion
trabalho de um processo ou projeto e disponibilizá-los a todos A partir de agora será apresentado um estudo de caso de
os envolvidos. A GCS é encarada pelo MPS.BR como sendo implementação de práticas de GCS com as ferramentas Mantis
um processo do nível de maturidade “F” e portanto deve ter e Subversion em uma empresa de construção de software de
resultados esperados. Os resultados esperados da GCS são: pequeno porte. A esta empresa, daremos o nome fictício de
• GCO1 - Um Sistema de Gerência de Configuração é esta “Casa do Software”.
belecido e Mantido;
• GCO2 - Os itens de configuração são identificados com base Cenário
em critérios estabelecidos; A empresa “Casa do Software” é uma empresa de pequeno porte
• GCO3 - Os itens de configuração sujeitos a um controle e conta com trinta e cinco colaboradores. A empresa desenvolve
formal são colocados sob baseline; softwares voltados para áreas comerciais de outras empresas
• GCO4 - A situação dos itens de configuração e das baselines utilizados por vendedores em seus notebooks nas visitas a seus
é registrada ao longo do tempo e disponibilizada; clientes. A empresa não possui uma política de GCS implementa
• GCO5 - Modificações em itens de configuração são da. Existe apenas uma rotina periódica de back-ups que fica sob
controladas; responsabilidade do pessoal de suporte de infra-estrutura.
• GCO 6 - O armazenamento, o manuseio e a liberação de itens As solicitações de modificações são feitas pelos clientes
de configuração e baselines são controlados consistentes; através de reuniões realizadas com o gerente de projetos e
• GCO7 - Auditorias de configuração são realizadas objeti desenvolvedores. A única documentação existente sobre as
vamente para assegurar que as baselines e os itens de confi solicitações são as atas das reuniões, não havendo documen
guração estejam íntegros, completos e consistentes. tação de acompanhamento da manutenção e aprovação formal
das mesmas por parte da gerência de projetos. Existe mais
Nesta parte do artigo foi mostrado onde a Gerência de confi de uma versão do mesmo sistema, como conseqüência de
guração de Software se encaixa nos dois dos principais modelos alterações feitas especificamente para determinados clientes,
de maturidade de software usados por em presas brasileiras. Na o que complica ainda mais a manutenção dos produtos de
próxima seção do artigo será apresentado um estudo de caso software. Como a empresa está em franca expansão, fica clara
de aplicação de GCS em uma empresa de desenvolvimento de a necessidade de se implementar práticas de GCS que possam
Figura 9. Fluxo do Controle de modificações da empresa “Casa do Software” Figura 11. Visão inicial dos status de solicitações de mudanças
Figura 15. Fluxo básico de utilização do subversion Figura 19. Fazendo uma operação de update para atualizar a cópia local
Instalação do Mantis
A versão do Mantis para Windows pode ser baixada a
partir do site “http://www.mantisbt.org/download.php”.
A sua versão estável mais recente é a MantisBT 1.1.8. Os se
guintes softwares são requeridos e devem ser instalados:
• PHP 4.3.0 and higher
• MySQL database 4.1.1 and higher (MS SQL and DB2 are
also supported).
• Web server (Apache, IIS, etc.)
Configuração do Mantis
Após instalado o Mantis é necessário configurar o arquivo
“config.inc.php” com os parâmetros corretos para emissão
de e-mails. A configuração utilizada neste trabalho está
apresentada na Figura 24. Os campos “user”, “domínio” e
“password” que aparecem no texto devem ser substituídos
pelos correspondentes de cada caso.
A configuração listada na Figura 24 já inclui os parâ
Figura 22. Resultado da operação de commit metros necessários para integração com o Subversion. O
significado de cada parâmetro pode ser obtido no manual
do Mantis no endereço “http://manual.mantisbt.org/
Resultados esperados do MPS.BR alcançados na solução index.php”.
adotada Vale observar que para que o envio de e-mails a cada novo
Conforme descrito anteriormente, a solução adotada deve status de uma solicitação de modificação ocorra, é neces
rá estar em conformidade com o modelo MPS-BR. sário a instalação do PHPMailer, que pode ser encontrado
Segundo o MPS.BR Guia Geral (SOFTEX, 2009, p.23) o no site “http://phpmailer.sourceforge.net”. A instalação do
processo de Gerencia de Configuração encontra-se no nível PHPMailer é simples, bastando para tanto copiar os arqui
“F” do MR-MPS e deve atingir sete resultados esperados. vos “class.smtp.php” e “class.phpmailer.php” para o diretó
A Tabela 6 mostra os resultados esperados e os itens deste rio destinado aos arquivos de include. No caso do XAMPP o
trabalho onde estão contemplados. diretório é “<diretório_de_instalação_do_XAMPP>\ php\
GCO 6. O armazenamento, o manuseio e a liberação de itens de configuração e baselines são Estabelecimento de um sistema de GCS
controlados
GCO 7. Auditorias de configuração são realizadas objetivamente para assegurar que as baselines e os Estabelecimento de um sistema de GCS
itens de configuração estejam íntegros, completos e consistentes
Instalação do Subversion
A instalação do Subversion é mais simples do que a do
Mantis. O arquivo de instalação pode ser obtido no ende
reço http://www.collab.net/downloads/subversion/. O
único software requerido é o Apache version: 2.2.11 que
já estará instalado caso o XAMPP tenha sido instalado
primeiro. Vale ressaltar que neste endereço existem dois
arquivos de instalação que devem ser baixados:
• CollabNet Subversion Server and Client v1.6.3 (for
Windows)
• CollabNet Subversion Command-Line Client v1.6.3 (for
Windows)
s
ramentas Mantis e Subversion para o controle de solicitação
Dê
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
de modificações e controle de versões respectivamente.
Para isso, precisamos saber o que você, leitor, acha da revista!
Foram apresentados ainda aspectos de instalação das ferra
s
ta
edição
Dê seu voto sobre este artigo, através do link:
mentas e sua customização.
www.devmedia.com.br/esmag/feedback
Referências Links
Barbosa, Valeria Plano de Gerência de Configuração de Software: Sistema de Collabnet “CollabNet Subversion Downloads”
Controle de Custos 11/09/2007 disponível em http://conexao.googlecode.com/files/ http://www.collab.net/downloads/subversion/
SYSCOPlanoGerenciaConfiguracao.pdf
Comunidade de Software & Inovação Empresarial “As Ferramentas de SCM e o Suporte
Ben Collins-Sussman, de et al Version Control with Subversion: for Subversion 1.6 (Compiled do CMM”
from r3445) 2008 disponível em <http:subversion.tigris.org/> http://paginas.ispgaya.pt/~msantos/es_artigos_tecnicos_1/60_FerramentasSCM_e_
suporteCMM.pdf
Borges, Vanessa R. Implantação de Práticas de Gerência de Configuração em uma Fábrica de
DevMedia “Gerência de Configuração – Parte 1”
Software: Um estudo de caso (Graduação em Ciência da Computação) Universidade Federal de
http://www.devmedia.com.br/articles/viewcomp.asp?comp=9378
Lavras, Minas Gerais, 2006
EAI Community “Establishing a Configuration Management Baseline”
Forte, G.,“Rally Round the Repository”, CASE Outlook, Dez 1989, p. 5-27 http://it.toolbox.com/blogs/enterprise-solutions/establishing-a-configuration-management-
baseline-13910
MOLINARI, Leonardo. Gerência de configuração: Técnicas e práticas no desenvolvimento do
software. Florianópolis : Visual Books, 2007. 208p. Enciclopédia Livre, (2007) “Gerência de Configuração de Software”
http://pt.wikipedia.org/wiki/Ger%C3%AAncia_de_Configura%C3%A7%C3%A3o_de_Software
Neto, Euclides Plano de Gerência de configuração de software: Projeto VENSSO – Venda
de Serviços de Software 27/05/2005 disponível em <http://vensso.sourceforge.net/doc/ Gerência de Configuração “Gerência de Configuração”
VENSSO_SCM_20050527.pdf> http://www.cin.ufpe.br/~gfn/qualidade/gc.html
PRESSMAN, Roger S. Engenharia de software. 6ª. ed. São Paulo : McGraw-Hill, 2006. xxxi, 720p. Mantis “Mantis Bug Tracker”
http://www.mantisbt.org/
SEI, Software Engineering Institute. CMMI for Development, Version 1.2: CMMI DEV V 1.2.
Pronus Engenharia de Software “O que é Gerência de Configuração”
Carnegie Mellon University, EUA, 2006 573p.
http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/gerencia_configuracao.php
SOFTEX MPS.BR - Melhoria de Processo do Software Brasileiro, Guia de Implementação – Parte 2: Regularize “Gerência de Configuração de Software”
Nível F, Rio de Janeiro, 2009 53p http://cartilha.regularize.com.br/list/18/cartilha/post/80/gerencia-de-configuracao-de-software.html
SOFTEX, MPS.BR - Melhoria de Processo do Software Brasileiro, Guia Geral Rio de Janeiro, 2009 57p Tigris.org “Subversion”
http://subversion.tigris.org/
Medição de Software
Um importante pilar da melhoria de processos de software
O
s avanços tecnológicos e a alta profissionais de software.
competitividade do mercado
estão continuamente aumen Em que situação o tema é útil?
tando a demanda por softwares cada Organizações de software que têm (ou planejam
vez melhores e que sejam produzidos ter) a Medição de Software como uma de suas
em projetos aderentes aos custos e práticas. Estudantes e profissionais de software
prazos planejados. Mesmo diante de que buscam entendimento sobre o tema.
todos os avanços tecnológicos, realizar
projetos aderentes aos seus planos ain
da é um desafio para grande parte das A medição de software é considerada
Monalessa Perini Barcellos organizações de software. Buscando uma das atividades mais importantes
monalessa@inf.ufes.br aprimorar suas práticas de Engenharia para a gerência e melhoria de processos
É Doutora em Ciências em Engenharia de
de Software e, consequentemente, desen e produtos de software, uma vez que
Sistemas e Computação (COPPE/UFRJ), Mes-
tre em Ciências em Engenharia de Sistemas volver produtos de melhor qualidade em fornece subsídios para a elaboração de
e Computação (COPPE/UFRJ), Bacharel em projetos conduzidos de acordo com seus planos realistas para os projetos e possi
Ciência da Computação (UFES). Professora planos, as organizações têm mostrado bilita o monitoramento da aderência da
do Departamento de Informática, área Enge- um crescente interesse por programas execução dos projetos em relação a seus
nharia de Software, da Universidade Federal
de melhoria de processos, contexto no planos (ISO/IEC, 2007). Isso é possível,
do Espírito Santo (UFES). Atuante desde 1999
em projetos, consultorias, treinamentos e pes- qual a medição de software tem papel pois as medidas, ao serem coletadas e
quisas da área de Engenharia de Software. fundamental. armazenadas, podem ser analisadas
e as informações obtidas são consideradas e utilizadas como que identifica as atividades do processo de medição que são
recurso estratégico na condução desse ciclo. requeridas para especificar que informações de medição
Somente quando as informações obtidas na análise dos dados são necessárias, como as medidas serão definidas, como os
coletados são utilizadas para direcionar as ações necessárias dados serão coletados, como os resultados serão analisados
às organizações e seus projetos, é que o objetivo fundamental e como avaliar se os resultados são válidos. O processo
da medição é alcançado e percebido pelas organizações, fator de medição definido na ISO/IEC 15939 consiste de quatro
que contribui para a real institucionalização de um programa atividades que são sequenciadas em um ciclo iterativo, per
de medição eficiente. mitindo feedback e melhoria contínua do processo. Ele é uma
Uma vez que a medição de software é implantada e executada adaptação do ciclo PDCA (Plan-Do-Check-Act), comumente
corretamente em uma organização, torna-se possível passar à utilizado como base para a melhoria da qualidade. Suas ati
melhoria de processos. vidades são: (i) estabelecer e manter comprometimento com
Melhoria de processos de software é uma abordagem para de a medição; (ii) planejar o processo de medição; (iii) executar
finição, organização e implementação de processos de software o processo de medição; e, (iv) avaliar a medição.
que sejam eficientes para uma organização (KILPI, 2001). O processo de medição proposto pela ISO/IEC 15939 é
Implantar melhoria de processos em uma organização baseia-se orientado às necessidades de informação da organização.
fundamentalmente na identificação e realização das mudanças Para cada necessidade de informação, o processo gera um
que levam à melhoria dos processos. Para isso, inicialmente a produto de informação, a fim de satisfazer a necessidade de
medição é utilizada para identificar as necessidades de mudanças. informação identificada. Para isso, o processo considera um
Posteriormente, quando as mudanças são realizadas, a medição Modelo de Informação de Medição, que estabelece a ligação
é utilizada para avaliar os resultados das alterações. Em outras entre as medidas definidas e as necessidades de informação
palavras, a melhoria de processos é um ciclo contínuo no qual a identificadas. A Figura 1 apresenta o Modelo de Informação
medição é um dos principais pilares. de Medição definido na ISO/IEC 15939.
medição para estabelecer exatamente que medidas de que alcance dos objetivos organizacionais. Uma das abordagens
atributos são necessárias. A partir daí, o mecanismo de mais conhecidas é o Goal Question Metric - GQM que consi
coleta e organização dos dados de uma ou várias instân dera que, para cada objetivo estabelecido, é possível determi
cias do construtor de medição deve ser definido. O Plano nar questões cujas respostas estão associadas a medidas. A
de Medição é o resultado formal que agrupa todos os itens Figura 4 apresenta um exemplo para a relação de um obje
anteriores. tivo de negócio, suas questões e medidas associadas.
Sendo aderente à ISO/IEC 15939, a relação entre neces Após serem definidas, as medidas devem ser coletadas e
sidades de informação e conceito mensurável do Modelo analisadas. O objetivo de analisar os dados das medidas é
de Informação do PSM equivale à relação entre esses itens tornar qualquer padrão, tendência ou relacionamento mais
presente no Modelo de Informação de Medição da ISO/ visível, a fim de que estes possam auxiliar nos julgamen
IEC 15939 (representado no lado esquerdo da Figura 1). O tos necessários às tomadas de decisão. Durante a análise,
construtor de medição, por sua vez, inclui os demais itens medidas que fornecem informações sobre o alcance dos
presentes no Modelo de Informação da ISO/IEC 15939 (de objetivos são transformadas em indicadores. Os indicadores
mais itens representados na Figura 1). são medidas base ou medidas derivadas que, associadas a
Considerando o modelo de informação definido, o PSM critérios de avaliação ou decisão pré-definidos, são capazes
propõe um processo de medição composto por quatro de fornecer informações que descrevem o alcance dos obje
fases: (i) planejamento; (ii) execução; (iii) avaliação; e (iv) tivos estabelecidos. São inicialmente definidos no Plano de
comprometimento. Medição, mas à medida que novas necessidades são identi
ficadas, novos indicadores devem ser definidos.
Observando-se as primeiras etapas dos processos de Em relação à análise dos dados coletados para as medidas,
medição propostos nas abordagens apresentadas, nota-se é importante observar que, ao longo da execução de um
que elas são responsáveis pela identificação e definição das processo de medição, o foco da análise muda de acordo com
medidas, bem como pela associação destas aos objetivos a fase do ciclo de vida dos projetos nos quais a medição é
organizacionais. Essas etapas são de grande importância aplicada. Tipicamente são considerados três tipos de análise:
para a medição, pois são elas que definem que informações (i) análise de estimativas, utilizada principalmente no início
serão fornecidas para apoiar as tomadas de decisão. do projeto, para apoiar o planejamento ou replanejamentos;
Essa tarefa pode parecer simples, mas não é, principalmente (ii) análise de viabilidade, utilizada quando o Plano do
em organizações de software. Para que as atividades de me Projeto está próximo de ser concluído, para determinar se
dição estejam alinhadas aos objetivos de negócio, é preciso os planos e metas nele estabelecidos são realísticos e al
identificar os fatores críticos que são capazes de determinar cançáveis; e (iii) análise de desempenho, utilizada durante
se os objetivos de negócio serão ou não alcançados. Consi a execução do projeto para determinar se ele está indo ao
derando essa questão, há algumas abordagens que apóiam a encontro dos planos e metas definidos. A Figura 5 ilustra
identificação e seleção de medidas adequadas à avaliação do os três tipos de análise.
s
Dê
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback
Referências
Figura 5. Tipos de análise BASILI, V. R., ROMBACH, H. D., CALDIERA, G., 1994, Goal Question Metric Paradigm, Encyclopedia
of Software Engineering, 2 Volume Set, John Wiley & Sons, Inc.
No início de um projeto, é necessário estabelecer as es
timativas para sua realização, principalmente as relacio BASS, L., BELADY, L., BROWN, A., FREEMAN, P., ISENSEE, S., KAZMAN, R., KRASNER, H., MUSA,
nadas a tempo, custo e esforço. Dados do projeto corrente J., PFLEEGER, S., VREDENBURG, K., WASSERMAN, T., 1999, Constructing Superior Software,
e de projetos anteriores são utilizados para calcular essas Software Quality Institute Series, Macmillan Technical Publishing.
estimativas. O Plano do Projeto é então elaborado. Quando BRIMSON, J. A., 2004, Stop Cane Dancing and Integrate Statistical Process Control (SPC) into your
sua elaboração está em fase conclusiva, dados das medidas Process Based Management System, Measurement Business Excellence, v. 8, n. 2, p. 15-22.
coletadas orientam a análise de viabilidade dos planos
estabelecidos, indicando os riscos envolvidos e fornecendo CHRISSIS, M. B., KONRAD, M., SHRUM, S., 2006, CMMI (Second Edition): Guidelines for Process
diretrizes para que sejam traçadas outras alternativas, caso Integration and Product Improvement, Addison-Wesley.
necessário. Quando o projeto é executado, é importante que DEMING, W. E., 1986, Out of Crises, Massachusetts Institute of Technology, Center of Advanced
seu status seja conhecido, bem como seu desempenho em Engineering, Cambridge.
relação aos planos estabelecidos e possíveis problemas re
ISO/IEC, 2007, ISO/IEC 15939 (E) Software Engineering - Software Measurement Process,
lacionados. A análise de desempenho é quem fornece essas
International Organization for Standardization and the International Electrotechnical
informações, através da análise dos valores das medidas
Commission, Geneva, Switzerland.
coletadas ao longo do projeto, e relacionamento destas com
os objetivos estabelecidos nos planos. KILPI, T., 2001, Implementing a Software Metrics Program at Nokia, IEEE Software, v. 18, n. 6,
p. 72-77.
Considerações Finais McGARRY, J., CARD, D., JONES, C., LAYMAN, B., CLARK, E., DEAN, J., HALL, F., 2002, Pratical Software
Atualmente as organizações de software têm reconhecido a
Measurement: Objetive Information for Decision Makers, Addison Wesley, Boston, USA.
necessidade de possuírem processos de software que sejam
capazes de atender às demandas de qualidade e produti NIESSINK, F., VLIET, H., 2001, Measurement Program Success Factors Revisited, Information and
vidade do mercado. Processos com essa característica são Software technology, v. 43, n. 10, p. 617-628.
resultado da gerência eficiente dos processos e projetos, que SOFTEX, 2009, MPS.BR: Melhoria de Processo do Software Brasileiro - Guia Geral : 2009,
leva à sua melhoria, contexto no qual a medição de software Disponível em: http://www.softex.br/mpsbr.
é atividade primária.
A medição apóia a melhoria no nível dos projetos, uma vez WANG, Q., LI, M., 2005, Measuring and Improving Software Process in China, In Proceedings
que fornece a base necessária para a realização de planos of International Symposium on Empirical Software Engineering - ISESE 2005, Hoosa Head,
realísticos e controle destes ao longo de sua execução nos Australia, p. 183-192.
O
s avanços na área da tecnologia papel cada vez mais decisivo da comunicação
têm permitido ao longo dos interpessoal com a utilização de métodos
últimos anos grande informa ágeis no desenvolvimento de software.
tização nos processos das organizações.
No entanto, dispor de um sistema de Para que serve?
software que atenda as diversas neces O artigo busca identificar meios de ameni-
sidades da gestão organizacional pode zar as barreiras de comunicação na gestão
se tornar um processo complexo. Isso de processos de software. Não se tem a
implica, muitas vezes, em desenvolver pretensão de esgotar o assunto, mas propor
ou customizar um sistema. Mas não é só uma reflexão acerca do tema, levantado por
isso: os sistemas de software precisam diversos autores no campo da engenharia de
evoluir para acompanhar os modelos de software.
gestão e, neste contexto passam obriga
toriamente por manutenções que podem Em que situação o tema é útil?
ser melhorias, otimizações e até mesmo Na gestão e execução de processos de sof-
reparos. Segundo Pfleeger (2004), estas tware que necessitam de constantes adapta-
manutenções abrangem qualquer alte ções e integrações. Neste contexto, a comu-
ração ou correção efetuada num sistema nicação entre usuário e analista costuma ser
Márcia Regina Simm Cantú que já está sendo utilizado, uma vez que muito intensa, o que exige uma grande habi-
macantu@bewnet.com.br
sua vida útil não acaba com a entrega. A lidade de comunicação interpessoal, princi-
Bacharel em Ciência da Computação; atua
como analista de sistemas desde 2001. grande maioria dos sistemas de softwa palmente por parte do analista de sistemas.
re deve ser construída para incorporar
mudanças: seja porque o usuário decidiu realizar seu processo confirmação de recebimento, é Griffin (2006) quem destaca a etapa
de maneira diferente, seja porque houve alguma alteração de de feedback no processo de comunicação. Trata-se de um retorno
leis ou normativas municipais, estaduais ou mesmo federais com relação ao recebimento da mensagem: é a certeza de que o
que regulamentam os requisitos do sistema. receptor recebeu a mensagem e a compreendeu. Isso eliminaria
Num processo de software, tanto no desenvolvimento de um a ocorrência do ruído, tornando a comunicação eficaz.
sistema novo quanto na manutenção de um sistema existente, as Apesar de parecer um processo simples, nem sempre, no en
atividades relacionadas à etapa de levantamento de requisitos tanto, a mensagem enviada é igual à mensagem recebida. Isso só
representam um papel fundamental exatamente por constituí ocorre porque o processo de comunicação é permeado ainda pelas
rem o alicerce para as fases subsequentes de desenvolvimento. O características das pessoas envolvidas. De acordo com Chiavenato
levantamento de requisitos, de acordo com Sommerville (2007), (1994), a comunicação é uma troca composta por palavras, letras
reflete as necessidades de um usuário e descrevem os serviços ou símbolos e engloba pensamentos, opiniões ou informações.
que o sistema deve fornecer. Sendo assim, este não é um pro Neste sentido, o processo de comunicação é influenciado forte
cesso apenas técnico, mas também social, uma vez que depende mente pela subjetividade humana, independente do ambiente
fortemente de um entendimento entre os atores envolvidos, no em que ocorre ou da forma como se dá.
caso, o analista de sistemas e o usuário. Para Pressman (2006), o Do ponto de vista organizacional, segundo Griffin (2006), a
levantamento de requisitos é uma atividade com comunicação comunicação tem o propósito de coordenar e orientar as metas
intensiva. O autor reforça a tese de que o ruído na comunicação propostas. Isso só é possível com a troca de informações. Essa
entre usuário e analista pode acarretar muitas dificuldades para troca permite o entendimento do que deve ser feito e como. Griffin
o desenvolvimento e/ou manutenção do sistema. Nesse sentido, (2006, p.188) afirma ainda que: “A comunicação organizacional
é necessário estudar e compreender como ocorre o processo de expressa sentimentos e emoções. Por isso está longe de ser uma
comunicação a fim de buscar maneiras de minimizar as barrei coleção de fatos e números. Os funcionários, como acontece em
ras da comunicação na gestão do processo de software. qualquer lugar do mundo, precisam comunicar emoções como
felicidade, raiva, desprazer, confiança e medo”.
O Processo de Comunicação Para Chiavenato (1994), a comunicação nas organizações difi
De acordo com Reti (2008), vive-se em um mundo de lingua cilmente ocorre sem problemas. O autor chama a atenção para o
gens próprias. Pode-se falar o mesmo idioma, mas usam-se fenômeno da transformação que ocorre no decorrer desse proces
diferentes linguagens. Por isso, às vezes, não há um entendimen so, que faz com que o receptor receba uma mensagem diferente
to adequado. Em função de cada indivíduo ter características daquela enviada pelo emissor. Essa transformação é provocada
intrínsecas, grande parte das dificuldades de entendimento vem por três problemas principais, no entender do autor:
da forma como cada um interpreta os fatos e a comunicação. • Omissão: supressão de conteúdo da mensagem;
Até as próprias palavras podem ter significado único para cada • Distorção: alteração do conteúdo da mensagem;
uma das pessoas do processo de comunicação. A expressão no • Sobrecarga: incapacidade de processar o volume de informa
stress para o surfista é um tipo de onda ruim porque não tem ções da mensagem, seja para o envio, seja para o recebimento
altura; para outros, significa “estar numa boa”. – provoca omissão e contribui para a distorção.
O processo de comunicação é composto por cinco etapas, de
acordo com Chiavenato (1994): Mas, além desses problemas que transformam o processo de
• Emissor ou fonte: é a pessoa, coisa ou processo que emite comunicação, Chiavenato (1994) destaca ainda as barreiras da
a mensagem; comunicação, fatores que podem interferir nas etapas da comu
• Transmissor ou codificador: elo que liga a fonte ao canal, nicação comprometendo o resultado final da mensagem enviada.
equipamento que transporta a mensagem codificada; São exemplos de barreiras da comunicação: ideias preconcebidas,
• Canal: espaço entre transmissor e receptor por onde a men significados pessoais, emoções, estado de ânimo, entre outras.
sagem trafega; A especialização das pessoas nas organizações é, todavia, o
• Receptor ou decodificador: equipamento que recebe a fator que mais influencia a comunicação no tocante ao processo
mensagem e a decodifica. Se a comunicação é oral, a recepção de software. Apontada como uma barreira da comunicação
é garantida por meio de uma boa audição; por Megginson (1998), a especialização pode formar grupos
• Destino: é a pessoa, coisa ou processo para o qual a men com interesses, comportamentos e até mesmo vocabulário
sagem é enviada. próprios. Tome-se, por exemplo, uma das etapas mais críticas
do Processo de software: o levantamento de requisitos. Imagine
Existe ainda um elemento que deve ser acrescentado ao o analista de sistemas interagindo com o usuário, cada qual
Processo de Comunicação: o ruído. O ruído é uma interferên sintonizado nos seus conhecimentos técnicos. Não vai haver
cia, um aspecto que prejudica a transmissão da mensagem e entendimento, não vai haver comunicação.
distorce o seu significado. Estima-se que em todo o processo Na concepção de Griffin (2006, p.192), a “comunicação é um
de comunicação exista ruído, em maior ou menor grau. processo social em que duas ou mais partes trocam informações
Embora Chiavenato (1994) afirme que a comunicação é um ou compartilham significados. Trata-se de um processo de mão-
processo bidirecional e que necessita de um sinal de retroação ou dupla e que acontece durante um certo tempo”.
Tabela 1. Como usuários e desenvolvedores vêem uns aos outros - Fonte: Pfleeger (2004, p. 142)
A comunicação, neste contexto, fica bastante comprometida, terminada a fase de levantamento de requisitos, o que pode
uma vez que esta relação social só pode se concretizar se hou comprometer todo o cronograma de um projeto.
ver respeito mútuo, que surge da aceitação do outro. De acordo Num ambiente em que o desenvolvimento e a pronta entrega
com Maturana (2001), “sem a aceitação do outro na convivência, são as principais premissas para um sistema, o ciclo de vida
não há fenômeno social”. O usuário não pode ser um problema clássico talvez não seja a metodologia mais adequada, sendo
para o analista de sistemas: o usuário é a sua razão de ser. considerada um tanto burocrática e pesada. Especialmente na
Koscianski (2007) aponta ainda um dos problemas mais co década de 90, com a expansão da tecnologia nas pequenas e
nhecidos no processo de software: a negociação de requisitos médias empresas, essa situação começou a se tornar inviável,
entre usuário e analistas. Como a entrevista é, provavelmente, o que levou alguns desenvolvedores de sistema a estudarem
a técnica mais comum de levantamento de requisitos de siste métodos mais leves e rápidos. Mas foi em 2001 que alguns
mas, as dificuldades de comunicação durante a especificação desenvolvedores, produtores e consultores de software assina
de requisitos devem merecer atenção especial. ram o “Manifesto para o Desenvolvimento Ágil de Software”.
A entrevista é composta por questões sobre o sistema for Este manifesto declarava a descoberta por melhores modos
muladas pelo analista de sistemas, derivando os requisitos de desenvolvimento de software, baseados em indivíduos e
das respostas dadas pelos usuários a essas questões. Essas suas interações, softwares funcionais, colaboração do cliente
entrevistas podem ser fechadas, respondendo os usuários e resposta a modificações.
a perguntas predefinidas; ou abertas, que não seguem um
roteiro. As entrevistas abertas permitem uma compreensão Desenvolvimento rápido de software, uma possível
maior acerca das necessidades do usuário, uma vez que o solução?
usuário pode discorrer livremente sobre as suas atividades Os métodos ágeis de software enfocam principalmente
de trabalho. Mas isso pode tornar o processo mais trabalhoso a especificação, o projeto e a implementação de software.
para o analista, que necessita de um grande poder de síntese São metodologias que envolvem o usuário em praticamente
para organizar essas informações de forma estruturada. Além todas as fases do processo, garantindo assim que possíveis
disso, conforme Pressman (2006), frequentemente as informa mudanças nos requisitos possam ser corrigidas em tempo
ções fornecidas por um usuário se confundem ou entram em real. O foco nessas metodologias é a comunicação interativa,
conflito com outras informações fornecidas por outros usuários pois não existe uma única etapa em que usuário e analista
envolvidos. Isso exige, em muitos casos, a utilização de técnicas interagem, mas várias. Nesse contexto os usuários podem
adicionais nesta fase de levantamento de requisitos. vir a comunicar-se com toda a equipe de desenvolvimento,
Sommerville (2007) sugere as técnicas de Cenários e Casos de e não apenas com o analista, o que valoriza a cooperação
Uso. A técnica de Cenários caracteriza-se por uma descrição entre usuários e desenvolvedores em detrimento do forte
de exemplos de interação do mundo real que o sistema deve planejamento proposto pelo ciclo de vida clássico do processo
atender. A técnica de Casos de Uso baseia-se em cenários e de software.
identifica o tipo de interação e quais agentes (sistema, usu Sommerville (2007) aponta a Extreme Programming como o
ário, etc.) estão envolvidos. Usualmente essas técnicas são método ágil mais conhecido, citando ainda o Scrum, Crystal,
utilizadas em conjunto e podem fazer toda a diferença para entre outros. Todos esses métodos possuem como característica
tornar a etapa de levantamento de requisitos mais eficaz. Não comum o desenvolvimento iterativo, propondo, no entanto,
obstante, todas as técnicas resultam de alguma interação com maneiras diferentes para o conseguir. Num desenvolvimento
o usuário. Assim, a comunicação é algo inerente à etapa de iterativo, cada iteração é uma etapa do projeto de software.
levantamento de requisitos e precisa ser bem resolvida, a fim Assim, com o foco na comunicação entre usuários e analista/
de que o produto final de software atenda às necessidades do desenvolvedores, o projeto vai sendo validado e incrementado
usuário no prazo estipulado. a cada etapa. É isso que garante que as mudanças no projeto
Como o desenvolvimento do software decorre principalmen sejam bem-vindas e que o sistema seja entregue num prazo
te da etapa de levantamento de requisitos, é importante que mais curto, de acordo com as necessidades do usuário. Um
este mapeamento seja bem construído. Dentre as vantagens da envolvimento maior entre usuário e analista de sistemas pode
utilização do modelo de desenvolvimento de software baseado gerar maior compreensão acerca dos requisitos do sistema e
no ciclo de vida clássico cita-se a documentação das etapas, desfazer possíveis erros de interpretação. Além disso, a con
o que gera maior consistência para as fases subsequentes. vivência, por promover o companheirismo e a cooperação,
No entanto, Sommerville (2007) aponta a divisão inflexível pode diminuir a distância técnica entre esses profissionais,
de etapas como uma grande desvantagem, tendo em vista a quebrando barreiras e preconceitos, resultando num produto
dificuldade de reagir às mudanças inerentes do projeto. De que atende às necessidades do usuário e que proporcione
terminadas diferenças de entendimento sobre o que o sistema maiores resultados à empresa.
deve contemplar podem ser descobertas apenas na etapa final O que fica evidente, no tocante à comunicação, é que o grande
de teste, o que obriga o retorno às fases iniciais de análise e trunfo dos métodos ágeis se dá pelo envolvimento do usuário
levantamento de requisitos para readequações, alerta o autor. em todo o processo de software, e não apenas numa fase ini
Verdadeiramente, podem ocorrer mudanças antes mesmo de cial, a exemplo da metodologia do ciclo de vida clássico. No
s
Dê
mas complexos e críticos, nos quais são necessárias análises A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
detalhadas de requisitos e maior planejamento. Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
Dê seu voto sobre este artigo, através do link:
Conclusões www.devmedia.com.br/esmag/feedback
Para Pressman (2006), cabe ao analista de sistemas o papel
de facilitador no processo de software, quando elenca algu
mas capacidades básicas que este deve possuir e que podem Referências Bibliográficas
se resumir na habilidade de comunicar-se, de entender e se CHIAVENATO, Idalberto. Gerenciando pessoas: o passo decisivo para a administração
fazer entender. Griffin (2006), no entanto, enxerga cada ele participativa. São Paulo: Makron Books, 1994.
mento do processo de comunicação como parte fundamental:
GRIFFIN, Ricky W.; MOORHEAD, Gregory. Fundamentos do comportamento organizacional. São
se um deles falhar, a mensagem pode não ser transmitida
Paulo: Ática, 2006.
adequadamente.
Por isso, para viabilizar a comunicação organizacional, é KOSCIANSKI, André; SOARES, Michel dos Santos. Qualidade de software. São Paulo: Novatec, 2007.
importante que todas as pessoas envolvidas no processo de
MATURANA, Humberto. Emoções e linguagem na educação e na política. Belo Horizonte: UFMG,
software, desde usuários até analistas e desenvolvedores,
2001.
conheçam o processo de comunicação, seu funcionamento e
suas técnicas. Habilidades de ouvir, falar e valorizar a pessoa MEGGINSON, Leon C.; MOSLEY, Donald C.; PIETRI Jr., Paul H. Administração: conceito e aplicação.
com quem se comunica são importantes e devem ser promo São Paulo: Harbra, 1998.
vidas. Além disso, deve-se procurar evitar os pré-julgamentos PFLEEGER, Shari Lawrence. Engenharia de Software. São Paulo: Prentice Hall, 2004.
decorrentes de mitos e preconceitos. Eles podem interferir
PRESSMAN, Roger S. Engenharia de software. São Paulo: McGraw-Hill, 2006.
fortemente nos relacionamentos interpessoais, causando os
indesejáveis ruídos na comunicação. RETI, Andréa Huggard-Caine. O segredo de cuidar das pessoas: experiências do cotidiano para
Outro aspecto do processo de comunicação que deve ser gerenciar melhor e aumentar o desempenho das equipes. Rio de janeiro: Elsevier, 2008.
amplamente encorajado é o feedback, por constituir-se numa
SOMMERVILLE, Ian. Engenharia de software. São Paulo: Pearson Addison-Wesley, 2007.
maneira de checar a compreensão das mensagens. Esse talvez
A
cristine.gusmao@nutes.ufpe.br
Graduada em Engenharia Elétrica (1993), mestrado Análise Quantitativa de Riscos
(2001) e doutorado (2007) em Ciência da Compu- (AQR) é um campo relativa Em que situação o tema é útil?
tação pela Universidade Federal de Pernambuco. mente novo, o qual tem cres
Professora adjunta da Universidade Federal de Per-
Auxiliar os envolvidos em um projeto, mais
cido rapidamente em diversas áreas do especificamente, o gestor de projetos, no
nambuco, com atividades na graduação e pós-gra-
duação, lotada no Núcleo de Telessaúde, pesquisa-
conhecimento [Vose 2002]. Uma dessas processo de tomada de decisão.
dora colaboradora do Grupo GP2 do Centro de Infor- áreas tem sido o gerenciamento de
mática (CIn - UFPE), coordenadora e pesquisadora projetos, cujas diversas abordagens dis
do PROMISE (Project Management Improvements poníveis consideram a análise de riscos
in Software Engineering) e colaboradora do Progra- como um dos seus principais processos conduzi-la após a avaliação dos riscos,
ma de Mestrado em Engenharia de Computação da
Escola Politécnica de Pernambuco - Universidade de
no contexto da gerência de riscos de um incluindo a priorização dos mesmos, e
Pernambuco (POLI - UPE). É membro da SBC. Tem projeto [Matias Júnior 2006]. garantir que todos os principais riscos
experiência na área de Ciência da Computação, A discussão sobre a análise quanti poderão ser considerados.
com ênfase em Engenharia de Software, atuando tativa de riscos presume que etapas Segundo David Hulett [Hulett 2004], a
principalmente nos seguintes temas: Gerência de anteriores, tais como planejamento e análise quantitativa de riscos é sempre
Riscos de Projetos, Qualidade de Software, Gerência
de Projetos, Gestão de Sistemas de Saúde, e-Health
identificação de riscos, tenham sido recomendada para projetos grandes,
e Consultoria em Processos de Negócio. cumpridas. Desta forma, é melhor complexos ou visíveis, podendo ser
de probabilidades que é usado. Se for utilizada a distribuição detalhes, da seguinte maneira: impacto em relação ao cus
uniforme, devem ser colhidas informações sobre o valor má to (Ic), impacto em relação ao empenho (Ie) e impacto em
ximo e mínimo para uma consequência de um evento de risco, relação ao cronograma (Icr).
tal como citado anteriormente. No caso de uma distribuição Usando esta técnica para todos os riscos, ter-se-á uma análise
triangular, seriam necessárias informações sobre o cenário para apresentar aos stakeholders do projeto e, consequentemen
otimista, pessimista e aquele mais provável. As distribuições te, poderá ser requerida uma reserva de contingência para
representam as probabilidades e as consequências do compo cobrir o impacto dos riscos, caso algum destes aconteça. John
nente do projeto. Grass [Grass 2007] exemplifica essa situação (vide Tabela 1),
Por fim, a documentação do raciocínio (da análise lógica) por conforme explanado posteriormente.
detrás das extensões dos riscos é um componente importante
da entrevista sobre riscos, uma vez que pode gerar estratégias Probabilidade de Impacto em termos de Reserva de Contingência
Risco
eficazes de respostas aos riscos. Ocorrência (Pr) custo (Ic) para o Risco
A 80% R$ 10.000,00 R$ 8.000,00
Análise de Sensibilidade B 30% R$ 30.000,00 R$ 9.000,00
A Análise de Sensibilidade é uma técnica utilizada para C 50% R$ 8.000,00 R$ 4.000,00
tomada de decisão que avalia a mudança de uma variável D 10% R$ 40.000,00 R$ 4.000,00
dentro do projeto, analisando o resultado dessa variação sobre
E 30% R$ 20.000,00 R$ 6.000,00
o seu planejamento inicial, e é de grande importância para a
F 25% R$ 10.000,00 R$ 2.500,00
análise de novos cenários [Silva e Belderrain 2004; Almeida e
Ferreira 2008]. Total R$ 118.000,00 R$ 33.500,00
Esta técnica ajuda a determinar quais riscos apresentam Tabela 1. Representação da técnica VME [Grass 2007]
maior impacto potencial no projeto, examinando a extensão
com que a incerteza de cada elemento do projeto afeta o Supondo a identificação de seis riscos no projeto, o impacto
objetivo que está sendo examinado quando todos os outros potencial é de cento e dezoito mil reais (R$ 118.000,00). Entre
elementos incertos são mantidos em seus valores de linha tanto, não se pode solicitar toda essa quantia como reserva
de base, impactando em prazos e custos [PMI 2004; Almeida de contingência, pois este nível de reserva seria considerado
e Ferreira 2008]. Desta forma, a aplicabilidade da análise de para o caso de todos os riscos ocorrerem. Por isso, a reserva de
sensibilidade é caracterizada tanto na gestão de prazos quanto contingência é respeitada avaliando o potencial do impacto dos
no retorno sobre o investimento. riscos no projeto e a probabilidade dos mesmos acontecerem,
De uma maneira geral, utiliza-se a análise de sensibilidade sendo evidenciada na última coluna da Tabela 1.
para tomar melhores decisões, decidir quais dados estimados Percebe-se que a solicitação total da reserva de contingência é
devem ser refinados antes de iniciar o processo de tomada de trinta e três mil e quinhentos reais (R$ 33.500,00), podendo
de decisão e concentrar-se nos elementos críticos durante a ser adicionada ao orçamento do projeto como uma poupança
sua implantação. Por outro lado, o principal obstáculo é a não referente aos riscos. Se o risco “C” e o “F” ocorrerem, parte
indicação da possível ocorrência de variação dos parâmetros dessa reserva poderá ser usada para cobrir o impacto. Porém, a
escolhidos na modificação da variável em análise, bem como ocorrência do risco “D” impactará na reserva de contingência,
considerar cada variável como sendo independente. podendo não ser o suficiente para proteger o projeto e cobrir
o impacto. Mesmo o risco “D” tendo apenas 10% de chance de
Análise do Valor Monetário Esperado incidência, a equipe do projeto tem a obrigação de focar nesse
O Valor Monetário Esperado (VME) é uma prática de gerên risco para assegurar que o mesmo seja gerenciado com sucesso,
cia de riscos utilizada para ajudar a quantificar e comparar ou seja, a equipe deve procurar minimizar o impacto através
os riscos em vários aspectos de um projeto. Tal como outras de um gerenciamento pró-ativo do risco.
técnicas de análise quantitativa de riscos, o VME se baseia No caso do gerenciamento de projetos médios e grandes, faz
em números específicos e quantificáveis para a realização de sentido incluir algum tempo e orçamento para riscos desco
cálculos ao invés de aproximações e subjetivações, tais como: nhecidos. De acordo com John Grass [Grass 2007], existe uma
alto, médio e baixo. comprovação na indústria de que uma reserva de contingência
Nessa linha, o VME é fundamentado em três números de 5% pode ser adicionada ao projeto para tratar dos riscos que
básicos. São eles: probabilidade do risco ocorrer (Pr), pro são desconhecidos no início do projeto.
babilidade do risco impactar o projeto se o mesmo ocorrer
(PI) e impacto no projeto se o risco ocorrer (I). Em relação Análise da Árvore de Decisão
à variável PI, normalmente a maioria dos projetos não A Árvore de Decisão consiste na determinação e visualização
utilizam este componente de cálculo, pois se supõe que os gráfica de caminhos que poderão ser seguidos em um pro
riscos identificados terão a probabilidade de 100%, ou um cesso de tomada de decisão [Pedro e Guerreiro 2004; Almeida
valor bem perto de impactar o projeto. Quanto ao elemento e Ferreira 2008]. Essa técnica é estudada em vários campos
impacto (I), o mesmo pode ser reclassificado, em maiores de pesquisa como ciências sociais, estatística, engenharia e
s
Dê
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
e difundida no Project Management Body of Knowledge [PMI
sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!
2004], quando se usa simulação. Esta técnica gera cenários
s
ta
Dê seu voto sobre este artigo, através do link: edição
presumíveis, sem que exista a necessidade de executar o
www.devmedia.com.br/esmag/feedback
projeto. Como barreira, demanda tempo, pois precisa ser
Referências
[Aggarwal et al. 2005] Aggarwal, K. K., Singh, Y., Chandra, P. e Puri, M. (2005) “Sensitivity analysis of [Hullet 2004] Hulett, David (2004) “Quantitative Risk Analysis Fundamentals”, Defense Acquisition
fuzzy and neural network models”, SIGSOFT Softw. Eng. Notes, ACM, 30, 1-4. University, Disponível em: https://acc.dau.mil/CommunityBrowser.aspx?id=19270, Acesso em: 25
abr. 2009.
[Almeida e Ferreira 2008] Almeida, E. P. e Ferreira, M. L. R. (2008) “Técnicas de Análise de Risco
Aplicadas à Planejamento e Programação de Projetos da Construção Civil”, IV Congresso Nacional [Lima et al. 2008] Lima, E. C. P., Viana, J. C., Levino, N. A. e Mota, C. M. M. (2008) “Simulação de
de Excelência em Gestão: Responsabilidade Socioambiental das Organizações Brasileiras, Niterói, Monte Carlo Auxiliando a Análise de Viabilidade Econômica de Projetos”, IV Congresso Nacional de
RJ, Brasil, 31 de julho, 01 e 02 de Agosto. Excelência em Gestão: Responsabilidade Socioambiental das Organizações Brasileiras, Niterói, RJ,
Brasil, 31 de julho, 01 e 02 de Agosto.
[Baker et al. 1998] Baker, S., Ponniah, D. e Smith, S. (1998) “Techniques for analysis of risks in major
projects”, Journal of the Operations Research Society, 49, pp567-572. [Loosermore et al. 2006] Loosemore, Martin, Raftery, John, Reilly, Charlie e Higgon, Dave (2006)
“Risk Management in Projects”, 2nd Edition, Taylor & Francis, New York, USA.
[Clarke e Bittencourt 2003] Clarke, Robin T. e Bittencourt, Hélio R. (2003) “Uso de Árvores de Decisão na
Classificação de Imagens Digitais”,XI SBSR, Belo Horizonte, Brasil, 05-10 de Abril, INPE, p. 2043 - 2045. [Matias Júnior 2006] Matias Júnior, R. (2006) “Análise Quantitativa de Risco Baseada no Método
de Monte Carlo: Abordagem PMBOK”, Congresso Brasileiro de Gerenciamento de Projetos, 29 a 31
[Conrow 1998] Conrow, Edmund H.(1998)“Some Limitations of Quantitative Risk Analysis Approaches
de Março, Florianópolis.
Used in Project Management”,Invited paper by the Office of the Secretary of Defense, April.
[Nóbrega 2007] Nóbrega, Newton C. M. (2007) “Um Estudo Teórico da Avaliação de Riscos em
[D’Castro 2009] D’Castro, Raphael J. (2009) “Avaliação de Riscos em Projetos de Software a partir do
Projetos de Investimento em Organizações”, Monografia para a graduação em Engenharia de
Uso de Técnicas de Inteligência Computacional”,Trabalho de Conclusão de Curso, Departamento de
Produção, Universidade Federal de Juiz de Fora, Novembro.
Sistemas e Computação, Engenharia da Computação, Universidade de Pernambuco, Junho.
[Padayachee 2001] Padayachee, Keshnee (2001) “Techniques Used in Risk Analysis of Software
[Do e Rothermel 2008] Do, H. e Rothermel, G. (2008) “Using sensitivity analysis to create simplified
Development”, University of South Africa.
economic models for regression testing”, ISSTA ‘08: Proceedings of the 2008 international
symposium on Software testing and analysis, ACM, 2008, 51-62. [Pedro e Guerreiro 2004] Pedro, Lucilene M. e Guerreiro, Reinaldo (2004)“Aplicação de Árvores de Decisão
na Análise Financeira”,In: 4º Congresso USP de Controladoria e Contabilidade, São Paulo, v.1, p.0-0.
[Galvão 2005] Galvão, Márcio (2005) “Análise Quantitativa de Riscos com Simulação de Monte
Carlo”, Revista Mundo PM, Project Management, Número 05, Out./Nov., Ano 1. [PMI 2004] PMI, Project Management Institute. (2004) “A Guide to the Project Management Body
of Knowledge”, ANSI/PMI 99-01-2004, Four Campus Boulevard, Newtown Square, USA.
[Gama 2002] Gama, João (2002) “Árvores de Decisão”, Laboratory of Artificial Intelligence and
Decision Support, University of Porto, Portugal, Disponível em: http://www.liaad.up.pt/~jgama/ [Ragsdale 2001] Ragsdale, Cliff T. (2001) “Spreadsheet modeling and decision analysis: a practical
Aulas_ECD/arv.pdf, Acesso em: 9 ago. 2009. introduction to management science”, 3rd, Cincinnati, Ohio, South-Western College Pub.
[Grass 2007] Grass, John (2007)“Valor Monetário Esperado (VME)”,The ICPM – Project Management [Silva e Belderrain 2004] Silva, Roterdan M. e Belderrain, Mischel C. N. (2004) “Considerações sobre
Community, Disponível em: http://www.theicpm.com/index.php?option=com_content&view=art Análise de Sensibilidade em Análise de Decisão”, Instituto Tecnológico de Aeronáutica, Divisão de
icle&id=2772:valor-monetario-esperado-vme&catid=82, Acesso em: 08 ago. 2009. Engenharia Mecânica-Aeronáutica, Relatório de Iniciação Científica, 44p, CNPq.
[Gujarati 2002] Gujarati, D. N. (2002) “Econometria básica”, 3ª edição, Makron Books, São Paulo. [Smith 1973] Smith, Kerry (1973) “Monte Carlo Methods,Their Role for Econometrics”,Lexinton Books.
[Harman et al. 2009] Harman, M., Krinke, J., Ren, J. e Yoo, S. (2009) “Search based data sensitivity [Vose 2002] Vose, David (2002) “Risk Analysis: a quantitative guide”, 2nd Edition, UK, John Wiley
analysis applied to requirement engineering”, GECCO ‘09: Proceedings of the 11th Annual & Sons, 418 p.
conference on Genetic and evolutionary computation, ACM, 1681-1688.
[Hillson 2005] Hillson, David (2005)“Using Decision Trees”,Risk Doctor Briefing,The Risk Doctor, Disponível
em: http://www.risk-doctor.com/pdf-briefings/risk-doctor18e.pdf, Acesso em: 10 abr. 2009.
N
os artigos anteriores escri funcional, onde o sistema é tratado em
tos para a ES Magazine, nos uma visão macroscópica e sua avaliação
Arilo Cláudio Dias Neto preocupamos em discutir os é feita sem considerar detalhes internos
ariloclaudio@gmail.com conceitos básicos sobre Teste de Sof de implementação.
É Doutor em Engenharia de Sistemas e Com- tware e apresentar uma estratégia que No entanto, apesar de ser totalmente
putação formado na COPPE/UFRJ e possui possibilita a geração de casos de teste viável, a aplicação desta estratégia de
o certificado de Implementador do modelo de software a partir de casos de uso já teste quando realizada manualmente
MPS. Possui 7 anos de experiência em análise,
desenvolvimento e teste de software. É editor
especificados. Tal estratégia seria apli representa um grande esforço para um
técnico da Revista SQL Magazine, gerenciada cada no nível de teste de software, re projeto de software. Com isso, pensar em
pelo Grupo DevMedia. presentando um tipo de técnica de teste mecanismos para automação dos testes
Uma variação deste tipo de ferramenta seriam as ferra 5. Possibilita configurar depuração e pontos de paradas para
mentas para teste de aplicações web. Neste caso, a inter verificação durante os testes;
face são as páginas web. Este tipo de ferramenta também 6. Permite salvar os testes como HTML, scripts em Ruby ou
requer pouco ou nenhum desenvolvimento de software. outro formato.
No entanto, o framework para testes pode utilizar diferen
tes técnicas pois ele está lendo HTML em vez de eventos A partir da próxima seção passaremos a usar Selenium em
de janela de aplicações. um estudo de caso real.
Por fim, outra variação de automação de testes sem
scripts que não usa a ideia de capture-replay, em vez Estudo de Caso: Americanas.com
disso constrói um modelo da aplicação a ser testada e Neste artigo, realizaremos um teste para uma das opções
então permite ao testador criar casos de teste simples disponíveis no site amerianas.com, o cadastro de um novo cliente
mente editando os parâmetros e condições de teste. Esta realizado no endereço https://carrinho.americanas.com.br/portal/
abordagem pode ser aplicada a qualquer software baseado meuCadastro.portal.
em interfaces. O cadastro de um novo cliente deve seguir alguns passos:
As ferramentas de automação de teste mais conhecidas 1. Indicação de que ainda não é um cliente (Figura 2). Neste
podem ser caras, apesar de já existirem diversas ferramen momento, podemos seguir pelas opções “Já sou cliente – login
tas gratuitas e com um bom conjunto de funcionalidades e senha”, “Já sou cliente – esqueci minha senha”, “Já sou cliente
de apoio à automação dos testes. Por isso, é importante – meu e-mail mudou”, “Não sou cliente – informe CEP”, “Não
realizar uma análise de custo-benefício no momento de sou cliente – não sei meu CEP” e “Não sou cliente – estou fora
escolher as ferramentas a serem aplicadas em um projeto. do Brasil”. No nosso estudo de caso, consideraremos apenas a
A Tabela 1 apresenta uma lista com algumas das ferra opção “Não sou cliente – informe CEP”;
mentas de automação mais utilizadas.
Neste artigo, utilizaremos a ferramenta Selenium IDE
para automação de teste funcional usando uma estratégia
de teste do tipo capture-replay, porém contextualizada ao
domínio de aplicações web.
acordo com o procedimento de teste 01 (dados inválidos), é obter exatamente os resultados obtidos na primeira
conforme visualizado na Figura 6. Observe que ao final execução.
do roteiro de testes foram adicionados comandos para
verificar se cada campo que recebeu um valor inválido Utilizando Selenium para Reprodução dos
reportou este problema durante a execução dos testes. Testes
Depois, devemos repetir o processo (limpar os dados em A reprodução dos testes é bastante simples. Para cada
Selenium e iniciar nova gravação) com os dados do proce passo, basta abrir o arquivo com o roteiro de teste que
dimento de teste 02 (dados válidos), conforme a Figura 7. foi salvo durante a gravação, e então clicar no ícone com
Observe que ao final do roteiro de testes foi adicionado um uma seta verde e três barras verdes à sua direita. Neste
comando para verificar se a tela resultante após esse proce momento, a ferramenta Selenium irá reproduzir todos os
dimento foi a tela de cadastro com sucesso (Figura 4). Isso passos feitos no momento da gravação dos testes. Caso
foi feito analisando se existia o texto “Olá, Arilo Claudio”, cada comando seja executado com sucesso, a linha é
que deveria ser exibido após o cadastro do usuário que optou pintada na cor verde. Caso uma falha tenha ocorrido, a
por ser chamado de “Arilo Claudio”. linha é pintada com a cor vermelha, indicando que houve
problemas que precisam ser analisados.
A Figura 8 exibe uma falha ocorrida no primeiro co
mando ao tentar reproduzir o procedimento de teste 02
do PASSO 2 (sua linha está em vermelho).
Dê seu feedback sobre esta edição! Feedback CRAIG, R.D., JASKIEL, S. P.,“Systematic Software Testing”,Artech House Publishers, Boston, 2002.
eu
s
Dê
A Engenharia de Software Magazine tem que ser feita ao seu gosto. PRESSMAN, R. S., “Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York,
sobre e
Para isso, precisamos saber o que você, leitor, acha da revista! NY, 2005.
s
ta
edição
Dê seu voto sobre este artigo, através do link:
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”,
www.devmedia.com.br/esmag/feedback Prentice Hall, São Paulo, 2001.
J
jetos em engenharia de software pelo centro de
Ensino Superior de Juiz de Fora - CES, Bacharel em
testes funcionais automatizados.
Sistemas de informação pela Faculdade Metodis- á é bastante aceita pela comunidade
ta Granbery de Juiz de Fora e Analista de Sistemas de desenvolvedores o uso de tes Para que serve?
da Uptodate Consulting. tes para auxiliar na qualidade dos O modelo proposto automatiza a execução de testes
Victor Vidigal Ribeiro softwares desenvolvidos. Dentre os tipos funcionais criados através da ferramenta Selenium
victorvidigal@gmail.com de testes utilizados existe o teste funcional, IDE, o que proporciona menor dependência de recur-
É mestrando em Engenharia de Sistemas e Com- que verifica se o sistema está cumprindo sos humanos nessa tarefa e auxilia a gerenciamento
putação pela COPPE/UFRJ e pós-graduando do com seus requisitos utilizando a perspec da execução dos testes.
Curso de Gerência de projetos em engenharia de
tiva do usuário. Na prática, rodar testes
software pelo Centro de Ensino Superior de Juiz
de Fora - CES. funcionais significa executar o sistema e Em que situação o tema é útil?
verificar seu comportamento através dos Em ambientes onde é preciso testar constan-
Marco Antônio Pereira Araújo retornos fornecidos por este sistema. temente os artefatos gerados, e em projetos
maraujo@devmedia.com.br
Para que não haja a necessidade de exe- onde os testes são complexos e demandam
É Doutor e Mestre em Engenharia de Sistemas e
Computação pela COPPE/UFRJ, Especialista em cutar esses testes manualmente existem muitos recursos humanos.
Métodos Estatísticos Computacionais e Bacharel ferramentas que, depois de programa
em Matemática com Habilitação em Informática das, executam o sistema automaticamen
pela UFJF, Professor e Coordenador do Curso de Ba- te e verificam seus retornos. Uma dessas Este artigo propõe a construção de um
charelado em Sistemas de Informação do Centro de
ferramentas é a Selenium IDE, utilizada ambiente de integração contínua onde
Ensino Superior de Juiz de Fora, Professor do Curso
de Bacharelado em Sistemas de Informação da Fa- neste artigo. testes funcionais são executados periodi
culdade Metodista Granbery, Professor e Diretor do Uma técnica que pode ser utilizada em camente sobre um sistema, disponível em
Curso Superior de Tecnologia em Análise e Desen- conjunto com os testes funcionais é a um repositório Subversion (SVN) neste
volvimento de Sistemas da Fundação Educacional técnica de integração contínua. Com esta caso. O artigo mostra o funcionamento de
D. André Arcoverde, Professor do Curso de Bacha-
técnica é possível uma maior confiabili uma pequena aplicação que calcula se um
relado em Ciência da Computação da Faculdade
Governador Ozanam Coelho, Analista de Sistemas dade no sistema que está no repositório, aluno foi ou não aprovado, que é utilizada
da Prefeitura de Juiz de Fora, Editor da Engenharia pois possibilita que os testes definidos como exemplo. Depois disso, explica como
de Software Magazine. sejam executados periodicamente. gerar testes funcionais com a ferramenta
Campo Valor
Nome João
Frequência 75
Nota 1 70
Nota 2 70
Nota Final 0
Tabela 2. Aprovação por nota
Campo Valor
Nome João
Frequência 75
Nota 1 29
Nota 2 30
Nota Final 0
Tabela 3. Reprovação por nota
Campo Valor
Nome João
Figura 4. Janela do Selenium IDE Frequência 75
Nota 1 30
Após o preenchimento dos campos, clique no botão Calcular
Nota 2 30
Aprovação. O sistema retornará a mensagem dizendo que o
aluno foi reprovado. Nota Final 69
Neste momento, é preciso informar ao Selenium IDE o que Tabela 4. Reprovação por nota final
era esperado caso o valor 74 fosse digitado para a frequência
e todas as notas fossem preenchidas com zero. Neste caso, ob Campo Valor
servando as regras descritas no início do artigo, o aluno seria Nome João
reprovado por infrequência. Logo, espera-se que o sistema emi Frequência 75
ta uma mensagem informando que o aluno foi reprovado.
Nota 1 30
Para passar esta informação ao Selenium IDE, selecione o
Nota 2 30
texto da mensagem, clique com o botão direito do mouse e
escolha a opção verifyTextPresent, como mostra a Figura 5. Nota Final 70
Em seguida, deve-se terminar a gravação do teste, clicando no Tabela 5. Aprovação por nota final
botão do canto superior direito da ferramenta. Por fim, deve-se
gravar o caso de teste, a partir do menu Arquivo. Depois de criar os casos de testes necessários eles devem
ser exportados como um arquivo de teste do framework JUnit
para que possam ser executados com o Hudson e o Selenium
RC. Essas duas ferramentas são necessárias para a execução
automática dos testes funcionais e serão vistas posteriormente
neste artigo.
Para exportar os testes gravados, acesse a opção Arquivo /
Exportar Teste Como / Java (JUnit) Selenium RC, informe um
nome para o arquivo precedido pela extensão .java e clique
sobre o botão Salvar. Com isto, será gerado um arquivo de teste
do JUnit baseado no teste que acabou de ser gravado. É preciso
exportar cada caso de teste gravado com o Selenium IDE.
Depois de exportar cada arquivo, é preciso editá-los e
alterar a URL que indica a página inicial do teste. Para
Figura 5. Gravando resultado do caso de teste isso, altere o primeiro parâmetro do método SetUp, de
parâmetro Goal o valor test, indicando que os testes do projeto endereço http://localhost:8080/hudson. A Figura 9 mostra a
devem ser rodados. tela inicial do servidor de integração Hudson.
Figura 7. Prompt Selenium RC O próximo passo será configurar o Hudson. Para isso, de
vemos acessar no menu lateral a opção Gerenciar Hudson e
Instalação e configuração do servidor de integração depois Configure System.
hudson Entre as principais configurações do Hudson, deve ser
Para garantir mais produtividade e melhor controle sobre a habilitada a instalação do Maven através da sua opção
execução dos testes, vamos utilizar o Servidor de Integração Install automatically. Marcando essa opção, o Hudson
Hudson, que permite a execução dos testes funcionais de for se encarregará de baixar as bibliotecas necessárias para
ma automatizada e contínua. O Hudson será responsável por construção de projetos do tipo Maven2. É preciso também
baixar o projeto de testes direto do repositório SVN e executar incluir a instalação do JDK desmarcando sua opção Install
os testes no Selenium RC através das configurações feitas com automatically e informando o caminho onde o JDK foi ins
o Maven2, e conforme agendado no aplicativo. talado no campo JAVA_HOME. A Figura 10 ilustra como é
O Hudson é um projeto web desenvolvido em Java e dispo feita essa configuração.
nibilizado para download através do link https://hudson.dev.
java.net/ e pode ser executado através de um servidor web.
Neste exemplo, será utilizado o Apache Tomcat, disponível
para download em http://tomcat.apache.org/.
s
Dê
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e
Para isso, precisamos saber o que você, leitor, acha da revista!
s
ta
edição
Figura 11. Tela principal da tarefa Dê seu voto sobre este artigo, através do link:
www.devmedia.com.br/esmag/feedback
O Hudson exibe em Histórico de construções o status das
Links
construções já realizadas e também aquelas que estão em
execução. Clicando sobre uma construção e acessando a op Hudson
http://hudson-ci.org/
ção Console Output é possível visualizar o log de execução
da construção, como mostra a Figura 12. Maven
Depois de fazer essas configurações, o Hudson irá baixar http://maven.apache.org/
o sistema periodicamente do repositório e irá executar os
Tomcat
testes funcionais criados no Selenium IDE. Com isso, pode- http://tomcat.apache.org/
se economizar bastante esforço da equipe de testes que não
precisará executar todos os testes do sistema a cada alteração SeleniumRC
http://seleniumhq.org/projects/remote-control/
realizada pelos programadores. Além disso, o sistema que
está no repositório pode ser considerado mais confiável, Subversion
pois ele está sempre sendo testado. http://subversion.tigris.org/
www.devmedia.com.br/renovacao
Para mais informações:
www.devmedia.com.br/central