Você está na página 1de 68

ISSN 1983127-7

9 771983 127008 00007


Profissional de TI
Conheça o IBM Rational Team Concert,
a ferramenta que permite a criação de aplicações de
negócio de forma rápida e eficaz, acelerando o seu
ciclo de desenvolvimento.

Disponível em 3 versões, o IBM Rational Team


Concert é gratuíto para até 3 usuários
(versão Community Edition).

Para mais informações, entre em


contato conosco e solicite um
DVD com conteúdo exclusivo!
_______

Endereço:
R. Marquês de São Vicente, 225
Instituto Gênesis, Sala 27B
PUC-Rio, Gávea

Tel: (21) 2512-6005

atendimento@primeup.com.br
ww
www.primeup.com.br
EDITORIAL
“No inicio da produção de software (1960) não havia se pensado em estru-
turas formais de desenvolvimento de software. Existia no mercado a necessi-
dade de softwares cada vez maiores e com essas necessidades aumentadas,
começaram a se tornar mais constantes os problemas e prejuízos com os
atrasos e cancelamentos nos projetos de software. A solução foi a criação da
Ano 1 - 7ª Edição 2008 impresso no Brasil
Engenharia de Software que tinha como principais objetivos definir proces-
sos, métodos e ferramentas para a produção de software com a qualidade es-
perada pela indústria. Com o aumento da qualidade foi introduzido um aper-
Corpo Editorial
feiçoamento contínuo de métodos, técnicas e artefatos (PRESSMAN, 2006).
Colaboradores Nos dias atuais, com a necessidade de se alcançar maior competitividade
Rodrigo Oliveira Spínola e qualidade na construção de software as empresas nacionais sentem-se na
rodrigo@sqlmagazine.com.br obrigação de modificar suas estruturas organizacionais e processos produtivos
Marco Antônio Pereira Araújo para que se adaptem ao tamanho e características dos projetos sem perder
Eduardo Oliveira Spínola os padrões de qualidade exigidos tanto nacional, como internacionalmente.
Com todas essas necessidades foi criado o MPS.BR , um modelo de maturidade
Editor de Arte
nacional com padrões de qualidade internacionais no qual as empresas se cer-
Vinicius O. Andrade - viniciusoandrade@gmail.com
tificam em diferentes níveis de acordo com seu grau de maturidade.
diagramação Hoje no Brasil, mais de 100 empresas possuem certificação MPS e estas certi-
Romulo Araujo - romulo@devmedia.com.br ficações, mesmo para os níveis menos complexos, são extremamente difíceis.”
Capa
Neste contexto, a Engenharia de Software Magazine destaca nesta edição
Antonio Xavier - antonioxavier@devmedia.com.br uma matéria muito interessante que identifica as práticas mais utilizadas
por implementadores MPS para evidenciar as exigências do modelo de
na Web
maturidade brasileiro, visando auxiliar, orientar e minimizar as dificuldades
www.devmedia.com.br/esmag
Apoio enfrentadas na sua implementação. Desta forma torna-se possível promo-
ver um melhor entendimento por parte das empresas e dos implementa-
dores sobre como evidenciar os resultados exigidos para a certificação do
nível G do modelo MPS.
Além desta matéria, esta sétima edição traz mais sete artigos: Metodo-
logias Ágeis para Desenvolvimento de Software; Ideal Day e Priorização:
PARCEIROS: Métodos Ágeis no Planejamento; Ferramentas de Integração Contínua
tornando o Trabalho de Equipes mais Organizado; Avaliação Heurística de
Web Sites; Teste de Desempenho de Aplicações Web com Apache Jmeter;
Introdução à Gestão de Conhecimento – Parte 2; Apoiando a Implementa-
ção do Modelo de Maturidade MPS Nível G.

Desejamos uma ótima leitura!


Equipe Editorial Engenharia de Software Magazine
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendimento ao leitor.
Se você tiver algum problema no recebimento do seu exemplar ou precisar de
Rodrigo Oliveira Spínola
rodrigo@sqlmagazine.com.br
algum esclarecimento sobre assinaturas, exemplares anteriores, endereço de
Doutorando em Engenharia de Sistemas e Computação (COPPE/UFRJ). Mestre em
bancas de jornal, entre outros, entre em contato com:
Engenharia de Software (COPPE/UFRJ, 2004). Bacharel em Ciências da Computação
Carmelita Mulin – Atendimento ao Leitor
www.devmedia.com.br/central/default.asp (UNIFACS, 2001). Colaborador da Kali Software (www.kalisoftware.com), tendo mi-
(21) 2220-5375 nistrado cursos na área de Qualidade de Produtos e Processos de Software, Requisitos
Kaline dolabella
e Desenvolvimento Orientado a Objetos. Consultor para implementação do MPS.BR.
Gerente de Marketing e Atendimento
kalined@terra.com.br Atua como Gerente de Projeto e Analista de Requisitos em projetos de consultoria na
(21) 2220-5375 COPPE/UFRJ. É Colaborador da Engenharia de Software Magazine.
Publicidade Marco Antônio Pereira Araújo
Para informações sobre veiculação de anúncio na revista ou no site entre em (maraujo@devmedia.com.br)
contato com: É Doutorando e Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ
Kaline dolabella
publicidade@devmedia.com.br
– Linha de Pesquisa em Engenharia de Software, Especialista em Métodos Estatísti-
cos Computacionais e Bacharel em Matemática com Habilitação em Informática pela
Fale com o Editor! UFJF, Professor dos Cursos de Bacharelado em Sistemas de Informação do Centro de
É muito importante para a equipe saber o que você está achando da revista: que tipo de artigo Ensino Superior de Juiz de Fora e da Faculdade Metodista Granbery, Analista de Siste-
você gostaria de ler, que artigo você mais gostou e qual artigo você menos gostou. Fique a mas da Prefeitura de Juiz de Fora. É editor da Engenharia de Software Magazine.
vontade para entrar em contato com os editores e dar a sua sugestão!
Se você estiver interessado em publicar um artigo na revista ou no site SQL Magazine, Eduardo Oliveira Spínola
entre em contato com os editores, informando o título e mini-resumo do tema que você (eduspinola@gmail.com)
gostaria de publicar: É Editor das revistas Engenharia de Software Magazine, SQL Magazine, WebMobile.
Rodrigo Oliveira Spínola - Colaborador É bacharel em Ciências da Computação pela Universidade Salvador (UNIFACS) onde
editor@sqlmagazine.com.br atualmente cursa o mestrado em Sistemas e Computação na linha de Engenharia de
Software, sendo membro do GESA (Grupo de Engenharia de Software e Aplicações).
Tipo: Verificação, Validação e Teste

Caro Leitor Título: Teste de Web Services


Autor: Marco Antônio Pereira Araújo
Mini-Resumo: Esta vídeo aula apresenta a implementação de Testes de Web Services
utilizando a ferramenta SoapUI. Através da aplicação de testes unitários em Web Services,
é possível proporcionar maior qualidade neste tipo de tecnologia, cada vez mais utilizada.

Tipo: Verificação, Validação e Teste


Título: Teste de Desempenho
Autor: Marco Antônio Pereira Araújo
Mini-Resumo: Esta vídeo aula apresenta a implementação de Testes de Desempenho
utilizando a ferramenta Apache JMeter, proporcionando verificar se o desempenho de
aplicações Web está de acordo com o esperado pelos usuários e desenvolvedores.

Tipo: Verificação, Validação e Teste


Título: Teste de Mutação
Autor: Marco Antônio Pereira Araújo
Mini-Resumo: Esta vídeo aula apresenta a implementação de Testes de Mutação
utilizando a ferramenta MuClipse. Testes de mutação são considerados uma técnica
que permite melhorar a qualidade dos casos de testes de uma aplicação.
Para esta quinta edição, te- Tipo: Projeto
mos um conjunto de 5 ví- Título: Introdução à Construção de Diagrama de Classes da UML – Parte 6
deo aulas. Estas vídeo aulas Autor: Rodrigo Oliveira Spínola
Mini-Resumo: Esta vídeo aula apresenta o uso da heurística de apoio à elaboração de
estão disponíveis para do-
diagramas de classes na prática através de um estudo de caso para um sistema de locadora
wnload no Portal da Enge- de veículos.
nharia de Software Magazi-
Tipo: Projeto
ne e certamente trarão uma Título: Introdução à Construção de Diagrama de Classes da UML – Parte 7
significativa contribuição Autor: Rodrigo Oliveira Spínola
para seu aprendizado. A lis- Mini-Resumo: Esta vídeo aula complementa a parte 6 do curso introdutório à
construção de diagrama de classes da UML. Para isto, é apresentada a segunda
ta de aulas publicadas pode
parte do uso da heurística de apoio à elaboração de diagramas de classes através
ser vista ao lado: de um estudo de caso para um sistema de locadora de veículos.

ÍNDICE
08 - Ideal Day e Priorização
Fernanda Alves, Márcia Alves e Isabella Fonseca

14 - Metodologias Ágeis para Desenvolvimento de Software


Michel dos Santos Soares

20 - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado


Andrew Diniz da Costa, Co-autores: Carlos J. P. de Lucena e Arndt Von Staa

28 - Avaliação Heurística de Web Sites


Antonio Mendes da Silva Filho

36 - Teste de Desempenho de Aplicações Web com Apache JMeter


Marco Antônio Pereira Araújo, Vinícius Rodrigues de Souza e Ricardo Cunha Vale

44 - Introdução à Gestão de Conhecimento - Parte 2


Rodrigo Oliveira Spínola

50 - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


Augusto César Brauns Munhão, Adriano Cláudio Costa Campos, Marcos Kalinowski e Rodrigo Oliveira Spínola

4 Engenharia de Software Magazine


6 SQL Magazine
Edição 05 - Engenharia de Software Magazine 7
Ideal Day e Priorização
Métodos Ágeis no Planejamento

De que o artigo se trata? Para que serve?


Neste artigo, trataremos sobre o método de esti- Para realizar estimativas de forma Ágil.
mativa Ideal Day (ID) e uma forma de priorização
de trabalho dos requisitos relativos a um projeto Quais situações utilizam esses recursos?
(Release), baseando-nos em estudos e aplicação Ao planejar um projeto (release) e seus ciclos
na área de Pesquisa e Desenvolvimento da Po- (sprints). No mundo ágil, estamos continua-
werlogic Consultoria e Sistemas. As estimativas de mente planejando e não somente em marcos
tamanho de cada funcionalidade/requisito serão pré-definidos, como início de um projeto,
apresentadas utilizando o método acima, criando por exemplo. Por isso, este tema se torna um
Fernanda Alves indicadores para seu gerenciamento e acom- importante aliado para o gerenciamento e
fernanda.alves @powerlogic.com.br
Consultora em gerenciamento de projetos (APM panhamento e ainda servindo para realimentar acompanhamento mais assertivo de projetos
e EPM) e processos.Atua em levantamento, análi- ciclos (Sprints) futuros com dados estatísticos. em geral.
se, desenho e descrição de processos corporativos
para modelos de melhoria de processos utilizan-
do metodologias diversas. Integrante da equipe
de SEPG (Software Engineering Process Group)
da Powerlogic Consultoria e Sistemas. Isabella Fonseca O que é Ideal Day?
isabella@powerlogic.com.br Imagine uma parede de 1mx1m. Inde-
Atua desde 1999 como consultora em e-Business pendente de quem a concebeu, ela conti-
Márcia Alves para grandes empresas utilizando Java EE. É Cer- nuará tendo o mesmo tamanho. Por outro
marcia.alves@powerlogic.com.br tified ScrumMaster e gerente da equipe de de- lado, seu tempo de entrega, variará de
Graduanda em Administração de empresas senvolvimento e de projetos do eCompany Portal
acordo com o executor designado para tal.
com habilitação em Marketing, pelo Unicentro - primeira solução de EIP (Enterprise Information
Newton Paiva, é consultora em Gerenciamento Portal) do país,e do eCompany Process - solução de Ideal Day funciona da mesma maneira.
de Processos. Atualmente é Gerente de Projetos definição e controle de Processos Corporativos inte- Um Ideal Day corresponde à quantidade
para implantação de melhorias - para alcance grada ao Gerenciamento de Projetos (EPM e APM), de trabalho que um profissional de nível
do nível de maturidade C pelo modelo MPS.BR de Requisitos e de Produtos (Aplication Lifecycle sênior, com fluência nas tecnologias e
(Melhoria de Processos do Software Brasileiro) Management). Ambos são gerenciados com
ferramentas envolvidas (Ideal Developer)
utilizando metodologia SCRUM. Integrante da SCRUM e certificados MPS.Br nível F. Integrante
equipe de SEPG (Software Engineering Process da equipe de SEPG (Software Engineering Process consegue realizar em 08 (oito) horas de
Group) da Powerlogic Consultoria e Sistemas. Group) da Powerlogic Consultoria e Sistemas. trabalho dedicadas (sem interrupções).

8 Engenharia de Software Magazine - Ideal Day e Priorização


M Etod oLoGiAS ÁGEiS

Figura 1. Ciclo de vida.

É importante que se compreenda que (Prog ra m Evaluat ion a nd Review deve aprender como interagir melhor
o “Dia Ideal”, com 08 (oito) horas de Technique); para a busca de entrega de maior retorno
trabalho sem interrupções, de um “de- • Utilização de balanceamento como de valor para o cliente. Se for necessário
senvolvedor ideal”, raramente irá ocorrer a técnica Cocomo (COnstructive COst utilizar de técnicas como pair-program-
na prática, e portanto deve ser utilizado Model). ming para agilizar o desenvolvimento e
unicamente como “moeda” estável para Irão contribuir para que um “Ideal validação de um requisito, o time deve
quantificação de tamanho de referência Day” não aconteça, na prática, em um escolher este caminho. Também se pode
e balizador ideal de produtividade. dia típico: utilizar peer-review para verificações e
É uma estimativa empírica, executad • Natureza humana do desenvolvedor validações, assumir outro papel (trocar
por especialistas (“Expert Judment”) (comer, beber, alongar, socializar, sono, de “chapéu” dentro da equipe) para con-
para desenvolvimento com base em “ex- mal-estar eventual, etc); vergir para o objetivo definido.
ploração adaptativa”. Segundo estudos • Deficiências técnicas do desenvolve-
mais recentes da escola ágil, a estimativa dor (desconhecimentos do assunto ou Ideal Day e SCRUM
empírica é uma maneira sensata de se tecnologia específicos); O SCRUM é um framework de processo
prever o tamanho de requisitos em uma • Interrupções da empresa (reuniões ágil utilizado para gerenciar e controlar o
dinâmica de “requisitos evolucionários”, administrativas, conversa com o ‘chefe’, desenvolvimento de um produto de sof-
com práticas de “exploração e adaptação”, ligações de clientes); tware através de práticas iterativas e incre-
especialmente se acompanhada por: • Interrupções pessoais. mentais. É composto por um conjunto de
• Realimentação iterativa da “velo- • etc... boas práticas de gestão que admite ajustes
cidade”, a partir de dados históricos, rápidos, acompanhamento e visibilidade
preferencialmente coletados durante o Dessa forma, a equipe deve ter sua ve- constantes e planos realísticos. Por ter
mesmo projeto para a mesma equipe; locidade medida pelo tempo gasto para ciclos (Sprints) curtos, sua natureza leva à
• Previsão sobre uma mesma “ordem se implementar um Ideal Day. Quanto utilização de requisitos de granularidade
de grandeza”, neste caso que não ultra- menos tempo, maior a velocidade, e pequena, aplicando o conceito de pilha
passe o espaço de algumas horas para maior a produtividade da mesma. Na – não há alocação prévia de recurso - des-
alguns poucos dias; realidade, não é importante conhecer a considerando a velocidade individual e,
• Realização de consenso entre es- velocidade individual e sim a média da portanto, favorecendo o uso de métodos
pecialistas, com técnicas de comunica- equipe. Para se manter uma unidade, não de estimativa, como Ideal Day.
ção e convergência como a do Pocker é interessante expor se um integrante exe- Seus artefatos principais são o Product
Planning; cuta suas atividades em mais ou menos Backlog e Sprint Backlog – artefatos que
• Utilização da técnica de PERT tempo. É uma dinâmica do grupo! Ele representam seus requisitos/atividades

Edição 07 - Engenharia de Software Magazine 9


além de Burndown charts e impediment julgamento do item do “Selected Backlog Aliado a isso, técnicas como PERT
backlogs. Para representar o ciclo de vida acima da Ordem de Grandeza”, ou seja, abordam uma terceira medida, mais
de um requisito, usa-se derivações do caso um membro do time acredite que provável, que garantem estatisticamente
Product Backlog, como Release Backlog e o item do Selected Backlog em votação maior assertividade nas estimativas exe-
Selected Backlog. A Figura 1 exemplifica possua um valor maior do que aqueles cutadas. Portanto, consideramos como
o ciclo mencionado. apresentados nas cartas. melhor prática o alinhamento entre Ideal
O método de estimativa utilizado para 2. O Selected Backlog deve ser lido e Day e PERT. Ainda, é aconselhável utili-
o Selected Backlog reúne técnicas moder- discutido por todos, e em seguida, sem zar matrizes de rastreabilidade de requi-
nas voltadas à estimativa de requisitos em comentarem seus votos, todos devem sitos para que se tenha uma dimensão do
projetos cujo índice de imprevisibilidade apresentar as cartas com a previsão que impacto (número e artefatos afetados) do
é notadamente alto, seja por envolverem julgam de maior aproximação Selected Backlog a cada estimativa ou
tecnologias de ponta, inovações que 3. Caso não haja uma convergência alteração no requisito.
requerem desenvolvimento “iterativo”, óbvia (média aproximada entre todos),
baseado em “exploração e adaptação”, ou caso alguém apresente o “?”, deve-se Etapas de priorização da pilha
ou mesmo ineditismo do que se está por rediscutir o requisito, principalmente de Product Backlog utilizando
produzir - ou seja, previsão para ‘criação ouvindo-se os argumentos daqueles que Business Value
de novo produto’, e não para ‘manufatura votaram com maior desvio. Business Value (BV) ou Valor de Ne-
de mais do mesmo produto’. Em função da discussão, pode-se: gócio reflete a importância estratégica
3.1 Melhorar a especificação do item do de uma funcionalidade do produto
Realimentação iterativa da Selected Backlog. para o mercado. O responsável pelo
“velocidade” 3.2. Decompor o item do Selected Ba- produto deve manter a lista de Product
A velocidade deve ser reajustada, a cklog, mantendo a rastreabilidade. Backlog constantemente atualizada e
cada final de Sprint, para um ajuste 3.3. Simplesmente prestar-se mais es- avaliada com seu business value atri-
apropriado que maximize a previsibi- clarecimentos aos votantes buído, podendo ser revisado a qualquer
lidade. Quanto maior o tamanho de um momento. Esta prática faz parte da
requisito a ser estimado, mais aumen- Por fim, deve-se proceder com uma primeira etapa de priorização, que per-
tam as possibilidades de desvios, tanto nova votação, e retornar ao passo 3, mite ao responsável classificar os itens
relativas (maior percentual de erro), até que todos entrem em um consenso de maior valor para o mercado e obter
quanto absolutas (maior tamanho do sobre o valor. maior retorno para o negócio sobre o
erro, para um mesmo percentual). A previsão deve ser realizada em esca- investimento. Ao iniciar uma Release,
Por isso, em um processo empírico las discretas, entre 1/8, 1/4, 1/2 e 1 Ideal será possível identificar e selecionar
gerenciado deve-se “decompor” itens Day. Não há necessidade de se expressar os possíveis itens do Product Backlog
do Selected Backlog que ultrapas- refinamentos nesta escala, pois a margem que farão parte do escopo a ser desen-
sem 01 Ideal Day em itens do Sprint de erro é considerada maior que um pos- volvido. É interessante estipular um
Backlog, rastreáveis entre si, mas de sível refinamento da aproximação. valor limite para a distribuição entre
implementação independente. Estes Outro ajuste importante para aprimo- os itens da pilha. Cada funcionalidade
itens podem ser chamados no XP de ramento de previsão empírica é o uso deve ter seu valor compreendido na
“estórias do usuário” ou similares a por todos os envolvidos de previsões escala estabelecida pela organização,
“quebrar cenários de Caso de Uso” no dos limites, e não da ideal. Ou seja, a por exemplo, de 0 a 100.
Processo Unificado. estimativa é realizada a partir das se- Outra variável que deve ser inserida na
Portanto, a velocidade é calculada guintes questões: fórmula de priorização dos itens que irão
através do número de horas que a 1 - Qual o tamanho mínimo em Ideal compor o escopo da Release (Release/
equipe como um todo gasta para im- Days do item do Selected Backlog consi- Selected Backlog) é a facilidade de imple-
plementar um trabalho equivalente a derando-se, por exemplo, um baixo im- mentação do requisito, executando assim
01 (um) Ideal Day. pacto ou instabilidade provocados pela a segunda etapa de priorização. Quanto
A reunião de planejamento de uma sua implementação? – Melhor Caso. maior a facilidade, menor deve ser seu
Release ou Sprint deve contemplar a 2 - Qual o tamanho máximo em Ideal esforço de implementação. A Figura 2
estimativa dos requisitos por meio da Days do Selected Backlog considerando- exibe um gráfico de quatro quadrantes
técnica de Poker Planning. se um maior impacto e instabilidade? de itens do escopo que foram classifica-
A prática do Poker Plan ning é a – Pior Caso. dos em função seu BV e sua facilidade de
seguinte: implementação. Itens que se concentram
1. Todos devem possuir “cartas” Este tipo de análise contribui para a no quadrante superior direito são os que
contendo os intervalos discretos de reflexão sobre situações limítrofes para devem ser priorizados e, seguramente,
previsão, e mais uma que representa pior ou para melhor, deste modo apri- são os que mais representam a maximi-
o estouro, contendo “?”, para indicar o morando o resultado ideal. zação do resultado.

10 Engenharia de Software Magazine - Ideal Day e Priorização


M Etod oLoGiAS ÁGEiS

As coordenadas do gráfico seguem os


valores de BV determinados pelo res-
ponsável do produto e a facilidade de
implementação estimada em consenso
pela equipe de desenvolvimento. O
tamanho de cada bolha representa pro-
porção de valor de negócio de cada item
considerando a lista em que ele está in-
serido. Caso seja necessário, cabe a cada
organização determinar um diferente
“peso” para esta representação.
A última etapa de refinamento da
priorização de requisitos leva em con-
sideração o tamanho do requisito esti-
mado pela equipe de desenvolvimento.
Ela organiza a ordem de execução dos
requisitos da pilha selecionados na
segunda etapa e norteia a equipe de Figura 2. Classificação dos itens de escopo de acordo com seus valores de negócio.
desenvolvimento. Segundo o SCRUM,
a própria equipe tem autonomia para
tal atividade e esta prática garante o
comprometimento dos envolvidos para
o alcance dos objetivos.
Dado isso, a fórmula final deve ser a
seguinte:

Priorização final da pilha = BV/ Tama-


nho do requisito
Em caso de empate – dois requisitos
com mesmo valor final de priorização –
deve-se considerar primeiramente seu
BV como critério de desempate e, como
segundo critério, a criticidade sendo:
1 – Baixa
3 – Normal
5 – Alta
7 – Urgência
9 – Emergência

A Fórmula de priorização para desem-


pate deve ser representada como (BV/ Figura 3. Acompanhamento do projeto.

Edição 07 - Engenharia de Software Magazine 11


Requisito Tamanho Previsto Recurso Horas real especialistas – este valor será reavaliado
RF01 0,5 ID Recurso 1 4,5 horas e as demais medidas serão baseadas em
RF02 0,3 ID Recurso 2 2,5 horas dados históricos.
RF03 0,1 ID Recurso 1 1,5 horas 1) Segue abaixo uma lista resumida
de itens do Selected Backlog já esti-
RF04 0,4 ID Recurso 2 3 horas
mados via Ideal Day durante o Poker
TOTAL: 1,3 ID 11,5 horas
Planning:
tabela 1. Dados apurados. a. RF01 – Implementar carrinho de
Velocidade inicial ID previsto ID realizado Horas real compras – 0,5 ID
Recurso 1 10 0,6 0,6 6 b. RF02 - Cadastrar livros – 0,3 ID
c. RF03 – Consultar livros por autor–
Recurso 2 10 0,7 0,7 5,5
0,1 ID
tabela 2. Dados consolidados
d. RF04 - Implementar recomendação
automática de livros – 0,4 ID
Tamanho do requisito) * criticidade. os que dependem são colocados abaixo 2) Pelo conceito de pilha, cada membro
Outro ponto a ser destacado e comum de suas dependências. deve retirar uma tarefa para executar e
em projetos de manutenção de produtos A Figura 3 exemplifica um Agile Ra- apropriar as horas gastas ao final do dia.
é a presença de erros que deverão entrar diator monitorando um projeto real. Eles Este procedimento é necessário para que,
na pilha do Product Backlog. Pode-se dar garantem visibilidade do projeto a todos ao final do Sprint, seja possível determi-
um “peso” e modificar a fórmula acima os envolvidos. Não há como mascarar o nar quantos Ideal Days foram concluídos
para contemplar este cenário. Uma vez que real andamento. O goal fica afixado e os e o seu tempo de execução.
BV diz respeito a valor de negócio que a requisitos – através de Post-its - (Selected
inclusão da funcionalidade irá prover para backlogs) e seus desdobramentos (Sprint Note que o tamanho de um requisito
o mercado e erro não acrescenta valor ao backlogs) são posicionados na situação nunca muda! O que muda é o esforço do
produto, sugerimos determinar BV nega- onde se encontram (se ainda não inicia- mesmo, que depende do recurso alocado
tivo para este caso. Para que este requisito dos - planejados, se sendo executados no - velocidade.
entre corretamente na priorização da pi- momento - em andamento e se termina- O recurso 1 irá implementar o RF01,
lha, deve-se aplicar seu valor absoluto. dos – 100% concluídos). Eles devem ser que tem 0,5 ID de tamanho. Se é a primei-
A partir deste resultado, a equipe de posicionados de acordo com a prioridade ra vez e não tenho dados históricos para
desenvolvimento consegue determinar dos mesmos – Business Value declarado determinar o esforço do recurso, vou
prazos para cada entrega que contempla pelo Product Owner. Post-its localizados utilizar a velocidade inicial determinada
o escopo acordado. O número de Sprints no topo nos dizem ser de maior priori- empiricamente de 10 horas.
de implementação necessários é então dade que os posicionados no rodapé do Por isso, o requisito terá duração pre-
comunicado ao responsável pelo produ- quadro branco. vista de 5 horas (5 horas corresponde
to. A partir da definição de sua restrição Para entendermos na prática como apli- à metade de um ideal Day cujo valor
– escopo, tempo, custo ou qualidade - ele car as técnicas apresentadas, será apresen- estimado de velocidade foi de 10 para
tomará uma decisão e definirá o objetivo tado a partir de agora um caso prático. a equipe):
maior da Release e do primeiro Sprint. Esforço = tamanho x velocidade
O SCRUM prega o planejamento contí- Caso prático Esforço = 0,5 x 10 = 5 horas
nuo, portanto, as demais iterações serão Considerando que a jornada de traba-
planejadas oportunamente. lho de sua equipe seja de 4 horas diá- De acordo com o número de horas
Após esta definição, a equipe de de- rias, você deverá estipular seu valor de que a pessoa trabalha (se ele trabalha
senvolvimento consegue implementar referência, ou seja, 1 Ideal Day = 4 horas somente pela manhã), será necessário
os requisitos seguindo, rigorosamente, e ainda determinar a velocidade média “quebrar” este requisito para que seja
do topo para baixo da pilha. inicial de sua equipe, por exemplo, ID = possível concluí-lo em 1 dia de trabalho e
Em sistema enxutos (Lean) de “push”, 10 horas. É importante entendermos que mover o post-it de “em andamento” para
como o Scrum, resolve-se o problema 4 horas corresponde a horas trabalhadas “finalizado” evidenciando a evolução
de dependências de “caminho crítico” por um especialista em um “dia perfei- do trabalho.
simplesmente ajustando-se a ordem de to”; e 10 horas a média da equipe estipu- Desse modo, atualizando o gráfico
execução dos itens de Product Backlog: lada, inicialmente e empiricamente, por Burndown (representado na Figura 3 -
quadrante superior direito) através da
subtração do tamanho (0,5 ID) de Ideal
Days realizados, será possível acompa-
nhar desvios entre previsto e realizado
de maneira efetiva e visual.

