como produzir software consumindo menos recursos, em menos tempo e com mais qualidade
DESCRIPTION
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?. É possível?. COMO?. Como?. COMO?. COMO?. Como?. Como?. COMO?. - PowerPoint PPT PresentationTRANSCRIPT
Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade.
Reinaldo Cabral
Como?COMO?
COMO?
COMO?
COMO?Como?
Como?
Como?
Como?
Como?
Como?COMO?
COMO?
COMO?
COMO?
É possível?
Como?
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 Radical em Processos de Software
Roteiro - Parte I1. 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 Aprendidas4. Fatores de Sucesso5. Referências6. 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 geraisProcesso
“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 inter-relacionadas que transformam insumos (entradas) em produtos (saídas).” (ISO, 1990)
“Conjunto de atividades inter-relacionadas, que transformam entradas em saídas.” (Pfleger, 2002)
Entradas SaídasProcesso
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çãoQuais 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 NormasCMMI, MPS.BR, ... ISO/IEC 12207, 15504, 90003, ...
MP
S.B
RProcessos Organizacionais
Processos OrganizacionaisProcessos FundamentaisProcessos Fundamentais
Aquisição
Gerência de Requisitos
Solução Técnica
Integração do Produto
Instalação do Produto
Liberação do Produto
Desenvolvimento de Requisitos
Avaliação e Melhoria do Processo Organizacional
Gerência de Riscos
Gerência de Projeto
Adaptação do Processo para Gerência de Projeto
Análise de Decisão e Resolução
Definição do Processo Organizacional
Inovação e Implantação na Organização
Análise e Resolução de Causas
Desempenho do Processo Organizacional
Gerência Quantitativa do Projeto
Processos de ApoioProcessos de Apoio
Garantia da Qualidade
Gerência de Configuração
Medição
Validação Treinamento
Verificação
Medição / Gerência de Configuração
Aquisição / Garantia da Qualidade
Treinamento / Avaliação e Melhoria do Processo Org. / Definição do Processo Org. / Adaptação do Processo para Gerência de Projeto
Desenvolvimento de Requisitos / Solução Técnica / Integração do Produto/ Instalação do Produto / Liberação do Produto / Verificação / Validação
Análise de Decisão e Resolução
Gerência de Riscos
G
F
E
D
C
Gerência de Requisitos
Gerência de Projeto
Desempenho do Processo Organizacional Gerência Quantitativa do Projeto
Inovação e Implantação na Organização Análise e Resolução de Causas A
B
Níveis de Maturidade no MPS.BR
1. Definição de Processos de Software
ElicitaçãoFormalizar processo não definidoConhecimento sobre processos não
definidos, geralmente estão dispersos e são inconsistentes
Múltiplas visões do mesmo processoPrincipais 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çãoAtributos do Modelo de Processo Atributos da Atividade
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
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çãoModelos dos artefatos a serem geradosGuia de apoio a execução (exemplo de uso)Diretrizes para execuçãoGuia de adaptação do processoEspecificação das técnicas e métodos
referenciadosDescrição dos papéis envolvidos
1. Definição de Processos de Software
Verificação, Validação e TestesO 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çãoTreinar as pessoasPublicar os modelos de processoFornecer apoio ao usoProblemas 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ínioA corrente forma de trabalho como ponto de
partidaDocumentação e disseminaçãoComprometimento da gerênciaVerificação e validação
4. Fatores de Sucesso
Na gerência/execução:Gerência de mudanças Sincronização entre processosEnvolvimento do usuário Comprometimento da gerência.Apoio à execuçãoMonitoramento 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?