31
Experiências na Definição, Uso e Experiências na Definição, Uso e Medição de Processos de Software Medição de Processos de Software Ana Regina Rocha COPPE- UFRJ [email protected]

Experiências na Definição, Uso e Medição de Processos de Software

  • Upload
    kieve

  • View
    20

  • Download
    0

Embed Size (px)

DESCRIPTION

Experiências na Definição, Uso e Medição de Processos de Software. Ana Regina Rocha COPPE- UFRJ [email protected]. Preocupações da Engenharia de Software. Qualidade do produto Qualidade do processo de desenvolvimento. - PowerPoint PPT Presentation

Citation preview

Page 1: Experiências na Definição, Uso e  Medição de Processos de Software

Experiências na Definição, Uso e Experiências na Definição, Uso e Medição de Processos de SoftwareMedição de Processos de Software

Ana Regina RochaCOPPE- UFRJ

[email protected]

Page 2: Experiências na Definição, Uso e  Medição de Processos de Software

Preocupações da Engenharia de SoftwarePreocupações da Engenharia de Software

Qualidade do produto Qualidade do produto

Qualidade do processo de desenvolvimentoQualidade do processo de desenvolvimento

Page 3: Experiências na Definição, Uso e  Medição de Processos de Software

““Talvez uma das noções mais destrutivas já criadas seja a de Talvez uma das noções mais destrutivas já criadas seja a de

que o processo de desenvolvimento de software é uma arte”que o processo de desenvolvimento de software é uma arte”

Munson,J.C. “Software Measurement: problems and practice”; Annals of Software

Engineering 1(1995)

Page 4: Experiências na Definição, Uso e  Medição de Processos de Software

conjunto de atividades, métodos, práticas e conjunto de atividades, métodos, práticas e

tecnologias que as pessoas utilizam para desenvolver tecnologias que as pessoas utilizam para desenvolver

e manter software e produtos relacionadose manter software e produtos relacionados

Processo de Software

Page 5: Experiências na Definição, Uso e  Medição de Processos de Software

O interesse no processo de software está baseado em O interesse no processo de software está baseado em

duas premissas:duas premissas:

a qualidade de um produto de software é fortemente a qualidade de um produto de software é fortemente dependente da qualidade do processo pelo qual ele é dependente da qualidade do processo pelo qual ele é construído e mantidoconstruído e mantido

o processo de software pode ser definido, gerenciado, o processo de software pode ser definido, gerenciado, medido e melhoradomedido e melhorado

Page 6: Experiências na Definição, Uso e  Medição de Processos de Software

O número de defeitos presentes no software quando O número de defeitos presentes no software quando

entregue para testes é função direta da qualidade do entregue para testes é função direta da qualidade do

processo usado para a construção do softwareprocesso usado para a construção do software

Testes só podem detectar 70% dos defeitos latentes no Testes só podem detectar 70% dos defeitos latentes no códigocódigo

Inspeções podem detectar 80 a 90% dos erros antes Inspeções podem detectar 80 a 90% dos erros antes dos testesdos testes

Mas,Mas,

um bom processo evita a presença de defeitos um bom processo evita a presença de defeitos no produtono produto

Page 7: Experiências na Definição, Uso e  Medição de Processos de Software

Objetivo da Pesquisa em Processo de SoftwareObjetivo da Pesquisa em Processo de Software

Métodos e tecnologias usados para avaliar, apoiar e Métodos e tecnologias usados para avaliar, apoiar e

melhorar as atividades de desenvolvimento de softwaremelhorar as atividades de desenvolvimento de software

• Modelagem do Processo

• Melhoria do Processo

• Métricas e Estudos Empíricos

Page 8: Experiências na Definição, Uso e  Medição de Processos de Software

HistóricoHistórico

Início da área de Processo de Software: Anos 80Início da área de Processo de Software: Anos 80

Eventos:Eventos: International Software Process WorkshopInternational Software Process Workshop European Workshop on Software Process TechnologyEuropean Workshop on Software Process Technology

Revista:Revista: Software Process - Improvement and PracticeSoftware Process - Improvement and Practice

Criação de Institutos:Criação de Institutos: Software Engineering Institute (SEI, Pittsburg, EEUU)Software Engineering Institute (SEI, Pittsburg, EEUU) European Software Institute (ESI, Bilbao, Espanha)European Software Institute (ESI, Bilbao, Espanha)