12 Engenharia de Software Magazine - Ideal Day e Priorização


M Etod oLoGiAS ÁGEiS

Com a apropriação do Sprint, obtém-se mais dados históricos para conhecer a as iterações vão garantindo compartilha-
dados para calcular a velocidade padrão média de produtividade e de velocidade mento global, aprendizado contínuo e
do grupo. A Tabela 1 exemplifica os da- da equipe. tácito, além de evitar o famoso “dono do
dos apurados após implementação. A produtividade da Release pode ser código” – que no possível desligamento
De acordo com a Tabela 1, o recurso calculada como: da empresa, leva consigo toda a história
1 implementou os requisitos RF01 e Produtividade da Release = ID Reali- do desenvolvimento.
RF03, totalizando entrega de 0,6 ID. Já zados/ Número de Sprints. Por tudo isso, o SCRUM não é milagreiro.
o recurso 2, os RF02 e RF04, totalizando De acordo com o exemplo anterior, Quem contribui, em muito, para o sucesso
0,7 ID. Para calcular a nova velocidade, durante o sprint 1 a equipe manteve a de um projeto são as pessoas envolvidas: se-
após o Sprint, devemos considerar os produtividade planejada de 1,3 ID. Caso, jam desenvolvedores, gerentes, o corpo di-
dados da Tabela 2. a release tenha 3 sprints e a equipe entre- retor ou clientes. Todos devem estar cientes
Para concluirmos o cálculo da veloci- gar 0,9 ID no segundo e 1,1 ID no terceiro, do porquê utilizar as técnicas citadas neste
dade é preciso ainda considerar o tempo a produtividade média da release será: artigo: pair programming, peer review,
de retrabalho, ou seja, o tempo gasto em 1,3+0,9+1,1/3 = 1,1 ID. comunicação tácita, compartilhamento de
correções que terão um peso maior no código, entrega de maior valor de negócio,
cálculo da velocidade da equipe. Conclusão planejamento contínuo, etc. Estas são
Para isso, temos que a Fórmula para A partir de experiências vividas em somente algumas práticas que você pode
cálculo da velocidade é: nossa área, percebemos que planejar aplicar para complementar seu dia-a-dia
horas_realizadas + (horas_retrabalho continuamente traz grandes benefícios no gerenciamento de projetos.
* 1,3) / ID realizados tanto para o desenvolvimento do produ-
Com isso, tempos que: to quanto para seus clientes. A entrega Dê seu feedback sobre esta edição! eu
Feedback

s
Recurso 1 = 6 + 0 / 0,6 = 10 horas de maior valor de negócio é assegurada


A Engenharia de Software Magazine

sobre e
Recurso 2 = 5,5 + 0 / 0,7 = 7,8 horas e ela acontece mais rapidamente. Além
tem que ser feita ao seu gosto.
Média da equipe = 8,9 horas. disso, utilizando medidas de tamanho,

s
ta
edição
Para isso, precisamos saber o que você,
como Ideal Day, o planejamento se
leitor, acha da revista!
No próximo Sprint, a média a ser baseia na equipe e não em indivíduos,
Dê seu voto sobre este artigo, através do link:
considerada será a calculada no Sprint possibilitando o trabalho organizado
anterior (8,9 horas) e não mais empiri- em “pilha” de requisitos e atividades. www.devmedia.com.br/esmag/feedback
camente (10 horas). Obviamente, a aplicação deste conceito
A produtividade é extraída da avalia- requer planejamento e preparação da
ção do número de Ideal Days/Sprint. No organização além da capacitação de Referências
primeiro Sprint, a produtividade é igual todos os envolvidos para que haja a
Processo de Desenvolvimento de Software da Powerlogic
ao número de Ideal Days entregues. multidisciplinaridade necessária a este
Consultoria e Sistemas, versão PDS_P&D_v19.
Produtividade da equipe = 1,3 ID tipo de desenvolvimento.
Considerando a produtividade da Você pode estar se perguntando se sua Agile Estimating and Planning, Prentice Hall, 2006, Cohn , M.
equipe, no próximo Sprint será pos- equipe possui este perfil de homogeneida- Agile Development Blog / SCRUM, http://www.
sível alocar itens do Selected Backlog de. Provavelmente ainda não. Para que os targetprocess.com/blog/2004/12/iteration-velocitys-and-
que totalizem o número de Ideal Days resultados sejam positivos, é preciso que a user-story.html, acessado em 01/09/2008.
entregues no Sprint anterior – no nosso organização apóie e invista neste modelo.
exemplo, 1,3 ID. Ao final do mesmo, Em um primeiro momento, a velocidade Mike Cohn’s Blog http://blog.mountaingoatsoftware.
deve-se apurar novamente este número e da equipe pode ficar comprometida, pois com/?p=15, acessado em 12/09/2008.
fazer a média entre Sprints, atualizando ela ainda não trabalha da mesma forma, Artigo:“Por que SCRUM?”, ESM, 4ª. ed. (Agosto 2008)
sempre esta informação. tem-se perfis muito diferentes, experiên- escrito por Fonseca, I. e Campos, A.
Você deverá medir novamente e obter cias e conhecimentos diversificados. Mas

Edição 07 - Engenharia de Software Magazine 13


Metodologias Ágeis para
Desenvolvimento de Software

De que se trata o artigo:


Este artigo tem como objetivo descrever as
metodologias ágeis em geral e suas práticas
comuns, mostrando algumas vantagens,
limitaçoes e desvantagens, e comparando
com as metodologias tradicionais.

Para que serve:


O artigo compara as metodologias tradi-

E
Michel dos Santos Soares
ste texto é sobre metodologias cionais e ágeis e sugere quando usar cada
Mics.soares@gmail.com
Graduado (2000 - UFSCar) e Mestre (2004 - ágeis para desenvolvimento de diferente tipo de metodologia.
UFU) em Ciência da Computação, atualmente software. Mas se existem meto-
(desde 2006) trabalhando como pesquisa- dologias ágeis, significa que existem Em que situação o tema é útil:
dor-doutorando (PhD Researcher) na Delft também as consideradas não-ágeis, O tema é útil para empresas e profissionais
University of Technology, em Delft, na Ho-
também conhecidas como pesadas ou que não utilizam nenhuma metodologia e
landa. Atuou como Analista de Sistemas para
sistemas Web e bancários, e como Professor tradicionais. Primeiramente, vamos têm experimentado problemas no desen-
Universitário no Brasil, nas áreas de Pro- definir o que é uma metodologia de volvimento de software, ou que queiram
gramação, Engenharia de Software e Quali- desenvolvimento de software. Posterior- descobrir qual tipo de metodologia é mais
dade de Software. Atualmente desenvolve mente, serão apresentadas as principais adequado para sua situação.
pesquisas na área de sistemas que usam
características das metodologias tradi-
intensamente software (Software Intensive
Systems) para o controle de infra-estruturas cionais e ágeis, além de exemplos das
críticas, aplicando métodos formais e semi- respectivas metodologias. resultem, após sua aplicação sistemática,
formais de Engenharia de Sistemas e de Sof- em software. A esse conjunto de tarefas
tware. É co-autor de um livro de Qualidade Metodologia (ou processo) de e atividades, mais ou menos organiza-
de Software, pela Novatec, atualmente na 2.a
edição, publicou diversos capítulos de livros
desenvolvimento de software das e sistematizadas, damos o nome de
e artigos científicos em congressos e revistas Para desenvolver software é necessário metodologia (ou processo) de desenvol-
científicas nacionais e internacionais. um conjunto de atividades e tarefas que vimento de software. Dependendo da

14 Engenharia de Software Magazine - Metodologias Ágeis para Desenvolvimento de Software


M Etod oLoGiAS ÁGEiS

metodologia, existe mais ou menos do-


cumentação produzida, maior ou menor
iteratividade (desenvolvimento em ciclos)
e interatividade com o cliente. Indepen-
dente da metodologia, existem algumas
atividades comuns em desenvolvimento
de software [Sommerville, 2008]:
Especificação: definição das funciona-
lidades, restrições e demais característi-
cas do produto.
Projeto e implementação: o software é
produzido de acordo com as especifica-
ções. Nesta fase são propostos modelos
por meio de diagramas que serão im-
plementados em alguma linguagem de
programação.
Validação: atividades de revisão e tes-
tes visando assegurar que os requisitos
sejam cumpridos.
Evolução: atividades de manutenção,
por exemplo, para adaptar o software a
novas necessidades do cliente.
Muitas organizações desenvolvem
software sem usar nenhum processo.
Geralmente isso ocorre porque os pro-
cessos tradicionais não são adequados Figura 1. O Modelo em Cascata.
às suas realidades. Em particular, as
pequenas e médias organizações não processo como “… apresenta riscos e é 3. Baseado na análise, são gerados
possuem recursos suficientes para um convite às falhas”. modelos mais específicos para futura
adotar o uso de metodologias pesadas O modelo Cascata (Figura 1) é baseado implementação. Esses modelos represen-
e, por essa razão, normalmente não em fases bem definidas, com entradas e tam de forma menos abstrata o problema
utilizam processos definidos e siste- saídas para as próximas fases, de forma inicialmente especificado. Esta fase é
matizados. O resultado dessa falta de seqüencial. Cada etapa tem associada comumente chamada de design em inglês
sistematização na produção de sof- ao seu término uma documentação ou projeto (não confundir com project, e
tware é a baixa qualidade do produto que deve ser aprovada para que a eta- não traduzir como desenho).
final, além de dificultar a entrega do pa posterior possa ter início. Existem 4 Os modelos de projeto e análise são
software nos prazos e custos predefi- diversas representações semelhantes, implementados, de forma mais ou me-
nidos e inviabilizar a futura evolução mas basicamente o processo consiste nos automática, usando linguagens de
do software. A metodologia Cascata nas seguintes fases: Requisitos, Análise, programação. Muitas pesquisas estão
é apresentada brevemente a seguir Design (Projeto), Implementação, Testes sendo feitas sobre a geração automática
com o objetivo de compará-la com as e Implantação. Simplificadamente, a me- de software a partir de modelos de aná-
metodologias ágeis. todologia funciona da seguinte forma: lise e projeto, como por exemplo, MDA
1. Requisitos são extraídos dos stakehol- (Model Driven Architecture) (http://
Metodologia (ou processo) de ders (clientes, usuários, gerentes, etc), ou www.omg.org/mda/).
desenvolvimento de software seja, todas as pessoas e entidades que 5. Testes unitários são feitos, e poste-
Um exemplo clássico de metodologias possuem algum interesse no software, riormente testes integrados, contendo
tradicionais é o modelo em Cascata, seja por que irão efetivamente usá-lo todo o software.
conhecido também como Clássico ou em seu trabalho diário, ou porque estão 6. Na fase de Implantação, o software
Waterfall [Royce, 1970]. Curiosamente, pagando pelo software, mesmo que não é colocado em funcionamento. Várias
atribui-se a Royce um defensor ou in- sejam futuros usuários diretos. atividades são relacionadas a essa fase,
trodutor do modelo em Cascata. Este 2. As especificações de requisitos como popular a base de dados, incluindo
é um equívoco comum. Ele apenas o são transformadas em modelos de dados reais, treinamento, instalação, etc.
descreveu, num artigo em 1970, e já software, mas de forma mais abstrata, As atividades dependem em muito do
naquela época identificou problemas sem detalhes técnicos. Esta etapa é tipo de sistema, da empresa, e do am-
no processo. No artigo, ele caracteriza o chamada de análise. biente em que o software funcionará.

Edição 07 - Engenharia de Software Magazine 15


Contexto testes de mesa, em que o programador de instruções é executado controlado por
O contexto em que o modelo em Casca- verifica se a lógica de seu algoritmo está uma variável.
ta foi usado é muito diferente da época correta usando papel e caneta. Primei- De maneira geral, o modelo clássico
atual. No século passado, principalmen- ramente o software deveria funcionar deve ser usado principalmente quando
te entre as décadas de 50 a 80, a disponi- na teoria, para depois ser executado os requisitos forem estáveis, e em situ-
bilidade de recursos computacionais era no computador. Do contrário, simples ações em que a documentação é muito
limitada em vários aspectos. Recursos erros poderiam levar horas para serem importante. Isso pode acontecer devido a
computacionais incluem não apenas o descobertos pelo computador e poste- vários fatores, como o sistema ser crítico
computador, mas também impressoras, riormente corrigidos. Desta forma, o ou muito complexo.
memória principal e capacidade de ar- software deveria ser completamente
mazenamento de dados. Inicialmente analisado antes de ser implementado no Experiências na indústria
apenas um computador central, normal- computador. Fazia sentido gastar tempo Vários estudos e pesquisadores mos-
mente alimentado por cartões perfura- em documentação detalhada. Eventu- tram que modelos seqüenciais não fun-
dos, era usado (geralmente alugado por almente era necessário fazer alterações cionam bem. Por exemplo, Fred Brooks
um alto valor, ou comprado por grandes nos requisitos, e aproveitar ao máximo em seu famoso artigo “No Silver Bullet:
empresas, governos e institutos de pes- o software já existente era muito im- Essence and Accidents of Software Enginee-
quisa). Posteriormente, os minicomputa- portante. Desta forma, documentações ring”, descreve que a idéia de especificar
dores e “terminais burros” (sem poder detalhadas eram lidas e entendidas, para totalmente um software antes do início de
de processamento autônomo) facilitaram então alterar o software. sua implementação é impossível [Brooks,
a programação, e tornaram-se mais Essa realidade foi sendo alterada aos 1987]. Outro pesquisador, Tom Gilb, de-
acessíveis, mas ainda assim limitados, poucos, e já a partir da década de 90 sencoraja o uso do modelo em Cascata
inclusive em número e qualidade de tornou-se comum ter um computador para software, estimulando o desenvol-
ferramentas computacionais que auxi- (não um terminal conectado a um main- vimento incremental como um modelo
liassem a tarefa de programação. frame, mas um computador totalmente que apresenta menores riscos e maiores
Nesse ambiente de baixa disponi- funcional) para cada funcionário em possibilidades de sucesso [Gilb, 1988].
bilidade computacional e alto custo, uma empresa. As ferramentas de de- Dados de 1995 [Standish Group, 1995]
era necessário evitar-se ao máximo senvolvimento, como editores de texto, usando como base 8.380 projetos, mos-
deixar que o computador descobrisse depuradores de código e compiladores tram que apenas 16,2% deles foram
erros simples, como sintaxe errada ou passaram a ser integradas em um só entregues respeitando prazos, custos
não declaração de variáveis. Todas as produto, facilitando a tarefa de progra- e todas as funcionalidades especifi-
funções e procedimentos precisavam mação e testes. Os novos ambientes de cadas. Aproximadamente 31% foram
ser escritas anteriormente, com suas desenvolvimento permitiram facilmente cancelados antes de serem finalizados
entradas e saídas, de forma detalhada e executar um software passo a passo e e 52,7% foram entregues, porém com
executadas primeiramente por pessoas, avaliar o conteúdo de suas variáveis. Por prazos e custos maiores ou com menos
e depois por máquinas. São os famosos exemplo, avaliar quantas vezes um bloco funcionalidades do que o especificado

16 Engenharia de Software Magazine - Metodologias Ágeis para Desenvolvimento de Software


M Etod oLoGiAS ÁGEiS

inicialmente. Mesmo projetos que res-


peitaram prazos e custos apresentaram
problemas. As principais razões dessas
falhas estavam relacionadas com meto-
dologias seqüenciais e suas dificuldades
em possibilitar alterações nos requisitos
do software.
Dados mais recentes [Standish Group,
2000] mostraram melhora significativa,
mas ainda não definitiva. Nesta pesqui-
sa, 15% dos projetos terminaram sem
mostrar resultados e 66% dos projetos
não atenderam às necessidades dos usu-
ários. A média de atrasos caiu para 63%
e os projetos custaram em média 45% a
mais que o planejado. De apenas 16% de
projetos que cumpriram o planejado em
1994 (prazos, custos e funcionalidades), a e redução de produtos intermediários, Colaboração com o cliente sobre
pesquisa de 2000 mostrou que 28% dos como documentação extensiva. Segundo negociação de contratos
projetos cumpriram o planejado. Entre- o manifesto ágil, deve-se valorizar: As metodologias ágeis não rejeitam
tanto, a pesquisa chamou a atenção para que contratos sejam firmados. Apenas
um fato: muitos dos projetos que tiveram Indivíduos e interações sobre enfatiza que o cliente deve estar satis-
êxito foram superestimados (existem processos e ferramentas feito, então renegociações podem ser
casos de as estimativas serem feitas e, Os desenvolvedores devem ser ou- necessárias. Por exemplo, o cliente pode
posteriormente, serem acrescentadas vidos e ter uma opinião relevante no querer maior tempo de testes, o que gera
em 150%). desenvolvimento de software. Sua maiores custos. Uma forma de tentar re-
Foram várias as razões que contri- forma de trabalho deve ser respeitada, solver o problema seria convidar o clien-
buíram para essa melhoria. Talvez a evitando-se obrigatoriedades que fre- te a testar partes do software juntamente
principal tenha sido o uso de ferramen- qüentemente não fazem sentido para com a equipe de desenvolvimento, ou
tas computacionais, mais acessíveis e quem na prática está acostumado a até mesmo de forma isolada, o que tem
melhores. Por exemplo, apesar do alto desenvolver software. Alterar os pro- potencial de diminuir custos.
custo de algumas ferramentas CASE, cessos, ou mesmo comprar ferramen-
há várias que são gratuitas. Um outro tas caras para auxiliar o trabalho dos
fator que contribuiu foi a melhoria da programadores devem ser medidas Responder as mudanças sobre
qualidade dos processos de desenvolvi- tomadas com cautela. A introdução de seguir um plano.
mento. Uma das recomendações dessas ferramentas CASE deve ser planejada Supondo que uma pessoa deve per-
pesquisas foi que o desenvolvimento de e a equipe que irá usá-las deve ser ou- correr de carro a distância de mil qui-
software deveria ser baseado em mode- vida, antes que as ferramentas sejam lômetros entre duas cidades. Faz-se um
los incrementais, o que poderia evitar compradas. plano, mesmo que seja informal, sobre
muitas das falhas reportadas. que caminhos seguir, onde e quando
Software executável sobre parar para descansar, qual horário de
Metodologias Ágeis documentação partida e assim por diante. Caso algo
O termo metodologias ágeis tornou-se Por melhor que seja a documenta- ocorra de forma diferente, é necessário
popular em 2001, quando 17 especialis- ção (atualizada, seguindo normas e adaptar este plano. Por exemplo, caso
tas em processos de desenvolvimento padrões, itens facilmente identifi- uma parte de uma estrada esteja impe-
de software estabeleceram princípios cáveis, para citar alguns exemplos), dida, e haja um caminho alternativo,
comuns compartilhados por várias ainda assim é melhor para os clientes muda-se o caminho. Posteriormente, ao
metodologias. O resultado foi a criação visualizarem o software na prática, encontrar um posto de combustível com
da Aliança Ágil e o estabelecimento executando em uma máquina real, ao preços mais acessíveis, pode-se optar
do Manifesto Ágil [http://agilemani- invés de somente esquematizado em por antecipar uma parada de descanso
festo.org/]. Apesar das metodologias documentos, gráficos, tabelas e diagra- dependendo do custo/benefício. Os dois
ágeis variarem em termos de práticas mas que normalmente são específicos exemplos mostram que planos podem
e ênfases, elas compartilham algumas para software e por isso mesmo podem ser alterados quando necessário. Assim
características, como desenvolvimento ser de difícil compreensão para quem funciona também quando metodologias
iterativo e incremental, comunicação não os conhece. ágeis são usadas para desenvolvimento

Edição 07 - Engenharia de Software Magazine 17


de software. Planos são feitos, mas para Outra metodologia ágil que apresenta Programming in Soft ware Engineering e
auxiliar, não para servirem de referência uma comunidade grande de usuários é Agile Conference.
constante e nunca mudarem. a Scrum [Schwaber e Beedle, 2002]. Seu Por exemplo, um artigo [Charette, 2001]
objetivo é fornecer um processo conve- comparando metodologias ágeis com
Princípios que Suportam as niente para projeto e desenvolvimento as metodologias tradicionais mostrou
Metodologias Ágeis orientado a objeto. A Scrum apresenta que os projetos usando metodologias
No manifesto ágil, são listados alguns uma abordagem empírica que aplica ágeis obtiveram melhores resultados
princípios que devem nortear todas as algumas idéias da teoria de controle de em termos de cumprimento de prazos,
metodologias ágeis em geral. Por exem- processos industriais para o desenvolvi- de custos e padrões de qualidade. Além
plo, um princípio fundamental é que o mento de softwares, reintroduzindo as disso, o mesmo estudo mostra que o
cliente deve ser satisfeito, o que deve ser idéias de flexibilidade, adaptabilidade tamanho dos projetos e das equipes
feito através de entregas contínuas de e produtividade. O foco da metodologia que utilizam as metodologias ágeis têm
partes funcionais do software. As mu- é encontrar uma forma de trabalho dos crescido. Apesar de serem propostas
danças pedidas pelos clientes são bem membros da equipe para produzir o sof- idealmente para serem utilizadas por
vindas em qualquer estágio do desen- tware de forma flexível e em um ambiente equipes pequenas e médias (até 12 de-
volvimento do software, o que também em constante mudança. A idéia principal senvolvedores), aproximadamente 15%
contribui para satisfazer o cliente. Outro da Scrum é que o desenvolvimento de dos projetos que usam metodologias
princípio é relativo às pessoas que estão software envolve muitas variáveis téc- ágeis estão sendo desenvolvidos por
desenvolvendo o software, que devem nicas e do ambiente, como requisitos, equipes de 21 a 50 pessoas, e 10% dos
ser continuamente motivadas e ter todo recursos e tecnologia, que podem mudar projetos são desenvolvidos por equipes
o suporte necessário para auxiliar no durante o processo. Isto torna o proces- com mais de 50 pessoas, considerando
desenvolvimento do seu trabalho. so de desenvolvimento imprevisível e um universo de 200 empresas usado
complexo, requerendo flexibilidade para no estudo.
Exemplos acompanhar as mudanças. O resultado Vários estudos foram sistematizados
Duas das metodologias mais citadas do processo deve ser um software que é para comparação em [Dybå e Dingsøyr,
são a XP (eXtreme Programming) e a realmente útil para o cliente. 2008]. No artigo, diversas pesquisas
Scrum. A XP é uma metodologia ágil Existem várias outras metodologias mostraram várias vantagens das meto-
para equipes pequenas e médias que ágeis disponíveis, mas que não são tão dologias ágeis em relação às tradicionais.
desenvolvem software baseado em usadas como a XP e a Scrum, como por Por exemplo, a prática da programação
requisitos vagos e que se modificam exemplo DSDM, Crystal, Agile Unified em pares mostrou-se útil não só como
rapidamente. O primeiro projeto a usar Process, Essential Unified Process e forma de treinar todos os membros da
XP foi o C3, da Chrysler. Após anos de Feature Driven Development. equipe, mas também para aumentar a
fracasso utilizando metodologias tradi- padronização de código e aumentar a
cionais, com o uso da XP o projeto ficou Resultados qualidade final do software. A equi-
pronto em pouco mais de um ano [Hi- Estudos empíricos mostram diver- pe inteira torna-se responsável pelo
ghsmith et al., 2000]. A XP baseia-se em sos casos de sucesso. Vários casos são software como um todo, evitando que
12 práticas, dentre elas a programação registrados em congressos específi- partes sejam entendidas por apenas uma
em pares, entregas freqüentes, refatora- cos da área, como International Con- pessoa. Em termos de produtividade e
ção continua e simplicidade. ference on Agile Processes and eXtreme qualidade, novamente as metodologias

18 Engenharia de Software Magazine - Metodologias Ágeis para Desenvolvimento de Software


M Etod oLoGiAS ÁGEiS

