Melhoria da Qualidade de Software utilizando o Modelo CMM Alexandre Gualter Msc em Ciência da...

Preview:

Citation preview

Melhoria da Qualidade de Softwareutilizando o Modelo CMM

Alexandre GualterMsc em Ciência da Computação - COPPE/UFRJ

Claudia CappelliMestranda em Sistemas de Informacao - IM-NCE/UFRJ

Melhoria da Qualidade Através do CMM

Tendências Tecnológicas

O que é o CMM

O Projeto SPI - Software Process Improvement

Implementação

Process Quality Manual

Resultados Esperados

Conclusões

Agenda

Tendências Tecnológicas - Século XXI

Para atender a este desafio a Área de Tecnologia deve:

Definir um Padrão comum para desenvolver Sistemas, utilizando conceitos avançados da Engenharia de Software.

Objetivos

Tecnologia Totalmente Alinhada aos Objetivos do Business... ...Facilitando e Viabilizando o Crescimento com Qualidade.

O Processo de Desenvolvimento deve ser transparente e bem entendido pelos Usuários

Aderência do Produto às definições do Usuário

Redução no Prazo de Entrega de Projetos

Aumento da Qualidade do Produto entregue

Diminuição de Erros em Produção

Diminuição do Esforço de Manutenção

Tendências Tecnológicas - Século XXI

Vantagens Competitivas do Processo Definido

Projeto AProjeto B

Projeto C

Projeto x Sistemas

Hardware

Software

SIX SIGMA

CMM

Mas afinal o que é o CMM ?CMM é um Modelo de Qualidade aplicado a Software

OPTIMIZING5

ProcessoDisciplina

do

Processo Padrão

Customizável

ProcessoPrevisível(Métricas)

Melhoria Contínua

Os 5 Níveis do Processo de Maturidade do Software

MANAGED4

DEFINED3

REPEATABLE2

INITIAL1

Capability Maturity Model (CMM)

Level 4 - MANAGEDLevel 5 - OPTIMIZING

Level 4 - MANAGEDLevel 5 - OPTIMIZING

Level 3 - DEFINED• Organization Process Focus• Organization Process Definition• Integrated Software Management• Software Product Engineering• Intergroup Coordination• Peer Reviews•Training Program

Level 2 - REPEATABLE• Requirements Management• Software Project Planning• Software Project Tracking• Software Subcontract Management• Software Quality Assurance• Soft. Configuration Management

Level 2 - REPEATABLE• Requirements Management• Software Project Planning• Software Project Tracking• Software Subcontract Management• Software Quality Assurance• Soft. Configuration Management

Project Focus

Organization Focus

Ad Hoc

Quality Improvement Focus

Ke

y P

roc

ess

A

rea

s

PAL

Project AssetLibrary

OSPD

Organization´s Software Process Database

Level 1 - INITIAL

Maturity Levels

Goals

containindicate

Key Process Areas

Common Features

Key PracticesImplementation or Institutionalization

Infrastructure or Activities

Process Capability

organized by

contain

achieve

describe

address

Capability Maturity Model (CMM)

Data Description

Summary Information

Summary Information

O Projeto SPI - Sofware Process Improvement

Objetivos

Padronização e documentação do processo de desenvolvimento.

Estabelecimento de um planejamento de projetos com base histórica.

Aumento da automação do processo de desenvolvimento.

Definição de métricas quantitativas e mecanismos de peer review para avaliação dos produtos de software.

Aumento da qualidade do produto entregue ao usuário.

Diminuição do prazo de entrega dos produtos de software aos usuários.

Foco no aprimoramento contínuo.

Passos para Implementação do Projeto SPI

Elaboração do Plano de Ação

Estabelecimento do Steering Commitee

Definição dos PAT’s - Process Action Teams

Definição dos Processos

Realização dos Pilotos

Implantação dos Processos

Avaliação - Mini-Assessment

Treinamento nos novos processos

Assessment (CBA-IPI) formal da SEI

Estrutura dos Process Action Teams (PATs)

Report

Report

Steering Committee

KPA Manager

PAT

Fluxo Típico de Trabalho de um PAT Criar Planos de Ação para cada PAT. Treinar especificamente aos membros do PAT. Pesquisar Informações da Organização e Indústria na Área Específica. Avaliar o Processo com base nos níveis atuais do CMM. Desenvolver Plano Detalhado. Desenvolver e Documentar Processos da KPA. Selecionar Projetos Pilotos. Desenvolver plano de Implementação de Piloto. Apresentar e Divulgar novo processo ao Steering Comitee. Pilotar e Revisar o Piloto. Revisar o novo Processo com base no Piloto. Liberar para utilização em larga escala. Avaliar e melhorar continuamente o processo Participar como co-responsável dos Assessments

SEPG - Software Engineering Process Group

Focos deste Grupo

Garantir a adoção do CMM na área de Tecnologia

Coordenar o aprimoramento do processo

Dar consultoria e suporte ao processo de desenvolvimento

Ministrar treinamentos em Engenharia de Software

A

I V Im pID C

Gerência de Configuração e SQAAtividades de Gerência do Processo (Planos, Revisões, Estimativas,...)

Dn C

I D Desv

Atividades de Teste (Planos, Revisões, Estimativas,...)

Process Quality Manual

Produtos de Trabalho em cada Fase

Inicialização Statement of Work Estimativa 1

Definição Estudo de Viabilidade Contrato de Software Plano do Projeto Análise de Risco Modelo Lógico e Funcional DRS Estimativa 2 Information Security Plan Peer Review

Produtos de Trabalho em cada Fase

Design Telas e Relatórios Diagramas de Módulos Testes Case Especificação Física Especificação de Módulos Plano de Teste de Software Plano de Teste de Aceite Análise Preliminar de

Impacto Information Security Peer Review

Construção Manual do Usuário Plano de Implantação Codificação Teste Peer Review

Produtos de Trabalho em cada Fase

Verificação Teste de Aceite Análise de Impacto Aprovação Information Security

Implantação Treinamento Aprovação

Pós-implantação Análise dos Resultados

Produtos de Trabalho Periódicos

Controle de alterações de Requisitos

Medições

Acompanhamento de projetos

Revisões

Estimativas

Melhoria das Estimativas de Software

Ov

er/

Un

de

r P

erc

enta

ge

140%

0%

-140%

Without Historical DataVariance between + 20% to - 145%

(Mostly Level 1 & 2)

Without Historical DataVariance between - 20% to + 20%

(Level 3)

Based on 120 projects in Boeing Information Systems

Resultados Esperados

Resultados Esperados

Resultados de Software Process Improvement em 13 Organizações.

Dados fornecidos pelo SEI

35%35%de GANHO em produtividade por ano

22%22%de pecentual de erros detectados previamente

19%19%de redução do prazo de entrega

39%39%de redução de erros após a entrega

5.05.0de retorno em cada dollar investido

Conclusões

O sucesso do processo de melhoria de qualidade em software depende de:

Objetivos de tecnologia baseados nos objetivos das áreas de negócio;

Suporte da alta gerência;

Conhecimento do processo por todos os envolvidos;

Participação dos usuários no processo de desenvolvimento;

Forte Cooperação entre áreas de tecnologia.

RESULTADO FINAL

LUCRO

MARKET SHARE

SATISFAÇÃO DOS CLIENTES

QUALIDADE

REDUÇÃO DO CICLO DE TEMPO

REDUÇÃO DE ERROS

TECNOLOGIAUSUÁRIOS

Recommended