Qualidade de software
Qualidade de software
Qualidade de software
PRINCIPAIS COMPONENTES
O Modelo CMMI
A qualidade de um sistema, assim como de outros produtos, é diretamente influenciada pela qualidade dos
de software que direcione as pessoas na sua produção por meio de boas práticas.
Segundo Bartié (2002), o foco na qualidade da produção de software deve ser dado em todas as fases do
ciclo de desenvolvimento de software. Dessa forma, devemos entender que a qualidade do software é
diretamente influenciada desde a ideia inicial para criação do sistema, passando pela concepção,
modelagem, construção, testes, validação, implantação e manutenção (evolução) do software. Sem deixar
de lado atividades de gerenciamento e outras que dão suporte à criação e manutenção de software.
No mercado, há diferentes normas e modelos que visam fornecer orientações para organizações, trazendo
boas práticas nas diferentes etapas de produção de software. Entre esses modelos, um dos mais importantes
é o Capability Maturity Model Integrated (CMMI) - Modelo de Maturidade e Capacidade Integrado, elaborado
O modelo CMMI é composto de coleções desenvolvidas por equipes membros do SEI. Entre essas coleções,
temos um modelo chamado de CMMI-DEV, que é destinado ao desenvolvimento de produtos e serviços.
(SOFTWARE ENGINEERING INSTITUTE, 2010).
Caro aluno, você terá a oportunidade de estudar, nesse tópico, o Modelo de Capacidade e Maturidade
CMMI-DEV. Mas antes, vamos entender melhor a relação maturidade e qualidade no processo de software.
Como já vimos, a qualidade de um software está diretamente ligada à qualidade do seu processo de
desenvolvimento. Deve-se considerar também o quanto este processo, além de possuir qualidade, possui
maturidade. Existem diversas formas de se avaliar a maturidade de um processo de desenvolvimento de
software, entre elas, podem ser citadas a disciplina para a execução das tarefas e as atividades relacionadas
Processos de desenvolvimento de software imaturos geralmente não possuem disciplina, isto é, as tarefas
não seguem um padrão para sua realização, são fortemente dependentes dos profissionais e são
improvisados, ou seja, as tarefas, as atividades e os papéis dos profissionais não seguem uma regra pré-
estabelecida. Como consequência dessa imaturidade, os sistemas são gerados com baixa qualidade, com
custos mais elevados do que deveriam e com produtividade acentuadamente menor.
Por outro lado, um processo de desenvolvimento de software maduro é conhecido e seguido por todos os
desenvolvedores. Ele tem o apoio da alta administração e realiza métricas para melhorar as estimativas de
custo e prazo, além de passar por auditoria para avaliar sua eficácia. Dessa forma, pode existir a adoção
disciplinada de novas tecnologias, a realização de testes é possível para que se avalie a qualidade do
produto desde os seus estágios iniciais e os papéis, e as responsabilidades são definidas e obedecidas. Como
consequência, é gerado um produto de software com qualidade superior.
De acordo com a SOFTWARE ENGINEERING INSTITUTE (2010), o escopo do modelo de referência CMMI-
DEV, envolve as atividades tanto de desenvolvimento quanto de manutenção de produtos e serviços. Esse
modelo contém práticas das disciplinas utilizadas nas áreas de Gestão de Projeto, Gestão de Processo,
Engenharia de Sistemas, Engenharia de Hardware, Engenharia de Software e outros processos que podem
ser utilizados em desenvolvimento e manutenção.
A aplicação do modelo em uma organização deve ser feita de modo customizado, pois as diretrizes descritas
são baseadas em melhores práticas para a maioria dos usuários, áreas e práticas de processo, mas devem ser
aplicadas levando em consideração as limitações organizacionais e o ambiente de negócios em que a
organização está inserida. Ou seja, deve ser adaptada às necessidades e realidades da empresa.
Na sequência você terá a oportunidade de estudar os principais componentes que compõem a estrutura do
Modelo CMMI-DEV.
Estrutura do Modelo CMMI-DEV
O objetivo principal do modelo é proporcionar às organizações condições para que façam diagnóstico dos
graus de capacidade e de maturidade no processo de produção de software (KOSCIANSKI e SOARES, 2007).
Além disso, fornece uma estrutura completa, também conhecida como framework, para melhorar
continuamente seu processo produtivo e galgar níveis cada vez mais altos na qualidade e excelência nos
serviços.
Outro ponto de destaque é que o modelo disponibiliza uma forma de certificação, por meio de auditoria
externa e independente, do patamar de maturidade que empresa se encontra.
Áreas de Processo
O primeiro conceito importante que se deve buscar entendimento para compreender o modelo é em relação
a “Áreas de Processos”. A SEI define assim esse conceito:
Desenvolvimento de Requisitos;
Integração de Produtos;
Engenharia Solução Técnica;
Validação;
Verificação.
Para atingir níveis cada vez mais elevados de capacidade em cada área de processo relacionada acima, o
modelo traz alguns componentes que complementam o framework. Esses componentes, assim como suas
Como você pode observar na legenda contida na figura acima, há componentes do modelo que são
Os componentes requeridos são essenciais para promover a melhoria em cada área de processo. Já os
esperados esclarecem o que pode ser feito para satisfazer um componente requerido. E, por fim, os
Objetivos das Áreas de Processo: Descreve os objetivos de cada uma das áreas de processos.
Notas Introdutórias: Descreve os principais conceitos abordados nas áreas de processo.
Áreas de Processo Relacionadas: Apresenta referências às áreas de processo que possuem relação entre si.
Metas Específicas: Descreve as características que devem estar presentes para uma implementação
adequada de uma área de processo.
Metas Genéricas: Descreve também características que devem estar presentes nas áreas de processo. São
denominadas “genéricas” porque a mesma declaração de meta se aplica a várias áreas de processo.
Práticas Específicas: É uma descrição de uma atividade considerada importante para a satisfação da meta
específica associada.
Práticas Genéricas: Descrevem uma atividade considerada importante para a satisfação da meta genérica
associada. São denominadas “genéricas” porque a mesma prática se aplica a várias áreas de processo.
Produtos de Trabalho Típicos: Traz exemplos de saídas de uma prática específica.
Subpráticas: É uma descrição detalhada que orienta a interpretação e implementação de uma prática
específica ou uma prática genérica.
Orientações para Aplicação: Fornecem orientação para a aplicação da prática genérica na área de
processo.
Conforme já vimos, o CMMI permite que o processo de desenvolvimento de software evolua e adquira
maturidade. Isso deve ocorrer em vários pequenos passos, não por uma grande revolução (KOSCIANSKI e
SOARES, 2007). O CMMI-DEV organiza os passos evolucionários de forma que a organização possa escalar
níveis de maturidade.
O modelo é dividido em cinco níveis de maturidade, sendo que o mais elementar é o um e o mais elevado, o
cinco. Para se atingir certo nível de maturidade, é necessário atingir os objetivos das áreas de processo que
compõem esse nível. Sabe-se que os objetivos da área de processo foram atingidos quando os componentes
Com exceção do nível um, que é o nível em que se tem somente a intenção de melhoria da qualidade, os
demais níveis possuem áreas-chave de processo: as áreas-chave de processo do nível dois se referem à
qualidade voltada para o produto de software; as do nível três têm o seu foco nos processos da empresa; as
do nível quatro estão voltadas para o gerenciamento quantitativo de desempenho do projeto e as do nível
cinco destinam-se à melhoria contínua do modelo.
De acordo com o que mostra o infográfico, os níveis de maturidade do CMMI-DEV podem ser descritos da
seguinte forma:
O custo para certificações do tipo CMMI-DEV é extremamente elevado para a empresa. Além da
implementação das áreas de processo, as empresas certificadoras cobram algumas centenas de milhares de
reais para certificar uma organização. Contudo, existe uma grande procura por essas certificações devido
aos benefícios obtidos, como:
Agora que você já estudou esta aula, resolva os exercícios e verifique seu conhecimento. Caso fique com
alguma dúvida, leve a questão ao fórum e divida com seus colegas e professor.
ATIVIDADE
A. O modelo de maturidade e capacidade CMMI é uma prescrição rígida, a qual as empresas devem
C. Na representação por estágio, os níveis de maturidade não podem ser certificados por organismo
externo.
D. A representação por estágio possui 4 níveis de maturidade, variando do 0 ao 3.
ATIVIDADE
A. Práticas Específicas
B. Metas Específicas
C. Produtos de Trabalho Típicos
D. Áreas de Processo
ATIVIDADE
A. O Nível de Maturidade 2 é conhecido como "Gerenciado" onde, com a aplicação das áreas de
processo deste nível, é criado um processo que permite a reprodução dos resultados obtidos em
desenvolvimentos anteriores.
B. É possível a empresa se certificar no nível de maturidade 3, mesmo que não tenha atingido o nível 2.
REFERÊNCIA
BARTIÉ, A. Garantia da qualidade de software. Rio de Janeiro: Campus, 2002.
PAULA FILHO, W. D. P. Engenharia de Software: fundamentos, métodos e padrões. Rio de Janeiro: LTC, 2003.
PFLEEGER, S. L. Engenharia de Software: teoria e prática. 2. ed. São Paulo: Pearson, 2004.
PRESSMAN, R. S. Engenharia de Software: Uma Abordagem Profissional. 7. ed. Porto Alegre: McGraw Hill,
2011.
SOFTWARE ENGINEERING INSTITUTE. CMMI for Services Version 1.3. Bedford: Carnegie Mellon, 2010.
Disponivel em: <www.sei.cmu.edu/reports/10tr033.pdf>. Acesso em: 21 set. 2016.