ágeis apresentam bons resultados. As metodologia inadequada. Por exemplo, mesmo grupo da empresa e até para
equipes que usaram XP foram mais profissionais que não se adaptam bem a cada tipo de projeto específico pode ser
produtivas e produziram software com práticas de equipe, como a programação a melhor escolha.
menos erros. Interessante ainda notar em duplas, podem ter muita dificuldade
que o tamanho do software final, em em aceitar a XP. A exigência de que a
termos de linhas de código, foi menor equipe não esteja geograficamente sepa- Dê seu feedback sobre esta edição! eu
Feedback

s
em equipes usando XP e Scrum quando rada cria sérias dificuldades, sobretudo


A Engenharia de Software Magazine

sobre e
comparado com equipes que usaram em grandes empresas onde isso é mais
tem que ser feita ao seu gosto.
metodologias tradicionais. comum. Essas empresas apresentam em

s
ta
edição
Para isso, precisamos saber o que você,
geral maiores resistências para adotar
leitor, acha da revista!
Problemas e Dificuldades metodologias ágeis.
Dê seu voto sobre este artigo, através do link:
As metodologias ágeis apresentam A prática da programação em pares
também alguns problemas [Soares, talvez seja uma das mudanças mais www.devmedia.com.br/esmag/feedback
2004a]. Muitos acreditam que essas radicais na XP. Profissionais mais ex-
metodologias sejam uma volta ao perientes acham a prática ineficiente. O
Referências
processo caótico de desenvolvimento problema torna-se maior quando existe
de software, conhecido também como uma diferença significativa de conheci- [Sommerville, 2003] Sommerville, I. Engenharia de
“codifica-remenda”. Esse modelo existe mento, experiência e mesmo capacidade Software Engineering. 6a. Edição. Addison Wesley, 2003.
principalmente em pequenas e médias entre os pares. Neste caso podem haver
organizações que não podem suportar desentendimentos e queda de produtivi- [Royce, 1970] Royce,W. Managing the Development of Large
os altos custos de desenvolvimento das dade. Ainda em relação a pessoas, uma Software Systems: Concepts and Techniques. Proc.WESCON,
metodologias tradicionais. crítica comum é que as metodologias IEEE Computer Society Press, Los Alamitos, CA, 1970.
O uso errôneo da XP pode inibir certas ágeis seriam adequadas somente para [Brooks, 1987] Brooks, F. No Silver Bullet: Essence and
práticas positivas de desenvolvimento, equipes e profissionais experientes, Accidents of Software Engineering. Proc. IFIP, IEEE CS Press,
como, por exemplo, a análise do proble- sendo ineficientes para novatos. 1987, pp. 1069-1076.
ma por meio de diagramas. Obviamente,
não se deve projetar diagramas que nun- Conclusão [Gilb, 1988] Gilb, T., Principles of Software Engineering
ca serão consultados, mas é importante Todas metodologias de desenvolvimen- Management, Addison-Wesley, 1988.
projetar alguns modelos que ajudarão to de software apresentam vantagens e [Standish Group, 1995] CHAOS report, 586 Olde Kings
no entendimento do problema. desvantagens, limites e restrições. Em Highway. Dennis, MA 02638, USA, 1995.
A informalidade no levantamento de geral, pode-se assegurar que ter uma
requisitos pode não ser bem vista pelos metodologia é melhor que não ter e de- [Standish Group, 2000] CHAOS report, USA, 2000.
clientes, que podem sentir-se inseguros pender de heróis, aqueles profissionais [Highsmith et al., 2000] Highsmith, J. Orr, K. Cockburn, A.
[Soares, 2004b]. Situação semelhante que resolvem facilmente os problemas, Extreme Programming, E-Business Application Delivery,
pode ocorrer com a refatoração de có- que possuem a confiança da organi- Feb., (2000), pp. 4-17.
digo, que pode ser interpretada pelos zação, mas que na prática não podem
clientes como amadorismo e incompe- sair de férias sem que problemas sejam [Schwaber e Beedle, 2002] Schwaber, K. e Beedle, M. Agile
tência. Segundo Beck, o criador da XP, há percebidos. Software Development with Scrum, Prentice-Hall, (2002).
ainda outros fatores que podem tornar a De forma geral, os resultados iniciais [Charette, 2001] Charette, R. Fair Fight? Agile Versus Heavy
do uso de metodologias ágeis, em ter- Methodologies. Cutter Consortium E-project Management
mos de qualidade, confiança, prazos de Advisory Service, 2, 13, (2001)
entrega e custo são promissores. Maiores
estudos ainda são necessários, em dife- [Dybå e Dingsøyr, 2008] Dybå, T e Dingsøyr, T. Empirical
rentes projetos, tamanhos da equipe e studies of agile software development: A systematic
com outras metodologias ágeis. Desta review Information and Software Technology Volume 50,
forma, os relatos de experiência podem Issue 9-10, Agosto 2008, p. 833-859.
ser úteis para organizações evitarem [Soares 2004a] Soares, M.S. Metodologias Ágeis Extreme
erros na adoção de metodologias ágeis. Programming e Scrum para o Desenvolvimento de
A empresa ou mesmo uma equipe Software. Ano III, Número 1, Novembro de 2004.
dentro da empresa precisa conhecer
seus próprios problemas, dificuldades, [Soares 2004b] Soares, M.S. Comparação entre
limitações e capacidades para escolher Metodologias Ágeis e Tradicionais para o Desenvolvimento
a metodologia que melhor convém. de Software. INFOCOMP - Journal of Computer Science.
Abordagens hí bridas, modificadas Vol.3, N.2, Novembro, 2004, p.8-13.
e adaptadas para cada empresa, ou

Edição 07 - Engenharia de Software Magazine 19


Ferramentas de Integração Contínua tornando
o Trabalho de Equipes mais Organizado
Conhecendo os Bastidores

D
Andrew Diniz da Costa
iversas razões definem a pre-
andrew@les.inf.puc-rio.br
Técnico em Informática pelo Instituto Brasileiro sença de grandes grupos de
de Pesquisa em Informática (IBPI). Possui gra- desenvolvedores em uma mes-
duação em Bacharelado de Informática pela ma equipe para a criação de sistemas,
Pontifícia Universidade Católica do Rio de Janei- tais como, tamanho, prazo de entrega
ro (PUC-Rio). Mestre e aluno de doutorado em
solicitado pelo cliente, etc. Assim,
Informática da PUC-Rio. Desempenha o papel
de pesquisador e líder de tecnologia na área de a necessidade de desenvolvedores
testes do escritório de qualidade de software do trabalharem em conjunto de forma
Laboratório de Engenharia de Software (LES). organizada está presente em nosso dia
Co-autor: Carlos J. P. de Lucena Possui experiência em desenvolvimento Java, Vi- a dia. Pensando nisso, como um pro-
Possui graduação em Economia Matemática sual Basic, Delphi, ASP e C, além do uso de SGBDs,
pela Pontifícia Universidade Católica do Rio de jeto pode ter uma equipe organizada
como, SQL Server e Oracle.
Janeiro (1965), mestrado em Informática pela enquanto que um mesmo código fonte
University of Waterloo (1969), doutorado em Co-autor: Arndt Von Staa é compartilhado? Existem ferramentas
School Of Engineering And Applied Sciences pela Professor do Departamento de Informática da que auxiliem nesse processo? Caso
University Of California At Los Angeles (1974) e PUC-Rio. É PhD em Ciência da Computação (1974,
existam, quais seriam?
pós-doutorado pela IBM (1975). Atualmente é Engenharia de Software) pela Universidade de
professor titular da Pontifícia Universidade Cató- Waterloo, Ontário, Canadá. Atua em computação Para responder todas essas perguntas,
lica do Rio de Janeiro. Em sua carreira atuou como desde 1962. Suas atividades de pesquisa e de- podemos citar o conceito de integração
vice-reitor da Universidade, Decano do Centro senvolvimento mais recentes concentram-se em contínua, bastante utilizado por proces-
Técnico e Científico e por várias vezes Diretor do técnicas de controle da qualidade de software, sos ágeis, tais como Extreme Program-
Departamento Informática. Foi premiado com a em métodos e processos de desenvolvimento de
ming. A idéia principal consiste em
insígnia da Classe Grã-Cruz da Ordem do Mérito software de qualidade assegurada e em ambien-
Científico da Presidência da República do Brasil, tes de desenvolvimento de software assistidos integrar o trabalho realizado por várias
com a Medalha Carlos Chagas Filho de Mérito por computador. Até julho de 2008 publicou mais pessoas durante diversos momentos do
Científico, Diretoria e Conselho Superior da FA- de 80 artigos arbitrados completos em veículos dia, e realizar testes que permitam asse-
PERJ, com o Prêmio Álvaro Alberto de Ciências e nacionais e internacionais, cinco livros e nove ca- gurar que o código continue consistente
Tecnologia do Ministério de Ciência e Tecnologia pítulos de livros.Tem 14 softwares desenvolvidos
ao final de cada integração.
e com vários prêmios IBM Innovation Award, den- sem registro de patente. Orientou 62 dissertações
tre muitos outros.Publicou mais de 400 trabalhos, de mestrado e sete teses de doutorado. Coordena A forma ideal para aplicar integração
além de orientar até 2008, 34 teses de doutorado diversos projetos de pesquisa e desenvolvimento contínua é através do uso de diversas
e 89 dissertações de mestrado. em parceria com empresas. ferramentas, tais como, controle de

20 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto

versões (ex: CVS, Subversion e Clear


Case), sistemas de build (ex: Ant, NAnt
e Maven), além de notificações para
usuários a partir de execuções realiza-
das (ex: email, MSN e SMS). Execuções,
como, por exemplo, builds de projetos,
são chamados de Jobs em diversos pontos
no artigo.
Na Figura 1 ilustramos uma arqui-
tetura que representa a idéia de inte-
gração contínua. Observe que nesse
exemplo temos uma equipe com três
desenvolvedores realizando mudan-
ças em um mesmo arquivo ou em um
conjunto de arquivos que constituem
um projeto, compartilhado por um re-
positório localizado em outra máquina.
No exemplo, consideramos que uma
ferramenta própria para integração
contínua instalada em outra estação
é utilizada. A partir dela, poderíamos
definir uma hora do dia para executar
o build da última versão do projeto
em desenvolvimento. Além disso,
dependendo da ferramenta utilizada,
podemos definir que uma notificação
por e-mail deve ser enviada para toda
a equipe de desenvolvimento infor- Figura 1. Arquitetura para representar integração Contínua.
mando se a execução foi realizada com
sucesso ou se falhou.
Nesse artigo, apresentamos inicialmen- Sistemas para controle de versão que equipes com diversos desenvolvedo-
te uma visão geral de sistemas de build Um sistema de controle de versão é res trabalhem juntos e compartilhem o
e de controle de versão. Em seguida, são usado para armazenar e manter ver- código fonte de um mesmo projeto.
apresentadas as principais característi- sões de arquivos, assim como, todo o Imagine dois desenvolvedores alteran-
cas de três ferramentas de integração código fonte de um sistema. Também do um mesmo arquivo. Duas grandes
contínua: Cruise Control, Continuum e conhecido por repositório, é respon- preocupações estariam presentes: a
Hudson, e ao final do artigo é realizada sável por automatizar tarefas como: primeira refere-se a garantir que cada
uma comparação entre elas. A partir identificação de mudanças locais; exi- desenvolvedor esteja ciente que o mesmo
dessa comparação, será possível identi- bição das diferenças entre o código de arquivo está sendo alterado por outras
ficar quais suas principais vantagens e um arquivo local e uma de suas versões pessoas, enquanto que a segunda seria
desvantagens. armazenadas no repositório; identifi- entender quais mudanças foram feitas
cação de quem realizou uma determi- por cada desenvolvedor para que uma
Sistemas para Build nada alteração; incorporação de uma versão integrada possa ser gerada. A
Sistemas de build são usados para mudança em um arquivo local a uma partir de sistemas que realizam controle
agilizar e automatizar execuções de versão do mesmo arquivo armazenada de versão, tais preocupações podem ser
projetos, através da automatização de no repositório; sincronizar o código mais facilmente gerenciadas.
tarefas, como: compilação do código local com uma das versões do sistema
do sistema; compilação e execução dos ou de um arquivo armazenadas no Cruise Control
testes unitários e de aceitação; geração repositório. Ferramentas muito usadas Essa é uma das aplicações mais fa-
de relatórios dos testes, de cobertura e para desenvolvimento são as seguintes: mosas para integração contínua, man-
de análise estática do código; e quaisquer Subversion, CVS, Clear Case. tida e desenvolvida por voluntários
outras atividades necessárias. Exemplos Para realizar a integração contínua, é dispostos a melhorar e disponibilizar
de ferramentas de build usadas hoje em importante utilizar um sistema de con- novas funcionalidades. A aplicação
dia são: Ant, Maven 1, Maven 2, NAnt, trole de versões. Caso não haja um sis- permite que builds sejam executados
entre outras. tema desse tipo, torna-se difícil permitir a partir de diferentes ferramentas, a

Edição 07 - Engenharia de Software Magazine 21


Instalação de analisar de forma unificada como foi
Pré-requisito: Considerando a linguagem Java, instale o JDK 5.x ou superior. a execução dos builds e em que pontos
Acesse o link http://cruisecontrol.sourceforge.net/download.html, e a seguir escolha a versão que deseja. Atualmente, dois foram realizados tais testes.
formatos de instalação são oferecidos: “.exe” e “.zip”. O exemplo a seguir apresenta parte de
um arquivo config.xml responsável por
definir um projeto chamado “project1”
que terá seu build executado por um ant
(<ant>). Nesse exemplo são definidos
três pontos: (i) o arquivo de log gerado
pelo Cruise Control faz um merge com
os testes feitos em junit (<log>), (ii)
toda vez que o arquivo mof_file.txt for
modificado o cvs é acessado (<modi-
ficationset>), (iii) e as notificações das
execuções serão realizadas via e-mail.
Toda vez que for executado um build, o
e-mail desenvolvimento@gmail.com rece-
be as informações do build realizado,
já o e-mail suporteles@gmail.com recebe
e-mail somente quando um build gera
alguma falha.

<cruisecontrol>
...
<property name=”projectdir”
value=”${env.CCDIR}/checkout/
${project.name}”/>
<property name=”testdir”
value=”${projectdir}/build/
junit-reports”/>
...
<project name=”project1”/>
Figura 2. Página JSP para notificação. ...
<log>
<merge dir=”${testdir}”>
</log>
integração com diferentes controles de ferramenta permite que caso o projeto
<modificationset quietperiod=”1” >
versão, além de realizar notificações de tenha sofrido mudanças no repositório, <compound
includeTriggerChanges=”false”>
diferentes formas, quando, por exem- a última versão seja utilizada para a <triggers>
<filesystem
plo, alguma falha acontece durante a execução do seu build. Caso aconte- folder=”./mod_file.txt” />
execução de um job. çam falhas durante um build, o Cruise </triggers>
<targets>
Cruise Control é dividido em três Control permite que seja definido se <cvs cvsroot=”:pserver:
user@cvs_repo.com:/cvs” />
partes principais: (i) configuração do sua execução deve continuar ou se deve </targets>
</compound>
build dos projetos em um arquivo xml ser cancelada. </modificationset>
chamado “config.xml”, (ii) geração de Outras funcionalidades interessantes
<schedule>
relatórios que descrevem o que aconte- que podem ser definidas é a possi- <ant
antscript=”C:\Java\
ceu na execução de builds, (iii) além de bilidade de excluir arquivos gerados apache-ant-1.6.1\bin\ant.bat”
permitir o acompanhamento do status em execuções anteriores de um build antworkingdir=”D:\
workspace\MyProject”
dos builds de diferentes projetos a partir (exemplo: arquivos de log), assim como buildfile=”MyProject-build.xml”
uselogger=”true”
de uma página web (dashboard). especificar qual será o diretório que os usedebug=”false”/>
</schedule>
Quando algum desenvolvedor deseja novos artefatos a serem gerados serão
executar o build de um projeto, o pri- armazenados em futuras execuções. <publishers>
<htmlemail>
meiro passo é configurar a sua execução Podem ser guardados tanto localmente, <always
address=”desenvolvimento@gmail.com”>
no arquivo config.xml. Diversos tipos como também em diretórios remotos (ex: <failure
address=”suporteles@gmail.com”>
de tags são oferecidos para que seja FTP). Uma funcionalidade diferenciada </htmlemail>
possível definir qual sistema de build é a possibilidade de realizar um merge </publishers>
</project>
será usado (Ant, Maven, Maven2, NAnt de um log gerado pelo próprio Cruise
</cruisecontrol>
ou Phing) e qual controle de versão Control com os resultados obtidos de
(AccuRev, AlienBrain, ClearCase, CVS, um build que realiza testes unitários Outro ponto importante oferecido
Perforce, PVCS, StarTeam, Subversion com JUnit utilizando o sistema Ant. A é o serviço de notificação. Toda vez
ou Visual Source Safe). Além disso, a utilidade desse merge é a oportunidade que acontece uma execução de um job,

22 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto

diferentes formas de notificações podem Instalação


ser realizadas, como: e-mail, weblog, Pré-requisito: Considerando a linguagem Java, instale o JDK 5.x ou superior.
Yahoo IM Message, geração de uma pá- Acessar o link http://continuum.apache.org/download.html, realizar o download da versão desejada, descompactá-la em
gina em html ou jsp, assim como ilustra- um diretório local, e a seguir executar a aplicação. Caso esteja usando o Windows, o arquivo que deve ser executado é o ”...\
do na Figura 2. Perceba que a notificação continuum-1.1\bin\windows-x86-32\run.bat”.
desempenha o papel de um relatório
responsável por apresentar o que acon- é toda realizada em XML, a curva de
teceu durante alguma execução. aprendizado pode ser grande em com-
Para que seja possível acompanhar paração a ferramentas de integração
o status dos projetos configurados contínua que permitem tais configu-
no config.xml, é oferecido o Cruise rações a partir de páginas web. Outra
Control Dashboard que vem a ser uma desvantagem é em relação ao dashboard
página web que permite acompanhar (página web) apresentado, pois caso
a execução dos jobs. O resultado de o arquivo config.xml seja alterado em
cada job é representado por ícones que algum instante, a página web não é
representam o status: pausado, em fila alterada automaticamente, ou seja, há a Figura 3. Cruise Control Dashboard.
ou em execução. Na Figura 3 é apresen- necessidade de atualizar a página (clicar
tado um exemplo de projeto que teve no botão de refresh do browser), para
seu build executado com sucesso e que que tais mudanças sejam percebidas.
a seguir foi armazenado (queued) para
manter o histórico de execuções do Continuum
projeto. Esse histórico pode ser acessa- Outra ferramenta de bastante sucesso
do a partir da opção Builds apresentada e que tem sido utilizada por diversas Figura 4. Detalhe dos builds.
na Figura 4. Perceba que quando um equipes de desenvolvimento é o Conti-
projeto já foi executado diversas vezes, nuum. Assim como o Cruise Control, o
seu historio é guardado (Latest Builds), Continuum funciona como um servidor
permitindo que o usuário possa clicar para integração contínua. No entanto, foi
em qualquer build e analisar o que desenvolvida pela equipe da ferramenta
aconteceu em cada execução, como, por Maven, sendo considerada a ferramenta
exemplo, se houve sucesso ou falha e default para projetos que trabalhem com Figura 5. Criar usuário administrador.
quais modificações aconteceram em Maven1 e Maven2.
relação à execução anterior. Para facilitar a gerência dos projetos
O Cruise Control oferece suporte que terão seus builds executados, é (Maven2, Maven, Ant e Shell Script), as-
para três linguagens de programação: oferecida uma página web bastante sim como diferentes controles de versão
Java, Ruby/Rails e .NET. Além disso, a amigável, que pode ser executada tanto (Subversion, CVS, Starteam, Clearcase,
ferramenta pode ser executada tanto no em Windows, Debian, Fedora Core, Mac Perforce, bazaar e Visual Source Safe).
Windows como no Unix. OS X e Solaris. A partir dela podem Outra funcionalidade importante são
Como a configuração dos projetos ser usados diferentes sistemas de build as formas de notificar pessoas sobre as

Edição 07 - Engenharia de Software Magazine 23


Instalação Para permitir um maior controle e
Pré-requisito: Considerando a linguagem Java, instale o JDK 5.x ou superior. organização no acompanhamento dos
Acessar o link https://hudson.dev.java.net/servlets/ProjectDocumentList, realizar o download da versão desejada, e projetos, o Continuum oferece a pos-
descompactá-la em um servidor web, como, por exemplo, Tomcat 5.x. Quando o servidor for executado, acesse, por exemplo, a sibilidade de criar grupos de acesso ao
página a partir do link http://localhost:8080/hudson. sistema. Dessa forma, podemos especi-
ficar quais permissões de acesso cada
usuário terá, como:
• Adicionar projetos.
• Editar projetos.
• Excluir projetos.
• Executar builds.
• Adicionar definições de job (ex: build),
isto é, configurações relacionadas, como,
por exemplo, linha de comandos e argu-
mentos necessários para sua execução.
• Excluir definições de job.
• Adicionar notificações (avisar por
email, por exemplo, um grupo de pes-
Figura 6. Configurações gerais dos projetos.
soas sobre a execução de um build).
• Editar notificações.
execuções dos jobs: e-mail, IRC (Internet • Excluir notificações.
Relay Chat), Jabber (protocolo aberto • Gerenciar escalonadores, isto é,
baseado em XML) e MSN. definir de quanto em quanto tempo
Assim que a instalação do Continuum é um job deve ser executado, ou talvez
realizada e sua execução é feita pela pri- definir a hora, dia e ano que deseja
meira vez, a primeira etapa é criar uma realizar sua execução.
Figura 7. Adicionar Projeto do tipo Ant. conta admin, como ilustrado na Figura • Permitir a gerencia de grupos de
5. Após a criação do login, será possível acesso para usuários.
realizar as configurações gerais dos
projetos que terão seus jobs executados. Referente a testes, o Continuum dis-
Tais informações, que serão usadas como ponibiliza relatórios de testes unitários
default para todos os outros projetos a gerados a partir das ferramentas Maven
serem incluídos, devem ser fornecidas 1 ou Maven 2. Essa é uma das caracterís-
no formulário apresentado na Figura 6. ticas não presente no Cruise Control.
A partir das configurações realizadas,
projetos usando diferentes ferramentas Hudson
de build podem ser adicionados, como, Hudson, criado pelo engenheiro da
por exemplo, projetos do tipo Ant, Maven Sun Microsystems Kohsuke Kawagu-
Figura 8. Apresentação dos projetos em 2, etc. Veja um exemplo na Figura 7. chi, é uma ferramenta para integração
acompanhamento. Quando os projetos já estiverem adi- contínua que monitora a execução de
cionados, o usuário poderá executá-los trabalhos repetidos, como o build de um
e acompanhá-los quantas vezes quiser. projeto, assim como o Cruise Control e
Na Figura 8 é apresentada uma página o Continuum. Através de uma interface
que permite acompanhar os jobs que es- amigável, torna-se fácil acompanhar o
tão sendo gerenciados, enquanto que na estado de cada build. Além disso, permite
Figura 9 o histórico dos jobs executados o trabalho colaborativo com diversos
por projeto é apresentado. Já na Figura tipos de sistemas de controle de versão
10 todos os arquivos que fizeram parte (CVS e Subversion), e sistemas de build
do último job são apresentados e dispo- (Ant, Maven 1, Maven 2, Shell Script e Ba-
nibilizados para que os usuários possam tch command do Windows). Assim como
Figura 9. Histórico dos builds realizados em
acessá-los a partir de um clique. as outras ferramentas de integração, o
um projeto.

24 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
ProjEto

Hudson também provê suporte para no-


tificações das execuções dos jobs através
de e-mail, RSS e IM Integration.
A página que permite a gerência da
execução dos jobs é de fácil entendimento
e de fácil instalação. Na Figura 11 é apre-
sentada a página inicial para a criação de
um novo job. Percebe-se cinco diferentes
opções, dentre elas a criação de um job
para um projeto que utilize Maven 2.
Para exemplificar uma criação de job,
selecionamos a opção “Build a free-style
software project” e informamos o nome
“gestão”. A seguir, diversas opções são
apresentadas, assim como apresentado
na Figura 12. Observe que podemos
especificar em qual repositório está o
projeto desejado. Com isso, a ferramenta
procura o “build.xml” do projeto e o
executa de forma automática. Outras Figura 10. Arquivos usados na última execução de um build.
opções interessantes, como, por exemplo,
gerar um link que permita acesso ao
javadoc do (opção “Publish Javadoc”) são
apresentadas. Para cada opção perceba
que há um ponto de interrogação ao
lado responsável por explicar qual sua
finalidade. Assim que as configurações
são salvas, os usuários poderão execu-
tar o job e visualizar seu histórico de
execuções quantas vezes quiserem. Um
dos poucos pontos que a ferramenta não
trata é a ausência de um controle de aces-
so por usuário, assim como é oferecido
pelo Continuum.
Observe que na Figura 13 é apresentada
uma página com todos os projetos cadas-
trados no sistema, além de informações
úteis, como, por exemplo, quando foi
sua última execução e quando aconteceu
sua última falha. A interface torna-se
ainda mais atrativa, pois dependendo
da quantidade de sucessos ou falhas
presentes nas execuções de cada projeto,
Figura 11. Tipos de jobs que podem ser criados.
uma imagem condizente é apresentada
ao lado (ex: tempo chuvoso, sol, etc).
Outro ponto interessante apresenta- JUnit e TestNG. Tais relatórios podem ser
do na Figura 14 é a possibilidade de tabulados, sumarizados e indicados com
acompanhar em tempo real a execução informações de histórico, como o início
dos builds. Ao final da execução, caso da execução do job correspondente. Outra
deseje gerar um arquivo de texto com funcionalidade interessante é a criação
as informações apresentadas durante de um gráfico descrevendo o percentual
o build, basta selecionar a opção “View de builds executados com sucesso e falha
as plain text”. em relação a algum projeto. Na Figura
Em relação a testes, o Hudson oferece 15 é apresentado um exemplo com dois
suporte para geração de relatórios usando builds (“count” igual a 2) executados com Figura 12. Formulário de criação de um job.

Edição 07 - Engenharia de Software Magazine 25


Figura 15. Gráfico de erros de um projeto.

sucesso. As identificações dos builds, #1 e


