Gestão de Configuração de Software - Introdução - ES06 – Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010
Apresentação Misael Santos <misael@gmail.com> Analista de Sistemas, SERPRO – Serviço Federal de Processamento de Dados Desenvolvedor e Arquiteto de Software Ex-coordenador do Grupo Especialista de Gestão de Configuração de Software Mestre em Ciência da Computação, UFC Engenharia de Software: Padrões de Software Copyright © 2010 Misael Santos Gestão de Configuração de Software
Agenda Introdução Motivação O que é GCS? Objetivos Abrangência Benefícios Contextualização Próximos Passos Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Introdução Gestão de Configuração de Software Teve início no final dos anos 60 Padrões militares americanos incluíam  Gestão de Configuração  (anos 70) Evolução dos Processos de Desenvolvimento de Software  Criação de Modelos de Referência Ex: ISO 12207 Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Mudanças “ Não há nada permanente, exceto a mudança” (Heráclito, 500 a.C.) 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. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Mudanças Origens Comuns das Modificações: Novas condições de negócio ou mercado Novas necessidades do cliente Reorganização ou crescimento/diminuição dos negócios Restrições de orçamento ou cronograma Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Desenvolvimento Paralelo Projeto de Reestruturação de um Software em Produção: Implementação de novas funcionalidades X correção de bugs. Projeto para Correção de Falhas Impacto sobre vários elementos do sistema. Nem todas as partes envolvidas são avisadas. Após a implantação outras funcionalidades apareceram com novos bugs. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Desenvolvimento Paralelo 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’
Motivação Múltiplas Versões 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’
Motivação Falta de sincronismo entre atividades Mudanças interdependentes não implantadas juntas Notificação Limitada Ao se resolver algum problema num dado artefato compartilhado, a mudança deve ser notificada Conflito entre atividades paralelas Uma das duas é suspensa, até que a outra seja concluída Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Falta de Controle de Modificações Em que versão foi realizada a correção? Qual é a versão mais atual? Quem foi o responsável pela mudança? O que realmente foi modificado? Quando? Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Perda do fonte de um programa Impossibilidade de recuperar uma determinada versão do sistema Indisponibilidade da versão anterior Falta de informação sobre a sua composição Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Falta de controle nas mudanças/atividades Não é possível determinar a situação delas (atrasadas, concluídas, não alocadas, em andamento) Histórico das mudanças Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Motivação Caos: Alterações  sem controle  de produtos de desenvolvimento de software é um processo caótico. Muitos Artefatos Várias Equipes Diferentes Locais Múltiplas Iterações Releases Diferentes Produtos Múltiplas Plataformas Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? Diversos Termos Gerência de Configuração de Software (GCS) Gestão de Configuração Software (GCS) Gestão de Configuração (GC) Software Configuration Management (SCM) Configuration Management (CM) Change Management (CM) Configuration & Change Management (CCM) Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? (1) Change Management  (CM) - Gestão de Mudanças “ 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) Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? (2) Software Engineering Institute Capability Maturity Model (SEI SW-CMM) “ 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 ).” Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? (3) IEEE-Std-729-1983 “ 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. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software mais  completa
O que é GCS? (4) Ivar Jacobson, Grady Booch, and James Rumbaugh  “ 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“ Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? (5) GCS deveria responder quem, o que, quando e por que: Quem  fez as mudanças? Que  mudanças foram feitas no sistema? Onde  as mudanças foram feitas? Por que  as mudanças foram feitas? Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que é GCS? (5) Copyright  ©  2010 Misael Santos Gestão de Configuração de Software Artefatos de Software Mudanças Características Equipe
O que é GCS? (6) Identificação Controle Auditoria Integração Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Objetivo da GCS Estabelecer e manter a integridade e o controle dos produtos de software. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Objetivo da GCS As atividades de GCS estão intimamente ligados à  Garantia da Qualidade de Software  (SQA). Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Abrangência de GCS Gestão de configuração de software é um conjunto de atividades de planejamento, acompanhamento, controle e atividades técnicas que: Começa quando o projeto de engenharia de software tem início. Continua durante todas as versões posteriores do software. Só termina quando o software sai de produção. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Abrangência de GCS Processo de Engenharia de Software 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
Benefícios Proporcionar estabilidade e confiabilidade Maior visibilidade do sistema (produtos) Maior rapidez na identificação e correção de problemas Apoiar a tomada de decisões Introduzir padrões Documentação, nomenclatura, armazenamento, procedimentos... Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Benefícios Permite o controle de versões e  releases  do software Viabiliza a integração entre os membros da equipe Incrementa a qualidade nas diversas fases de desenvolvimento de software Garante a rastreabilidade entre o produto de software e suas partes constituintes (em suas várias versões) Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Benefícios Consistência Coordenação Reproducibilidade* Integridade Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
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
Quem trabalha com GCS? Gestor de Configuração de Software (GCS)  Programadores Analistas de Requisitos Analistas de Testes Analista de Suporte Analista de Negócios Gerentes de Projetos Toda a Equipe! Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
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
Principais Atividades Planejar a Gestão de Configuração Identificar a Configuração Controlar as Mudanças Administrar Baselines Relatar a Situação da Configuração Realizar Auditorias de Configuração Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Como GCS é implantada? Adoção de práticas e ferramentas. Adoção de um Processo de Desenvolvimento de Software que contemple atividades de GCS. Capacitação da Equipe. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
O que mais veremos? GCS X PMBoK GCS X CMMi GCS X ISO GCS X RUP GCS Ágil Padrões ( SCM Patterns ) Ferramentas Controle de Mudanças Controle de Versões Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Links Software Configuration Management (SCM), Carnegei Mellon.  http://www.sei.cmu.edu/legacy/scm Configuration Management Yellow Pages.  http://www.cmcrossroads.com/yp/index.php?oldpage=configuration_management.htm Unified Configuration Management Central http://www.snuffybear.com/ucmcentral_new_cmportal.htm Brad Appleton's SCM Links http://www.cmcrossroads.com/bradapp/links/scm-links.html Copyright  ©  2010 Misael Santos Gestão de Configuração de Software
Referências PRESSMAN, R. S.,  Engenharia de Software , 6ª. ed., 2006. HASS A. M. J. ,  Configuration Management Principles and Practice , Addison Wesley, 432p, 2002. FREDERICKS T.   Software Configuration and Integration Management , Marquette University, 2001. PSDS: Processo SERPRO de Desenvolvimento de Soluções , SERPRO, 2006. Copyright  ©  2010 Misael Santos Gestão de Configuração de Software