Esforço da ISO:Esforço da ISO: ISO 12207 e ISO 15504ISO 12207 e ISO 15504

Fuggetta, A. Software Process: a Roadmap; in The Future of Software Engineering; 22nd International Conference on Software Engineering, Limerick, Irlanda, Jun 2000

Page 9: Experiências na Definição, Uso e  Medição de Processos de Software

Raiz: Pesquisas realizadas nos Anos 60 e 70 emRaiz: Pesquisas realizadas nos Anos 60 e 70 em Modelos de Modelos de

Ciclo de VidaCiclo de Vida

Descrevem o esqueleto e a filosofia com que o processo de software Descrevem o esqueleto e a filosofia com que o processo de software

deve ser conduzidodeve ser conduzido

Não prescrevem um curso de ação preciso, uma organização, Não prescrevem um curso de ação preciso, uma organização,

ferramentas e procedimentos operacionaisferramentas e procedimentos operacionais

São um ponto de partida importante para se definir como o São um ponto de partida importante para se definir como o

software deve ser desenvolvido, software deve ser desenvolvido, mas apenas adotar um modelo de mas apenas adotar um modelo de

ciclo de vida não é suficienteciclo de vida não é suficiente

Page 10: Experiências na Definição, Uso e  Medição de Processos de Software

A implantação de um Programa de Qualidade começa A implantação de um Programa de Qualidade começa pela definição e implantação de um processo de pela definição e implantação de um processo de softwaresoftware

O processo deve estar documentado, ser compreendido e seguido

Page 11: Experiências na Definição, Uso e  Medição de Processos de Software

CaracterísticasCaracterísticas• Ad hoc - ImprovisadoAd hoc - Improvisado

• Fortemente dependente dos profissionaisFortemente dependente dos profissionais

• IndisciplinadoIndisciplinado

ConsequênciasConsequências

• pouca produtividade

• qualidade de difícil previsão

• alto custo de manutenção

• risco na adoção de novas tecnologias

Processo Imaturo

Page 12: Experiências na Definição, Uso e  Medição de Processos de Software

CaracterísticasCaracterísticas• Processo conhecido por todosProcesso conhecido por todos

• Apoio visível da alta administraçãoApoio visível da alta administração

• Auditagem da fidelidade ao processoAuditagem da fidelidade ao processo

• Medidas do produto e do processoMedidas do produto e do processo

• Adoção disciplinada de tecnologiasAdoção disciplinada de tecnologias

ConsequênciasConsequências• papéis e responsabilidades claramente definidos

• acompanhamento da qualidade do produto e da satisfação do cliente

• expectativas para custos, cronograma, funcionalidades e qualidade do produto é usualmente alcançada

Processo Maduro

Page 13: Experiências na Definição, Uso e  Medição de Processos de Software

Qualidade do ProcessoQualidade do Processo

ISO 12207

ISO 9000-3

CMM

SPICE

BOOTSTRAP

TRILLIUM

Abordagens

Page 14: Experiências na Definição, Uso e  Medição de Processos de Software

Experiências de Definição de ProcessoExperiências de Definição de Processo

Page 15: Experiências na Definição, Uso e  Medição de Processos de Software

Avaliação da Situação das Empresas de Avaliação da Situação das Empresas de Software BrasileirasSoftware Brasileiras

Desconhecimento sobre ISO 9000-3, CMM e SPICE por gerentes e Desconhecimento sobre ISO 9000-3, CMM e SPICE por gerentes e

desenvolvedoresdesenvolvedores

Formação não sistemática e desatualizada em Engenharia de SoftwareFormação não sistemática e desatualizada em Engenharia de Software

Ausência de processo definido: desenvolvimento ad-hoc ou gerenciadoAusência de processo definido: desenvolvimento ad-hoc ou gerenciado

Dificuldade para introduzir novas tecnologiasDificuldade para introduzir novas tecnologias

Dificuldade para o gerenciamento de projetosDificuldade para o gerenciamento de projetos

Gerentes gastam a maior parte do tempo “apagando incêndios”Gerentes gastam a maior parte do tempo “apagando incêndios”

