Você está na página 1de 4

Engenharia

Nesta seção você encontra artigos voltados para testes, processo,


modelos, documentação, entre outros

CMMI – Uma visão Geral


Um modelo de maturidade para o processo de construção de software

De que se trata o artigo?


Demonstrar, através de uma visão geral, como o mo-
delo de qualidade CMMI pode contribuir no processo
de desenvolvimento de software. Você conhecerá os
conceitos, características, objetivos e representações
referentes a este modelo de qualidade.

Em que situação o tema é útil?

A
o longo dos últimos anos, tanto Nos projetos de desenvolvimento de software,
as empresas de desenvolvi- que adotam políticas de qualidade, sobretudo
mento de soft ware quanto quando se deseja buscar mercados externos ou
seus clientes têm se preocupado com expandir seus clientes internos aumentando a
problemas que são comumente identifi- satisfação dos mesmos.
cados durante a execução dos projetos,
tais como: prazos e orçamentos não Resumo
cumpridos, insatisfação de ambos os Este artigo tem como propósito apresentar
lados, produtos com erros, entre outros. uma visão geral sobre maturidade dos proces-
No entanto, há algum tempo, existe um sos de desenvolvimento de software, visando a
consenso na Engenharia de Software de qualidade do produto gerado e a consequente
que estes problemas estão, em grande satisfação dos seus clientes, através do mode-
parte, relacionados ao fato de que o lo de referência CMMI. Trata-se de um modelo
desenvolvimento de sistemas é muitas internacional, desenvolvido pelo Software En-
Lenildo Morais
vezes realizado de forma “artesanal”, gineering Institute – SEI, que pode dar suporte
lenildojmorais@gmail.com
É analista de sistemas e analista de testes. ou através de métodos improvisados às organizações que procuram aprimorar seus
Atualmente está cursando mestrado no pelos desenvolvedores. Tais métodos processos de desenvolvimento de software,
centro de informática da UFPE em enge- dependem mais do talento individual tornando-se assim mais competitivas.
nharia de software com ênfase em testes do desenvolvedor que de uma sólida
e qualidade de software.
formação que oriente suas atividades.

32 Engenharia de Software Magazine - CMMI – Uma visão Geral


PROC ESS O

Um processo definido e controlado pode garantir um produto relacionados principalmente à qualidade, custos e prazos. Com
de qualidade, sobretudo do ponto de vista do desenvolvi- isso, o CMMI pode ser aplicado em uma organização em etapas
mento de software. O Capability Maturity Model Integration, consecutivas, representando a ideia de maturidade (avaliada
ou CMMI, como é chamado, é um modelo de referência que por estágios) da organização, ou de maneira contínua, onde
provê uma orientação para o desenvolvimento de processos é medida a capacidade em processos individuais, conforme
de software, procurando nortear a organização no sentido de ilustrado na Figura 1.
implementar a melhoria contínua do processo de software (ler
Nota do DevMan 1).

Nota do DevMan

CMMI e MPS.BR: Desde a década de 1990, vários modelos de maturidade de


