Auditoria de Sistemas Computacionais
Professora Jaciara S. Carosia

Importância do software + crescentes exigências dos usuários:
◦ tem-se verificado um notável aumento nos interesses pela qualidade do
software.


Qualidade do produto de software é um objetivo do processo de
desenvolvimento.
Ao desenvolver-se um produto, deve-se ter previamente
estabelecidas, as características de qualidade que se deseja
alcançar.
◦ Qualidade????

Se o processo de desenvolvimento de software considerar as
características de qualidade, há uma grande tendência de que o
produto final apresente tais características.

Processo de software: um conjunto de ferramentas, métodos e
práticas usadas para produzir software.
“O processo de software é representado por um conjunto seqüencial
de atividades, objetivos, transformações e eventos que encapsulam
estratégias para cumprimento da evolução de software” (Pressman).
As falhas nos processos de desenvolvimento de software foram
reconhecidas como inibidoras principais no crescimento da
qualidade e produtividade (Lamprech).

Justificativa: Um processo de software bem definido e documentado,
utilizado para integrar pessoas, tarefas, ferramentas e métodos,
pode prover uma base essencial para garantir a qualidade do
produto final.

Entre os modelos disponíveis os que mais se destacam são:
◦ Norma ISO/IEC 12207 (Processos de Ciclo de Vida de
Software).
◦ Norma ISO/IEC 15504.
◦ CMM (Capability Maturity Model)
◦ CMMI (Capability Maturity Model Integration).
◦ MPS.BR (Melhoria do Processo de Software Brasileiro)



Origem:
◦ SW-CMM (CMM para Software)
◦ Proposto por Watts S. Humphey (1991).
◦ Criado por SEI (Software Engineering Institute) ligado a CarnegieMellon University.
◦ Financiado pelo DoD: avaliar empresas fornecedoras de software.
Premissa: a qualidade de um sistema de software é fortemente
influenciado pela qualidade do processo utilizado para desenvolvêlo e mantê-lo.
Histórico:
◦
◦
◦
◦
1987:
1991:
1993:
1997:
Ambiente de Maturidade e um questionário
CMM v1.0 ou SW-CMM
CMM v1.1
CMM v2.0




Processo (IEEE): seqüência de passos para atingir um objetivo.
Processo de Software (CMM): conjunto de atividades, métodos, práticas e
transformações usadas para desenvolver e manter o software.
Capacidade do processo de SW: conjunto de resultados esperados que pode ser
atingido seguindo o processo estabelecido.
Maturidade do processo de SW: processo é definido, documentado, gerenciado,
medido, controlado e efetivo.
◦ Imaturas: Não há metodologia implementada e tudo ocorre de forma desorganizada.
◦ Maduras: Capacidade de produzir softwares com qualidade em prazos e custos
previsíveis.


Em resumo, a maturidade do processo pode ser traduzida como a possibilidade
de entregar sistemas de software dentro dos prazos, utilizando os mesmos
recursos, planejando e atendendo requisitos e qualidade desejados.
Maturidade (eficiência) mede o potencial de crescimento da capacidade (eficácia).
“O CMM baseia-se em um processo gradual, que leva as
organizações a se aprimorarem continuamente, na busca de
soluções próprias para os problemas existentes no
desenvolvimento do software”.
Otimizado: Foco na melhoria contínua.
5
4
3
2
1
Gerenciado: Processo medido e
controlado.
Definido: Processo padronizado, bem
definido.
Repetível: Repete as tarefas de
sucesso.
Inicial: Imprevisível e pobremente
controlado.




KPA’s - Key Process Areas.
Para que uma organização atinja um nível de maturidade, ela deve
cumprir TODAS as KPAs deste nível (e dos níveis anteriores).
Cada nível depende dos níveis anteriores.
As KPAs definem o que e não como fazer: o modelo precisa ser
estudado, compreendido e adaptado as necessidades de cada
empresa.

Características:






A organização é carente de práticas de gerenciamento.
Não há planejamento suficiente.
Há dificuldades elevadas em prever custos, programação, funcionalidade e
outros objetivos de qualidade.
Durante uma crise, ocorrem procedimentos de abandono de projetos.
Os sucessos dependem de esforços individuais e heróicos.
Não possui KPAs: todas as empresas que buscam melhoria de
processo estão no nível 1, os que nem buscam, estão no nível 0
(zero)

