experiências na definição, uso e medição de processos de software ana regina rocha coppe- ufrj...

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]

Upload: internet

Post on 17-Apr-2015

117 views

Category:

Documents


4 download

TRANSCRIPT

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]

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

““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)

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

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

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

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

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

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

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

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

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

Qualidade do ProcessoQualidade do Processo

ISO 12207

ISO 9000-3

CMM

SPICE

BOOTSTRAP

TRILLIUM

Abordagens

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

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

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

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

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

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

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

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

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

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)

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

Investimento em Qualidade significou Produtividade e Competitividade

• Como grupo de pesquisa

• Como empresa 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

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

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

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

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

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