processos vêm sendo propostos com o objetivo de auxiliar na melhoria da qualidade
dos processos de software adotados pelas organizações. Entre eles podemos citar os
modelos CMM, Spice – ISO/IEC 15504, CMMI e mais recentemente, no Brasil, o MPS-
BR. Atualmente as organizações que desenvolvem software estão atentas às neces-
sidades da adoção de processos de desenvolvimento de software melhor definidos, e Figura 1. $BQBDJEBEFF.BUVSJEBEF0SHBOJ[BDJPOBM
observam-se movimentos dessas organizações em busca de certificações de qualida-
de de processos de software, notadamente as certificações CMMI e/ou MPS.BR. O CMMI possui cinco níveis de maturidade, onde no primeiro
a empresa desenvolve sistemas baseando-se apenas na expe-
O MPS.BR define um modelo de melhoria e avaliação de processos de software riência dos recursos humanos da organização; e no último, há
com o foco nas pequenas e médias empresas brasileiras, de modo a atender as suas um processo organizado e flexível, com um planejamento efi-
necessidades de negócio e ser reconhecido nacional e internacionalmente como um ciente e continuamente aprimorado. Este modelo define áreas
modelo aplicável à indústria de software. Ele estabelece um modelo de processos de de processo, sendo cada uma com suas metas e práticas, e para
software e um método de avaliação de processos de modo a garantir que o MPS.BR que uma empresa alcance níveis de maturidade superiores,
está sendo empregado de forma coerente com as suas definições. deverá cumprir estas metas, compreendidas em cada área de
processo (Process Area – PA). As PAs funcionam como uma
coleção de práticas que representam o nível de maturidade.
Para isso, o modelo contempla duas representações que
permitem à empresa desenvolvedora do software utilizar o Representações do CMMI
caminho de melhoria mais adequado. Estas representações O CMMI possui duas representações: a estagiada e a contí-
estão divididas em níveis de maturidade, priorizando de forma nua. A representação estagiada permite que as organizações
lógica as ações a serem realizadas. Assim, quanto maior o nível, melhorem um conjunto de processos inter-relacionados e, de
maior a maturidade da organização, o que pode se traduzir em forma incremental, tratem sucessivos conjuntos de PAs. A re-
maior qualidade do produto final, com maior previsibilidade presentação contínua, por sua vez, permite que as organizações
em cronogramas e orçamentos. melhorem de forma incremental os processos correspondentes
O objetivo do CMMI é servir de guia para a melhoria de pro- a uma ou mais PAs, sendo a empresa responsável por selecio-
cessos na organização, assim como auxiliar a habilidade dos nar em que áreas de processo ela será avaliada.
profissionais em gerenciar o desenvolvimento e manutenção A seg ui r apresenta mos u ma descr ição pa ra estas
de produtos ou serviços de software, além de proporcionar a representações:
visibilidade apropriada do processo de desenvolvimento para • Representação por Estágios: Esta representação preocupa-se
todos os envolvidos no projeto. Isto é particularmente impor- com os processos da organização como um todo, oferecendo
tante em grandes projetos que possuem equipes envolvendo uma abordagem estruturada e sistemática para a melhoria
dezenas de pessoas, pois, sem o apoio desses modelos de de um estágio por vez. Atingir um estágio significa que uma
maturidade de processos de software como o CMMI, torna-se estrutura de processo adequada foi estabelecida como base
ainda mais difícil manter o controle do projeto. para o próximo estágio.
Com a utilização de níveis, o CMMI descreve um caminho As áreas de processo (PAs) são organizadas por níveis de
evolutivo recomendado para uma organização que deseja maturidade. Elas vão do nível “inicial” (nível 1) ao nível “em
melhorar os processos utilizados para a construção de seus otimização” (nível 5), e sugerem uma ordem para a implemen-
produtos e serviços. Quando uma organização atinge um nível tação das áreas de processo. Cada nível possui várias PAs,
de maturidade, considera-se que seus processos alcançaram e cada PA possui objetivos, práticas genéricas e específicas,
uma determinada capacidade, ou seja, tem mecanismos que assegurando assim uma base de melhoria adequada para o
garantem a repetição sucessiva de bons resultados futuros próximo nível de maturidade.

Edição 44 - Engenharia de Software Magazine 33


Na representação por estágios, quando uma organização atin- a) Nível 0 – Incompleto. Um processo é parcialmente realizado
ge as práticas necessárias para estar em um nível, subentende- ou não, onde um ou mais objetivos específicos do processo
se que ela atingiu todos os requisitos necessários dos níveis não são satisfeitos [3];
imediatamente anteriores. b) Nível 1 – Realizado. Um processo realizado satisfaz todos
Os níveis estão descritos da seguinte forma: os objetivos específicos da área de processo e produz algum
a) Nível 1 – Inicial. É o nível de maturidade CMMI mais baixo. trabalho [3];
Em geral, as organizações desse nível têm processos imprevi- c) Nível 2 – Gerenciado. Um processo de capacidade nível 2
síveis que são pobremente controlados e reativos. Neste nível é um processo realizado (nível 1) que também é planejado e
de maturidade não há PAs, os processos são normalmente im- executado de acordo com políticas pré-definidas. Emprega pes-
previsíveis e caóticos, e a organização geralmente não fornece soas hábeis com os recursos adequados para produzir saídas
um ambiente estável; adequadas, envolve os stakeholders principais e é monitorado,
b) Nível 2 – Gerenciado. Neste nível, os projetos da organi- controlado, revisto e avaliado quanto à aderência à sua des-
zação têm a garantia de que os requisitos são gerenciados, crição. A gerência do processo é relacionada com a realização
planejados, executados, medidos e controlados. Quando essas de objetivos específicos estabelecidos para o processo, como
práticas são adequadas, os projetos são executados e controla- custo, cronograma e qualidade [3];
dos de acordo com o planejado. O gerenciamento de projetos d) Nível 3 – Definido: Um processo definido é um processo
é o foco principal deste nível; gerenciado e ajustado para o conjunto padrão de processos da
c) Nível 3 – Definido. Nível em que todos os objetivos especí- organização de acordo com as suas políticas de conduta. Esse
ficos e genéricos atribuídos para os níveis de maturidade 2 e 3 conjunto é estabelecido e melhorado com o tempo e descreve
foram alcançados, e os processos são mais bem caracterizados, os elementos fundamentais de processos que são esperados
alcançando melhor entendimento, sendo descritos em padrões, nos processos definidos [3];
procedimentos, ferramentas e métodos. O foco neste nível é a e) Nível 4 - Gerenciado quantitativamente: Um processo
padronização do processo; neste nível é definido e controlado com a ajuda de técnicas
d) Nível 4 - Quantitativamente Gerenciado. Neste nível, os quantitativas e estatísticas. A qualidade e o desempenho do
objetivos específicos e genéricos atribuídos para os níveis processo são compreendidos em termos estatísticos e são geri-
de maturidade 2, 3 e 4 foram alcançados e os processos são dos durante sua vida. Objetivos quantitativos para qualidade
medidos e controlados. O foco neste nível é o gerenciamento e desempenho de processos são estabelecidos e usados como
quantitativo; critério na gerência do processo [3];
e) Nível 5 – Em Otimização. É o nível mais alto de maturidade f) Nível 5 – Em otimização: Um processo em otimização é
CMMI, onde uma organização atinge todos os objetivos específi- gerenciado quantitativamente, alterado e adaptado para aten-
cos atribuídos para os níveis de maturidade 2, 3, 4 e 5. Neste nível der aos objetivos de negócio atuais e projetados. Tal processo
os processos têm como foco principal a melhoria contínua. enfatiza a melhoria contínua através de aprimoramentos tecno-
lógicos inovadores e incrementais, selecionados com base em
• Representação Contínua: Na representação contínua, o foco uma compreensão quantitativa de sua contribuição esperada
ou componentes principais são as áreas de processo. Existem à obtenção da melhoria de processos [3].
metas e práticas de dois tipos: específicas a uma determinada
área de processo, e genéricas, aplicáveis indistintamente a Representação por Estágios X Contínua
todas as áreas de processo. A representação contínua usa níveis de capacidade para
Nesta representação, as áreas de processo são agrupadas por medir a melhoria de processos, enquanto a representação por
categorias afins que reúnem caminhos de melhoria indicando estágios utiliza níveis de maturidade para medir a melhoria
a evolução para cada uma destas áreas. de capacidade da organização. A principal diferença é a forma
A representação contínua contempla quatro disciplinas: Ge- como cada representação é aplicada. Os níveis de capacidade
rência de Processos, Gerência de Projeto, Engenharia e Suporte. são aplicados na melhoria de processos de cada área de uma
As áreas de processo relativas à disciplina de Gerência de Pro- organização. Eles estão dispostos em seis níveis de capacidade,
cessos contêm atividades relacionadas para definir, planejar, numerados de 0 a 5, onde cada nível possui um conjunto de
implantar, monitorar, controlar, medir e melhorar processos. práticas gerais e específicas.
As áreas de processo relativas à categoria de Gerência de Pro- Na representação por estágios, os níveis de maturidade não
jeto contêm as atividades de planejar, monitorar e controlar o servem para analisar áreas do processo, mas sim para indicar
projeto. A categoria de Engenharia refere-se às atividades de melhorias na organização como um todo. Ao fazer a avaliação
desenvolvimento de sistemas de software. Por fim, as atribui- de uma organização, é possível mapear os valores de capaci-
ções de fornecer suporte ao desenvolvimento e à manutenção dade do processo para a maturidade organizacional. Se não há
de produtos são relativas à categoria de Suporte. certeza sobre quais processos escolher para serem melhorados,
A partir da avaliação e do atendimento dessas práticas e me- a representação por estágios é uma boa opção. Ela fornece
tas, é possível classificar o nível de capacidade de cada área de um conjunto específico de processos para melhorar em cada
processo em uma escala de 0 a 5 do seguinte modo [3]: estágio, determinado por mais de uma década de experiência