#5, foram geradas pelo próprio Hudson.
Observe que no gráfico, dois testes são
executados no build #1 enquanto que
no build #5 nenhum deles é executado.
Isso aconteceu devido o código fonte não
sofrer alterações.
Além das vantagens mencionadas, o
Hudson permite sua extensão a partir
de plug-ins, como, por exemplo, o uso
do JIRA plug-in. JIRA é um programa
de gestão de projetos e acompanha-
Figura 13. Jobs cadastrados e seus status atuais.
mento de tarefas e erros. A partir dele,
issues descrevendo falhas em execução
podem ser criadas. Pensando nisso, o
JIRA plug-in foi criado para permitir
que novas issues sejam criadas quando
falhas acontecerem em algum build.
Essa característica de extensão da fer-
ramenta de integração contínua a partir
de plug-ins também está presente no
Cruise Control.
Devido às facilidades citadas, o Hudson
torna o trabalho de gerenciamento dos
projetos fácil e particularmente agradável.
Para maiores detalhes visite o site da ferra-
menta apresentado no final do artigo.

Comparação das Ferramentas


Visando facilitar a comparação das
ferramentas de integração contínua
mencionadas, na Tabela 1 é apresen-
tado um resumo das suas principais
características. A partir do estudo
Figura 14. Console de acompanhamento de um build. realizado percebeu-se que o Cruise

26 Engenharia de Software Magazine - Ferramentas de Integração Contínua tornando o Trabalho de Equipes mais Organizado
Projeto

Control é dentre as três, aquela que por exemplo, suporte para testes utili- compostas por desenvolvedores. Tais
oferece mais funcionalidades, enquan- zando JUnit e TestNG. ferramentas permitem que projetos
to que o Continuum oferece maior tenham seus builds executados, realize
suporte para projetos que trabalham Conclusão controles de versão, acompanhe testes
com Maven 1 e Maven 2, e o Hudson Nesse artigo foram apresentadas três executados, realize notificações sobre
apresenta a interface web mais amigá- ferramentas de integração contínua as execuções, especifique data e horário
vel para uso, além de oferecer diversas amplamente usadas no mercado e que que um build deve ser executado auto-
funcionalidades interessantes, como, ajudam a organizar trabalhos de equipes maticamente, etc.
Em diversas situações torna-se uma dor
Links de cabeça para equipes de desenvolvimen-
to a integração dessas funcionalidades
Cruise Control Site Apache Maven Project Site para a gerência de um ou mais projetos.
http://cruisecontrol.sourceforge.net/ http://maven.apache.org/
Assim, uma ótima solução é o uso das
Apache Continuum: Continuous integration and Build Server Site The Apache Ant Project Site ferramentas de integração contínua.
http://continuum.apache.org/ http://ant.apache.org/

Hudson: an Extensible Continuous Integration Engine Site Apache Maven Project Site
https://hudson.dev.java.net/ http://maven.apache.org/ Dê seu feedback sobre esta edição! Feedback
eu

s

Artigo “Integração Contínua”,escrito por Vinícius Manhães Teles CVS – Concurrent Versions System
A Engenharia de Software Magazine

sobre e
http://www.improveit.com.br/xp/praticas/integracao http://www.nongnu.org/cvs/
tem que ser feita ao seu gosto.

s
ta
Integração Contínua: Desenvolvimento Ágil Subversion Para isso, precisamos saber o que você,
edição

http://devagil.wordpress.com/2007/04/14/4611-integracao- http://subversion.tigris.org/
continua/
leitor, acha da revista!
Extreme Programming> A Gentle Introduction Dê seu voto sobre este artigo, através do link:
JUnit http://extremeprogramming.org/
http://www.junit.org/ www.devmedia.com.br/esmag/feedback

Cruise Control Continuum Hudson

Linguagens de programação que oferece suporte. Java, Ruby/Rails e .Net Java Java
Sistemas Operacionais. Windows e Unix Windows e Unix Windows e Unix

Ferramentas de build. Ant, NAnt, Maven 1, Maven 2, Shell Script Maven 2, Maven 1, Ant e Shell Script. Maven 2, Maven 1, Ant, Shell Script e Batch command
do Windows.
(i) Oferece suporte para JUnit e TestNG; (ii) gera
Realiza um merge dos testes gerados pelo JUnit Gera documentação de testes para projetos relatórios de testes, que podem ser tabulados, su-
Suporte para testes. de um Ant com um arquivo de log gerado pelo que usam Maven 1 e Maven 2. marizados e indicados com informações de histórico;
Cruise Control. (iii) criação de um gráfico contando detalhes de cada
teste na documentação.
(i) Especificar se ao encontrar uma falha no (i) Disponibilizar relatórios de testes (i) Integração com geração de Javadoc; (ii) definir onde
build, continua ou para a execução; (ii) atuali- unitários; (ii) criação de grupos de acesso; os arquivos empacotados (ex: .war, .jar), criados a partir
Funcionalidades interessantes. zar o arquivo de build de um projeto através de (iii) acompanhamento em tempo real da execução de algum build, devem ser armazenados,
um repositório, antes de sua execução; (iii) da execução de um build através de um (iii) acompanhamento em tempo real da execução de
console, etc. um build através de um console, etc.
Configuração realizada em um arquivo xml. Configuração realizada em um arquivo
Configuração dos projetos. Curva de aprendizado inicial pode ser maior xml. Curva de aprendizado inicial pode ser Configuração realizada em uma interface amigável.
que o normal, no entanto, depois a configura- maior que o normal, no entanto, depois a
ção se torna-se fácil. configuração se torna-se fácil.
AccuRev, AlienBrain, ClearCase, CVS, Perforce, Clearcase, CVS, Local, Perforce, Starteam,
Ferramentas de controle de versão. PVCS, StarTeam, Subversion, Visual Source Subversion, Visual Source Safe. CVS e Subversion.
Safe.
Formas de extensão. Código fonte fornecido para extensões. - Código fonte fornecido para extensões
Possibilidade de utilizar plugins. Possibilidade de utilizar plugins.

Formas de notificação. Email, Weblog, Yahoo IM message, Html, JSP. Email, IM (IRC, Jabber, MSN). Email, RSS, IM Integration.
Tabela 1. Tabela comparativa das ferramentas de integração contínua.

Edição 07 - Engenharia de Software Magazine 27


Avaliação Heurística de Web Sites
Identificação de Problemas de Usabilidade

De que se trata o artigo: produto de software durante e ao final do


Identificação de problemas da usabilidade processo de desenvolvimento..
em Web sites utilizando o método de ava-
liação heurística (visto na edição anterior) Em que situação o tema é útil:
vinculando esses problemas às heurísticas Além de ser considerada uma boa prática de
e sugerindo correções no projeto. avaliação, permite ao engenheiro de softwa-
re, ou avaliador, identificar problemas de usa-
Para que serve: bilidade antes de apresentar o produto (Web
Prover uma técnica de baixo custo para site) aos usuários. camente todos os portais
avaliação da usabilidade de Web sites para de informação, entretenimento etc. possuem
identificar problemas de usabilidade no seus links RSS para leitura rápida.
Antonio Mendes da Silva Filho
antoniom.silvafilho@gmail.com
Professor e consultor em área de tecnologia da
informação e comunicação com mais de 20 anos

U
de experiência profissional, é autor do livros Ar-
quitetura de Software e Programando com XML,
m requisito essencial no pro- para identificar problemas de usabilidade
ambos pela Editora Campus/Elsevier, tem mais jeto da interface de usuário de que, geralmente, comprometem o bom
de 30 artigos publicados em eventos nacionais sistemas de software e, especifi- uso e desempenho de usuários.
e internacionais, colunista para Ciência e Tecnolo- camente, em web sites é prover usuários
gia pela Revista Espaço Acadêmico com mais de
60 artigos publicados, tendo feitos palestras em
com facilidade de uso de modo que o Usabilidade de Web Sites
eventos nacionais e exterior. Foi Professor Visitan-
usuário possa rapidamente encontrar a Os projetistas de interface consideram
te da University of Texas at Dallas e da University informação buscada ou realizar uma tare- recomendações de projeto de interfaces
of Ottawa. Formado em Engenharia Elétrica pela fa. Fazer isso implica em tornar a interface e heurísticas de usabilidade durante o
Universidade de Pernambuco, com Mestrado em intuitiva oferecendo suporte à usabilida- projeto de sistemas de software e, em
Engenharia Elétrica pela Universidade Federal de. Este artigo explora o uso da avaliação específico, de web sites. Diferentes perfis
da Paraíba (Campina Grande), Mestrado em En-
genharia da Computação pela University of Wa-
heurística como método de inspeção da de usuários impõem dificuldade adicio-
terloo e Doutor em Ciência da Computação pela usabilidade de web sites. O objetivo do nal no projeto de interfaces devido à ne-
Univesidade Federal de Pernambuco. artigo é usar um conjunto de heurísticas cessidade de tornar a interface intuitiva

28 Engenharia de Software Magazine - Avaliação Heurística de Web Sites


ProjEto

para a ampla variedade de usuários. • Visibilidade do estado do sistema – Prover o usuário de feedback apropriado.
Os seres humanos possuem uma
ampla variedade de habilidades que • Casamento do sistema com o mundo real – Utilizar termos, objetos e conceitos familiares
os diferenciam uns dos outros. Essas à linguagem do usuário.
diferenças podem ser categorizadas
• Controle e liberdade de escolha do usuário – Oferecer recursos como Undo que permita o
em termos culturais, idade, gênero, usuário desfazer ações realizadas e retornar, por exemplo, a revisão anterior de um documento.
personalidade, habilidades cognitivas,
entre outros. Quando se fala em prover • Consistência e aderência a padrões – Seguir recomendações dadas em guidelines e guias
usabilidade, o foco recai, principal- de estilo, visando prover suporte à consistência.
mente, sobre as habilidades cognitivas
• Prevenção de erros – Identificar e eliminar situações que possam levar a erros do usuário.
e sensoriais dos usuários, isto é o que
torna a realização de uma tarefa ser algo • Flexibilidade e eficiência de uso – Considerar a diversidade de usuários (novatos e
simples e intuitivo. experientes), provendo mecanismos apropriados, como o uso de teclas de atalho, ícones e
Note que a usabilidade é uma ca- menus.
racterística através da qual o usuário
• Estética e projeto minimalista - Não adicionar informações desnecessárias ou raramente
percebe quão intuitivo e fácil de usar utilizadas, que competem com informações relevantes.
é um produto como, por exemplo, um
web site, e expressa sua satisfação no • Prover ajuda aos usuários de reconhecimento, diagnóstico e recuperação de erros –
uso deste site. Usabilidade resulta em Mensagens de erro devem ser construtivas, sugerindo solução para o usuário.
simplicidade e agilidade.
• Ajuda e documentação – Prover documentação e recursos de ajuda, facilitando a busca e
Projet i sta s de i nterface e, espe - com foco nas tarefas do usuário.
cificamente, de web sites conside-
ram recomendações e heurísticas de Figura 1. Heurísticas de Usabilidade propostas por Jakob Nielsen.

Figura 2. Exemplo de renovação de empréstimo em aplicação Web.

Edição 07 - Engenharia de Software Magazine 29


usabilidade durante o projeto. As
heurísticas compreendem conjunto de
diretrizes, geralmente, que formam o
conhecimento sobre para o tratamento
de determinado problema. Essas heu-
rísticas servem de critério na avaliação
da usabilidade de um web site, como
discutido neste artigo.

Figura 3. Tela da aplicação após renovação de empréstimo. Heurísticas de Usabilidade


Heurísticas de usabilidade são prin-
cípios resultantes da experiência e,
geralmente, aceitos que são aplicados
no desenvolvimento de sistemas inte-
rativos. Elas também são empregadas
durante a avaliação de produtos como
web sites.
Este artigo faz uso de um conjunto de
dez heurísticas, referenciados no quadro
de links, propostas por Jakob Nielsen
Figura 4. Exemplo de feedback não adequado. para o projeto de interface de usuário.
Essas dez heurísticas de usabilidade,
consideradas como princípios para o
projeto de interface de usuário, são
apresentadas na Figura 1.
As heurísticas apresentadas na Figura
1 servem a uma ampla variedade de sis-
temas de software. A seção seguinte faz
uso dessas heurísticas para identificar
problemas de usabilidade em sites. O
Figura 5. Exemplo de casamento não adequado com o mundo real objetivo aqui é apenas o de identificar
problema de usabilidade (que pode
comprometer a facilidade de uso e de-
sempenho de usuários) quando usando
um site. O leitor é referenciado ao ar-
tigo que trata do método de avaliação
heurística, publicado na edição anterior
dessa revista.

Avaliação Heurística de Web Sites


A avaliação heurística é um método de
avaliação de usabilidade de sistemas e
produtos como, por exemplo, web sites
que permite o avaliador detectar proble-
mas de usabilidade. Esses problemas,
em geral, estão relacionados com algu-
ma das dez heurísticas de usabilidade
apresentadas anteriormente ou outra
Figura 6. Resposta a ação de buscar recomendação de projeto de empresas

30 Engenharia de Software Magazine - Avaliação Heurística de Web Sites


ProjEto

Figura 7. Opções de navegação em site de busca.

(Apple, Microsoft e Sun Microsyste-


ms) destacados em links deste artigo.
Problemas vinculados às heurísticas
destacadas na Figura 1 são apresentados
a seguir.

Visibilidade do estado do sistema


Qualquer usuário quando se encontra
utilizando um Web site precisa ter um
feedback adequado do que está acontecen-
do (isto é, da tarefa que está executando),
pois do contrário este usuário ficará
confuso sem saber se a tarefa que estava
realizando foi terminada com sucesso
ou não. Mesmo quando a tarefa não é
Figura 8. Uso inadequado do “Clique aqui”.
encerrada com sucesso, ainda assim o
usuário precisa de um feedback. Considere
a Figura 2 que ilustra parte de uma aplica-
ção Web que permite ao usuário renovar
remotamente livros emprestados de um
biblioteca. O lado esquerdo da figura
destaca duas caixas do tipo checkbox que
permite o usuário selecionar para renova-
ção de empréstimo. Além disso, no canto
inferior esquerdo, há um botão no qual o
usuário clica para efetuar a renovação.
Após a renovação dos livros, a aplica-
ção mostra o conteúdo exibido na Figura
3, onde o usuário é informado que os
títulos foram renovados e a nova data Figura 9. Uso da janela de “Busca” em site de conteúdo.
de devolução.
Observe que o usuário tem a opção de de que o e-mail foi enviado. O usuário tenha sido enviado a ele. Um único feed-
imprimir um comprovante, ter um com- apenas saberá se um comprovante foi back dado ao usuário é a desabilitação do
provante enviado para seu e-mail cadas- enviado se ele acessar seu cliente de botão “Enviar recibo por e-mail”.
trado ou voltar à tela anterior. Entretanto, e-mail para checar pela referida mensa-
se o usuário optar pelo envio de e-mail o gem. Portanto, a aplicação não fornece Casamento do sistema com o
botão é desabilitado, como ilustrado na qualquer feedback ao usuário de modo mundo real
Figura 4, mas nenhuma informação adi- que ele possa saber (com certeza) de um No projeto de interfaces e de sites, o
cional é dada ao usuário, informando-o e-mail contendo comprovante do recibo projetista deve fazer uso de termos,

Edição 07 - Engenharia de Software Magazine 31


Figura 10. Resultado exibido na busca do site de conteúdo.

5, não permite qualquer ação do usuá-


rio, já que esse ícone está desabilitado.
Usuários tentam clicar no referido ícone
sem terem sucesso. Além disso, o botão
“DETALHAR” leva o usuário para ou-
tra tela na qual ele pode detalhar uma
busca, enquanto que o botão “BUSCAR”
traz como resultado um conjunto de
imóveis, mesmo que o usuário não te-
nha especificado qualquer coisa, como
mostra a Figura 6.
O problema destacado neste site é o uso
de objetos (ícones) desabilitados que não
permite ação do usuário. Note que o usu-
ário poderia ter duas opções (busca rápida
ou busca detalhada). Esse não casamento
com o mundo real, ou seja, aquilo que seria
esperado pelo usuário (de modo mais in-
tuitivo), força-o a descobrir como poderia
Figura 11. Localização inadequada do mapa do site. obter a informação desejada.

Controle e liberdade de escolha do


conceitos, objetos (como, por exemplo, usuário
ícones) familiares à linguagem do usu- As interfaces de usuário de sistemas
ário de modo a tornar mais intuitivo o de software devem possibilitar o usu-
significado das palavras e figuras. Isto ário desfazer ações que tenham reali-
permite ao usuário identificar mais zado sempre que necessário. No caso
facilmente como e onde realizar a tarefa de Web sites, por exemplo, o usuário
desejada. Considere a Figura 5 que ilus- deve ter a liberdade de escolha ou de
tra parte de um site de uma imobiliária. navegação no site, sem que a ele seja
Esta parte destacada captura uma das imposta qualquer restrição de sair do
funcionalidades do site que permite a site. Essa não é uma boa prática de
busca de imóveis. projeto, pois isso muitas vezes irrita o
O ícone da lupa, destacado na Figura usuário, que tenta voltar ou retornar ao

32 Engenharia de Software Magazine - Avaliação Heurística de Web Sites


ProjEto

Figura 12. Mapa do site sem texto explicativo.

site anterior que o redirecionou, mas


sem sucesso.
Adicionalmente, o projetista pode adicio-
nar recursos (botões na interface) que pos-
sibilita o usuário mais facilmente navegar
numa página ou num conjunto de páginas
resultantes de um processo de busca como
ilustrado na Figura 7 que ilustra parte de
um site de busca. O mesmo pode ser feito
em site de conteúdo que contém ícones ou
botões que permitem o usuário retornar
para a página principal.

Consistência e aderência a padrões


Uma boa prática de projeto de interfa-
ce de usuário é seguir as recomendações
de projeto, também conhecidas como Figura 13. Mapa do site sem texto explicativo.

Edição 07 - Engenharia de Software Magazine 33


Figura 14. Falta de mapa do site como recurso de ajuda.

user interface guidelines. Observe que é este exemplo, o projetista poderia ter utilizando-se de palavras de conteúdo
natural aos usuários ficarem confusos usado apenas o texto “Consulte imóveis já apresentado no próprio site, ainda
quando eles se deparam com situações para aluguel”. No entanto, ele faz o uso assim nada é retornado. Apenas será
de inconsistências no projeto da inter- não recomendado do termo “Clique aqui exibido um grande espaço em branco
face. Portanto, isso deve ser evitado. e consulte imóveis para aluguel”. sem qualquer conteúdo, como mostrado
Usuários retornam ou recomendam na figura.
um Web site quando eles são capazes Prevenção de erros Cabe destacar que nem sequer é dada a
de facilmente localizar as informações Os projetistas de interface devem pre- informação ao usuário de que o site não
procuradas e quando há consistência venir erros de usuários. Para tanto, eles tem qualquer informação daquele con-
na forma em que o conteúdo do site é procuram identificar e eliminar situa- teúdo buscado. Se essa funcionalidade
apresentado aos usuários. ções que possam levar os usuários a co- não está disponível, o usuário deveria
Considere, como exemplo, uma reco- meterem erros. Considere, por exemplo, ser informado, visando evitar esse tipo
mendação conhecida que sugere o pro- a Figura 9 que ilustra parte de um site de situação.
jetista evitar fazer uso do termo “Clique de conteúdo com diversas informações.
aqui” como âncora para links. Esse é um O site contém uma janela que permite Flexibilidade e eficiência de uso
problema menor de usabilidade, já que ao usuário efetuar uma busca como Os projetistas de Web sites devem
apenas um texto curto representativo do destacado na figura. considerar a diversidade de usuários
conteúdo deveria ser usado como âncora Contudo, ao digitar qualquer palavra(s) que compreendem novatos e experien-
para um link. Um exemplo desse pro- para consulta, nada é retornado ao tes. Dessa forma, recomenda-se prover
blema é encontrado na página de uma usuário, como ilustrado na Figura 10. os usuários com maior flexibilidade
imobiliária mostrada na Figura 8. Para E, se quaisquer outras palavras, mesmo nas formas de acesso às informações e

34 Engenharia de Software Magazine - Avaliação Heurística de Web Sites


Projeto

funcionalidades. Pode-se destacar, em é um exemplo do que não se deve fazer essencial a sites que contêm grande
locais mais proeminentes da interface, em termos de uso cores, da enorme quantidade de informações. Embora
a localização de objetos de interação quantidade de informações (competin- o usuário pudesse pensar e checar o
como ícones e botões de acesso a fun- do pela atenção do usuário) e uso de ícone contendo um sinal de + no canto
cionalidades. A Figura 11 ilustra parte ícones nada representativos. superior direito do site, como mostra-
de um site de uma instituição de ensino do na figura. Esse ícone é usado para
na qual o usuário não encontra o mapa Prover ajuda aos usuários para busca avançada.
do site facilmente. Geralmente, o mapa reconhecimento, diagnóstico e
do site é posicionado no canto superior recuperação de erros Comentários Finais
direito da interface. Após observar todo Usuários precisam ser informados de As heurísticas de usabilidade apre-
o site, o usuário poderá encontrar o mapa maneira adequada em situações de erro sentadas neste artigo tratam de pro-
do site no canto inferior esquerdo em e indisponibilidade de serviços. Esse blemas de usabilidade que podem ser
local não proeminente, como destacado tipo de mensagem deve ser fornecida encontrados em Web sites, como em
na figura. ao usuário visando orientá-lo de como outros produtos. Essas heurísticas
Vale ressaltar que o projetista colocou proceder numa situação de erro ou servem como recomendações e, por-
um ícone e ao lado o título indicativo notificando-o quando da não disponi- tanto, requer a atenção do projetista
da funcionalidade, visando facilitar o bilidade de serviço. Um exemplo disso no desenvolvimento de interface de
entendimento do significado do ícone, foi mostrado na Figura 10 onde nenhum um Web site ou outro produto. As
que nem sempre é intuitivo. conteúdo da busca é retornado e qual- heurísticas estão diretamente rela-
Isso, contudo, não foi considerado pelo quer outra mensagem é dada ao usuário cionadas a necessidades do usuário
projetista do site, mostrado na Figura 12. informando-o da indisponibilidade do quando interagindo com uma apli-
Este Web site de outra instituição não apre- serviço de busca. cação. Con siderá-las no projeto é
senta qualquer rótulo ou pequeno texto manter o foco no usuário. Utilizar
explicativo para o referido ícone, indicado Ajuda e documentação essas heurísticas na avaliação é dar
na Figura 12. Se um rótulo fosse adiciona- Prover recursos de ajuda que facili- oportunidade ao avaliador de checar
do ou se uma janela com texto explicativo tem o acesso a informações e funcio- se a usabilidade está sendo suportada
fosse apresentada ao usuário quando ele nalidades em uma aplicação ou Web e também fornecer a oportunidade de
posicionasse o mouse sobre o referido site é uma necessidade. Isso pode ser corrigir problemas identificados.
ícone, ele teria um melhor compreensão na forma de documentação de aju-
do Web site e poderia mais facilmente da como em “respostas a perguntas
localizar a informação procurada. freqüentes”, também conhecida com Dê seu feedback sobre esta edição! eu
Feedback

FAQ (Frequently Asked Questions), ou

s

A Engenharia de Software Magazine
Estética e projeto minimalista

sobre e
em mapas de sites. É uma boa prática
tem que ser feita ao seu gosto.
Simplicidade é uma palavra chave no manter um foco nas tarefas que o usu-

s
ta
edição
Para isso, precisamos saber o que você,
projeto de interface de usuário e, para ário pode precisar e, portanto, prover
leitor, acha da revista!
isso, os projetistas devem considerar o esses recursos de apoio.
Dê seu voto sobre este artigo, através do link:
projeto minimalista, no qual ele coloca A Figura 14 mostra parte de um site
apenas no primeiro plano (isto é, na de uma instituição de ensino que não www.devmedia.com.br/esmag/feedback
página principal) as informações mais fornece o recurso de mapa do site,
relevantes. Essa prática é recomenda-
da porque tudo o que é colocado em Links
primeiro plano, ou na página princi-
Heuristics for User Interface Design
pal, compete pela atenção do usuário.
http://www.useit.com/papers/heuristic/heuristic_list.html
Portanto, recomenda-se não adicionar
informações desnecessárias ou rara- Design Guidelines for the Web
mente utilizadas ou consultadas pelos http://www.usabilitynet.org/tools/webdesign.htm
usuários, pois estas competem com Apple Computer, Inc., Introduction to Apple Human Interface Guidelines
informações relevantes. http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/chapter_1_section_1.html
Um exemplo disso é mostrado na
Sun Microsystems, Inc., Java Look and Feel Design Guidelines http://java.sun.com/products/jlf/ed1/dg/higtoc.nf.htm
Figura 13 que ilustra parte de um site
no qual há um excesso de informações NASA Goddard Space Flight Center - Usability Engineering Center – Handbook for Designing a Usable Web Site
e essas são distribuídas de maneira http://software.gsfc.nasa.gov/AssetsApproved/PA2.3.1.2.pdf
desordenada, além de uso excessivo de
Usability.gov
cores. E, observe que a figura mostra
http://www.usability.gov/
apenas parte do conteúdo do site. Isso

Edição 07 - Engenharia de Software Magazine 35


Teste de Desempenho de Aplicações Web com
Apache JMeter

De que se trata o artigo: e possibilita a visualização dos resultados


Esse artigo apresenta a configuração e para avaliação do desempenho por meio de
utilização da ferramenta Apache JMeter, gráficos e tabelas.
capaz de executar testes de desempenho
Vinícius Rodrigues de Souza em sistemas baseados na Web, a fim de se Em que situação o tema é útil:
vrsouzainfo@gmail.com antecipar a possíveis problemas de sobre- O intuito desse processo é assegurar que a
É graduando em Sistemas de Informação pela
carga na utilização do software. arquitetura desenvolvida para atender a uma
Faculdade Metodista Granbery, graduando em
Engenharia Civil pela universidade Federal de Juiz solução realmente consiga suportar a quantida-
de Fora e estagiário na Prefeitura de Juiz de Fora Para que serve: de de usuários previstos para acessar o aplica-
na área de desenvolvimento e testes de software. Apache JMeter é uma aplicação desen- tivo, sendo possível mensurar alguns atributos
volvida totalmente em Java que auxilia determinantes para um bom funcionamento
na geração de testes de desempenho do sistema, tais como consumo de memória e
Ricardo Cunha Vale para aplicações Web. Ela é capaz de si- uso de CPU dos servidores, nível de tráfego na
valericc@gmail.com
mular acessos simultâneos na aplicação rede e tempo de resposta.
É graduando em Sistemas de Informação pela
Faculdade Metodista Granbery e estagiário na
Prefeitura de Juiz de Fora na área de desenvolvi-
mento e testes de software.

