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
“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
desenvolver
e
relacionados
as
manter
pessoas
utilizam
software
e
para
produtos
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 em Modelos
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
Experiências de Definição de Processo
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
investimentos em qualidade são percebidos rapidamente
• qualidade do produto
• produtividade no desenvolvimento
• competitividade
• recursos humanos formados
de
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
Definição
ISO 12207
CMM/ SPICE
Práticas E. de Software
Cultura Organizacional
Processo Padrão
Especialização
Tipo de Software
...
Especialização 1
Particularidades do
projeto
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
Evidências
de Software Baseada em
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
Desenvolvimento
de Software e Uso
do Processo
Estudo da literatura
Experiência Gerencial
Identificação
de Métricas de
Processo
Definição dos
Critérios de
Julgamento
Relatório Histórico do Projeto
Planilha de Atividades
Valor medido
Medição
Pontuação
Nível de
pontuação
Julgamento
Resultado
(Identificação de Problemas
eSugestões de Melhorias
no Processo)
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
ISO 12207
CMM
Práticas E. de Software
Definição
Processo Padrão
Tipo de Software
Cultura Organizacional
Especialização
...
Especialização 1
Particularidades do
projeto
Especialização n
Instanciação
Plano do Processo1
...
Plano do Processo n
Medição e Avaliação do Processo
Métricas Selecionadas

Tempo

Número de Erros

Precisão da Estimativa de

Número de Modificações
Cronograma

Densidade de Defeitos

Esforço

Rotatividade de Pessoal

Precisão da Estimativa de

Produtividade

Deterioração do Software

Experiência da Equipe
Esforço

Tamanho do Sistema
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
Download

SEC-tutor - Spin de SP