O slideshow foi denunciado.

GCS - Aula 01 - Introdução

2.591 visualizações

Publicada em

Aula 01 - Introdução - Curso de Especialização em Engenharia de Software

Publicada em: Tecnologia
  • Seja o primeiro a comentar

GCS - Aula 01 - Introdução

  1. 1. Gestão de Configuração de Software - Introdução - <ul><ul><li>ES06 – Especialização em Engenharia de Software </li></ul></ul><ul><ul><li>Prof.: Misael Santos (misael@gmail.com) </li></ul></ul><ul><ul><li>Ago/2010 </li></ul></ul>
  2. 2. Apresentação <ul><li>Misael Santos <misael@gmail.com> </li></ul><ul><li>Analista de Sistemas, SERPRO – Serviço Federal de Processamento de Dados </li></ul><ul><ul><li>Desenvolvedor e Arquiteto de Software </li></ul></ul><ul><ul><li>Ex-coordenador do Grupo Especialista de Gestão de Configuração de Software </li></ul></ul><ul><li>Mestre em Ciência da Computação, UFC </li></ul><ul><ul><li>Engenharia de Software: Padrões de Software </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  3. 3. Agenda <ul><li>Introdução </li></ul><ul><li>Motivação </li></ul><ul><li>O que é GCS? </li></ul><ul><li>Objetivos </li></ul><ul><li>Abrangência </li></ul><ul><li>Benefícios </li></ul><ul><li>Contextualização </li></ul><ul><li>Próximos Passos </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  4. 4. Introdução <ul><li>Gestão de Configuração de Software </li></ul><ul><li>Teve início no final dos anos 60 </li></ul><ul><li>Padrões militares americanos incluíam Gestão de Configuração (anos 70) </li></ul><ul><li>Evolução dos Processos de Desenvolvimento de Software </li></ul><ul><li>Criação de Modelos de Referência </li></ul><ul><ul><li>Ex: ISO 12207 </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  5. 5. Mudanças <ul><li>“ Não há nada permanente, exceto a mudança” (Heráclito, 500 a.C.) </li></ul><ul><li>A maioria das modificações no software é justificável. Assim não vale a pena se queixar delas. Em vez disso, certifique-se de que dispõe de mecanismos para cuidar delas. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  6. 6. Mudanças <ul><li>Origens Comuns das Modificações: </li></ul><ul><ul><li>Novas condições de negócio ou mercado </li></ul></ul><ul><ul><li>Novas necessidades do cliente </li></ul></ul><ul><ul><li>Reorganização ou crescimento/diminuição dos negócios </li></ul></ul><ul><ul><li>Restrições de orçamento ou cronograma </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  7. 7. Motivação <ul><li>Desenvolvimento Paralelo </li></ul><ul><ul><li>Projeto de Reestruturação de um Software em Produção: </li></ul></ul><ul><ul><ul><li>Implementação de novas funcionalidades X correção de bugs. </li></ul></ul></ul><ul><ul><li>Projeto para Correção de Falhas </li></ul></ul><ul><ul><ul><li>Impacto sobre vários elementos do sistema. </li></ul></ul></ul><ul><ul><ul><li>Nem todas as partes envolvidas são avisadas. </li></ul></ul></ul><ul><ul><ul><li>Após a implantação outras funcionalidades apareceram com novos bugs. </li></ul></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  8. 8. Motivação <ul><li>Desenvolvimento Paralelo </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software grava grava arquivo A arquivo A arquivo A’’ arquivo A’ arquivo A’’ arquivo A’
  9. 9. Motivação <ul><li>Múltiplas Versões </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software Qual a versão é mais correta ou completa? Como unir as duas versões de um sistema inteiro? arquivo A’’ arquivo A’
  10. 10. Motivação <ul><li>Falta de sincronismo entre atividades </li></ul><ul><ul><li>Mudanças interdependentes não implantadas juntas </li></ul></ul><ul><li>Notificação Limitada </li></ul><ul><ul><li>Ao se resolver algum problema num dado artefato compartilhado, a mudança deve ser notificada </li></ul></ul><ul><li>Conflito entre atividades paralelas </li></ul><ul><ul><li>Uma das duas é suspensa, até que a outra seja concluída </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  11. 11. Motivação <ul><li>Falta de Controle de Modificações </li></ul><ul><ul><li>Em que versão foi realizada a correção? </li></ul></ul><ul><ul><li>Qual é a versão mais atual? </li></ul></ul><ul><ul><li>Quem foi o responsável pela mudança? </li></ul></ul><ul><ul><li>O que realmente foi modificado? </li></ul></ul><ul><ul><li>Quando? </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  12. 12. Motivação <ul><li>Perda do fonte de um programa </li></ul><ul><li>Impossibilidade de recuperar uma determinada versão do sistema </li></ul><ul><ul><li>Indisponibilidade da versão anterior </li></ul></ul><ul><ul><li>Falta de informação sobre a sua composição </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  13. 13. Motivação <ul><li>Falta de controle nas mudanças/atividades </li></ul><ul><ul><li>Não é possível determinar a situação delas (atrasadas, concluídas, não alocadas, em andamento) </li></ul></ul><ul><ul><li>Histórico das mudanças </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  14. 14. Motivação <ul><li>Caos: Alterações sem controle de produtos de desenvolvimento de software é um processo caótico. </li></ul><ul><ul><li>Muitos Artefatos </li></ul></ul><ul><ul><li>Várias Equipes </li></ul></ul><ul><ul><li>Diferentes Locais </li></ul></ul><ul><ul><li>Múltiplas Iterações </li></ul></ul><ul><ul><li>Releases </li></ul></ul><ul><ul><li>Diferentes Produtos </li></ul></ul><ul><ul><li>Múltiplas Plataformas </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  15. 15. O que é GCS? <ul><li>Diversos Termos </li></ul><ul><ul><li>Gerência de Configuração de Software (GCS) </li></ul></ul><ul><ul><li>Gestão de Configuração Software (GCS) </li></ul></ul><ul><ul><li>Gestão de Configuração (GC) </li></ul></ul><ul><ul><li>Software Configuration Management (SCM) </li></ul></ul><ul><ul><li>Configuration Management (CM) </li></ul></ul><ul><ul><li>Change Management (CM) </li></ul></ul><ul><ul><li>Configuration & Change Management (CCM) </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  16. 16. O que é GCS? (1) <ul><li>Change Management (CM) - Gestão de Mudanças </li></ul><ul><li>“ A arte de coordenar desenvolvimento de software para minimizar … confusão é chamada de gestão de configuração , que é a arte de identificar , organizar e controlar modificações no software que está sendo construído por uma equipe de programação. O objetivo é maximizar a produtividade pela minimização de erros.” (Pressman, 2006) </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  17. 17. O que é GCS? (2) <ul><li>Software Engineering Institute Capability Maturity Model (SEI SW-CMM) </li></ul><ul><li>“ Envolve identificar a configuração de um software em certos pontos no tempo, sistematicamente controlando as mudanças na configuração e mantendo a integridade e rastreabilidade da configuração durante todo o ciclo de vida do software. Os produtos de trabalho colocados sobre gestão de configuração incluem os produtos de software que são entregues ao cliente (ex: documentos de requisitos e o código-fonte) e os itens que são necessários para criá-los (ex: compilador, editor ).” </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  18. 18. O que é GCS? (3) <ul><li>IEEE-Std-729-1983 </li></ul><ul><ul><li>“ Gestão de Configuração : É o processo de identificar e definir os itens em um sistema, controlando as modificações nestes itens durante o seu ciclo de vida, gravando e relatando o status dos itens e das solicitações de mudanças, verificando a completude, consistência e corretude nos mesmos. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software mais completa
  19. 19. O que é GCS? (4) <ul><li>Ivar Jacobson, Grady Booch, and James Rumbaugh </li></ul><ul><ul><li>“ Configuration Management: A tarefa de definir e manter as configurações e versões de artefatos. Isto inclui manter linhas de base (baselining), controle de versões, controle de status e controle do armazenamento de artefatos“ </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  20. 20. O que é GCS? (5) <ul><li>GCS deveria responder quem, o que, quando e por que: </li></ul><ul><ul><li>Quem fez as mudanças? </li></ul></ul><ul><ul><li>Que mudanças foram feitas no sistema? </li></ul></ul><ul><ul><li>Onde as mudanças foram feitas? </li></ul></ul><ul><ul><li>Por que as mudanças foram feitas? </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  21. 21. O que é GCS? (5) Copyright © 2010 Misael Santos Gestão de Configuração de Software Artefatos de Software Mudanças Características Equipe
  22. 22. O que é GCS? (6) <ul><li>Identificação </li></ul><ul><li>Controle </li></ul><ul><li>Auditoria </li></ul><ul><li>Integração </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  23. 23. Objetivo da GCS <ul><li>Estabelecer e manter a integridade e o controle dos produtos de software. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  24. 24. Objetivo da GCS <ul><li>As atividades de GCS estão intimamente ligados à Garantia da Qualidade de Software (SQA). </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  25. 25. Abrangência de GCS <ul><li>Gestão de configuração de software é um conjunto de atividades de planejamento, acompanhamento, controle e atividades técnicas que: </li></ul><ul><ul><li>Começa quando o projeto de engenharia de software tem início. </li></ul></ul><ul><ul><li>Continua durante todas as versões posteriores do software. </li></ul></ul><ul><ul><li>Só termina quando o software sai de produção. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  26. 26. Abrangência de GCS <ul><li>Processo de Engenharia de Software </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software Definição Construção Manutenção Produto de Software Gestão de Configuração
  27. 27. Benefícios <ul><li>Proporcionar estabilidade e confiabilidade </li></ul><ul><li>Maior visibilidade do sistema (produtos) </li></ul><ul><li>Maior rapidez na identificação e correção de problemas </li></ul><ul><li>Apoiar a tomada de decisões </li></ul><ul><li>Introduzir padrões </li></ul><ul><ul><li>Documentação, nomenclatura, armazenamento, procedimentos... </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  28. 28. Benefícios <ul><li>Permite o controle de versões e releases do software </li></ul><ul><li>Viabiliza a integração entre os membros da equipe </li></ul><ul><li>Incrementa a qualidade nas diversas fases de desenvolvimento de software </li></ul><ul><li>Garante a rastreabilidade entre o produto de software e suas partes constituintes (em suas várias versões) </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  29. 29. Benefícios <ul><li>Consistência </li></ul><ul><li>Coordenação </li></ul><ul><li>Reproducibilidade* </li></ul><ul><li>Integridade </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  30. 30. Quem trabalha com GCS? Copyright © 2010 Misael Santos Gestão de Configuração de Software Líder de Projeto Analista de Requisitos Gestor de Configuração de Software Programador
  31. 31. Quem trabalha com GCS? <ul><li>Gestor de Configuração de Software (GCS) </li></ul><ul><li>Programadores </li></ul><ul><li>Analistas de Requisitos </li></ul><ul><li>Analistas de Testes </li></ul><ul><li>Analista de Suporte </li></ul><ul><li>Analista de Negócios </li></ul><ul><li>Gerentes de Projetos </li></ul><ul><li>Toda a Equipe! </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  32. 32. Onde GCS é Inserida Atualmente? Copyright © 2010 Misael Santos Gestão de Configuração de Software Engenharia de Software PMBoK CMMi RUP ISO Ágil Gestão de Configuração de Software
  33. 33. Principais Atividades <ul><li>Planejar a Gestão de Configuração </li></ul><ul><li>Identificar a Configuração </li></ul><ul><li>Controlar as Mudanças </li></ul><ul><li>Administrar Baselines </li></ul><ul><li>Relatar a Situação da Configuração </li></ul><ul><li>Realizar Auditorias de Configuração </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  34. 34. Como GCS é implantada? <ul><li>Adoção de práticas e ferramentas. </li></ul><ul><li>Adoção de um Processo de Desenvolvimento de Software que contemple atividades de GCS. </li></ul><ul><li>Capacitação da Equipe. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  35. 35. O que mais veremos? <ul><li>GCS X PMBoK </li></ul><ul><li>GCS X CMMi </li></ul><ul><li>GCS X ISO </li></ul><ul><li>GCS X RUP </li></ul><ul><li>GCS Ágil </li></ul><ul><li>Padrões ( SCM Patterns ) </li></ul><ul><li>Ferramentas </li></ul><ul><ul><li>Controle de Mudanças </li></ul></ul><ul><ul><li>Controle de Versões </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  36. 36. Links <ul><li>Software Configuration Management (SCM), Carnegei Mellon. http://www.sei.cmu.edu/legacy/scm </li></ul><ul><li>Configuration Management Yellow Pages. http://www.cmcrossroads.com/yp/index.php?oldpage=configuration_management.htm </li></ul><ul><li>Unified Configuration Management Central http://www.snuffybear.com/ucmcentral_new_cmportal.htm </li></ul><ul><li>Brad Appleton's SCM Links http://www.cmcrossroads.com/bradapp/links/scm-links.html </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  37. 37. Referências <ul><li>PRESSMAN, R. S., Engenharia de Software , 6ª. ed., 2006. </li></ul><ul><li>HASS A. M. J. , Configuration Management Principles and Practice , Addison Wesley, 432p, 2002. </li></ul><ul><li>FREDERICKS T. Software Configuration and Integration Management , Marquette University, 2001. </li></ul><ul><li>PSDS: Processo SERPRO de Desenvolvimento de Soluções , SERPRO, 2006. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software

×