Características:
◦ A organização apresenta uma disciplina no desenvolvimento de software –
o processo não é mais caótico.
◦ Estabelecem-se políticas de gerenciamento de projetos com relação a
custos, programação e qualidade do produto.
◦ O planejamento do projeto é estável e sucessos anteriores podem ser
repetidos para projetos com aplicações semelhantes.
◦ Os problemas são percebidos e corrigidos conforme surgem.
◦ O sucesso depende das pessoas, com o suporte do sistema de
gerenciamento.
KPAs Nível 2 - Repetível
◦ Gerenciamento de Requisitos.
◦ Planejamento de Projeto de Software.
◦ Visão Geral e Acompanhamento do Projeto.
◦ Gerenciamento de Subcontratos.
◦ Garantia da Qualidade de Software.
◦ Gerenciamento de Configuração.


Características:
◦ Há definição e padronização do processo de software da organização.
◦ As atividades de engenharia de software e gerenciamento são estáveis e
repetitivas.
◦ Custos, cronogramas e funcionalidades são controladas e a qualidade é
acompanhada.
◦ Há um grupo responsável pelo estabelecimento dos padrões e
multiplicação do conhecimento.
◦ Os problemas são antecipados, prevenidos ou minimizados.
◦ O treinamento é planejado.
 KPAs Nível 3 - Definido
 Foco do Processo Organizacional.
 Definição do Processo Organizacional.
 Programa de Treinamento.
 Gerenciamento Integrado de Software.
 Engenharia de Produto de Software.
 Coordenação Intergrupos.
 Revisão Conjunta.

Características:
◦ Existem mecanismos para definir quantitativamente objetivos de
qualidade para o processo de software e para o produto.
◦ Há medição constantemente da produtividade e da qualidade.
◦ A capacidade do processo é previsível e variações na produtividade podem
ser medidos.
◦ Quando alguma circunstância excepcional ocorre, as causas podem ser
identificadas e combatidas.
◦ A qualidade é alta.
◦ Fontes de problemas individuais são percebidas e eliminadas.
KPAs Nível 4 - Gerenciado
◦ Gerenciamento Quantitativo dos Processos.
◦ Gerenciamento da Qualidade de Software.


Características:
◦ A capacidade do processo de software é continuamente melhorada.
◦ Dados de avaliações estatísticas são usados para análise de
custo/benefício e mudanças de processo.
◦ A equipe do projeto avalia os defeitos e determinam suas causas, para
evitar que defeitos conhecidos ocorram novamente.
◦ Novas tecnologias e processos de software são constantemente avaliados,
e quando relevantes, transferidos à organização, através de planejamento
e gerenciamento.
◦ Um forte sentido de equipe existe em toda a organização
KPAs Nível 5 - Otimizado
◦ Prevenção de Defeitos.
◦ Gerenciamento de Mudanças Tecnológicas.
◦ Gerenciamento de Mudanças no Processo.

Análise da
situação
(Avaliação)
Comparação
com o nível
desejado
Execução
destas ações
Planejamento
de ações
corretivas

Conhecimento e uso de modelos para melhoria do processo de software.
Fonte: PBQP-SW – Programa Brasileiro de Qualidade e Produtividade em Software.
Disponível em: 2001 http://www.mct.gov.br/index.php/content/view/4919.html


CMM: método mais conhecido e usado.
Embora não seja uma norma por uma instituição internacional (como ISO
e IEEE), esta norma tem tido uma grande aceitação mundial (Rezende,
2002).
CMM

Foi criado para atender a grandes empresas.

Processo de Certificação Formal
◦ Realizada por auditores certificados (Lead Assessors).
◦ Não existem entidades certificadoras, apenas pessoas físicas.

Melhorias sem certificação
◦ Documentação totalmente disponível no site do Software
Engineering Institute.
 www.sei.cmu.edu
◦ Iniciativa do CPqD (tradução do modelo).
 www.cpqd.com.br


Surgem novos modelos baseados no CMM:
◦ AS-CMM (Aquisição de Software),
◦ SE-CMM (Engenharia de Sistemas),
◦ IPD-CMM (Desenvolvimento de Produto Integrado) e
◦ P-CMM (Pessoas).
Surge ISO 15504.
Bases para a
criação do
CMMI



PAULK, M. C.; CURTIS, B; CHISSIS, M, e WEBER, C. V. Capability
Maturity Model (Versão 1.1) (CMU/SEI-93-TR-24, ADA 263403) Pittsburgh,
Pa.: Software Engineering Institute, Carnegie Mellon University, Fevereiro
1993.
PAULK, M. C.; CURTIS, B; CHISSIS, M, e WEBER, C. V. A Preview of the
Software CMM Versão 2, Pa.: Software Engineering Institute, Carnegie
Mellon University [1996].
REZENDE, D. Engenharia de Software e Sistemas de Informação. Rio de
Janeiro: Brasport, 2002.
“Começar é o passo mais importante e mais difícil de qualquer trabalho”
(Frank Herbert)
Download

CMM - Yimg