A
tualmente, há uma exigência fase de implantação do sistema.
cada vez maior quanto à boa Nesse artigo faremos um est udo
Marco Antônio Pereira Araújo qualidade e conseqüente confia- de caso a fim de demonstrar um dos
maraujo@granbery.edu.br
É Doutorando e Mestre em Engenharia de Siste- bilidade dos softwares produzidos. Na tipos de teste de software, o teste de
mas e Computação pela COPPE/UFRJ, Especia- busca dessas características necessárias, desempenho, através da configuração
lista em Métodos Estatísticos Computacionais e existem etapas importantes no ciclo de e utilização da ferramenta Apache
Bacharel em Matemática com Habilitação em desenvolvimento de software que devem JMeter. A versão da ferramenta a ser
Informática pela UFJF, Professor do Curso de Ba-
ser observadas de perto, dentre elas, a abordada neste artigo será a 2.3.2, e
charelado em Sistemas de Informação da Facul-
dade Metodista Granbery, Analista de Sistemas fase de testes. Existem vários tipos de pode ser encontrada para download no
da Prefeitura de Juiz de Fora, Editor da Engenha- teste de software, que abrangem desde o site http://jakarta.apache.org/jmeter.
ria de Software Magazine. levantamento de requisitos até o fim da Para utilizar a JMeter, deve-se observar

36 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE

Figura 1. Visualização da tela inicial do sistema.

os requisitos mínimos, devendo estar particular. São armazenados tempora- de caixa preta selecionando “Functional
instalado a JVM (Java Virtual Machi- riamente, e não são salvos no momento Test Mode”.
ne). Essa versão da JMeter suporta que o plano de teste é salvo, tendo Para o início da configuração dos
testes de desempenho em aplicações função de apoio à elaboração de planos testes, deve-se incluir elementos ao Tes-
Web (HTTP/HTTPS), FTP, JDBC, LDAP, de testes. tPlan. São eles:
Java e JUnit. O TestPlan é onde são definidos to- Thread Group: simulará os usuários
Após o download do arquivo Zip, dos os testes que irão ser executados. que irão executar os testes. Nele podem-
basta descompactar e abrir a pasta Agrupa todos os elementos possíveis se configurar quantos usuários irão
bin, clicando no executável chamado de configuração dos samplers, tais como: fazer as requisições, o tempo total do
ApacheJMeter.jar. A janela inicial da controladores, listeners, assertions, dentre grupo de requisições e quantas vezes
ferramenta, além do menu superior, já outros, que serão abordados ao longo do o teste será executado. Ao selecionar
conta com uma árvore com dois elemen- artigo. O TestPlan pode ser configurado a opção “Scheduler” pode-se ainda
tos principais: Teste Plan e WorkBench para que as threads sejam executadas de indicar a hora que irá iniciar e terminar
(ver Figura1). maneira seqüencial ao invés de simul- o teste. É no Thread Group que podem
O WorkBench é uma área onde os taneamente, selecionando “Run Thread ser incluídos os elementos Sampler
itens existentes não são considerados Groups consecutively”, e é possível a que farão as requisições físicas de um
como parte de um plano de testes em configuração da ferramenta para testes determinado servidor. Podem–se ainda

Edição 07 - Engenharia de Software Magazine 37


Figura 2. Janela de Configuração do HTTP Request Defaults.

incluir ao Thread Group os elementos


Logic Controller que permitem testes
customizados, como usados para fazer
randomização ou criar laços.
Config Element: categoria de elementos
de configuração do plano de testes, po-
dendo configurar variáveis que posterior-
mente serão utilizadas pelo Sampler.
Timer: responsáveis pelo controle mais
preciso no tempo de execução dos testes,
estabelecem um intervalo padrão ou
aleatório entre as threads ou até delays
entre as threads.
Pre Processors: são elementos que
processam um dado antes de acionar
um Sampler. São usados para modi-
ficar um Sampler do mesmo escopo.
Podem também ser usados para gerar
Figura 3. Janela de Configuração do Thread Group. dados dinâmicos.

38 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE

Assertions: aplicados para conferir


se os dados estão de acordo com o
previsto pelo Sampler, como encontrar
determinado texto, ou se as requisições
têm que retornar em determinado
tempo especificados em um elemento
Assertion.
Post Processors: aplicados após um
Sampler e servem para extrair dados de
resposta de uma requisição.
Listener: capturam os resultados gera-
dos pelo plano de testes e apresenta-os
em um determinado formato escolhido.
Os dados podem ser visualizados por
meio de gráficos ou por meio de tabelas
que informam o que ocorreu durante o
teste, indicando o tempo gasto para a
requisição ser feita, ou se ocorreu algum
Figura 4. Tela do Simple Controller.
erro durante o teste.

Criando um teste
Para exemplificar a utilização da fer-
ramenta, será utilizado um aplicativo
Web previamente construído com acesso
a um banco de dados. Primeiramente,
serão configurados testes para serem
aplicados neste sistema que acessa o
banco de dados e grava os dados de um
formulário contendo nome e email.
Inicialmente, clicando com o botão
direito sobre TestPlan, adiciona-se um
HTTP Request Defaults, localizado dentro
do grupo Config Element. Este elemento
serve para evitar que se adicionem
vários HTTP Request com as mesmas
configurações de servidor. Todas as
requisições dos testes serão feitas a um
mesmo servidor já configurado neste
elemento. Como estamos utilizando um
servidor local, configura-se o campo Figura 5. Configuração do HTTP Request Usuário Marcos.
“Server name or ip” com “localhost”
(ver Figura 2).
Em seguida adicionamos um Thread segundos. Não serão configurados os de três registros diferentes, e como ca-
Group. Na janela que se abrirá, defini- horários de início e término do teste, racterística comum, somente o campo
mos o nome desse grupo de teste para que será disparado manualmente (ver “Path” com “/sistema/salvarPessoa.
“Gravação”, a quantidade de usuários Figura 3). php”, que representa a página da
que farão as requisições em 1000, e o Neste teste, serão utilizados três aplicação a ter seu desempenho tes-
tempo total dessas requisições para 2 HTTP Request para simular o cadastro tado. Este elemento é responsável por

Edição 07 - Engenharia de Software Magazine 39


Figura 6. Listeners individuais.

configurar características de cada tipo


de requisição, incluindo o caminho de
cada diretório do arquivo específico a
ser testado. O grupo Logic Controller
tem como função controlar as execu-
ções das requisições dentro de um
Thread Group de forma personalizada.
Possui controladores lógicos que per-
mitem a criação de laços, modulari-
zação e randomização. Para agrupar
esses elementos HTTP Request citados,
utilizaremos o Simple Controller, locali-
zado dentro do grupo Logic Controller,
com o nome de “Inserção no Banco de
Dados”. Ele tem simplesmente a fun-
ção organizacional. Cada requisição
vai conter seu rótulo correspondente
e seus parâmetros específicos para
serem passados para a página em ques-
Figura 7. Listener de resultados em conjunto. tão, definidos na janela com o título
“Send Parameters With The Request”.
Simularemos o cadastro de três usuá-
rios quaisquer, com os nomes definidos
aleatoriamente por Marcos, Lúcia e
Roberto. No caso, todos os parâmetros

40 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE

serão passados por método “GET”, que


também deve ser definido na caixa de
seleção (ver Figuras 4 e 5).
Para cada HTTP Request configurado,
utilizaremos como visualizadores os
elementos Graph Results e Summary
Report. O Graph Results contém um
gráfico Execuções X Tempo, exibindo
os resultados, a média, a mediana, os
sucessos e os erros nas requisições. O
Summary Report exibe os mesmos resul-
tados, mas de maneira mais específica,
apresentando os valores coletados no
teste (ver Figura 6).
Todos os listeners adicionados anterior-
mente estão configurados para funcio-
nar de maneira individual, mas o JMeter
permite também a observação de resul-
Figura 8. Graph Results referente ao HTTP Request Usuário Marcos.
tados em conjunto, por isso, como filhos
do elemento ThreadGroup, mais três
listeners são adicionados: Graph Results,
Summary Report e View Results in Table,
que listam numa tabela, os resultados
de todas as requisições individualmente.
Isso permite saber em que ponto exato
ocorreu uma possível falha e obter suas
características (ver Figura 7).
Depois de feito esse processo, a parte
de configuração do teste está concluída.
Partimos agora para a execução dos testes.
No menu superior, há o item “Run”, dentro
dele a opção “Start”. Ao clicar, os testes
irão iniciar e durar o tempo previamente
determinado, no caso, dois segundos.
Durante o período de execução, os re-
sultados são mostrados em tempo real, e é
possível acompanhar todo o processo.

Figura 9. Summary Report referente ao HTTP Request Usuário Marcos.


Avaliando os Resultados
Após o teste ter sido realizado, os
elementos Listener irão exibir os dados Graph Results e Summary Report (ver (Deviation) e o mínimo e máximo do
correspondentes para todos os HTTP Figuras 8 e 9). Esses elementos exibi- tempo de resposta das requisições, sen-
Request configurados, e ainda os resul- rão os dados correspondentes somente do possível então analisar visualmente
tados em conjunto. Analisaremos os ao HTTP Request Usuário Marcos. Note o comportamento da aplicação em rela-
Listeners correspondentes às requisições que no Graph Results existem várias ção ao desempenho apresentado.
feitas ao banco. linhas de diferentes cores. Essas linhas O Summary Report nos mostra de for-
Para as requisições feitas ao banco, representam dados como média (Avera- ma mais precisa o que ocorreu durante
analisaremos primeiro os elementos ge), mediana (Median), desvio padrão as requisições do HTTP Request Cadastro

Edição 07 - Engenharia de Software Magazine 41


Joao. Nesse exemplo ele mostra que a
média foi de 7959 milissegundos e o
desvio padrão de 4658 milissegundos.
O tempo, medido em milissegundos,
gasto foi no mínimo de 158 e no máximo
de 18431. Exibe também que houve 4,4%
de erro nas execuções das requisições
realizadas pelo teste, que pode ser,
inclusive, da incapacidade do servidor
de processar este número de requisições
dentro da faixa de tempo estipulada.
Tomando como base os dados referen-
tes dos dois elementos Listeners, pode-
mos concluir que foram feitas muitas
gravações em período muito curto de
tempo, mas o teste não ficou isento de
erros. Isso pode ter sido causado por
vários fatores, dentre eles: configuração
Figura 10. Summary Report referente a todos os HTTP Request do teste. de máximo de conexões simultâneas no
banco de dados, demora no processa-
mento por parte do servidor, além de
problemas físicos.
Agora iremos analisar os listeners adi-
cionados como filhos do Thread Group.
Esses elementos irão exibir os dados cor-
respondentes a todos os HTTP Request
utilizados durante o teste, os referentes
ao cadastro dos usuários Marcos, Lúcia
e Roberto. Aqui colocamos três listeners:
Graph Results, Summary Report e View
Results in Table.
Analisaremos primeiramente o Sum-
mary Report. Esse elemento exibirá os
dados de todos os HTTP Request usados,
além de exibir um Total dos HTTP Re-
quest (ver Figura 10).
Em nos so te ste, por exemplo, o
cadastro do Usuário Marcos possui
tempo mínimo de 158 milissegundos,
Figura 11. Graph Result referente a todos os HTTP Request usados. enquanto o cadastro do Usuário Lucia

42 Engenharia de Software Magazine - Teste de Desempenho de Aplicações Web com Apache JMeter
VALidAÇão, VEriF iC AÇão E tES tE

é de 24 milissegundos e o do Usuário
Roberto de 48 milissegundos. Já o
tempo máximo do cadastro do Usu-
ário Marcos é 18431 milissegundos,
enquanto o do cadastro do Usuário
Lúcia é de 16598 milissegundos e o do
Usuário Roberto 16771 milissegundos.
Com isso é possível comparar dife-
rentes comportamentos de diferentes
requisições, todos efetuando a mesma
ação. Numa aplicação real, pode-se
avaliar o comportamento de diferentes
páginas de uma aplicação Web, não
necessariamente à mesma página como
apresentado neste estudo de caso.
Iremos agora demonstrar o Graph Result
(ver Figura 11). Ele mostra as linhas dos
três grupos de requisições em diferen-
tes posições. Por isso é bom que ele seja
colocado também como filho de um Figura 12. View Results in Table.
HTTP Request, já que aqui são mostrados
dados correspondentes a todos os Http e o estado da requisição. Observa-se sistema irá suportar o número de requi-
Request usados. os estados das requisições das threads, sições que os usuários poderão fazer.
Este tipo de gráfico apresenta uma indicando sucesso ou erro, sendo apre- Para isso, é necessário elaborar os testes
forma bastante útil de análise dos dados. sentadas pelo símbolo exibido na coluna de maneira que retratem a realidade do
O eixo vertical, por apresentar o tempo status. Caso algum erro ocorra durante uso da aplicação, sendo um importante
gasto pelas requisições, pode ser utiliza- o teste, esse também seria exibido no mecanismo de prevenção de falha por
do como balizador do desempenho da Summary Report por meio de porcenta- desempenho ruim ou insatisfação do
aplicação, possibilitando definir o que gem, ou seja, não seria possível saber usuário, possibilitando que a aplicação
é considerado aceitável para o tempo qual thread falhou. Com o View Results seja melhorada.
de resposta, confrontado com o com- in Table pode-se saber qual thread con-
portamento apresentado pelas linhas seguiu fazer a requisição ou não, além Dê seu feedback sobre esta edição! eu
Feedback

s
do gráfico. de exibir a média e o desvio padrão


A Engenharia de Software Magazine

sobre e
Iremos agora analisar outro tipo de total do teste.
tem que ser feita ao seu gosto.
Listener, chamado de View Results in Table

s
ta
edição
Para isso, precisamos saber o que você,
(ver Figura 12). Conclusão
leitor, acha da revista!
Com o View Results in Table, é possível Vimos neste artigo que a ferramenta
Dê seu voto sobre este artigo, através do link:
observar o estado de cada requisição JMeter auxilia o desenvolvedor a testar
feita. Ele exibirá as threads com seus res- se sua aplicação possui o desempenho www.devmedia.com.br/esmag/feedback
pectivos nomes, o tempo da requisição esperado, possibilitando saber se o

Edição 07 - Engenharia de Software Magazine 43


Introdução à Gestão de Conhecimento - Parte 2

De que se trata o artigo: Para que serve:


Nos últimos anos, a gestão de conheci- A gestão de conhecimento apóia o compartilha-
mento surgiu como um dos principais mento do conhecimento nas organizações. Esta é
focos de preocupação em grandes or- uma realidade que também pode estar presente
ganizações. Mais do que a tecnologia, o em empresas desenvolvedoras de software.
conhecimento é chave para companhias
que pretendem agregar valor a seus Em que situação o tema é útil:
produtos e serviços. Neste contexto, este Gestão de conhecimento é um assunto am-
artigo as setes camadas que normalmen- plamente estudado atualmente e utilizado no
te compõem sistemas de auxílio à gestão apoio à disseminação do conhecimento nas
do conhecimento. organizações.

V
imos no artigo sobre gestão continuidade ao assunto e o foco será na
de conhecimento da edição discussão sobre as sete camadas de um
Rodrigo Oliveira Spínola 6 da Engenharia de Software sistema de gestão de conhecimento.
rodrigo@sqlmagazine.com.br Magazine que nos últimos anos, a ges- Conceitualmente um Sistema de Auxílio à
Doutorando em Engenharia de Sistemas e Com-
tão de conhecimento surgiu como um Gestão de Conhecimento pode ser dividido
putação (COPPE/UFRJ). Mestre em Engenharia
de Software (COPPE/UFRJ, 2004). Bacharel em Ci- dos principais focos de preocupação em sete camadas: interface, acesso e autenti-
ências da Computação (UNIFACS, 2001). Colabo- em grandes organizações. Isto por cação, inteligência colaborativa e filtragem,
rador da Kali Software (www.kalisoftware.com), que, mais do que a tecnologia, o co- camada de aplicação, transporte, integração
tendo ministrado cursos na área de Qualidade nhecimento é chave para companhias e por fim, os repositórios de dados. Esta
de Produtos e Processos de Software, Requisitos
que pretendem agregar valor a seus estrutura em camadas está mostrada na
e Desenvolvimento Orientado a Objetos. Consul-
tor para implementação do MPS.BR. Atua como produtos e serviços. Neste contexto, o Figura 1.
Gerente de Projeto e Analista de Requisitos em artigo apresentou algumas definições Cada camada possui seu próprio aparato
projetos de consultoria na COPPE/UFRJ. É Colabo- introdutórias à área de gestão de co- tecnológico para realizar suas funções
rador Engenharia de Software Magazine. nhecimento. Nesta edição, daremos e alguns destes meios já estão bastante

44 Engenharia de Software Magazine - Introdução à Gestão de Conhecimento - Parte 2


GEStão d E ConhEC iMEnto

disseminados entre empresas e institui-


ções em geral. O que se necessita para o
desenvolvimento de um bom sistema de
gestão de conhecimento é uma efetiva
integração destas tecnologias e a adição
de alguns outros componentes.
Antes de discutirmos as sete camadas
que compõem um sistema de gestão do
conhecimento, é importante entender os
dois importantes recursos que tornam
possível seu desenvolvimento: comuni-
cação e o armazenamento de dados.
A comunicação de dados tem grande
importância no contexto da gestão de
conhecimento uma vez que a mesma
permite que o conhecimento implícito
e explícito seja compartilhado de várias
maneiras. As redes de computadores
permitem a transferência de conheci-
mento e a colaboração entre integrantes Figura 1. Camadas de um Sistema de Gestão de Conhecimento. Adaptado do modelo proposto por
Tiwana (2000).
das organizações que desejam gerir
seu conhecimento. Utilização de vídeo
conferência e e-mails são alguns exem- Interface pelas plataformas mais comuns em
plos que já estão muito difundidos na Esta é a camada com a qual o usuário uso nas empresas modernas;
sociedade atual. interage diretamente. É de fundamental • Escalabilidade: por se tratar de um sis-
O armazenamento de dados é o outro importância uma boa concepção da tema cuja probabilidade de crescimento
mecanismo de grande importância mesma, caso contrário o sistema como no número de usuários é real, a plata-
para a gestão de conhecimento. É o um todo poderá fracassar. Além de forma na qual o mesmo seja implantado
armazenamento que permite a cria- estar comprometida com o usuário, a deve permitir o aumento de usuários
ção de uma memória organizacional plataforma a qual esta camada esta asso- sem degradar o desempenho;
onde o que é produzido é guardado ciada deve também suprir os seguintes • Segurança: este é um requisito in-
em memória persistente e facilmente requisitos básicos: dispensável. Como o “conhecimento”
recuperável. Para isso, sistemas mo- • Protocolos eficientes: protocolos de da empresa estará sendo disponi-
dernos de armazenamento possuem rede que permitam a utilização de bilizado para vários atores, existe a
mecanismos para a qualificação da recursos necessários para permitir possibilidade de invasões indesejadas
informação, armazenagem distribuída colaboração, segurança e compartilha- que terminem acessando informações
de dados, acesso remoto, controle de mento rápido de recursos; estratégicas e/ou alterando documen-
acesso, e segurança. • Portabilidade: é sabido que parte das tos privados;
empresas têm sua estrutura tecnoló- • Integração com sistemas existentes;
gica baseada em diversas plataformas • Flexibilidade: os usuários devem ter a
As sete camadas de um sistema de e diferentes sistemas operacionais. possibilidade de filtrar as informações
gestão de conhecimento Desta forma, o sistema de gestão de que lhes convêm. Assim, é desejável
Como mencionamos anteriormente, conhecimento deve operar entre essas um bom grau de facilidade de configu-
sistemas de apoio à gestão do conheci- plataformas. Ganha então força o uso ração e flexibilidade no que diz respeito
mento são compostos em geral por sete da Internet e o protocolo HTTP. Este, ao que o usuário tem acesso e ao que
camadas. através dos browsers é suportado ele realmente quer acessar.

Edição 07 - Engenharia de Software Magazine 45


Aplicação Protocolo
estrutura lógica (protocolos de comuni-
Correio eletrônico TCP
cação) e física da Internet, é importante
Web TCP
que sua estrutura de funcionamento
Transferência de arquivos TCP interno não tenha como base estruturas
Fluxo Multimídia (ex.: filme) UDP estáticas - já bastante difundidas com o
Telefonia pela Internet UDP conceito de links - mas sim, dinâmicas,
que automaticamente se adaptem a
tabela 1. Aplicações e Protocolos
modificações na localização das infor-
mações. Neste caso, os ponteiros criados
Baseados nestes princípios, percebemos Inteligência colaborativa e para outros documentos não se perdem,
que a Web é uma das plataformas mais filtragem tornado a navegação pela informação
adequadas às necessidades de um sistema A finalidade básica desta camada é menos incomoda e menos frustrante.
de gestão de conhecimento. Entretanto, prover a estrutura funcional para que
apesar das tecnologias associadas à Web se consiga fazer pesquisas, resumos, Aplicação
preencherem boa parte dos requisitos interpretações e a análise de grandes vo- Esta camada engloba as ferramentas
listados acima, a camada de interface lumes de dados habilitando os usuários de integração usuário/máquina que pro-
deve ainda prover funcionalidade para do sistema de gestão de conhecimento vêm boa parte da funcionalidade de um
que as pessoas usem de forma efetiva a a contextualizá-los de forma efetiva e sistema de gestão de conhecimento. Sof-
infra-estrutura criada com a tecnologia da eficiente. Para este fim, existe um gama twares e hardwares para vídeo conferên-
informação. Necessita-se de bons recursos de possibilidades de combinação de cia, fóruns de discussão e ferramentas de
funcionais para criar, explicar, utilizar, e tecnologias: ferramentas de inteligência suporte a decisão são algumas aplicações
compartilhar conhecimento. Este é o prin- artificial, redes neurais, agentes inteli- que podem ser disponibilizadas aos
cipal conjunto de requisitos imposto sobre gentes, pesquisa por conteúdo e pesqui- usuários de um sistema de gestão de
a camada de interface. Neste ponto, foca-se sa por atributo, dentre outros. conhecimento.
a principal dificuldade de projeto de um O uso das tecnologias de pesquisa e
sistema de gestão de conhecimento. interpretação depende de como está Transporte
estruturado o sistema como um todo. Tendo decidido a plataforma a ser
Acesso e autenticação Assim, é preciso entender como tais tec- utilizada, é preciso conhecer a maneira
Esta camada tem como principal nologias funcionam para se optar pela como os dados serão transportados pelas
função autenticar usuários válidos, res- ferramenta mais correta. As ferramentas redes de comunicação e que serão os
tringir e prover segurança para o acesso de pesquisa trabalham basicamente servidores e clientes utilizados na co-
às outras camadas. Como as redes de através da busca e comparações de certos municação. Para o papel de cliente deve
comunicação para o compartilhamento atributos de um determinado tipo de existir o software cliente que no caso
do conhecimento não têm sido limitadas objeto. Por exemplo, arquivos criados da web, deve prover acesso à Intranet/
apenas às intranets, a importância dada em editores de texto podem possuir Internet. Já para o papel de servidor,
à segurança cresce. A Internet vem sen- atributos como autor, data de criação, deve existir um software que funcione
do cada vez mais utilizada para prover última modificação e assunto, dentre sobre o(s) repositório(s) de informações,
acesso a usuários que por algum motivo outros. Este leque de opções que envol- disponibilizando acesso ao conteúdo
está em um lugar remoto. Neste ponto, vem a pesquisa, torna-a extremamente do sistema.
podemos destacar a importância das Re- importante em um sistema de gestão de A forma como os dados são transpor-
des Virtuais Privadas (em inglês, Virtual conhecimento. tados depende de quem solicita o envio
Private Network), as quais possibilitam Por ser um sistema que sofre constantes dos mesmos e das necessidades que
transmissão de dados de forma mais interações por parte dos usuários e por cada tipo de dado tem na sua transfe-
segura sob Internet. se tratar de um sistema com a infra- rência. Estas necessidades se resumem

46 Engenharia de Software Magazine - Introdução à Gestão de Conhecimento - Parte 2


GEStão d E ConhEC iMEnto

basicamente ao fato de o serviço ser Armazenamento Cultura orientada ao


