1 / 25

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 cabral@cos.ufrj.br. Como?. Como?. COMO?. COMO?. Como?. COMO?. Como?. COMO?. Como?. É possível?. COMO?. Como?. COMO?. COMO?. Como?. Como?. COMO?.

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Como produzir software consumindo menos recursos, em menos tempo e com mais qualidade. Reinaldo Cabral cabral@cos.ufrj.br

  2. Como? Como? COMO? COMO? Como? COMO? Como? COMO? Como? É possível? COMO? Como? COMO? COMO? Como? Como? COMO?

  3. Melhoria de Processos de Software Reinaldo Cabral cabral@cos.ufrj.br

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

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

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

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

  8. 1. Definição de Processos de Software Saídas Entradas Processo • Conceitos gerais • Processo • “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)

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

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

  11. Processos Fundamentais Processos Organizacionais Gerência de Projeto 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 Gerência de Riscos Avaliação e Melhoria do Processo Organizacional Solução Técnica 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 Verificação Gerência de Configuração Validação Treinamento MPS.BR

  12. 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 Gerência de Riscos C Desenvolvimento de Requisitos / Solução Técnica / Integração do Produto/ Instalação do Produto / Liberação do Produto / Verificação / Validação D Treinamento / Avaliação e Melhoria do Processo Org. / Definição do Processo Org. / Adaptação do Processo para Gerência de Projeto E Medição / Gerência de Configuração Aquisição / Garantia da Qualidade F Gerência de Requisitos Gerência de Projeto G Níveis de Maturidade no MPS.BR

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

  14. 1. Definição de Processos de Software • Especificação

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

  16. 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?

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

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

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

  20. 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?

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

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

  23. 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)

  24. 6. Verificação do Alcance dos Objetivos de Aprendizagem • Como definir processos de software? • Como executar processos?

  25. Melhoria de Processos de Software Reinaldo Cabral cabral@cos.ufrj.br

More Related