Gerentes e desenvolvedores insatisfeitosGerentes e desenvolvedores insatisfeitos

Page 16: Experiências na Definição, Uso e  Medição de Processos de Software

Preocupação com qualidade ainda é incipiente nas Preocupação com qualidade ainda é incipiente nas

empresasempresas

Experiência tem mostrado que os benefícios de Experiência tem mostrado que os benefícios de

investimentos em qualidade são percebidos rapidamente investimentos em qualidade são percebidos rapidamente

• qualidade do produto

• produtividade no desenvolvimento

• competitividade

• recursos humanos formados

Page 17: Experiências na Definição, Uso e  Medição de Processos de Software

Gerentes começam a perceber a necessidade de Gerentes começam a perceber a necessidade de

um processo de software definido para a empresa um processo de software definido para a empresa

e seguido por todose seguido por todos

Page 18: Experiências na Definição, Uso e  Medição de Processos de Software

Experiência da Equipe de Engenharia de Software da COPPE

na Definição e Implantação de Processos de Software em Empresas

• 1988 - CENPES/Petrobrás

• 1989 - Geofísica/Petrobrás

• 1991 - IBM

• 1993 - EMBRATEL/Planejamento

• 1994 - EMBRATEL/Satélites

• 1994 - Fundação Bahiana de Cardiologia

• 1997 - Ministério da Aeronáutica

• 1997 - CAC/CEDAE

• 1998 - Rio-Sul Linhas Aéreas

• 1999 - TecTeam

• 1999 - Ministério da Marinha

• 1999 - Bennett

• 1999 - CCA-Aeronáutica

• 2000 - ASBACE

Page 19: Experiências na Definição, Uso e  Medição de Processos de Software

Outra Experiência Significativa:Outra Experiência Significativa:

1995: processo de software para o Projeto ATLAS do CERN1995: processo de software para o Projeto ATLAS do CERN

1997/1998: definição de um processo de software para equipes geograficamente distribuídas e com diferentes níveis de capacitação

Page 20: Experiências na Definição, Uso e  Medição de Processos de Software

Plano do Processo1

Instanciação

...

ISO 12207 CMM/ SPICEPráticas E. de SoftwareCultura Organizacional

Tipo de Software

Particularidades do projeto

Definição

Especialização

Processo Padrão

Especialização 1 ...

Plano do Processo n

Especialização n

Medição e Avaliação do Processo

Enfoque para Definição e Avaliação de Enfoque para Definição e Avaliação de Processos de SoftwareProcessos de Software

Page 21: Experiências na Definição, Uso e  Medição de Processos de Software

Aspectos FundamentaisAspectos Fundamentais

Respeito a cultura organizacionalRespeito a cultura organizacional

Uso de práticas comprovadas de Engenharia de Uso de práticas comprovadas de Engenharia de

Software: Engenharia de Software Baseada em Software: Engenharia de Software Baseada em

Evidências necessidade de pesquisa empíricaEvidências necessidade de pesquisa empírica

Definição do Processo Padrão da OrganizaçãoDefinição do Processo Padrão da Organização

Definir um processo, usar, medir, avaliar e melhorar Definir um processo, usar, medir, avaliar e melhorar

continuamentecontinuamente

Page 22: Experiências na Definição, Uso e  Medição de Processos de Software

O Caso da Fundação Bahiana de CardiologiaO Caso da Fundação Bahiana de Cardiologia

Histórico de desenvolvimento informal, ad-hoc, fracassos

1994: inicio do Projeto SEC (Sistema Especialista para

Diagnóstico de Infarto Agudo do Miocárdio)

definição do processo de softwaredefinição do processo de software

definição de características e procedimentos para avaliação da definição de características e procedimentos para avaliação da

qualidadequalidade

treinamentotreinamento

construção da 1construção da 1a. a. Versão em 3 mesesVersão em 3 meses

Page 23: Experiências na Definição, Uso e  Medição de Processos de Software

1995/1996:validação e refinamento do sistemavalidação e refinamento do sistema

teses de mestrado e doutoradoteses de mestrado e doutorado

grande volume de publicaçõesgrande volume de publicações

22o.o. Lugar no Concurso de Monografias PBQP Lugar no Concurso de Monografias PBQP

1997: FBC é empresa SOFTEXFBC é empresa SOFTEX

