Como produzir software
consumindo menos
recursos, em menos tempo
e com mais qualidade.
Reinaldo Cabral
[email protected]
Como?
COMO?
Como?
COMO?
COMO?
Como?
COMO?
COMO?
Como?
COMO?
É possível? Como?
Como?
Como?
COMO?
COMO?
Como?
Melhoria de
Processos de
Software
Reinaldo Cabral
[email protected]
Objetivos de Aprendizagem

Ao final, todos devem estar aptos:

Definir processos
 Executar processos
 Identificar oportunidades de melhorias
 Identificar potenciais ações de melhoria
 Testar ações de melhorias antes de
institucionalizar as mudanças nos
processos
 Institucionalizar melhorias
O curso:
 PARTE
I
Definição e Execução de Processos
de Software

 PARTE
II
Execução
e Melhoria de Processos de
Software
 PARTE
III
Melhoria
Software
Radical em Processos de
Roteiro - Parte I
1. Definição de Processos de Software








Notas Introdutórias
Conceitos gerais
Identificando objetivos e motivação
Uso de modelos e normas
Elicitação
Especificação
Verificação, Validação e Testes
Institucionalização
2. Exercícios (Torneio – 1ª etapa)
3. Lições Aprendidas
4. Fatores de Sucesso
5. Referências
6. Verificação do Alcance dos Objetivos de Aprendizagem
1. Definição de Processos de Software

Notas Introdutórias
 “O resultado da definição de um processo é
uma descrição de um processo”. (SEI, 2002)
 “Processo de software também é software”.
(Osterweil, 1997)
 “A criação
de um modelo de processo ajuda a
equipe de desenvolvimento a encontrar
inconsistências, redundâncias e omissões no
processo e em suas partes constituintes.”
(Pfleger, 2002)
1. Definição de Processos de Software

Conceitos gerais
 Processo
Entradas
Processo
Saídas
“Uma seqüência de passos executadas para um
determinado propósito; por exemplo, o processo
de desenvolvimento de software.” (IEEE, 1990)
 “Conjunto de recursos e atividades interrelacionadas que transformam insumos (entradas)
em produtos (saídas).” (ISO, 1990)
 “Conjunto de atividades inter-relacionadas, que
transformam entradas em saídas.” (Pfleger, 2002)

1. Definição de Processos de Software

Conceitos Gerais
 Atividade:
passo de um processo
 Método: descreve o que fazer para produzir um
artefato em determinada atividade
 Técnica: descreve como fazer para que o artefato da
atividade seja produzido e dotado de características
específicas.
 Artefato: produto final do processo ou produto
intermediário produzido ou consumido pelas
atividades.
 Fases, Macro-atividades, Subprocessos
1. Definição de Processos de Software


Identificando objetivos e motivação
 Quais os objetivos organizacionais e
necessidades do negócio?
 Quais as estratégias?
 Quais as áreas prioritárias?
 Qual a situação atual?
Uso de Modelos e Normas
 CMMI, MPS.BR, ...
 ISO/IEC 12207, 15504, 90003, ...
Processos Fundamentais
Processos Organizacionais
Gerência de Projeto
MPS.BR
Aquisição
Adaptação do Processo para
Gerência de Projeto
Gerência de Requisitos
Análise de Decisão e Resolução
Desenvolvimento de Requisitos
Solução Técnica
Gerência de Riscos
Avaliação e Melhoria do
Processo Organizacional
Definição do Processo
Organizacional
Integração do Produto
Desempenho do Processo
Organizacional
Instalação do Produto
Gerência Quantitativa do Projeto
Análise e Resolução de Causas
Liberação do Produto
Inovação e Implantação na
Organização
Processos de Apoio
Garantia da Qualidade
Medição
Gerência de Configuração
Verificação
Validação
Treinamento
Níveis de Maturidade no MPS.BR
Inovação e Implantação na Organização
Análise e Resolução de Causas
A
Desempenho do Processo Organizacional
Gerência Quantitativa do Projeto
B
Análise de Decisão e Resolução
C
Gerência de Riscos
D
Desenvolvimento de Requisitos / Solução Técnica /
Integração do Produto/ Instalação do Produto /
Liberação do Produto / Verificação / Validação
E
Treinamento / Avaliação e Melhoria do Processo Org. /
Definição do Processo Org. / Adaptação do Processo para
Gerência de Projeto
Medição / Gerência de Configuração
F
Aquisição / Garantia da Qualidade
Gerência de Requisitos
G
Gerência de Projeto
1. Definição de Processos de Software

Elicitação
 Formalizar processo não definido
 Conhecimento sobre processos não