confiável ou não. Existem dois protoco- Nesta camada os dados, informação conhecimento
los bastante utilizados: o TCP (do inglês, e “conhecimento” são armazenados Este é, seguramente, um dos mais im-
transmission control protocol) e o UDP para posterior consulta, alteração, e portantes fatores para o sucesso do proje-
(do inglês, user datagram protocol). O deleção. A forma como a informação é to. Organizações em que essa cultura está
TCP provê transmissão de dados orien- armazenada difere a depender do tipo bem fundamentada estão em vantagem
tada à conexão, comunicação confiável da mesma (imagem, som, animações, pois é muito difícil iniciar um projeto ten-
para aplicações que tipicamente trans- documentos). Existe neste nível a neces- do antes que modificar a forma de pensar
ferem grandes quantidades de dados sidade de se utilizar diversos tipos de das pessoas. Os dois extremos verificados
e que requerem um reconhecimento repositórios que possam ser integrados quanto à presença desta variável são: (1)
da entrega dos dados. O TCP garante a de forma a prover uma estrutura coesa Orientação ao conhecimento valorizado
entrega dos dados assegurando que os de acesso à informação. onde os funcionários têm liberdade
mesmos chegarão ordenados à aplicação para incrementar e compartilhar suas
destino e ainda possui mecanismos para Alguns fatores importantes para o experiências e; (2) Inibição à cultura do
identificar se o pacote transmitido sofreu sucesso de um sistema de auxílio à conhecimento onde as pessoas sentem-se
alguma alteração. gestão do conhecimento ressentidas pela empresa não estimular a
Por outro lado, o UDP provê comunica- A forma de mensurar o sucesso de um troca de experiências.
ção não orientada à conexão e não garan- sistema de auxílio à gestão do conheci- Parece difícil acreditar, mas ainda
te que os pacotes serão entregues. O seu mento é um assunto bastante discutido existem empresas que não perceberam
ponto positivo é a velocidade com que os e ainda inacabado. Entretanto, assim que o crescimento intelectual de seus
dados são entregues uma vez que o mes- como qualquer outro processo de rees- funcionários é fator chave para o su-
mo não possui algoritmos de tratamento truturação organizacional, existe alguns cesso. Organizações onde as pessoas
de erros terminam tomando tempo du- pontos sobre os quais podemos fazer não compartilham seu conhecimento
rante o processo de transmissão. Desta uma análise: pensando que desta forma se tornarão
forma, os pacotes estão sempre sendo • Crescimento de investimentos por especiais para a empresa por ser o único
enviados mesmo que esteja havendo par te da gerência no desenvolvimento perito em determinada área certamente
perda dos mesmos. Este protocolo é uti- do projeto com o passar do tempo; ainda não possuem a cultura do conhe-
lizado por serviços cuja confiabilidade • Crescimento no volume de conteúdo cimento difundida.
na entrega dos dados não é primordial. disponibilizado e na utilização deste;
A tabela a seguir exemplifica algumas • Não haver resistência na organização Infra-estrutura organizacional e
aplicações e o protocolo utilizado na com os conceitos de conhecimento e técnica
comunicação das mesmas. gerência do conhecimento; Processos que possam provocar uma
• Alguma percepção que de alguma for- reestruturação da empresa necessitam
Camada de integração de sistemas ma esta havendo retorno financeiro. de certos requisitos. Particularmente,
legados
Esta camada é necessária quando se quer A partir do momento que os pontos
integrar plataformas diferentes de um am- citados acima são realidade em um
biente heterogêneo em uma determinada projeto de gestão do conhecimento, po-
empresa. Como um dos pontos chaves no demos dizer que este está tendo sucesso.
processo de implantação de um sistema de Segundo Laurence Prusak, o sucesso
gestão de conhecimento é a incorporação ainda pode ser dividido em dois níveis:
de estruturas já existentes, esta camada (1) quando o sistema provoca mudan-
pode assumir grande importância. A in- ças em toda a empresa e, (2) quando
tegração entre sistemas que normalmente o sistema afeta apenas alguns setores
não se comunicam é um ponto chave em específicos da organização.
empresas que, por terem já um bom tempo Estas métricas mesmo que um pou-
de mercado, fazem uso de tecnologia de co abstratas, são de grande valor no
informação mais tradicional possuindo, momento de justificar e analisar os
por exemplo, sistemas baseados em resultados do sistema implantado. Po-
mainframes. É comum ver estas compa- rém, mais importante que verificar se o
nhias reestruturando sua infra-estrutura sistema obteve sucesso ou não é a tarefa
e “empacotando” seus sistemas legados de tentar desenvolvê-lo de modo que
com camadas de software que permitem atinja seus objetivos e para isso, existe
a adoção de padrões mais modernos de uma série de variáveis que devem ser
comunicação e acesso a dados. levadas em conta.

Edição 07 - Engenharia de Software Magazine 47


projetos envolvendo o conhecimento Relacionamento com valores conhecimento torna-se parte da cultura
possuem duas necessidades básicas com econômicos e/ou industriais das pessoas, a organização conseguiu
relação à infra-estrutura da empresa. Por serem sistemas que requerem inves- um grande avanço para fazer com que
Primeiramente, uma boa base tecnoló- timentos geralmente altos, a necessidade o sistema tenha sucesso.
gica que possa atender os requisitos de de benefícios econômicos ou diferencial
um sistema de gestão do conhecimento. na área de atuação da organização são Múltiplos meios para a
Em segundo lugar, uma estrutura orga- extremamente importantes. Porém, mui- transferência do conhecimento
nizacional interna que torne possível a tas vezes é difícil mensurar os benefícios Por se tratar de um bem intangível e
fixação da cultura do conhecimento. advindos da implantação de um sistema altamente mutável, o conhecimento pode
Caso a empresa não possua a infra-es- de gerenciamento do conhecimento. ser compartilhado de diversas formas.
trutura citada acima, a organização deverá Por isso, uma parte dos benefícios pode Em seu caráter explícito, o conhecimento
dispor de recursos financeiros uma vez que ser calculada indiretamente através de pode ser socializado por exemplo, através
para alcançar esses dois objetivos, os inves- resultados na diminuição de despesas, de sistemas gerenciadores de informação
timentos em tecnologia e a criação de novas nível de satisfação dos clientes e redução como é o caso de ferramentas baseadas em
regras organizacionais é inevitável. no tempo de produção. armazenamento estruturado de dados.
Estes meios de transferência do conheci-
Apoio da alta gerência Estímulo a ações não triviais mento já possuem um bom grau de desen-
Programas de gestão do conhecimento Um dos requisitos básicos para o su- volvimento mas, quando o conhecimento
também se beneficiam do suporte dado cesso de sistemas de gestão do conheci- é tácito, ainda há muita dificuldade em
pela alta gerência. Este se torna particu- mento é o envolvimento dos integrantes compartilhá-lo de forma adequada. Por
larmente importante a partir do momento do escopo do projeto. Este envolvimento isso, há a necessidade de múltiplos meios
que estes tipos de sistema necessitam que significa criar, externalizar, internalizar para a transferência do conhecimento. Es-
a cultura organizacional esteja voltada e utilizar o conhecimento. Estas são ta- tes meios vão desde conversas via telefone,
para o conhecimento. O apoio pode ser refas difíceis de serem cumpridas e que sistemas de vídeo conferência até mesmo
dado de várias formas como: muitas vezes somente são executadas às reuniões presenciais.
• Criar uma infra-estrutura favorável mediante o uso de técnicas motivacio-
para a implantação do sistema; nais. É preciso que haja alguma forma de Considerações Finais
• Estimular as pessoas a compartilha- premiar aqueles que mais contribuírem Este artigo apresentou as sete camadas
rem seu conhecimento e investirem participando do processo de socialização que normalmente são encontradas em
em aprendizagem argumentando a do conhecimento. Para isto, algumas sistemas de apoio à gestão de conheci-
importância dessas ações para o sucesso técnicas estudadas na administração mento. Muitos estudos e pesquisas têm
da companhia; podem ser utilizadas como: sido realizadas no âmbito de cada uma
• Pesquisar e definir que tipo de co- • Desenvolver a autoconfiança; destas camadas e certamente serão dis-
nhecimento é mais importante para • Relacionar recompensas com o cutidos em artigos futuros da Engenharia
a empresa. desempenho; de Software Magazine.
• Ut i l i z a r u m a v a r i e d a d e d e
recompensas; Dê seu feedback sobre esta edição! eu
Feedback
s

• A alta gerência deve ser positiva e


A Engenharia de Software Magazine


sobre e
esperançosa;
tem que ser feita ao seu gosto.
• Fazer com que os envolvidos no
s
ta
edição
Para isso, precisamos saber o que você,
sistema sintam-se parte integrante do
leitor, acha da revista!
processo como um todo.
Dê seu voto sobre este artigo, através do link:
A partir do momento que a ativida- www.devmedia.com.br/esmag/feedback
de de criar, compartilhar e utilizar o

Referências

TIWANA, Amrit. The Knowledge Management Toolkit: Practical Techniques for Buildings a Knowledge Management System.
Prentice Hall, 2000.

SVEIBY, Karl; STORK, John; HILL, Patricia, et al. Gestão do Conhecimento: Um Novo Caminho. HSM Management, setembro-outubro, 2000.

DAVENPORT, Thomas; PRUSAK, Laurence. Working Knowledge: How Organizations Manage what They Know. Harvard Business
School Press, 1998.

DIXON, Nancy M. Common Knowledge: How Companies Thrive by Sharing what They Know. Harvard Business School Press, 2000.

48 Engenharia de Software Magazine - Introdução à Gestão de Conhecimento - Parte 2


Ges tão d e Conhecime nto

Edição 07 - Engenharia de Software Magazine 49


Apoiando a Implementação do Modelo de
Maturidade MPS Nível G

De que se trata o artigo:


O objetivo deste artigo é apresentar os
Augusto César Brauns Munhão Adriano Cláudio Costa Campos
adriano.campos10@gmail.com
resultados obtidos com uma pesquisa de
augusto.munhao@promon.com.br
Cursando a Graduação em Ciência da Compu- Cursando o 8 período da Graduação em Ciência campo (survey) para apontar as práticas
tação pelo Instituto Metodista Bennett do Rio da Computação pelo Instituto Metodista Ben- mais adotadas pelos implementadores do
de Janeiro. (Graduação em 2008). Graduado em nett do Rio de Janeiro. Graduado em Tecnólogo modelo MPS ao evidenciar as exigências
Tecnólogo em Analise de Sistemas pelo Instituto em Analise de Sistemas pelo Instituto Metodista
do nível G deste modelo.
Metodista Bennett do Rio de Janeiro. Executa Bennett do Rio de Janeiro. Presta suporte na área
Customizações a softwares de CAD-CAE e Plant de plataformas de gerência de redes de teleco-
Design com suporte a usuários e gerenciamento municações (IP, ATM, TDM, Frame-Relay, X-25, Para que serve:
de Backups. Atua em Projetos nas Áreas de Mine- XDSL) baseadas em sistemas operacionais Unix As informações geradas por este trabalho,
ração, Geração de Energia, Petroquímica, Siderur- e protocolos de gerência SNMP e TL1. Atua em juntamente com os guias disponibilizados
gia e Indústria Alimentícia. projetos nas áreas de Segurança da Informação,
pela SOFTEX, representam para as empre-
Gerenciamento de Redes de Telecomunicações e
Sistemas de Apoio à Gestão. sas, uma oportunidade a mais de conhecer
boas práticas relacionadas à coleta de evi-
dências diretas e indiretas para evidenciar
as exigências do nível G, quando em busca
Marcos Kalinowski Rodrigo Oliveira Spínola de uma certificação. Por conseqüência, as
mk@kalisoftware.com rodrigo@sqlmagazine.com.br informações resultantes deste trabalho,
Doutorando e mestre em Engenharia de Sof- Doutorando em Engenharia de Sistemas e Com-
podem auxiliar na redução de custos de im-
tware da COPPE/UFRJ. Bacharel em Ciência da putação (COPPE/UFRJ). Mestre em Engenharia
de Software (COPPE/UFRJ, 2004). Bacharel em Ci- plementação e tempo gasto na preparação
Computação pela UFRJ. Diretor executivo da Kali
Software (www.kalisoftware.com), empresa de ências da Computação (UNIFACS, 2001). Colabo- para o processo de certificação.
consultoria e treinamento em Engenharia de rador da Kali Software (www.kalisoftware.com),
Software. Coordenador e professor dos cursos tendo ministrado cursos na área de Qualidade Em que situação o tema é útil:
Ciência da Computação e Análise e Desenvol- de Produtos e Processos de Software, Requisitos
Empresas que tenham interesse em adotar
vimento de Sistemas do Centro Universitário e Desenvolvimento Orientado a Objetos. Consul-
tor para implementação do MPS.BR. Atua como práticas de melhoria de processo.
Metodista Bennett. Professor da pós-graduação
e-IS Expert da UFRJ. Consultor de implemen- Gerente de Projeto e Analista de Requisitos em
tação, instrutor, avaliador e membro da equipe projetos de consultoria na COPPE/UFRJ. É Colabo-
técnica do MPS.BR. rador Engenharia de Software Magazine.

50 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


Processo

N
o início da produção de sof- ao evidenciar as exigências do nível G temos o Aeroespacial, Mísseis Balísticos,
tware (1960) não havia se pen- deste modelo. Satélites (BOEHM e TURNER, 2004).
sado em estruturas formais de Além disso, o trabalho envolve uma A adoção de processos voltados à cons-
desenvolvimento de software. Existia pesquisa envolvendo o Guia Geral e o trução de software apresentou algumas
no mercado a necessidade de softwares Guia de Implementação do MPS, com deficiências em suas primeiras experi-
cada vez maiores e com essas necessida- o intuito de abordar as características ências de implementação por que, sem
des aumentadas, começaram a se tornar e diretrizes do modelo de Maturidade métricas, os processos ficavam sujeitos a
mais constantes os problemas e prejuí- MPS no tratamento e na evidência dos falhas nos orçamentos, gerenciamento, etc.
zos com os atrasos e cancelamentos nos resultados exigidos pelo modelo, quando Porém, ao longo do tempo, estes processos
projetos de software. A solução foi a da obtenção da certificação do nível G. sofreram significativo amadurecimento e
criação da Engenharia de Software que Como resultado, pretende-se que as atualmente são recomendados à atividade
tinha como principais objetivos definir informações geradas por este trabalho, de desenvolvimento de software.
processos, métodos e ferramentas para juntamente com os guias disponibiliza-
a produção de software com a qualidade dos pela SOFTEX, representem para as Principais Características dos
esperada pela indústria. Com o aumento empresas, uma oportunidade a mais de Métodos Orientados a Planos
da qualidade foi introduzido um aperfei- conhecer boas práticas relacionadas à Como principais características dos
çoamento contínuo de métodos, técnicas coleta de evidências diretas e indiretas métodos orientados a planos, podemos
e artefatos (PRESSMAN, 2006). para evidenciar as exigências do nível G, citar a documentação bem estruturada e
Nos dias atuais, com a necessidade de se quando em busca de uma certificação. concisa, a rastreabilidade entre requisitos,
alcançar maior competitividade e qualida- Por conseqüência, as informações resul- projetos e códigos. Outras características
de na construção de software as empresas tantes deste trabalho, podem auxiliar na importantes são a definição e gerencia-
nacionais sentem-se na obrigação de mo- redução de custos de implementação e mento de processos que são aperfeiçoa-
dificar suas estruturas organizacionais e tempo gasto na preparação para o pro- dos e normalizados. Todos os processos
processos produtivos para que se adaptem cesso de certificação. devem possuir atividades detalhadas,
ao tamanho e características dos projetos fluxo de trabalho, responsabilidades de-
sem perder os padrões de qualidade Métodos Orientados a Plano finidas. Além disso, é comum o emprego
exigidos tanto nacional, como internacio- Antes de falar do MPS é importante de Gerentes de Projetos que monitoram,
nalmente. Com todas essas necessidades explicar qual a metodologia utilizada verificam e disseminam a informação.
foi criado o MPS.BR , um modelo de matu- por este modelo. O MPS é um modelo De acordo com (BOEHM e TURNER,
ridade nacional com padrões de qualidade orientado a plano. Mas o que significa di- 2004) os principais conceitos dos méto-
internacionais no qual as empresas se zer que um processo é orientado a plano? dos orientados a planos são:
certificam em diferentes níveis de acordo Métodos orientados a planos são muitas • Aperfeiçoamento de processos;
com seu grau de maturidade. vezes referenciados como “a forma tradi- • Processo de capacitação;
Hoje no Brasil, mais de 100 empresas cional” de se desenvolver software. Eles • Maturidade organizacional;
possuem certificação MPS e estas certi- se caracterizam por possuir processos • Gerenciamento de risco;
ficações, mesmo para os níveis menos bem definidos que são constantemente • Verificação;
complexos, são extremamente difíceis. aperfeiçoados nas organizações. • Validação;
Dentro deste contexto, percebeu-se a A origem dos métodos orientados a • Arquitetura dos sistemas de software.
oportunidade de realizar um trabalho que planos deu-se devido à necessidade de al-
identificasse as práticas mais utilizadas gumas organizações adotarem processos Exemplos de Métodos Orientados
por implementadores MPS para eviden- que garantissem a qualidade de seus pro- a Planos
ciar as exigências do modelo de maturi- dutos. Para atingir este objetivo era preciso Ao longo dos anos, diversos métodos
dade brasileiro, visando auxiliar, orientar delinear muito bem o escopo do trabalho orientados a planos foram desenvolvi-
e minimizar as dificuldades enfrentadas e as diretivas a serem seguidas. Vários dos e modelos de maturidade para tais
na sua implementação. Desta forma torna- motivos contribuíram para a adoção desta métodos foram criados. De acordo com
se possível promover um melhor enten- nova forma de tratamento do produto de (BOEHM e TURNER, 2004) entre estes
dimento por parte das empresas e dos software. Dentre eles, podemos citar: métodos destacam-se:
implementadores sobre como evidenciar • Risco em caso de falhas; • CMMI – SEI (Modelo de Maturidade)
os resultados exigidos para a certificação • Ne c e s s i d a d e d e c o n t r o l e d e (SEI, 2007);
do nível G do modelo MPS. alterações; • Military Standards – Departamento
Desta forma, o objetivo deste artigo é • Controle de prazos e custos, entre de Defesa dos USA;
apresentar os resultados obtidos com outros. • General Process Standards – ISO ,
uma pesquisa de campo (survey) para EIA , IEEE;
apontar as práticas mais adotadas pe- Entre os ramos da indústria que se ante- • Software Favorities – Hitachi, General
los implementadores do modelo MPS ciparam em desenvolver estes processos Electric;

Edição 07 - Engenharia de Software Magazine 51


• Modelo de Referência (MR-MPS);
• Método de Avaliação (MA-MPS);
• Modelo de Negócio (MN-MPS).

Descrição Geral do Modelo MPS


