como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

25
Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade. Reinaldo Cabral [email protected]

Upload: lane-gillespie

Post on 03-Jan-2016

40 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade.

Reinaldo Cabral

[email protected]

Page 2: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

Como?COMO?

COMO?

COMO?

COMO?Como?

Como?

Como?

Como?

Como?

Como?COMO?

COMO?

COMO?

COMO?

É possível?

Como?

Page 3: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

Melhoria de Processos de Software

Reinaldo Cabral

[email protected]

Page 4: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 5: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 6: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 7: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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)

Page 8: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 9: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 10: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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, ...

Page 11: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 12: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 13: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 14: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 15: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 16: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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?

Page 17: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 18: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 19: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

2. Exercícios (Torneio – 1ª etapa)

Definir processos

Page 20: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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?

Page 21: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 22: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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

Page 23: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

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)

Page 24: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

6. Verificação do Alcance dos Objetivos de Aprendizagem

Como definir processos de software?

Como executar processos?

Page 25: Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade

Melhoria de Processos de Software

Reinaldo Cabral

[email protected]