34 Engenharia de Software Magazine - CMMI – Uma visão Geral


PROC ESS O

Representação Contínua Representação por Estágios


Permite livre escolha da sequência de melhorias, de forma a melhor satisfazer aos Permite que as organizações tenham um caminho de melhoria pré-definido e testado.
objetivos estratégicos e mitigar as áreas de risco da organização.
Permite visibilidade crescente da capacidade alcançada em cada área de processo. Foca em um conjunto de processos que fornece à organização uma capacidade específica caracterizada por cada
nível de maturidade.
Permite que melhorias em diferentes processos sejam realizadas em diferentes níveis.
Resume os resultados de melhoria de processo em uma forma simples: um único número que representa o nível
de maturidade.
Reflete uma abordagem mais recente que ainda não dispõe de dados para demonstrar Baseia-se em uma história relativamente longa de utilização, com estudos de casos e dados que demonstram o
seu retorno do investimento. retorno do investimento.
Tabela 1. $PNQBSBÎÍPFOUSFBTSFQSFTFOUBÎÜFTDPOUÓOVBFQPSFTUÈHJPT

e pesquisas em melhoria de processo. Todavia, existem três e o cumprimento dos prazos, tão importantes nos ambientes
categorias de fatores que podem influenciar na decisão de qual competitivos do presente momento.
representação será a mais adequada: Dessa forma, o objetivo de muitas empresas tem sido obter
a) Estratégico: Se uma organização com foco em linha de pro- qualificações CMMI para atender as exigências explícitas do
duto decidir melhorar seus processos na organização como mercado. O CMMI (Capability Maturity Model Integration)
um todo, pode ser mais bem atendida pela representação por descreve princípios e práticas relacionadas ao processo de de-
estágios, uma vez que a representação por estágios auxilia na senvolvimento de produtos e serviços tecnológicos. O modelo
escolha dos conjuntos de processos onde focar a melhoria. A visa ajudar organizações envolvidas com o desenvolvimento
consideração mais importante a ser feita é a identificação dos de software a melhorar a capacidade de seus processos, por
objetivos estratégicos a serem apoiados pelo programa de me- meio de um caminho evolucionário que considera desde pro-
lhoria de processo e a forma como esses objetivos estratégicos cessos com resultados imprevisíveis, e até mesmo caóticos, a
se alinham às duas representações; processos disciplinados e definidos, com resultados previsíveis
b) Culturais: Estão relacionados com a capacidade da organi- e com possibilidade de melhoria contínua.
zação em implantar um programa de melhoria de processo.
Por exemplo, uma organização pode escolher a representação
contínua se sua cultura corporativa basear-se em processos e
for experiente em melhoria de processo. Já uma organização Links
pouco experiente em melhoria de processo pode escolher a
[1] Uma visão geral do CMMI
representação por estágios, uma vez que essa representação
http://www.dromostg.com.br/CMMI.PDF
fornece orientações adicionais sobre a sequência em que as
mudanças devem ocorrer; [2] Análise de uma Organização de Software utilizando o Modelo CMMI/SEI
c) Legado: Caso uma organização tenha experiência com outro http://www2.dem.inpe.br/ijar/Qualidade%20de%20Software/PDFs/CMMI-Artigo.pdf
modelo que utiliza uma representação por estágios, pode ser
[3] Modelo de Qualidade – CMMI
mais prudente continuar utilizando essa representação no
Rosângela Penteado
CMMI, principalmente se já investiu e implantou processos
associados à representação por estágios. O mesmo raciocínio [4] CMMI - Uma Visão Geral
pode ser aplicado para a representação contínua. Carlos José Locoselli e João Carlos Neto

A Tabela 1 compara cada representação e pode auxiliar


na determinação da representação mais adequada para a Dê seu feedback sobre esta edição! eu
Feedback
s

organização.

A Engenharia de Software Magazine tem que ser feita ao seu gosto.


sobre e

Conclusões Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
edição
A utilização de metodologias em desenvolvimento de sof- Dê seu voto sobre este artigo, através do link:
tware, mais do que uma ferramenta, é condição obrigatória www.devmedia.com.br/esmag/feedback
para se obter a melhoria nos processos, a qualidade necessária

Edição 44 - Engenharia de Software Magazine 35

Você também pode gostar