publicação de artigo na revista “Artificial Intelligence in Medicine”publicação de artigo na revista “Artificial Intelligence in Medicine”

1998:apresentação do SEC na Cebit98 (Hanover) e na MEDICA apresentação do SEC na Cebit98 (Hanover) e na MEDICA

(Dusseldorf)(Dusseldorf)

Page 24: Experiências na Definição, Uso e  Medição de Processos de Software

1999:validação com casos reaisvalidação com casos reais

teses de mestrado e doutoradoteses de mestrado e doutorado

apresentação no Congresso Mundial de Cardiologiaapresentação no Congresso Mundial de Cardiologia

2000:

projeto concluído

tradução para inglês e espanhol

apresentação à Secretaria de Saúde para implantação

Page 25: Experiências na Definição, Uso e  Medição de Processos de Software

Investimento em Qualidade significou Produtividade e Competitividade

• Como grupo de pesquisa

• Como empresa de software

Page 26: Experiências na Definição, Uso e  Medição de Processos de Software

PesquisasPesquisas

Teses de Mestrado e DoutoradoFerramentas de Apoio à Definição de processos na Estação TABA

Processo de Software para Equipes Geograficamente Distribuídas

Processo de Software para Desenvolvimento de Sistemas Baseados em Conhecimento

Processo para o ADSOD NETUNO

Processo para Desenvolvimento de Software na Web

Medição e Melhorias no Processo de Software

Engenharia de Software Baseada em Evidências

Page 27: Experiências na Definição, Uso e  Medição de Processos de Software

Experiência Gerencial

Valor medido

Nível de pontuação

Resultado (Identificação de Problemas

eSugestões de Melhorias no Processo)

Estudo da literatura

Identificação de Métricas de

Processo

Desenvolvimento de Software e Uso

do Processo

Medição

Definição dosCritérios deJulgamento

Pontuação

Julgamento

Relatório Histórico do Projeto

Planilha de Atividades

Page 28: Experiências na Definição, Uso e  Medição de Processos de Software

Experiência na TecTeam InformáticaExperiência na TecTeam Informática

Definição do Processo Padrão da TecTeam (1999)Definição do Processo Padrão da TecTeam (1999)

Especialização do Processo para 2 Empresas Clientes (4/2000)Especialização do Processo para 2 Empresas Clientes (4/2000)

Instanciação para Projeto Específico (4/2000)Instanciação para Projeto Específico (4/2000)

Definição de Métricas para Medição do Processo (4/2000)Definição de Métricas para Medição do Processo (4/2000)

MediçãoMedição

Avaliação dos Resultados para Melhoria do ProcessoAvaliação dos Resultados para Melhoria do Processo

Definição e Construção de Ferramenta de Apoio

Page 29: Experiências na Definição, Uso e  Medição de Processos de Software

Plano do Processo1

Instanciação

...

ISO 12207 CMMPráticas E. de Software

Tipo de SoftwareCultura Organizacional

Particularidades do projeto

Definição

Especialização

Processo Padrão

Especialização 1 ...

Plano do Processo n

Especialização n

Medição e Avaliação do Processo

Page 30: Experiências na Definição, Uso e  Medição de Processos de Software

Métricas SelecionadasMétricas Selecionadas

TempoTempo

Precisão da Estimativa de Precisão da Estimativa de

CronogramaCronograma

EsforçoEsforço

Precisão da Estimativa de Precisão da Estimativa de

EsforçoEsforço

Tamanho do SistemaTamanho do Sistema

Número de ErrosNúmero de Erros

Número de ModificaçõesNúmero de Modificações

Densidade de DefeitosDensidade de Defeitos

Rotatividade de PessoalRotatividade de Pessoal

ProdutividadeProdutividade

Deterioração do SoftwareDeterioração do Software

Experiência da EquipeExperiência da Equipe

Page 31: Experiências na Definição, Uso e  Medição de Processos de Software

Avaliação do Processo e Avaliação do Processo e Sugestão de MelhoriasSugestão de Melhorias

Sistema Baseado em ConhecimentoSistema Baseado em Conhecimento

• interpretação dos resultados obtidos nas medições

• relação entre os resultados e aspectos do processo

• relação entre os resultados e o contexto do projeto

• recomendações para melhoria do processo