experiências na definição, uso e medição de processos de software ana regina rocha coppe- ufrj...
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
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
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