GCS - Aula 01 - Introdução

  • 1.
    Gestão de Configuraçãode Software - Introdução - ES06 – Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010
  • 2.
    Apresentação Misael Santos<misael@gmail.com> Analista de Sistemas, SERPRO – Serviço Federal de Processamento de Dados Desenvolvedor e Arquiteto de Software Ex-coordenador do Grupo Especialista de Gestão de Configuração de Software Mestre em Ciência da Computação, UFC Engenharia de Software: Padrões de Software Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 3.
    Agenda Introdução MotivaçãoO que é GCS? Objetivos Abrangência Benefícios Contextualização Próximos Passos Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 4.
    Introdução Gestão deConfiguração de Software Teve início no final dos anos 60 Padrões militares americanos incluíam Gestão de Configuração (anos 70) Evolução dos Processos de Desenvolvimento de Software Criação de Modelos de Referência Ex: ISO 12207 Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 5.
    Mudanças “ Nãohá nada permanente, exceto a mudança” (Heráclito, 500 a.C.) 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. Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 6.
    Mudanças Origens Comunsdas Modificações: Novas condições de negócio ou mercado Novas necessidades do cliente Reorganização ou crescimento/diminuição dos negócios Restrições de orçamento ou cronograma Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 7.
    Motivação Desenvolvimento ParaleloProjeto de Reestruturação de um Software em Produção: Implementação de novas funcionalidades X correção de bugs. Projeto para Correção de Falhas Impacto sobre vários elementos do sistema. Nem todas as partes envolvidas são avisadas. Após a implantação outras funcionalidades apareceram com novos bugs. Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 8.
    Motivação Desenvolvimento ParaleloCopyright © 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.
    Motivação Múltiplas VersõesCopyright © 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.
    Motivação Falta desincronismo entre atividades Mudanças interdependentes não implantadas juntas Notificação Limitada Ao se resolver algum problema num dado artefato compartilhado, a mudança deve ser notificada Conflito entre atividades paralelas Uma das duas é suspensa, até que a outra seja concluída Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 11.
    Motivação Falta deControle de Modificações Em que versão foi realizada a correção? Qual é a versão mais atual? Quem foi o responsável pela mudança? O que realmente foi modificado? Quando? Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 12.
    Motivação Perda dofonte de um programa Impossibilidade de recuperar uma determinada versão do sistema Indisponibilidade da versão anterior Falta de informação sobre a sua composição Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 13.
    Motivação Falta decontrole nas mudanças/atividades Não é possível determinar a situação delas (atrasadas, concluídas, não alocadas, em andamento) Histórico das mudanças Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 14.
    Motivação Caos: Alterações sem controle de produtos de desenvolvimento de software é um processo caótico. Muitos Artefatos Várias Equipes Diferentes Locais Múltiplas Iterações Releases Diferentes Produtos Múltiplas Plataformas Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 15.
    O que éGCS? Diversos Termos Gerência de Configuração de Software (GCS) Gestão de Configuração Software (GCS) Gestão de Configuração (GC) Software Configuration Management (SCM) Configuration Management (CM) Change Management (CM) Configuration & Change Management (CCM) Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 16.
    O que éGCS? (1) Change Management (CM) - Gestão de Mudanças “ 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) Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 17.
    O que éGCS? (2) Software Engineering Institute Capability Maturity Model (SEI SW-CMM) “ 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 ).” Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 18.
    O que éGCS? (3) IEEE-Std-729-1983 “ 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. Copyright © 2010 Misael Santos Gestão de Configuração de Software mais completa
  • 19.
    O que éGCS? (4) Ivar Jacobson, Grady Booch, and James Rumbaugh “ 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“ Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 20.
    O que éGCS? (5) GCS deveria responder quem, o que, quando e por que: Quem fez as mudanças? Que mudanças foram feitas no sistema? Onde as mudanças foram feitas? Por que as mudanças foram feitas? Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 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.
    O que éGCS? (6) Identificação Controle Auditoria Integração Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 23.
    Objetivo da GCSEstabelecer e manter a integridade e o controle dos produtos de software. Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 24.
    Objetivo da GCSAs atividades de GCS estão intimamente ligados à Garantia da Qualidade de Software (SQA). Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 25.
    Abrangência de GCSGestão de configuração de software é um conjunto de atividades de planejamento, acompanhamento, controle e atividades técnicas que: Começa quando o projeto de engenharia de software tem início. Continua durante todas as versões posteriores do software. Só termina quando o software sai de produção. Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 26.
    Abrangência de GCSProcesso de Engenharia de Software 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.
    Benefícios Proporcionar estabilidadee confiabilidade Maior visibilidade do sistema (produtos) Maior rapidez na identificação e correção de problemas Apoiar a tomada de decisões Introduzir padrões Documentação, nomenclatura, armazenamento, procedimentos... Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 28.
    Benefícios Permite ocontrole de versões e releases do software Viabiliza a integração entre os membros da equipe Incrementa a qualidade nas diversas fases de desenvolvimento de software Garante a rastreabilidade entre o produto de software e suas partes constituintes (em suas várias versões) Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 29.
    Benefícios Consistência CoordenaçãoReproducibilidade* Integridade Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 30.
    Quem trabalha comGCS? 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.
    Quem trabalha comGCS? Gestor de Configuração de Software (GCS) Programadores Analistas de Requisitos Analistas de Testes Analista de Suporte Analista de Negócios Gerentes de Projetos Toda a Equipe! Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 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.
    Principais Atividades Planejara Gestão de Configuração Identificar a Configuração Controlar as Mudanças Administrar Baselines Relatar a Situação da Configuração Realizar Auditorias de Configuração Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 34.
    Como GCS éimplantada? Adoção de práticas e ferramentas. Adoção de um Processo de Desenvolvimento de Software que contemple atividades de GCS. Capacitação da Equipe. Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 35.
    O que maisveremos? GCS X PMBoK GCS X CMMi GCS X ISO GCS X RUP GCS Ágil Padrões ( SCM Patterns ) Ferramentas Controle de Mudanças Controle de Versões Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 36.
    Links Software ConfigurationManagement (SCM), Carnegei Mellon. http://www.sei.cmu.edu/legacy/scm Configuration Management Yellow Pages. http://www.cmcrossroads.com/yp/index.php?oldpage=configuration_management.htm Unified Configuration Management Central http://www.snuffybear.com/ucmcentral_new_cmportal.htm Brad Appleton's SCM Links http://www.cmcrossroads.com/bradapp/links/scm-links.html Copyright © 2010 Misael Santos Gestão de Configuração de Software
  • 37.
    Referências PRESSMAN, R.S., Engenharia de Software , 6ª. ed., 2006. HASS A. M. J. , Configuration Management Principles and Practice , Addison Wesley, 432p, 2002. FREDERICKS T. Software Configuration and Integration Management , Marquette University, 2001. PSDS: Processo SERPRO de Desenvolvimento de Soluções , SERPRO, 2006. Copyright © 2010 Misael Santos Gestão de Configuração de Software