GCS - Aula 02 - Conceitos Principais

2,479 views
2,389 views

Published on

Aula 02 de GCS - Conceitos Principais - Curso de Especialzação em Engenharia de Software

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,479
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

GCS - Aula 02 - Conceitos Principais

  1. 1. Gestão de Configuração de Software - Conceitos Principais - ES06 – Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010
  2. 2. <ul><li>Configuração </li></ul><ul><li>Itens de Configuração </li></ul><ul><li>Versionamento </li></ul><ul><li>Repositório </li></ul><ul><li>Espaço de Trabalho ( Workspace ) </li></ul><ul><li>Baselines </li></ul><ul><li>Build </li></ul><ul><li>Reproducibilidade </li></ul><ul><li>CCB </li></ul>Agenda Gestão de Configuração de Software Copyright © 2010 Misael Santos
  3. 3. Configuração <ul><li>Os itens que compreendem toda a informação produzida como parte do processo de software são chamados coletivamente de configuração de software . </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  4. 4. Configuração <ul><li>É a designação geral para o conjunto de itens de configuração* de um projeto de software. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  5. 5. Itens de Configuração de Software <ul><li>É a informação criada como parte do processo de engenharia de software. ( SCI , Pressman, 2006) </li></ul><ul><li>É a designação geral de qualquer artefato ou produto de software mantido sob gestão de configuração/mudança. </li></ul><ul><li>São itens de informação selecionados. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  6. 6. Itens de Configuração de Software <ul><li>Em geral é: </li></ul><ul><ul><li>Um produto de software ou </li></ul></ul><ul><ul><li>Um produto de desenvolvimento de software </li></ul></ul><ul><li>Deve possuir uma identificação única </li></ul><ul><ul><li>Regras de Nomenclatura devem ser utilizadas </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  7. 7. Itens de Configuração de Software <ul><li>Exemplos: </li></ul><ul><ul><li>um plano de projeto </li></ul></ul><ul><ul><li>um cronograma </li></ul></ul><ul><ul><li>uma especificação de caso de uso </li></ul></ul><ul><ul><li>um modelo ou parte de um modelo </li></ul></ul><ul><ul><li>código-fonte * </li></ul></ul><ul><ul><li>um módulo executável ou componente, </li></ul></ul><ul><ul><li>um arquivo de help </li></ul></ul><ul><ul><li>um script de teste </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  8. 8. Itens de Configuração de Software <ul><li>Muitas organizações colocam também ferramentas de software sob controle de configuração. Ex: </li></ul><ul><ul><li>Versões específicas de editores </li></ul></ul><ul><ul><li>Compiladores </li></ul></ul><ul><ul><li>Navegadores </li></ul></ul><ul><ul><li>Outras ferramentas... </li></ul></ul><ul><li>Importante para a Reproducibilidade * </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  9. 9. Itens de Configuração de Software <ul><li>Itens de Configuração podem ser agrupados em Objetos de Configuração. </li></ul>Especificação de Projeto Projeto de dados Projeto arquitetônico Projeto de interface Modelo de Dados Especificação de Teste Plano de testes Scripts de testes Casos de teste Códig-Fonte Inter-relacionamento Inter-relacionamento Composição Gestão de Configuração de Software Copyright © 2010 Misael Santos
  10. 10. Itens de Configuração de Software Gestão de Configuração de Software Copyright © 2010 Misael Santos Gestão de Configuração de Software Configuração do Software Objeto de Configuração de Software Objeto de Configuração de Software Objeto de Configuração de Software Itens de Configuração Itens de Configuração Itens de Configuração
  11. 11. Versionamento <ul><li>Versionamento é a disciplina através da qual são preservadas as versões de um artefato, de modo sistemático e seguro, não limitado em número de versões. </li></ul><ul><li>A cada alteração consolidada no repositório uma nova versão do item deve ser gerada. </li></ul><ul><li>Todas as versões devem ser armazenadas e identificadas. </li></ul><ul><li>Revisões = versões individuais de cada item. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  12. 12. Versionamento <ul><li>Versão : </li></ul><ul><ul><li>Estado definido de um objeto num dado momento. </li></ul></ul><ul><ul><li>“ Fotografia” do objeto. </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  13. 13. <ul><li>Tipos de versionamento: </li></ul><ul><ul><li>Delta Negativo - armazena-se integralmente a versão mais recente e as diferenças (deltas) existentes até então. ( Mais Implementado ) </li></ul></ul><ul><ul><li>Delta Positivo - armazena-se a versão mais antiga e, para montar as versões mais recentes, processam-se as diferenças (deltas) armazenadas. </li></ul></ul>Versionamento Copyright © 2010 Misael Santos Gestão de Configuração de Software
  14. 14. Versionamento >_ arquivo1.c document2.doc classeA.java 1 1 1 2 2 2 3 3 4 4 5 6 Gestão de Configuração de Software Copyright © 2010 Misael Santos
  15. 15. Versionamento <ul><li>Árvore de versões do ClearCase </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  16. 16. Versionamento <ul><li>Deve ser possível recuperar versões anteriores de um item. </li></ul><ul><li>Além de artefatos, podemos versionar configurações completas ou parciais de um software </li></ul><ul><li>É, portanto, aceitável falar-se em: </li></ul><ul><ul><li>Versão de um artefato (documento, cronograma, modelo, programa, etc) </li></ul></ul><ul><ul><li>Versão de um sistema </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  17. 17. Repositório Gestão de Configuração de Software Copyright © 2010 Misael Santos
  18. 18. Repositório repositório - cria elementos - atualiza elementos <ul><li>recupera elementos - realiza testes - corrige elementos </li></ul><ul><li>elabora planos - verifica elementos - acompanha o andamento </li></ul><ul><li>recupera elementos - integra elementos - publica elementos </li></ul><ul><li>recupera elementos - realiza testes automáticos </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  19. 19. Repositório <ul><li>É o conjunto de mecanismos e estruturas de dados que permite a uma equipe de software gerir modificação de modo efetivo. </li></ul><ul><li>É um local sob controle de acesso onde são armazenados os itens de configuração. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  20. 20. Repositório <ul><li>Deve permitir: </li></ul><ul><ul><li>Controle de acesso </li></ul></ul><ul><ul><li>O versionamento dos elementos </li></ul></ul><ul><ul><li>Representar marcos de projeto ou versões de produção específicas </li></ul></ul><ul><ul><li>Pistas de auditoria das modificações </li></ul></ul><ul><ul><ul><li>O que, quando, quem e por que. </li></ul></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  21. 21. Repositório <ul><li>Existem diversas ferramentas de mercado: </li></ul><ul><ul><li>Rational ClearCase </li></ul></ul><ul><ul><li>CVS ( Concurrent Versions System ) </li></ul></ul><ul><ul><li>Subversion </li></ul></ul><ul><ul><li>Git </li></ul></ul><ul><ul><li>Mercurial </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  22. 22. Espaço de Trabalho ( Workspace ) Gestão de Configuração de Software Copyright © 2010 Misael Santos
  23. 23. Espaço de Trabalho ( Workspace ) <ul><li>Um lugar onde o desenvolvedor possa trabalhar isoladamente sobre os seus artefatos enquanto ele finaliza uma tarefa sem interferências externas . </li></ul><ul><li>Utilizado para: </li></ul><ul><ul><li>Criação/edição de artefatos </li></ul></ul><ul><ul><li>Operações de gerenciamento </li></ul></ul><ul><ul><li>Consultas </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  24. 24. Espaço de Trabalho ( Workspace ) <ul><li>Visões de Imagem (ou Visão Estática ou Snapshots): </li></ul><ul><ul><li>Apresenta ao desenvolvedor um ambiente de trabalho estável e isento de mudanças. </li></ul></ul><ul><ul><li>Quando um desenvolvedor deseja “enxergar” mudanças realizadas por outros grupos, ele pode atualizar sua visão. </li></ul></ul><ul><ul><li>Este formato de trabalho é conhecido por “modelo pull”, orientando sempre pela busca da informação desejada, ao invés de empurrar as mudanças. </li></ul></ul><ul><li>Visões Dinâmicas : </li></ul><ul><ul><li>Não armazenam nada localmente, dependem de atualizações imediatas realizadas através da rede. São recomendadas nas seguintes situações: </li></ul></ul><ul><ul><ul><li>Espaço restrito no ambiente do desenvolvedor </li></ul></ul></ul><ul><ul><ul><li>Necessidade de compartilhamento de certos objetos </li></ul></ul></ul><ul><ul><ul><li>Membros de grupos virtuais necessitam trabalhar com as últimas versões de um código </li></ul></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  25. 25. Baselines <ul><li>Também chamadas de: </li></ul><ul><ul><li>Referenciais ( Pressman ) </li></ul></ul><ul><ul><li>Linhas de Referências </li></ul></ul><ul><ul><li>Linhas de Base </li></ul></ul><ul><ul><li>Linhas-base </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  26. 26. Baselines <ul><li>“ Uma especificação ou produto que foi formalmente revisto e aprovado , o qual daí em diante serve como base para o desenvolvimento futuro e que pode ser modificado apenas por meio de procedimentos formais de controle de modificação .“ (IEEE Std n o . 610.12-1990) </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  27. 27. Baselines <ul><li>Uma baseline é uma “fotografia” de um conjunto de itens de configuração em um determinado momento do processo de desenvolvimento. </li></ul><ul><li>A configuração do software em um ponto discreto no tempo. </li></ul><ul><li>Normalmente é gerada ao final de uma fase do desenvolvimento ou demandada pelo líder do projeto. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  28. 28. Baselines <ul><li>Representam Marcos no Projeto ( Milestones ), ex: </li></ul><ul><ul><li>Final de especificação dos requisitos </li></ul></ul><ul><ul><li>Modelos documentados e revisados </li></ul></ul><ul><ul><li>Final da implementação de um módulo (incremento) </li></ul></ul><ul><ul><li>Erros encontrados e corrigidos (Testes, Homologação) </li></ul></ul><ul><ul><li>Implantação de uma Versão do Sistema </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  29. 29. Baselines <ul><li>Origem da versão de todos os ambientes: </li></ul><ul><ul><li>Testes </li></ul></ul><ul><ul><li>Homologação </li></ul></ul><ul><ul><li>Produção </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  30. 30. Baselines Software Alterações Revisão/Aprovação Software Baseline Solicitar Alterações Demandar Alterações Aprovadas Atender Solicitações Gestão de Configuração de Software Copyright © 2010 Misael Santos Analista Analista Gerente de Projetos (ou CCMS)
  31. 31. Baselines <ul><li>Ferramentas possuem recursos próprios para a administração de baselines </li></ul><ul><ul><li>CVS, Subversion </li></ul></ul><ul><ul><ul><li>tag </li></ul></ul></ul><ul><ul><li>ClearCase </li></ul></ul><ul><ul><ul><li>Apply Label </li></ul></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  32. 32. Baselines no CVS bash-2.05a$ cvs tag pre_alpha_0-1 cvs server: Tagging . T Changelog T INSTALL T Makefile T README T TODO cvs server: Tagging doc cvs server: Tagging doc/design T doc/design/AcceptanceTest.doc T doc/design/Analysis.rtf T doc/design/Requirements.doc T doc/design/Specification.rtf cvs server: Tagging doc/plan T doc/plan/Schedule.rtf cvs server: Tagging lib cvs server: Tagging man cvs server: Tagging src T src/config.h T src/main.c Gestão de Configuração de Software Copyright © 2010 Misael Santos
  33. 33. Baselines no ClearCase Gestão de Configuração de Software Copyright © 2010 Misael Santos
  34. 34. Build <ul><li>Representa uma versão que pode ser ainda incompleta do sistema em desenvolvimento, mas com certa estabilidade </li></ul><ul><li>Costuma apresentar limitações conhecidas </li></ul><ul><li>Pode incluir código-fonte, documentação, arquivos de configuração, base de dados, etc </li></ul><ul><li>A política de geração das builds deve ser bem definida na estruturação do ambiente </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  35. 35. Build <ul><li>Durante o projeto podem ser criadas várias builds </li></ul><ul><ul><li>A freqüência varia de acordo com a necessidade do projeto </li></ul></ul><ul><li>A build é o resultado principal de uma integração </li></ul><ul><li>Pode ser gerada automaticamente com a utilização de ferramentas </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  36. 36. Integração <ul><li>Atividade que consiste em “juntar” partes do software conforme vão ficando prontas </li></ul><ul><ul><li>Participam da atividade de integração itens já testados isoladamente (teste de unidade) </li></ul></ul><ul><ul><li>A integração pode incluir sincronização entre modelo e código </li></ul></ul><ul><ul><li>O produto principal da integração é uma build </li></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  37. 37. Reproducibilidade <ul><li>A habilidade de reproduzir/gerar uma versão anterior do sistema. </li></ul><ul><li>A partir do conteúdo de uma baseline conseguir obter uma versão estável do produto. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  38. 38. Reproducibilidade <ul><li>The Baseline Reproducibility Principle : Uma baseline deve ser reproduzível. Devemos ser capazes de reproduzir a “configuração&quot; e o conteúdo de todos os elementos necessários para reproduzir uma versão “liberada“ ( released ) do produto. (Brad Appleton) </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  39. 39. CCB <ul><li>Configuration Control Board – Comitê de Controle da Configuração </li></ul><ul><li>Ou ainda CMCS (Comitê de Mudanças na Configuração do Software) </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  40. 40. CCB <ul><li>Têm autoridade para aprovar ou rejeitar solicitações de alterações. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  41. 41. CCB <ul><li>Responsabilidades: </li></ul><ul><ul><li>Analisar as solicitações de mudança </li></ul></ul><ul><ul><li>Controlar o escopo do projeto </li></ul></ul><ul><ul><li>Reuniões com freqüência adequada ao ritmo das solicitações de mudança </li></ul></ul><ul><ul><li>Envolver stakeholders no processo de priorização e decisão </li></ul></ul><ul><ul><li>Balanço entre o nível de controle desejado e overhead suportado </li></ul></ul><ul><ul><ul><li>Questões menores devem ser resolvidas pelo líder do projeto junto à equipe, reduzindo o overhead do CCB </li></ul></ul></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  42. 42. Características do CCB <ul><li>Composição multidisciplinar </li></ul><ul><ul><li>SQA, gerente, cliente, arquiteto </li></ul></ul><ul><li>Profissionais com grande capacidade de comunicação e negociação </li></ul><ul><li>Pode apresentar uma estrutura hierarquica dependendo do tamanho e da quantidade de stakeholders e sistemas envolvidos </li></ul><ul><li>Em pequenos projetos pode ser representando unicamente pelo Lider de Projeto ou outro profissional designado. </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos
  43. 43. 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><ul><li>Brad Appleton's ACME Blog, disponível em: http://bradapp.blogspot.com </li></ul>Gestão de Configuração de Software Copyright © 2010 Misael Santos

×