definidos, geralmente estão dispersos e são
inconsistentes
 Múltiplas visões do mesmo processo
 Principais fontes:
Análise dos artefatos produzidos
 Observação do processo sendo executado
 Entrevistas com os executores do processo

1. Definição de Processos de Software

Especificação
Atributos do Modelo de Processo
















Nome
Versão
Autoria
Propósito
Responsável
Participantes
Insumos do processo (Entradas)
Critérios de entrada
Produtos de trabalho (Saídas)
Critérios de saída
Lista de atividades e especificações
Fluxo do processo
Lições aprendidas
Relacionamento com outros processos
Métricas
Procedimentos de monitoração e
controle
Atributos da Atividade











Nome
Objetivo
Responsável
Participantes
Descrição
Técnicas/Métodos
Insumos
Critérios de
Entrada
Produtos
Critérios de Saída
Recursos
1. Definição de Processos de Software

Especificação
 Modelos
dos artefatos a serem gerados
 Guia de apoio a execução (exemplo de uso)
 Diretrizes para execução
 Guia de adaptação do processo
 Especificação das técnicas e métodos
referenciados
 Descrição dos papéis envolvidos
1. Definição de Processos de Software

Verificação, Validação e Testes
 O processo está especificado conforme o
padrão para especificação de processos da
organização?
 O processo produz os artefatos adequados
de acordo com fim para o qual foi criado?
 Há possibilidade de conter alguma
informação que possa gerar dúvida ou má
interpretação na descrição do processo e
suas atividades?
1. Definição de Processos de Software

Verificação, Validação e Testes
 Quanto
mais cedo os problemas forem identificados
menos onerosa será sua correção.
 A incapacidade de compreender, executar, gerenciar
ou mensurar o processo pode implicar em sérios
prejuízos.
 Abordagens:






Grau de aderência a modelos de qualidade
Uso de checklists
Simulação dinâmica de processos
Verificação formal
Inspeção de processos
Execução de pilotos
1. Definição de Processos de Software

Institucionalização
 Treinar
as pessoas
 Publicar os modelos de processo
 Fornecer apoio ao uso
 Problemas típicos na execução
Adequação
 Aderência

2. Exercícios (Torneio – 1ª etapa)
Definir processos
3. Lições Aprendidas

Definição:
 Por
onde começaram?
 O que foi mais fácil de fazer?
 Dificuldades?
 Sugestões?

Execução:
 Processo
ajudou?
 Dificuldades?
 Sugestões?
4. Fatores de Sucesso

Na definição:
 Conhecimento
do domínio
 A corrente forma de trabalho como ponto de
partida
 Documentação e disseminação
 Comprometimento da gerência
 Verificação e validação
4. Fatores de Sucesso

Na gerência/execução:
 Gerência
de mudanças
 Sincronização entre processos
 Envolvimento do usuário
 Comprometimento da gerência.
 Apoio à execução
 Monitoramento constante
5.Referências

(Osterweil, 1997) Osterweil, L. “Software Process Are Software Too”, Proceedings in International
Conference on Software Engineering, IEEE Computer Society Press, Setembro,1987

(SEI, 2002) Software Engineering Institute, “Capability Maturity Model Integration (CMMI) Version
1.1 – Staged Representation”, Carnegie Mellon University, 2002.

(Pfleeger, 2004) Pfleeger, S. L., “Engenharia de Software – Teoria e Prática”, 2ª ed., Prentice Hall,
2004.

(DiBasio, 1999) DiBasio, D, “How to Define a Process”, International Conference on Software
Quality, Vol. 9, No. 0, p. 199-209, Outubro, 1999.

(IEEE, 1990) IEEE, “IEEE STD 610.12-1990, Standard Glossary of Software Engineering
Terminology”, 1990.

(ISO,1990) ISO, “Quality Concepts and Terminology Part One: Generic Terms and Definition”, ISO
8402, 1990.

(Madhavji, 1994) Madhavji, N. H., Höltje, D., Hong, W., Bruckhaus, T., “Elicit: A Method for Eliciting
Process Models”. In D. E. Perry, editor, Proceedings of the Third International Conference on the
Software Process, pages 111–122. IEEE Computer Society, Press, October 1994.

(Berander e Wohlin, 2003) Berander, P., Wohlin, C., "Identification of Key Factors in Software
Process Management - A Case Study", Proceedings of the 2003 International Symposium on
Empirical Software Engineering (ISESE’03)
6. Verificação do Alcance dos
Objetivos de Aprendizagem

Como definir processos de software?

Como executar processos?
Melhoria de
Processos de
Software
Reinaldo Cabral
[email protected]
Download

Como produzir software consumindo menos recursos - Sefaz-AL