310 likes | 392 Views
Experiências na Definição, Uso e Medição de Processos de Software. Ana Regina Rocha COPPE- UFRJ darocha@cos.ufrj.br. Preocupações da Engenharia de Software. Qualidade do produto Qualidade do processo de desenvolvimento.
E N D
Experiências na Definição, Uso e Medição de Processos de Software Ana Regina Rocha COPPE- UFRJ darocha@cos.ufrj.br
Preocupações da Engenharia de Software • Qualidade do produto • Qualidade do processo de desenvolvimento
“Talvez uma das noções mais destrutivas já criadas seja a de que o processo de desenvolvimento de software é uma arte” Munson,J.C. “Software Measurement: problems and practice”; Annals of Software Engineering 1(1995)
Processo de Software conjunto de atividades, métodos, práticas e tecnologias que as pessoas utilizam para desenvolver e manter software e produtos relacionados
O interesse no processo de software está baseado em duas premissas: • a qualidade de um produto de software é fortemente dependente da qualidade do processo pelo qual ele é construído e mantido • o processo de software pode ser definido, gerenciado, medido e melhorado
O número de defeitos presentes no software quando entregue para testes é função direta da qualidade do processo usado para a construção do software • Testes só podem detectar 70% dos defeitos latentes no código • Inspeções podem detectar 80 a 90% dos erros antes dos testes Mas, um bom processo evita a presença de defeitos no produto
Objetivo da Pesquisa em Processo de Software Métodos e tecnologias usados para avaliar, apoiar e melhorar as atividades de desenvolvimento de software • Modelagem do Processo • Melhoria do Processo • Métricas e Estudos Empíricos
Histórico Fuggetta, A. Software Process: a Roadmap; in The Future of Software Engineering; 22nd International Conference on Software Engineering, Limerick, Irlanda, Jun 2000 • Início da área de Processo de Software: Anos 80 • Eventos: • International Software Process Workshop • European Workshop on Software Process Technology • Revista:Software Process - Improvement and Practice • Criação de Institutos: • Software Engineering Institute (SEI, Pittsburg, EEUU) • European Software Institute (ESI, Bilbao, Espanha) • Esforço da ISO:ISO 12207 e ISO 15504
Raiz: Pesquisas realizadas nos Anos 60 e 70 emModelos de Ciclo de Vida • Descrevem o esqueleto e a filosofia com que o processo de software deve ser conduzido • Não prescrevem um curso de ação preciso, uma organização, ferramentas e procedimentos operacionais • São um ponto de partida importante para se definir como o software deve ser desenvolvido, mas apenas adotar um modelo de ciclo de vida não é suficiente
A implantação de um Programa de Qualidade começa pela definição e implantação de um processo de software O processo deve estar documentado, ser compreendido e seguido
Processo Imaturo Características • Ad hoc - Improvisado • Fortemente dependente dos profissionais • Indisciplinado Consequências • pouca produtividade • qualidade de difícil previsão • alto custo de manutenção • risco na adoção de novas tecnologias
Processo Maduro Características • Processo conhecido por todos • Apoio visível da alta administração • Auditagem da fidelidade ao processo • Medidas do produto e do processo • Adoção disciplinada de tecnologias Consequê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
Qualidade do Processo Abordagens • ISO 12207 • ISO 9000-3 • CMM • SPICE • BOOTSTRAP • TRILLIUM
Avaliação da Situação das Empresas de Software Brasileiras • Desconhecimento sobre ISO 9000-3, CMM e SPICE por gerentes e desenvolvedores • Formação não sistemática e desatualizada em Engenharia de Software • Ausência de processo definido: desenvolvimento ad-hoc ou gerenciado • Dificuldade para introduzir novas tecnologias • Dificuldade para o gerenciamento de projetos • Gerentes gastam a maior parte do tempo “apagando incêndios” • Gerentes e desenvolvedores insatisfeitos
Preocupação com qualidade ainda é incipiente nas empresas • Experiência tem mostrado que os benefícios de 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 um processo de software definido para a empresa e 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: 1995: 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
Enfoque para Definição e Avaliação de Processos de Software Processo Padrão ISO 12207 CMM/ SPICE Práticas E. de Software Cultura Organizacional Tipo de Software Particularidades do projeto Definição Especialização ... Especialização 1 Especialização n Instanciação ... Plano do Processo1 Plano do Processo n Medição e Avaliação do Processo
Aspectos Fundamentais • Respeito a cultura organizacional • Uso de práticas comprovadas de Engenharia de Software: Engenharia de Software Baseada em Evidências necessidade de pesquisa empírica • Definição do Processo Padrão da Organização • Definir um processo, usar, medir, avaliar e melhorar continuamente
O 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 software • definição de características e procedimentos para avaliação da qualidade • treinamento • construção da 1a. Versão em 3 meses
1995/1996: • validação e refinamento do sistema • teses de mestrado e doutorado • grande volume de publicações • 2o. Lugar no Concurso de Monografias PBQP • 1997: • FBC é empresa SOFTEX • publicação de artigo na revista “Artificial Intelligence in Medicine” • 1998: • apresentação do SEC na Cebit98 (Hanover) e na MEDICA (Dusseldorf)
1999: • validação com casos reais • teses de mestrado e doutorado • apresentaçã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
Pesquisas Teses de Mestrado e Doutorado • Ferramentas 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
Estudo da literatura Experiência Gerencial Identificação de Métricas de Processo Definição dos Critérios de Julgamento Desenvolvimento de Software e Uso do Processo Relatório Histórico do Projeto Valor medido Medição Nível de pontuação Pontuação Julgamento Resultado (Identificação de Problemas eSugestões de Melhorias no Processo) Planilha de Atividades
Experiência na TecTeam Informática • Definição do Processo Padrão da TecTeam (1999) • Especialização do Processo para 2 Empresas Clientes (4/2000) • Instanciação para Projeto Específico (4/2000) • Definição de Métricas para Medição do Processo (4/2000) • Medição • Avaliação dos Resultados para Melhoria do Processo Definição e Construção de Ferramenta de Apoio
Processo Padrão ISO 12207 CMM Práticas E. de Software Tipo de Software Cultura Organizacional Particularidades do projeto Definição Especialização ... Especialização 1 Especialização n Instanciação ... Plano do Processo1 Plano do Processo n Medição e Avaliação do Processo
Tempo Precisão da Estimativa de Cronograma Esforço Precisão da Estimativa de Esforço Tamanho do Sistema Número de Erros Número de Modificações Densidade de Defeitos Rotatividade de Pessoal Produtividade Deterioração do Software Experiência da Equipe Métricas Selecionadas
Avaliação do Processo e Sugestão de Melhorias • Sistema 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