O MPS tem como objetivo definir
um modelo de melhoria e avaliação
de processo de software, preferencial-
mente para as micro, pequenas e mé-
dias empresas, de forma a atender às
necessidades de negócio e, além disso,
ser reconhecido nacional e internacio-
nalmente como um modelo aplicável à
indústria de software. Este é o motivo
Figura 1. MPS.BR (SOFTEX,2007a) pelo qual ele está aderente a modelos e
normas internacionais. O MPS também
• Cleanroom – IBM; nas suas empresas, visando à oferta de define regras para sua implementação e
• Capability Maturity Model Software produtos de software e dos serviços ofe- avaliação, dando sustentação e garantia
(SW – CMM) – SEI; recidos por estes, de acordo com padrões de que está sendo empregado de forma
• Personal Software Process (PSP) – SEI; internacionais de qualidade. coerente com as suas definições (SOF-
• Team Software Process (TSP) – SEI. O foco principal, embora não exclusi- TEX, 2007a).
vo, do MPS, está no grupo de empresas Con forme descrito em (SOFTEX,
A partir de agora, conheceremos o MPS formado, em geral, pela grande massa 2007a), a base técnica utilizada para
BR. Os conceitos apresentados visam for- de micro, pequenas e médias empresas a construção do MPS é composta pe-
necer um detalhamento sobre este mo- de software brasileiras, com poucos las normas (ABNT, 1998) – Processo
delo como forma de prover uma melhor recursos e que necessitam melhorar radi- de Ciclo de Vida de Software e suas
compreensão da pesquisa desenvolvida calmente seus processos de software em emendas 1 e 2 (ISO/IEC 15504-1,2004) e
pelos autores deste artigo. 1 ou 2 anos (SOFTEX, 2007a). O intuito (ISO/IEC 15504-2,2003) – Avaliação de
é que o modelo seja adequado ao perfil Processo (também conhecida por SPICE:
Introdução ao MPS de empresas com diferentes tamanhos Software Process Improvement and
As mudanças que estão ocorrendo nos e características, sejam elas públicas ou Capability Etermination e seu Modelo
ambientes de negócios têm motivado as privadas, de portes variados e que seja de Avaliação de Processo de Software
empresas a modificar suas estruturas compatível com os padrões de qualidade (ISO/IEC 15504-5,2006). O modelo está
organizacionais e processos produtivos, aceitos internacionalmente. totalmente aderente a essas normas.
saindo da visão tradicional baseada em Além disso, tem como pressuposto o O MPS também cobre o conteúdo do
áreas funcionais em direção a redes de aproveitamento de toda a competência CMMI-SE/SWSM, através da inclusão
processos centrados no cliente. A com- existente nos padrões e modelos de me- de processos e seus resultados de
petitividade depende, cada vez mais, lhoria de processo já disponíveis. Dessa acordo com as Normas (ABNT, 1998),
do estabelecimento de conexões entre forma, ele tem como base os requisitos conforme Figura 1.
estes processos, criando elos essenciais definidos nos modelos de melhoria de Cada componente do modelo é descri-
nas cadeias produtivas. Alcançar com- processo. to através de guias e dos documentos
petitividade pela qualidade, para as O MPS visa atender a necessidade de do projeto. Um destes documentos é o
empresas de software, implica tanto na implantar os princípios de Engenha- Modelo de Referência de Melhoria de
melhoria da qualidade dos produtos de ria de Software de forma adequada Processo de Software (MR-MPS), que
software e serviços correlatos, como dos ao contexto das empresas brasileiras, contém os requisitos que as organizações
processos de produção e distribuição de sendo compatível com as principais deverão atender para estar em confor-
software. abordagens internacionais para defini- midade com o modelo de maturidade
Desta forma, assim como para outros ção, avaliação e melhoria de processos em referência. Ele contém as definições
setores, qualidade é fator crítico de su- de software, melhoria da qualidade e dos níveis de maturidade e aborda
cesso para a indústria de software. Para construção de produtos de software e também a capacidade de realização dos
que o Brasil possua um setor de software serviços correlatos, baseando-se nos processos dentro de cada um dos níveis
competitivo, nacional e internacional- conceitos de maturidade e capacidade do modelo. Ele foi baseado nas normas
mente, é essencial que os empreende- destes processos. (ABNT,1998) e suas emendas 1 e 2, ISO/
dores do setor coloquem a eficiência Dentro desse contexto, o MPS possui IEC 15504 e adequado ao CMMI-SE/
e a eficácia de seus processos em foco três componentes (SOFTEX, 2007a): SWSM (SOFTEX,2007a).

52 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


Processo

Nível Processos Atributos de Processo

A Análise de Causas de Problemas e Resolução – ACP AP 1.1, AP 2.1, AP 2.2, AP 3.1, AP3.2, AP 4.1, AP 4.2 , AP 5.1 e AP 5.2

B Gerência de Projetos – GPR (evolução) AP 1.1, AP 2.1, AP 2.2, AP 3.1 e AP3.2, AP 4.1 e AP 4.2

Gerência de Riscos – GRI

Desenvolvimento para Reutilização – DRU


C AP 1.1, AP 2.1, AP 2.2, AP 3.1 e AP3.2
Análise de Decisão e Resolução – ADR

Gerência de Reutilização – GRU (evolução)

Verificação – VER

Validação – VAL

D Projeto e Construção do Produto – PCP AP 1.1, AP 2.1, AP 2.2, AP 3.1 e AP3.2

Integração do Produto – ITP

Desenvolvimento de Requisitos – DRE

Gerência de Projetos – GPR (evolução)

Gerência de Reutilização – GRU

E Gerência de Recursos Humanos – GRH AP 1.1, AP 2.1, AP 2.2, AP 3.1 e AP3.2


Definição do Processo Organizacional – DFP

Avaliação e Melhoria do Processo Organizacional – AMP

Medição – MED

Garantia da Qualidade – GQA


F AP 1.1, AP 2.1 e AP 2.2
Gerência de Configuração – GCO

Aquisição – AQU

Gerência G de Requisitos – GRE


G AP 1.1 e AP 2.1
Gerência de Projetos – GPR
Tabela 1. Níveis de Maturidade (SOFTEX,2007a)

Descrição do MR-MPS organização. O nível de maturidade organização tem que colocar esforço para
O Modelo de Referência MR-MPS de- em que se encontra uma organização melhoria de forma a atender os objetivos
fine níveis de maturidade que são uma permite prever seu desempenho futuro de negócio, conforme Tabela 1.
combinação entre processos e capacida- em uma ou mais disciplinas. O MR-MPS O progresso e o nível de maturidade
de de implementação de cada processo. define sete níveis de maturidade: são obtidos quando são atendidos todos
A capacidade de processo é sua ha- • A (Em Otimização) os resultados e propósito do processo,
bilidade para alcançar os objetivos de • B (Gerenciado Quantitativamente) além dos atributos de processo relacio-
negócio, atuais e futuros. Ela está relacio- • C (Definido) nados àquele nível e aos anteriores.
nada com o atendimento dos atributos • D (Largamente Definido) A divisão em estágios, embora baseada
de cada processo dentro de cada nível • E (Parcialmente Definido) nos níveis de maturidade do CMMISE/
de maturidade. • F (Gerenciado) SWSM tem uma graduação diferente,
• G (Parcialmente Gerenciado). com o objetivo de possibilitar uma imple-
Níveis de maturidade - Descrição mentação e avaliação mais gradual e ade-
Geral A escala de maturidade se inicia no nível quada às pequenas e médias empresas.
Os níveis de maturidade estabelecem G e progride até o nível A. Para cada um A possibilidade de se realizar avaliações
patamares de evolução de processos, destes sete níveis de maturidade foi atri- considerando mais níveis permite uma
caracterizando estágios de melhoria buído um perfil de processos e de capaci- visibilidade dos resultados de melhoria
de implementação de processos na dade destes processos que indicam onde a de processos com prazos mais curtos.

Edição 07 - Engenharia de Software Magazine 53


Capacidade do Processo - Descrição atributo de processo (RAP) para alcance nível corporativo para estabelecer,
Geral completo do atributo de processo. implementar e melhorar um processo
A capacidade / adequação do processo do ciclo de vida.
ao MPS é representada por um conjunto AP1.1 Processo é executado
de atributos descritos em termos de Este atributo é uma medida da ex- Descrição de Processos do Nível G
resultados esperados. Ela representa o tensão na qual o processo atinge o seu do MPS.BR
nível de refinamento e institucionali- propósito. Resultado esperado: Segundo (SOFTEX, 2007a), temos
zação com que o processo é executado • RAP 1 - O processo atinge seus resul- descritos para o nível G do MPS.BR os
na organização. No MPS, à medida que tados definidos. seguintes processos:
a organização evolui nos níveis de ma- • O processo de Gerência de Proje-
turidade, um maior nível de capacidade AP 2.1 Processo é gerenciado tos tem como propósito, identificar,
para desempenhar o processo deve ser Este atributo é uma medida da exten- estabelecer, coordenar e monitorar as
atingido pela organização. são na qual a execução do processo é atividades, tarefas e recursos que um
O atendimento aos atributos do pro- gerenciada. Resultados esperados: projeto necessita para produzir um
cesso (AP) será atingido através da • RAP 2 - Existe uma política organi- produto e/ou serviço, no contexto dos
geração dos resultados esperados dos zacional estabelecida e mantida para requisitos e restrições do projeto.
atributos do processo (RAP), que são o processo; • O processo de Gerência de Requisitos
requeridos para todos os processos no • RAP 3 - A execução do processo é tem como propósito gerenciar os requi-
nível correspondente ao nível de maturi- planejada; sitos dos produtos e componentes do
dade, embora eles não sejam detalhados • RAP 4 (Para o Nível G) - A execução produto do projeto e identificar inconsis-
dentro de cada processo. Os níveis são do processo é monitorada e ajustes são tências entre esses requisitos e os planos
acumulativos, ou seja, se a organização realizados para atender aos planos; e produtos de trabalho do projeto.
está no nível F, esta possui o nível de • RAP 4 (A partir do Nível F) - Medidas
capacidade do nível F que inclui os são planejadas e coletadas para monito- Implementação do Nível G do
atributos de processo dos níveis G e F ração da execução do processo; Modelo MPS
para todos os processos relacionados • RAP 5 - Os recursos necessários para A finalidade do Guia de Implementação
no nível de maturidade F. Isto significa a execução do processo são identifica- é fornecer diretrizes para a implementa-
que, ao passar do nível G para o nível dos e disponibilizados; ção dos níveis de maturidade descritos
F, os processos do nível G passam a • RAP 6 - As pessoas que executam o no Modelo de Referência MR-MPS em
ser executados no nível de capacidade processo são competentes em termos de empresas que desejam aumentar seu
correspondente ao nível F. formação, treinamento e experiência; grau de competitividade e qualidade
A capacidade do processo (SOFTEX, • RAP 7 - A comunicação entre as nos seus processos de construção de
2007a) no MPS possui nove (9) atributos partes interessadas no processo é software. Este guia detalha os processos
de processos (AP). São eles: gerenciada de forma a garantir o seu requeridos para cada nível de maturida-
• AP 1.1 – Processo executado (Neces- envolvimento no projeto; de e os seus resultados esperados com
sário para certificação Nível G); • RAP 8 - Métodos adequados para a implementação dos processos. Este
• AP 2.1 – Processo gerenciado (Neces- monitorar a eficácia e adequação do documento é destinado, mas não está
sário para certificação Nível G); processo são determinados. limitado, a organizações interessadas
• AP 2.2 – Produtos de trabalho do em utilizar o MR-MPS para melhoria de
processo são gerenciados; Processos seus processos de software e instituições
• AP 3.1 – Processo é definido; Os processos são agrupados de acordo implementadoras.
• AP 3.2 – Processo está implementado; com a sua natureza, o seu objetivo prin- O Guia de implementação está subdi-
• AP 4.1 O processo é medido; cipal no ciclo de vida de software. Esse vidido em sete partes.
• AP 4.2 O processo é controlado; agrupamento resultou em 3 diferentes • Parte 1: nível G (que é o foco do
• AP 5.1 O processo é objeto de classes de processos, que são: trabalho);
inovações; • Fundamental: Atendem o início e a • Parte 2: nível F;
• AP 5.2 O processo é otimizado execução do desenvolvimento, opera- • Parte 3: nível E;
continuamente. ção ou manutenção dos produtos de • Parte 4: nível D;
software e serviços correlatos durante • Parte 5: nível C;
A seguir estão descritos os atributos de o ciclo de vida de software; • Parte 6: nível B; e
processo (AP) necessários para a certifi- • De Apoio: auxiliam um outro pro- • Parte 7: nível A;
cação MPS do nível G, uma vez que esse cesso e contribuem para o sucesso e Como o foco do presente trabalho
é o foco da pesquisa desenvolvida para qualidade do projeto de software; será tentar mostrar os artefatos mais
este trabalho. Cada AP está detalhado • Organizacional: Uma organização utilizados segundo a visão dos imple-
em termos de resultados esperados do pode empregar estes processos em mentadores para que seja conseguida

54 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

a certificação nível G do modelo MPS, evolui. Como exemplo, a partir do nível de um trabalho para que seja atingido
o trabalho irá se ater ao Guia de Imple- E alguns processos evoluem e outros sur- um objetivo. Estas operações devem ser
mentação parte 1 – Nível G (SOFTEX, gem. No nível B a Gerência de projetos planejadas, executadas e controladas por
2007b). passa a ter enfoque quantitativo. pessoas e têm restrições de recursos.
Como descrito no Guia de Implemen-
Implementação do Nível G Fundamentação Teórica tação parte 1 – Nível G (SOFTEX, 2007b)
No Guia de Implementação parte 1 O Guia de Implementação parte 1 – Ní- e no PMBOK (Project Management Body
– Nível G (SOFTEX, 2007b) o nível G é vel G (SOFTEX, 2007b) busca fundamen- of Knowledge) (PMBOK, 2004), o geren-
o primeiro nível de maturidade do mo- tação teórica no PMBOK (Project Mana- ciamento de projeto é a aplicação de
delo MR-MPS. Deve-se tomar cuidado gement Body of Knowledge) que é um conhecimento, habilidades, ferramentas
redobrado para que sejam formadas guia em gerência de projetos tendo como e técnicas às atividades do projeto, a fim
estruturas sólidas para a implantação responsável por sua publicação o PMI de atender aos seus requisitos, estabe-
de melhoria dos processos de software (Project Management Institute). O PMI é lecer prioridades, gerenciar conflitos,
na organização. Ao final da implantação um dos mais conceituados institutos na identificar necessidades para que haja
deste nível de maturidade a organização área de gerência de projetos. O PMBOK aumento de qualidade, redução de cus-
será capaz de gerenciar parcialmente seus agrupa as boas práticas reconhecidas em tos e prazos na produção de artefatos de
processos de construção de software. gerenciamento de projeto. acordo com requisitos especificados.
Deve haver uma mudança radical na Quando se fala de Gerência de Projetos, Conforme o IEEE (Institute of Electri-
cultura da empresa orientando-se a deve-se ter o conceito de projeto bem cal and Electronics Engineers), em seu
melhoria dos processos de construção e claro para que possamos entender me- Glossário Padrão de Terminologias da
também a definição do conceito acerca lhor sua gerência. O PMBOK (PMBOK, Engenharia de Software (IEEE Std 610.12,
do que é “projeto” para a organização, 2004) apresenta uma das definições de 1990), a gerência de projetos de software
isto é, redefinir operações já em anda- projeto mais reconhecidas atualmente: pode ser definida como a aplicação de
mento estabelecendo objetivos, prazos “Projeto é um esforço temporário empre- planejamento, coordenação, medição,
e escopo para sua execução. endido para criar um produto, serviço monitoramento, controle e divulgação
Para que seja conseguida a certificação ou resultado exclusivo”. Temporário por de relatórios, com o intuito de garantir
o nível G do modelo MPS, as organiza- que o projeto deve possuir um inicio e que o desenvolvimento e a manutenção
ções devem fazer a Gerência de Projeto um fim. de software sejam sistemáticos, discipli-
e Gerência de Requisitos. Que serão No termo “produto, serviço ou resul- nados e qualificados.
descritos a seguir. tado exclusivo”, a exclusividade e a ela-
boração progressiva são características Gerência de Requisitos
Gerência de Projetos importantes a serem observadas nas
entregas do projeto. Outra característica Propósito
Propósito importante de projeto é a elaboração No Guia de Implementação parte 1 –
No Guia de Implementação parte 1 progressiva que integra os conceitos de Nível G (SOFTEX, 2007b) na Gerência
– Nível G (SOFTEX, 2007b) a Gerência temporalidade e exclusividade. Elabora- Requisitos de produtos, a identificação
de Projetos tem como propósito estabe- ção progressiva significa desenvolver em de inconsistências é o propósito principal
lecer e manter planos que definem as etapas e por incrementos. Por exemplo, do processo de Gerência de Requisitos e
atividades, recursos e responsabilidades o escopo do projeto será identificado de tem como objetivo o controle da evolução
do projeto, prover informações sobre o maneira geral no início do projeto e se dos requisitos tanto funcionais como
andamento do projeto que permitam tornará mais claro e refinado à medida não-funcionais. Também fornece apoio
correções quando houver desvios sig- que a equipe do projeto desenvolve um ao planejamento definindo um conjunto
nificativos no desempenho do projeto. entendimento mais completo dos objeti- de passos que serão seguidos pela orga-
À medida que o nível de maturidade da vos e das entregas. Outro conceito são as nização. Com a Gerência de Requisitos,
empresa evolui, este propósito também operações que fazem parte da execução alterações de requisitos de projeto são

Edição 07 - Engenharia de Software Magazine 55


melhor administradas, diminuindo os requisitos. A rastreabilidade pode ser es- em mais de 100 avaliações oficiais MPS,
impactos que estas possam causar aos cus- tabelecida, desde um requisito alto nível 91,4% foram para os níveis F e G.
tos, prazos e qualidade do projeto. Docu- até seus requisitos de mais baixo nível e Para que os custos de implantação e
mentar as mudanças nos requisitos e suas destes até o seu requisito de alto nível. avaliação diminuíssem, o MPS foi divi-
justificativas mantém a rastreabilidade A rastreabilidade bidirecional auxilia a dido em níveis: Nível G – Parcialmente
bidirecional entre os requisitos e produtos determinar se todos os requisitos de alto Gerenciado, F – Gerenciado, E – Par-
de trabalho e identificam inconsistências nível foram completamente tratados e se cialmente Definido, D – Largamente
entre os requisitos, os planos do projeto e todos os requisitos de mais baixo nível Definido, C – Definido, B – Gerenciado
os produtos de trabalho do projeto. podem ser rastreados. Quantitativamente e A – Em Otimização.
Existem projeções oficiais que 180 em-
Fundamentação Teórica Atributos de processo no nível G presas serão certificadas até dezembro
O Guia de Implementação parte 1 De acordo com o Guia Geral do MR- de 2009. O MPS vem sendo apoiado di-
– Nível G (SOFTEX, 2007b) busca fun- MPS: “a capacidade do processo é repre- retamente pelo governo brasileiro (MCT
damentação teórica em Dorfmann e sentada por um conjunto de atributos de e FINEP) e BID.
Thayer (1990) que diz que requisito de processo descrito em termos de resulta- Dentro deste contexto, identifica-se a
software representa a capacidade que dos esperados.” Porém, sua análise não oportunidade de apoiar as empresas que
deve ser encontrada ou possuída por um está no escopo deste artigo. optam por implementar as normativas
determinado produto ou componente de Segundo o Guia de Implementação par- que compõem o modelo MPS, como
produto para satisfazer a um contrato, a te 1 – Nível G (SOFTEX, 2007b), existem forma de padronizar seus processos,
um padrão, a uma especificação ou a ou- dois atributos de processo que são: gerenciá-los e controlá-los, no intuito de
tros documentos formalmente impostos. • AP 1.1 - O processo é executado; trazer ganhos, sobretudo em qualidade
Os requisitos indicam a capacidade do • AP 2.1 - O processo é gerenciado. e redução de custos.
software requerida pelo usuário para Baseado nesta oportunidade identifi-
resolver um problema ou alcançar um Como este não é o foco deste artigo, cada, pode-se dizer que um trabalho de
objetivo. A gerência de requisitos envol- foi feita apensa uma menção a estes survey, desenvolvido e fundamentado
ve estabelecer e manter um acordo entre atributos. em práticas reais de implementação, po-
o cliente e a equipe de projeto sobre os deria orientar novos implementadores e
requisitos estabelecidos e sobre qualquer Planejamento do Survey empresas interessadas em implementar
mudança ocorrida neles. Para apoiar esse o modelo, com as formas utilizadas pelos
processo de mudança, é fundamental Justificativa para o Survey atuais implementadores para evidenciar
definir e manter a rastreabilidade dos Um número cada vez maior de em- as exigências do MPS, assim como dar
requisitos. Rastreabilidade é o grau de presas de desenvolvimento de software ciência a estes atuais implementadores
relacionamento que pode ser estabele- brasileiras tem optado pela certificação do modelo sobre quais são os artefatos
cido entre dois ou mais produtos. MPS (modelo de maturidade nacional), mais utilizados por aqueles que contri-
No Guia de Implementação parte 1 – isto por que este modelo aprimora de buíram com a pesquisa. Este trabalho
Nível G (SOFTEX, 2007b) a gerência de forma simples e efetiva os processos de poderia conter ainda dados percentuais
requisitos é implementada com a iden- software destas empresas. Conforme já indicativos de quão utilizados são pelos
tificação, controle e rastreamento dos citado anteriormente, o MPS tem como implementadores do MPS.
requisitos, bem como com o tratamento principal objetivo a certificação de pe- Segundo (Wohlin, C., et al, 2000),
das mudanças nos requisitos mantendo- quena e médias empresas. Isto é compro- “em um survey, um questionário pode
se a rastreabilidade bidirecional dos vado pelos seguintes dados: atualmente ser construído para que se obtenha

56 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

informações necessárias à pesquisa. As a implementação dos requisitos básicos Questão 2: GPR2 – Dimensionamento
informações coletadas são então arranja- para a certificação no nível G de ma- do projeto de software. Como você pro-
das de forma que possam ser tratadas de turidade e capacidade, do modelo de cura evidenciar os critérios de dimen-
maneira quantitativa ou qualitativa”. referência MPS. sionamento das tarefas e os produtos
Neste sentido este artigo foi desenvolvi- de trabalho do projeto?
do com base em um survey, com intuito de Objetivos da Medição
levantar dados para a geração de conheci- I. Pesquisar como os implementadores Questão 3: GPR3 – Definição do mode-
mento, através de questionamentos dire- do MPS evidenciam os requisitos neces- lo e ciclo de vida do projeto de software.
cionados sobre o assunto, para posterior sários à avaliação do nível G. Como você evidencia o modelo adotado
análise com a aplicação de métricas que II. Apresentar as evidências mais e as fases do ciclo de vida de um projeto
proporcionem uma mensuração de forma utilizadas pelos implementadores para de software?
uniforme e consistente dos dados colhidos, atender às exigências do nível G do
resultando na geração de informações modelo MPS. Questão 4: GPR4 – Estimativa de esfor-
úteis à comunidade implementadora e ço e custo para a execução das tarefas e
empresas interessadas na certificação do Objetivo do Estudo dos produtos de trabalho. Qual o método
primeiro nível do modelo (nível G). Analisar os dados fornecidos pelos usado para estimar o esforço e o custo
implementadores do MPS para a execução das atividades e geração
Definição da Metodologia Com o propósito de caracterizar, iden- dos produtos de trabalho?
A geração de informações acuradas a tificar e indicar
partir do trabalho de levantamento e da Com respeito às formas de evidenciar Questão 5: GPR5 - Estabelecimento de
avaliação dos dados reunidos necessita os requisitos necessários à avaliação do orçamento, cronograma, marcos e/ou
de uma metodologia bem definida, com nível G pontos de controle do projeto. Como você
objetivos claros e que ainda forneça me- Do ponto de vista dos implementado- prefere evidenciar a forma com que são
canismos que permitam medir de forma res do MPS estabelecidos e mantidos estes itens?
padronizada os dados fornecidos pelos No contexto do nível G do modelo
implementadores, para que as informa- MPS. Questão 6: GPR6 – Identificação dos
ções geradas possam estar consistentes Analisar os dados fornecidos pelos riscos do projeto. Como você procura
e bem estruturadas. implementadores do MPS evidenciar os riscos do projeto, seus
Para a elaboração do questionário de Com o propósito de compreender impactos, probabilidade de ocorrência
Levantamento e Avaliação foi adotada Com respeito às evidências mais uti- e prioridades de tratamento?
a Metodologia GQM - Goal-Question- lizadas pelos implementadores do MPS
Metric - (SOFTEX, 2008), devido à ne- para atender às exigências do nível G do Questão 7: GPR7 – Definição dos
cessidade, em um primeiro momento, modelo MPS. recursos humanos necessários para a
de definir um padrão que permitisse Do ponto de vista dos pesquisadores execução do projeto. Como você procura
gerar questionamentos consistentes e No contexto do processo de certifica- evidenciar o planejamento de alocação
mensuráveis, aos implementadores do ção do modelo MPS nível G. de recursos humanos dentro do projeto,
nível G do modelo MPS. No sentido considerando os perfis e conhecimentos
oposto do processo, era preciso inter- Questões e Métricas necessários?
pretar de forma uniforme as respostas I. Analisar os dados fornecidos pelos
emitidas para cada questionamento implementadores do MPS com o propó- Questão 8: GPR8 - Planejamento das
relacionado aos diversos resultados sito de caracterizar, identificar e indicar tarefas, os recursos e o ambiente de
esperados pelo modelo MPS, nível G. com respeito às formas de evidenciar trabalho necessário para executar o
Pelo fato de ser baseado em métricas, os requisitos necessários à avaliação do projeto. Qual método você utiliza para
o GQM atendeu bem as necessidades nível G, do ponto de vista dos imple- evidenciar o planejamento dos itens
identificadas para a concepção do mentadores do modelo MPS no contexto citados acima?
questionário, assim como para a ava- do nível G.
liação das respostas. Questão 1: GPR1 - Definição do esco- Questão 9: GPR9 - Os dados rele-
po do trabalho. Como você evidencia a vantes do projeto são identificados e
GQM (Goal – Question – Metrics) definição do escopo de um projeto de planejados quanto à forma de coleta,
software? armazenamento e distribuição. Um
Definição dos Objetivos
Objetivo Global
Planejar um estudo experimental (sur-
vey) para indicar as formas adotadas
por implementadores, para evidenciar

Edição 07 - Engenharia de Software Magazine 57


mecanismo é estabelecido para acessá- de questões pertinentes, incluindo as propósito de compreender, com respeito
los, incluindo, se pertinente, questões dependências críticas com as partes às evidências mais utilizadas pelos im-
de privacidade e segurança. Como interessadas? plementadores do MPS, para atender às
você evidencia o cumprimento destes exigências do nível G do modelo MPS
requisitos do nível G? Questão 17: GPR17 - Ações para cor- do ponto de vista dos pesquisadores, no
Questão 10: GPR10 - Estabelecimento rigir desvios em relação ao planejado e contexto do processo de certificação do
dos planos de execução do projeto. para prevenir a repetição dos problemas modelo MPS nível G.
Como você procura evidenciar a forma identificados são estabelecidas, imple- Métrica 1: Dado um conjunto de evi-
de estabelecimento dos planos de exe- mentadas e acompanhadas até a sua con- dências indicadas como itens de resposta
cução e como estes são reunidos? clusão. Quais os métodos utilizados por para cada resultado esperado do Nível
você para atender a estes requisitos? G do modelo MPS, some o número de
Questão 11: GPR11 - Avaliação da via- vezes que cada uma delas foi selecionada
bilidade de atingir as metas do projeto, Questão 18: GRE1 - Obter o entendi- pelos implementadores participantes da
considerando as restrições e os recursos mento dos requisitos junto aos fornece- pesquisa.
disponíveis. Como você evidencia esta dores de requisitos. Como você procura Métrica 2: Dado o total obtido na
análise? evidenciar o registro do entendimento métrica 1, divida pelo número de imple-
obtido? mentadores participantes da pesquisa,
Questão 12: GPR12 - Revisão do Plano obtendo o percentual de implementa-
do Projeto com todos os interessados. Questão 19: GRE2 - Obter a aprovação dores que utilizam a prática ou artefato
Como você evidencia a revisão do Plano dos requisitos de software utilizando indicado pela opção.
de Projeto e a obtenção do comprometi- critérios objetivos. Como você busca
mento de todos os envolvidos? evidenciar a aprovação dos requisitos Planejamento
de software e dos critérios utilizados Nas seções a seguir, alguns aspectos
Questão 13: GPR13 - Monitoramento nesta aprovação? importantes serão discutidos para
do progresso do projeto e documenta- prover uma visão mais clara de todo o
ção dos resultados obtidos. Como você Questão 20: GRE3 - A rastreabilidade processo do survey.
evidencia o progresso do projeto, a bidirecional entre os requisitos e os pro-
monitoração efetuada e a documentação dutos de trabalho deve ser estabelecida e Descrição da Instrumentação
dos resultados? mantida. Como você evidencia a criação Para analisarmos as práticas mais
e manutenção da rastreabilidade bidire- utilizadas pelos implementadores do
Questão 14: GPR14 - Gerenciamento do cional entre os requisitos e os produtos modelo MR-MPS ao evidenciarem os
envolvimento das partes interessadas no de trabalho? resultados esperados no escopo do nível
projeto. Como você procura evidenciar G, foi preciso criar um instrumento que
o envolvimento dos interessados no Questão 21: GRE4 - Revisões em pla- permitisse levantar estes dados de uma
projeto? nos e produtos de trabalho do projeto maneira clara, objetiva e que pudesse
devem ser realizadas visando identificar registrá-los para uma posterior análise e
Questão 15: GPR15 - Revisões em mar- e corrigir inconsistências em relação aos geração de informação/conhecimento. A
cos do projeto e conforme estabelecido requisitos. Como você procura eviden- opção adotada foi a criação de um ques-
no planejamento. Como você evidencia ciar a realização destas revisões? tionário, em formato de planilha, para
a revisões necessárias no projeto? Questão 22: GRE5 - Gerenciamento entrevistar os implementadores, visando
de mudanças nos requisitos ao longo obter respostas às perguntas identifica-
Questão 16: GPR16 - Registros de pro- do projeto. Como você evidencia as das pela aplicação da metodologia GQM.
blemas identificados e o resultado da mudanças nos requisitos ocorridas no Esta escolha baseou-se no fato de que
análise de questões pertinentes. Como decorrer do projeto? um questionário de perguntas diretas
você evidencia o estabelecimento, o seria uma maneira rápida e objetiva de
registro e o tratamento dos problemas II. Analisar os dados fornecidos pe- abordar de forma remota o público alvo
identificados e o resultado da análise los implementadores do MPS com o deste trabalho, além de proporcionar

58 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


Processo

Ameaças à Validade Interna


maior comodidade ao entrevistado e ain-
Ameaça Tratamento Adotado
da viabilizar a conclusão do processo de
pesquisa da forma mais eficiente, suave Revisão e avaliação do questionário quanto ao formato e à formulação das
Má instrumentação
e menos incisiva, quanto possível. perguntas.
Os itens sugeridos como possíveis res- Como os pesquisados são implementadores confiamos no conhecimento prévio
Rivalidade compensatória.
postas aos questionamentos inseridos no do assunto.
questionário distribuído foram elabora- Os pesquisadores selecionaram a instituição a ser pesquisada. Os
Seleção
dos através de pesquisa aos documentos implementadores da COPPE-RJ participantes foram voluntários.
Guia Geral (SOFTEX, 2007a) e Guia de Todos os dados foram coletados dentro do mesmo intervalo de tempo e foram
Maturação
Implementação (SOFTEX, 2007b), além analisados todos em lote único.
de consultas ao material do Curso Oficial Tabela 2. Tratamento das Ameaças à Validade da Pesquisa
de Formação de Implementadores MPS.
BR (SOFTEX, 2008). Ameaças à Validade da Conclusão
Foi feito um projeto piloto para que
Ameaça Tratamento Adotado
avaliássemos os seguintes pontos:
Busca de um resultado específico Elaborar perguntas que levem os participantes a responder de forma imparcial.
• A compreen são do i nt u ito da
pesquisa; Buscou-se utilizar questões objetivas, em detrimento de questões discursivas, na
Confiabilidade das medições
• O entendimento das perguntas; tentativa de evitar a necessidade de interpretação das respostas.
• O tempo médio de resposta; Os dados foram coletados com os participantes no mesmo período. Todos foram
Confiabilidade no tratamento da implementação
• Percentual de resposta a pesquisa; e submetidos ao mesmo questionário e em iguais condições para a resposta.
• A aceitação do trabalho, críticas e Confiabilidade do tratamento. Avaliação do questionário a ser utilizado através de um estudo piloto.
sugestões. A pesquisa busca conhecer as práticas adotadas pelos implementadores somente
Heterogeneidade dos participantes. para os itens de Gerência de Projetos e Gerência de Requisitos. Além disso, foi
Na execução deste projeto piloto, o escolhida apenas uma instituição implementadora.
questionário mostrou-se adequado, sen- Tabela 3. Tratamento das Ameaças à Validade da Pesquisa
do necessários apenas pequenos ajustes
na escrita de algumas questões. Ameaças à Validade da Construção
Ameaça Tratamento Adotado
Procedimentos de Análise Revisão do planejamento, verificando se todas as perguntas dos questionários de
Os dados coletados para evidenciar Explicação inadequada das construções
caracterização estão claras e bem definidas.
os artefatos mais i ndicados pelos Preocupação dos participantes em relação ao uso Explicação dos objetivos da pesquisa e da confidencialidade das respostas aos
implementadores do modelo MPS dos dados fornecidos participantes da pesquisa.
participantes da pesquisa, utilizados Revisão do questionário, observando a formulação das perguntas e as possibilidades
atender as exigências do nível G do mo- Influência da expectativa do pesquisador nos de resposta fornecidas aos participantes.
delo MPS, foram analisados em apenas resultados Buscou-se utilizar questões objetivas, em detrimento de questões discursivas, na
um lote. Gráficos foram gerados para tentativa de evitar a necessidade de interpretação das respostas.
ilustrar a variação entre as diferentes Tabela 4. Tratamento das Ameaças à Validade da Pesquisa
práticas adotadas em relação às opções
existentes.
É importante ressaltar que durante o Ameaças à Validade Externa
procedimento de análise foi observado Ameaça Tratamento Adotado
que alguns implementadores utiliza- A população utilizada é representativa e inserida no contexto do tratamento.
ram o campo “Descrição”, porém não Interação da seleção e tratamento. Entretanto, ressalta-se que a generalização para as demais instituições não é o
assinalaram a opção “Outros”. Este objetivo do presente trabalho.
fato gerou algumas inconsistências nos A pesquisa foi realizada logo após a revisão do modelo MPS para que o trabalho
Interação entre histórico e tratamento
gráficos, a exemplo do GPR16 e GRE4. pudesse agregar valor referente à atualização o modelo.
Apesar de identificado o problema, os Tabela 5. Tratamento das Ameaças à Validade Externa da Pesquisa
dados gerados pelos implementadores
não foram alterados, no intuito de man- Foi realizado em etapa única. Somente Seleção dos Participantes
ter a integridade dos dados originais. um questionário de caracterização de Foi escolhida somente uma instituição
práticas mais utilizadas foi preenchido implementadora, a COPPE-UFRJ, como
Seleção do Contexto por cada implementador. Cada partici- universo de amostragem. O intuito foi
O estudo será conduzido de forma off- pante teve o seu tempo e ambiente para delimitar um universo de pesquisa
line, ou seja, o questionário foi entregue preencher o questionário, colaborando para comparação com outras institui-
aos participantes e não foi acompanhado. com o estudo. ções implementadoras em trabalhos

Edição 07 - Engenharia de Software Magazine 59


Validade de construção
As ameaças à validade de construção
estão listadas na Tabela 4.

Validade externa
As ameaças à validade externa estão
listadas na Tabela 5.

Execução da Pesquisa e Análise dos


Resultados
Figura 2. Definição de Escopo de Trabalho (1) Figura 3. Definição de Escopo de Trabalho (2) A idéia inicial do survey era aplicar
o questionário a toda comunidade im-
plementadora do modelo MPS. Porém,
ao estudar o universo resultante do
que estava sendo pretendido, optou-
se por um universo menor e mais
controlado, como forma de avaliar a
metodologia aplicada e o resultado
final do estudo.
Desta maneira o survey foi aplicado
a implementadores do modelo MPS
nível G, certificados junto à SOFTEX,
pertencentes à instituição COPPE-
Figura 4. Dimensionamento do projeto de Figura 5. Dimensionamento do projeto de RJ. Eles responderam a perguntas
software (1) software (2) constantes do questionário, tendo em
vista os artefatos mais adotados para
evidenciar as exigências do nível G do
modelo MPS.
O questionário foi distribuído através
de correio eletrônico (e-mail), visando
primeiramente dar uma maior liber-
dade aos pesquisados em responder
à pesquisa e diminuir o tempo de res-
posta. Além disso, também se pensou
em reduzir o tempo com deslocamen-
tos dos pesquisadores para entrevistar
Figura 6. Ciclo de vida do projeto de software (1) Figura 7. Ciclo de vida do projeto de software (2) os implementadores. Por este motivo,
optou-se por um questionário em meio
futuros. Além disso, a quantidade de atingida pelo survey consiste de imple- eletrônico.
implementadores pertencentes à insti- mentadores do nível G do modelo MPS As respostas constantes nos docu-
tuição escolhida permitia atingir um certificados junto à SOFTEX, integrantes mentos recebidos foram catalogadas
número expressivo de respostas, au- da instituição COPPE-RJ. e agrupadas por resultado esperado
mentando nossa amostra e conferindo (GPR’s e GRE’s) em planilha Excel
maior confiabilidade ao resultado da Ameaças à Validade e a partir de fórmulas inseridas no
pesquisa. Outro ponto importante que Validade interna aplicativo, foram contabilizadas para
influenciou a opção pela COPPE-RJ, As ameaças à validade interna estão que fossem obt idos os í ndices de
foi a proximidade geográfica, pois em listadas na Tabela 2. preferência entre os implementadores
caso de um baixo índice de respostas participantes.
remotas, seria viável uma tentativa de Validade de conclusão É importante frisar que as amostras
realizar a pesquisa pessoalmente com os As ameaças à validade de conclusão coletadas neste trabalho foram retiradas
implementadores. Portanto, a população estão listadas na Tabela 3. de um universo limitado e específico:
os implementadores da COPPE-RJ.
Ressalta-se ainda que do universo total
de possibilidades (26 implementadores
da instituição, encontrados no site do

60 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

SOFTEX (disponível em www.softex.


br)), foram alvo da pesquisa 19 imple-
mentadores (73%), devido a problemas
encontrados na entrega eletrônica do
questionário aos mesmos. Destes, 11
implementadores (58%) responderam ao
questionário, com suas opções e consi-
derações a respeito dos itens abordados,
o que deu origem à base de dados utili-
zada neste estudo experimental.
Figura 8. Estimar o esforço e o custo (1) Figura 9. Estimar o esforço e o custo (2)
Resultados do Survey para o
Processo de Gerência de Projetos
Neste item será mostrado por meio
de gráficos como os implementadores
participantes da pesquisa realizada
evidenciam cada um dos resultados
esperados para o processo Gerencia de
Projetos (GPR). Estes dados estão expli-
citados nos gráficos em valores absolutos
e relativos.
O primeiro gráfico de cada GPR evi-
dencia as opções de resposta segundo a Figura 10. Estabelecimento de orçamento (1) Figura 11. Estabelecimento de orçamento (2)
visão dos pesquisadores para o GPR. Os
implementadores tiveram a possibilida-
de de escolher uma ou mais alternativas
sugeridas para cada GPR.
O segundo gráfico de cada GPR eviden-
cia a opção “Outros”, onde os implemen-
tadores participantes puderam mostrar
formas alternativas e particulares de
evidenciar um determinado GPR, que
não constavam da lista de opções apre-
sentada pelo questionário.
Figura 12. Identificação dos riscos (1) Figura 13. Identificação dos riscos (2)
GPR1 - Def i n iç ão do escopo do
trabalho. colocaram o Documento de Visão GPR2 - Dimensionamento do projeto
Pergunta: Como você evidencia a de- como forma de evidenciar o GPR1. de software.
finição do escopo de um projeto de Porém, aproximadamente 30% dos Pergunta: Como você procura evidenciar
software? implementadores selecionaram as os critérios de dimensionamento das tare-
A Fig u ra 2 most ra que a opç ão opções A e B, assim entende-se que fas e os produtos de trabalho do projeto?
Doc umento de Visão recebendo 7 EAP/WBS e o Documento de Visão As Figuras 4 e 5 mostram que mes-
indicações acrescidas de 2 indicações são complementares como forma de mo que EAP tenha sido referenciada 8
na opção “Outros” (Figura 3) que evidenciar o GPR1. vezes, o Documento de Requisitos (5) e

Edição 07 - Engenharia de Software Magazine 61


selecionaram a opção “Histórico de
Projetos realizados” (7) juntamente com
a opção descrita acima. Com isto, enten-
demos que o conjunto das duas opções
evidencia o GPR4.

GPR5 - Estabelecimento de orçamento,


cronograma, marcos e/ou pontos de
controle do projeto.
Pergunta: Como você prefere eviden-
Figura 14. Definição dos recursos humanos (1) Figura 15. Definição dos recursos humanos (2) ciar a forma com que são estabelecidos
e mantidos estes itens?
Para as Figuras 10 e 11, apesar do item
“Cronograma definido e atualizado
contendo dependência entre tarefas e o
caminho crítico” ter recebido 10 votos,
a opção “Plano de custos definido e
atualizado” com 6 e o item “Através de
ferramentas de controle de progresso
físico” com 5 votos sempre estão em
conjunto com o primeiro item descrito.
Podemos dizer que o “Cronograma defi-
Figura 16. Planejamento das tarefas (1) Figura 17. Planejamento das tarefas (2)
nido e atualizado contendo dependência
entre tarefas e o caminho crítico” é um
item complementar aos artefatos que
evidenciam o GPR5.

GPR6 – Identificação dos riscos do


projeto.
Pergunta: Como você procura eviden-
ciar os riscos do projeto, seus impactos,
probabilidade de ocorrência e priorida-
des de tratamento?
As Figuras 12 e 13 possuem indicado-
Figura 18. Dados relevantes do projeto (1) Figura 19. Dados relevantes do projeto (2) res que mostram que 72.7% identificam
os riscos através de “Planilha de Riscos”.
Históricos de Projetos (4+1 na figura 5.4) o ciclo de vida adotado. Além disso, 50% dos implementadores
são formas importantes para a eviden- que utilizam a planilha de riscos tam-
ciação do GPR2, haja visto que 46% dos GPR4 – Estimativa de esforço e custo bém usam ferramentas próprias para a
participantes selecionaram estas duas para a execução das tarefas e dos pro- monitoração dos riscos.
formas de evidenciá-lo. dutos de trabalho.
Pergunta: Qual o método usado para GPR7 – Definição dos recursos hu-
GPR3 – Definição do modelo e ciclo estimar o esforço e o custo para a manos necessários para a execução do
de vida do projeto de software. execução das atividades e geração dos projeto.
Pergunta: Como você evidência o mo- produtos de trabalho? Pergunta: Como você procura evi-
delo adotado e as fases do ciclo de vida Para as Figuras 8 e 9, a opção “Crono- denciar o planejamento de alocação de
de um projeto de software? grama planejado com horas de trabalho” recursos humanos dentro do projeto,
Com as Figuras 6 e 7, claramente (com 10 indicações) poderia ser conside- considerando os perfis e conhecimentos
mostra-se que o GPR3 é evidenciado pela rada a evidência que caracteriza melhor necessários?
Descrição das atividades caracterizando o GPR4, mas 64% dos participantes Com as Figuras 14 e 15 podemos dizer

62 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

que o “Plano de recursos humanos” e a


“Planilha de alocação de pessoal com
bases em competências”, com 8 votos
cada, são ferramentas que em conjunto
evidenciam o GPR 7. Em outra análise,
podemos dizer também que 46% dos
participantes usam as duas ferramentas
em conjunto.

GPR8 - Planejamento das tarefas,


os recursos e o ambiente de trabalho
Figura 20. Planos de execução Figura 21. Avaliação da viabilidade (1)
necessário para executar o projeto.
Pergunta: Qual método você utiliza
para evidenciar o planejamento dos itens
citados acima?
As Figuras 16 e 17 evidenciam que o
“Plano de Projeto” é o principal artefato
para caracterizar o GPR8, pois 50% imple-
mentadores que optaram pela “Estrutura
analítica do projeto refinada com plane-
jamento de recursos para as tarefas” ou o
“Plano de gerencia de projetos” também
usam o item mais votado.
Figura 22. Avaliação da viabilidade (2) Figura 23. Revisão do Plano do Projeto (1)
GPR9 - Os dados relevantes do projeto
são identificados e planejados quanto
à forma de coleta, armazenamento e
distribuição. Um mecanismo é esta-
belecido para acessá-los, incluindo, se
pertinente, questões de privacidade e
segurança.
Pergunta: Como você evidencia o cum-
primento destes requisitos do nível G?
As Figuras 18 e 19 mostram que o
“Plano de documentação do projeto com
Figura 24. Revisão do Plano do Projeto (2) Figura 25. Monitoramento do progresso.
todos os documentos definidos” deve ser
a ferramenta para se evidenciar o GPR9,
isto por que, todos os outros artefatos Para o GPR10 a opção “Outros” não revisão do Plano de Projeto e a obten-
utilizam o item acima em conjunto para foi utilizada. ção de comprometimento de todos os
evidenciar o GPR9. envolvidos?
GPR11 - Avaliação da viabilidade As Figuras 23 e 24 mostram que 100%
GPR10 - Estabelecimento dos planos de atingir as metas do projeto, con- dos participantes pesquisados optaram
de execução do projeto. siderando as restrições e os recursos pelo “Registro de comprometimento
Pergunta: Como você procura evidenciar disponíveis. com o plano do projeto”. Verificou-se que
a forma de estabelecimento dos planos de Pergunta: Como você evidencia esta os 54,5% que optaram pelo “Laudo de
execução e como estes são reunidos? análise? avaliação do plano de projeto” também
A Figura 20 mostra que 100% dos As Figuras 21 e 22 evidenciam que usam o “Registro de comprometimento
implementadores pesquisados usam o aproximadamente 91% dos implementa- com o plano do projeto” para evidenciar
“Plano do projeto integrado” para evi- dores pesquisados utilizam “Documen- o GPR12.
denciar o GPR 10. to de estudo de viabilidade, com critérios GPR13 - Monitoramento do pro-
estabelecidos”. gresso do projeto e documentação dos
resultados obtidos.
GPR12 - Revisão do Plano do Projeto Pergunta: Como você evidencia o pro-
com todos os interessados. gresso do projeto, a monitoração efetua-
Pergunta: Como você evidencia a da e a documentação dos resultados?

Edição 07 - Engenharia de Software Magazine 63


dos participantes que marcaram a opção
“Laudos de revisão de fim de fase de
projeto” também selecionaram a opção
“Laudos de revisões nos marcos” que
recebeu 91% de aceitação.

GPR16 - Registros de problemas iden-


tificados e o resultado da análise de
questões pertinentes.
Pergunta: Como você evidencia o es-
Figura 26. Envolvimento das partes Figura 27. Revisões em marcos (1) tabelecimento, o registro e o tratamento
dos problemas identificados e o resulta-
do da análise de questões pertinentes,
incluindo as dependências críticas com
as partes interessadas?
As Figuras 29 e 30 evidenciam que
72,7% dos participantes optaram por
“Lista de problemas identificados”.
Todos os que usam “Ferramentas de
bug-tracking não apenas para os defei-
tos” (27,2%) usam também a opção mais
votada e 75% dos que usam “Reuniões
Figura 28. Revisões em marcos (2) Figura 29. Registros de problemas (1) de acompanhamento” também usam a
mais selecionada.

GPR17 - Ações para corrigir desvios


em relação ao planejado e para prevenir
a repetição dos problemas identifica-
dos são estabelecidas, implementadas e
acompanhadas até a sua conclusão.
Pergunta: Quais os métodos utili-
zados por você para atender a estes
requisitos?
A Figura 31 nos mostra que o “Plano
Figura 30. Registros de problemas (2) Figura 31. Ações para corrigir desvios de ação corretiva com informações de
acompanhamento da execução das
A Figura 25 evidencia que 91% dos se evidenciar o GPR14. Caso fossemos ações” corresponde a 82% das respostas.
pesquisados usam o “Relatório de moni- analisar de forma simplista poderíamos Verificou-se que 67% dos que escolheram
toração do projeto”. Verificou-se também dizer que “Emails de comunicação aos “Ferramentas de bug-tracking” também
que 86% dos pesquisados que usam interessados” com 91% das opções assi- usam o “Plano de ação corretiva com
as “Reuniões de acompanhamento” naladas é simplesmente o artefato mais informações de acompanhamento da
também utilizam o ”Relatório de moni- utilizado, mas 81% usam mais do que um execução das ações”.
toração do projeto” para complementar artefato para evidenciar o GPR e 64% usam
a evidenciação do GPR13. pelo menos três artefatos para evidenciar Resultados do Survey para o Pro-
Para o GPR13 a opção “Outros” não o GPR14. cesso de Gerencia de Requisitos
foi utilizada. Para o GPR14 a opção “Outros” não Neste item mostraremos em forma de
foi utilizada. gráficos como os implementadores partici-
GPR14 - Gerenciamento do envol- pantes da pesquisa realizada evidenciam
vimento das partes interessadas no GPR15 - Rev isões em marcos do cada um dos resultados esperados para o
projeto. projeto e conforme estabelecido no processo Gerencia de Requisitos (GRE).
Pergunta: Como você procura eviden- planejamento. Estes dados estão explicitados nos gráficos
ciar o envolvimento dos interessados Pergunta: Como você evidencia as em valores absolutos e relativos.
no projeto? revisões necessárias no projeto? O primeiro gráfico de cada GRE mostra
A Figura 26 possui uma grande va- Além do que está evidenciado pelas as opções de resposta segundo a visão
riedade de opiniões para a forma de Figuras 27 e 28, verificou-se que 83% dos pesquisadores para o GRE. Os

64 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

implementadores tiveram a possibilida-


de de escolher uma ou mais alternativas
sugeridas para cada GRE.
O segundo gráfico de cada GRE retrata
a opção “Outros”, onde os implementa-
dores participantes puderam mostrar
formas alternativas e particulares de
evidenciar um determinado GRE que
não constavam da lista de opções apre-
sentada pelo questionário.
Figura 32. Obter o entendimento dos Figura 33. Obter o entendimento dos
GRE1 - Obter o entendimento dos requisitos (1) requisitos (2)
requisitos junto aos fornecedores de
requisitos.
Pergunta: Como você procura eviden-
ciar o registro do entendimento obtido?
Com as Figuras 32 e 33 verificam-se que
“Especificação de requisitos do sistema”
e “Atas de reuniões ou entrevistas com os
stakeholders” são usados de forma con-
junta para que seja evidenciado o GRE1.

GRE2 - Obter a aprovação dos requi-


sitos de software utilizando critérios Figura 34. Aprovação dos requisitos (1) Figura 35. Aprovação dos requisitos (2)
objetivo.
Pergunta: Como você busca evidenciar
a aprovação dos requisitos de softwa-
re e dos critérios de utilizados nesta
aprovação?
As Figuras 34 e 35 identificam que
“Laudo de avaliação dos requisitos com
base” e “Registro de comprometimento
com os requisitos estabelecidos, revisto
quando há mudanças.” são usados de
forma conjunta para que seja eviden-
ciado o GRE2. Verificou-se ainda que
89% dos implementadores pesquisados Figura 36. Rastreabilidade bidirecional (1) Figura 37. Rastreabilidade bidirecional (2)
que marcaram a opção “Registro de
comprometimento com os requisitos As Figuras 36 e 37 retratam que a “Ma- Pergunta: Como você procura eviden-
estabelecidos, revisto quando há mudan- triz de rastreabilidade” é o instrumento ciar a realização destas revisões?
ças” também registraram a “Laudo de mais utilizado (91%). O “Cronograma As Figuras 38 e 39 mostram que a
avaliação dos requisitos com base”. com tarefas refinadas para requisitos” e opção “Laudo de revisões realizadas”
a solução de mercado “Enterprise Archi- com 91% foi a mais selecionada, mas
GRE3 - A rastreabilidade bidirecional tect” são também mencionadas. 75% dos participantes que marcaram
entre os requisitos e os produtos de tra- a opção “Plano de ação corretiva para
balho deve ser estabelecida e mantida. GRE4 - Revisões em planos e pro- inconsistências identificadas” tam-
Pergunta: Como você evidencia a dutos de trabalho do projeto devem bém usaram a primeira resposta. Com
criação e manutenção da rastreabilida- ser realizadas visando identificar e isto, acredita-se que para quem utiliza
de bidirecional entre os requisitos e os corrigir inconsistências em relação o “Plano de ação corretiva para incon-
produtos de trabalho? aos requisitos. sistências identificadas”, os “Laudos

Edição 07 - Engenharia de Software Magazine 65


Tabela Resumo da Pesquisa
Número de
Resultados Prática mais indicada pelos implementadores % de
Implementadores que
Esperados participantes da pesquisa, através das opções pré-estabelecidas Preferência
indicaram a prática
GPR1 Documento de Visão 7 63,6%
GPR2 EAP (Estrutura Analítica do Projeto) 8 72,7%
GPR3 Através da descrição das atividades caracterizando o ciclo de vida adotado 10 90,9%
GPR4 Cronograma planejado com horas de trabalho 10 90,9%
GPR5 Cronograma definido e atualizado contendo dependência entre tarefas e caminho crítico 10 90,9%
GPR6 Através de planilha de riscos 8 72,7%
GPR7 Histórico de Projetos Realizados 10 90,9%
GPR8 Plano de Projeto 9 81,8%
GPR9 Plano de documentação do projeto com todos os documentos definidos (eletrônicos ou não) 10 90,9%
GPR10 Plano do projeto integrado 11 100,0%
GPR11 Documento de estudo de viabilidade com critérios estabelecidos 10 90,9%
GPR12 Registro de comprometimento com o plano de projeto 11 100,0%
GPR13 Relatório de monitoramento do projeto 10 90,9%
GPR14 E-mail de comunicação aos interessados 10 90,9%
GPR15 Laudo de revisões nos marcos 10 90,9%
GPR16 Lista de problemas identificados 8 72,7%
GPR17 Plano de ações corretivas com informações de acompanhamento da execução das ações 9 81,8%
GRE1 Especificação de requisitos do sistema 9 81,8%
GRE2 Laudo de avaliação dos requisitos com base nos critérios estabelecidos 10 90,9%
GRE3 Matriz de rastreabilidade 10 90,9%
GRE4 Laudo de revisões realizadas 10 90,9%
GRE5 Registro de análise de impacto realizada 9 81,8%
tabela 6. Resumo dos resultados.

de revisões realizadas” também são para o processo de Gerência de Projetos • A utilização da metodologia GQM
necessários para evidenciar o GRE4. (GPR), quanto para o processo de Ge- para a concepção de questionários
rência de Requisitos (GRE). A Tabela 6 do survey. Devido ao alto número de
GRE5 - Gerenciamento de mudanças apresenta um resumo com os artefatos respostas, 11 respostas de 19 possíveis
nos requisitos ao longo do projeto. mais indicados pelo grupo de implemen- (~58%), acreditamos que o questioná-
Pergunta: Como você evidencia as tadores participantes da pesquisa. Cada rio resultante seja adequado para este
mudanças nos requisitos ocorridas no linha da tabela traz um dos resultados tipo de pesquisa. Assim, o planeja-
decorrer do projeto? esperados pelos processos de Gerência mento do survey pode servir como
As Figuras 40 e 41 mostram que o de Projetos ou Gerência de Requisitos e a referência para o planejamento de
instrumento “Registro de análises de evidência mais indicada na pesquisa pelos novos surveys seguindo a metodolo-
impacto realizadas” é o mais utilizado implementadores. gia GQM, mesmo que com objetivos
com 82%. Verificou-se também que diferentes;
praticamente 75% dos implementadores Entre as contribuições deste trabalho • As informações resultantes da aná-
utilizam outros artefatos em conjunto destacamos as seguintes: lise dos dados. Espera-se que estas
para evidenciar o GRE5. • Uma revisão bibliográfica sobre o informações possam ser proveitosas
modelo MR-MPS e sua versão atual, para as instituições implementadoras
Conclusões que entrou em vigor em janeiro de e avaliadoras do modelo MPS, como
Neste artigo, foram apresentados todos 2008, tendo em vista que o trabalho forma de conhecer quais os artefatos
os resultados obtidos na pesquisa, estra- foi planejado e executado sobre a nova mais utilizados por parte significativa
tificados por resultado esperado, tanto versão do modelo; de uma das instituições que realizam

66 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G


ProC E S S o

esta atividade no Brasil, a COPPE-RJ,


ao evidenciar as exigências do nível G
do modelo MPS. Acredita-se que estas
informações são a maior contribuição
deste trabalho, pois podem ser utiliza-
das para auxiliar e orientar empresas
e implementadores em futuras imple-
mentações do modelo MPS, nível G.

Limitações
• A pesquisa foi baseada no universo
Figura 38. Revisões em planos (1) Figura 39. Revisões em planos (2)
de implementadores de uma só ins-
tituição implementadora, a COPPE/
UFRJ - FUNDAÇÃO COPPETEC.
Assim, o número de implementa-
dores que responderam a pesquisa
não retrata uma amostragem válida
para que pudéssemos afirmar que as
práticas relacionadas em nossa pes-
quisa são as mais utilizadas em um
contexto mais amplo e geral;
• A elevada ut ilização da opção
“Outros” na resposta a alg umas
perguntas do questionário sugere a Figura 40. Gerenciamento de mudanças (1) Figura 41. Gerenciamento de mudanças (2)
possibilidade de revisão e melhoria
na elaboração das alternativas ini- Referências
cialmente apresentadas; Dorfmann, M. e Thayer, R., Standards, Guidelines, and Examples of System and Software Requirements Engineering. Los Alamitos,
• A estratificação das respostas conti- CA: IEEE Computer Society Press, 1990.
das no campo “Descrição”, quando a
opção “Outros” foi selecionada pelos Fenton, N., Pfleeger, S. L., Software Metrics: A Rigorous and Practical Approach, International Thomson Computer Press, London,
participantes, precisou ser interpre- UK, 1997, 2a Ed.
tada para que pudesse ser agrupada IEEE Std 610.12 - IEEE Standard Glossary of Software Engineering Terminology, Institute of Electrical and Electronics Engineers, 1990.
em categorias, pois muitas vezes,
ISO/IEC 15504-1, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
uma mesma forma de evidenciar
uma exigência foi descrita de várias 15504-1: Information Technology - Process Assessment – Part 1 - Concepts and Vocabulary, Geneve: ISO, 2004.
formas por diferentes participantes.
ISO/IEC 15504-2, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
Desta forma, as respostas relacio-
nadas à opção “Outros” e conse- 15504-2: Information Technology - Process Assessment – Part 2 - Performing an Assessment, Geneve: ISO, 2003.
qüentemente ao campo “Descrição”, ISO/IEC 15504-5, The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC
durante o processo de análise, podem
ter absorvido alguma influência dos 15504-5: Information Technology - Process Assessment - Part 5: An exemplar Process Assessment Model, Geneve: ISO, 2006.
pesquisadores. Pressman, R. S., Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006.

Project Management Institute – PMI. A Guide to the Project Management Body of Knowledge - PMBOK™, Syba: PMI Publishing
Dê seu feedback sobre esta edição! Feedback
eu Division, 2004. Disponível em: <www.pmi.org>.
s

A Engenharia de Software Magazine SOFTEX. MPS.BR – Guia Geral, versão 1.2, Disponível em: http://www.softex.br, junho 2007a.
sobre e

tem que ser feita ao seu gosto.


SOFTEX. MPS.BR – Guia de Implementação – Parte 1 Nível G, versão 1.1, junho 2007b. Disponível em: www.softex.br.
s

ta
edição
Para isso, precisamos saber o que você,
leitor, acha da revista! SOFTEX, Apostila do Curso Oficial de Formação de Implementadores MPS.BR - versão 1.2, 2008.
Dê seu voto sobre este artigo, através do link: Wohlin, C., Runeson, P., Martin, H., Ohlsson, M. C., Regnell, B., Wesslén, A., Experimentation in Software Engineering: An Introducion.
www.devmedia.com.br/esmag/feedback Massachussets: Kluwer Academic Publishers, 2000.

Edição 07 - Engenharia de Software Magazine 67


68 Engenharia de Software Magazine - Apoiando a Implementação do Modelo de Maturidade MPS Nível G

Você também pode gostar