Gestão de Modificações Fabrício de Sousa
Introdução Inevitáveis quando o software é construído Confusão As modificações não são analisadas antes de serem feitas Não são registradas antes de serem feitas Não são relatadas às pessoas que devem saber delas Não são controladas para melhorar a qualidade e reduzir erros 2
Gestão de Configuração Software Configuration Management (SCM) A arte de coordenar desenvolvimento de software para minimizar confusão Arte de identificar, organizar e controlar modificações no software que está sendo construído Objetivo Maximizar a produtividade pela minimização dos erros 3
Objetiva responder: Quais mudanças aconteceram no sistema? Por que essas mudanças aconteceram? O sistema continua íntegro mesmo depois das mudanças? 4
Tipos Corretiva Preventiva Adaptativa 5
Gestão de Configuração: Atividades 1. Identificar modificações 2. Controlar modificações 3. Garantir que as modificações sejam adequadamente implementadas 4. Relatar as modificações a outros que possam ter interesse 6
Suporte X Gestão de Configuração Suporte Conjunto de atividades de ES que ocorre depois que o software foi entregue ao cliente e colocado em operação Gestão de Configuração Conjunto de atividades de acompanhamento e controle que começam quando o projeto de ES tem início e só termina quando o software foi retirado de operação 7
ES Objetivo Primordial Melhorar a facilidade com a qual modificações podem ser acomodadas e reduzir a quantidade de esforço despendido quando elas tiverem de ser feitas 8
Gestão de Configuração de Software Modificação ocorre em qualquer época, por qualquer motivo Independente de onde você está no ciclo de vida do sistema, o sistema vai se modificar e o desejo de modificá-lo vai persistir ao longo de todo o ciclo de vida 9
Qual a origem das modificações? Novas condições de negócio ou do mercado ditam modificações nas regras do produto ou regras do negócio Novas necessidades do cliente Reorganização ou crescimento/diminuição dos negócios causa modificações nas prioridades do projeto Restrições de orçamento ou cronograma 10
Gerente de Configuração Objetivo Garantir que os procedimentos e políticas para criar, modificar e testar o código estão sendo seguidos, bem como tornar acessível a informação sobre o projeto. Implementações de técnicas para manter controle sobre modificações de código Solicitação oficial de modificações Avaliá-las Comissão de controle de Modificação Responsável pela aprovação de modificações 11
Gerente de Configuração (cont.) Cria e distribui listas de tarefas para os engenheiros. Coleta estatísticas sobre componentes do sistema de software Componentes problemáticos 12
Papéis O gerente de projeto vê Gerente de Modificação como um mecanismo de auditoria O gerente de configuração o vê como um mecanismo de controle, acompanhamento e construção de uma política O ES o vê como um mecanismo de controle de modificação, construção e acesso. Cliente o vê como um mecanismo de garantia de qualidade 13
Elementos de um Sistema de gestão de Configuração Elementos de componentes Conjunto de ferramentas acoplado a um sistema de gestão de arquivos que possibilita acesso e gestão de cada item de configuração de software Elementos de processo Uma coleção de procedimentos e tarefas que definem uma abordagem para a gestão de modificação Elementos de construção Automatizam a construção de software Elementos Humanos 14
Referencial Uma especificação ou produto que foi revisto e aprovado, o qual daí em diante serve como base para o desenvolvimento futuro e pode ser modificado apenas por meio de procedimentos formais de controle de modificação 15
Repositório de Gestão de Modificação Primórdios da ES Itens de configuração de software eram mantidos em documentos de papel, pasta de arquivos ou pastas suspesas Problemática Encontrar um item era difícil Determinar que itens foram modificados, quando e por quem era um desafio Construir uma nova versão de um programa existente consumia tempo e era propenso a erros Descrever relacionamentos detalhados e complexos entre itens de configuração era virtualmente impossível 16
Repositório de Gestão de Modificação Hoje são mantido em BD ou repositórios Antigamente O programador que deveria lembrar de tudo Hoje Localização da informação Recordar de informação que nunca havia sido escrita Reconstruir informação que foi perdida O papel do ES é interagir com o repositório usando ferramentas que estão integradas com ele. 17
Papel do Repositório Integridade dos dados Validar entradas no repositório Garantir consistências entre objetos relacionados Automaticamente, executar modificações em cascata. Compartilhamento de informação Compartilha a informação entre vários desenvolvedores e entre várias ferramentas Gerencia e controla o acesso de diferentes usuários 18
Papel do Repositório Integração da ferramenta Acesso a várias ferramentas de software Integração dos dados Imposição de metodologia Modelo específico de ES Padronização de documentação 19
Repositório SCM É o conjunto de mecanismos e estruturas de dados que permitem a uma equipe de software gerir modificação de modo efetivo 20
Características de SCM Determinação de versão O repositório deve ser capaz de salvar todas essas versões Acompanhamento de dependência e gestão de modificação Acompanhamento dos requisitos Gestão de Configuração Pistas de Auditoria 21
Processo de SCM: Objetivos Identificar todos os itens que definem coletivamente a configuração do software Gerir modificações em um ou mais itens Facilitar a construção de diferentes versões Garantir que a qualidade do software seja mantida 22
Tarefas de SCM 1. Identificação 2. Controle de versão 3. Controle de modificação 4. Auditoria de configuração 5. Preparação de relatórios 23
1-Identificação Cada item deve receber um nome Descrição Tipo Documento, programa, dados Ex.: Diagrama de classe <parte de> modelo de análise Lista de recursos 24
2-Controle de versão Combina procedimentos e versões Quatro capacidades principais: Repositório Gestão da versão Facilidade construir versões Acompanhamento de tópicos (bugs) Ex.: Bugzila http://superdownloads.uol.com.br/download/54/bugzilla/ 25
GC do Ponto de Vista das Ferramentas de Apoio 26
Integração contínua Consiste em integrar o trabalho diversas vezes ao dia, assegurando que a base de código permaneça consistente ao final de cada integração. 27
Tipo de Ferramenta Controle de Versão Controle de Mudança Integração Contínua Open Source Subversion CVS Aegis Arch Trac Mantis Bugzilla Scarab SCons Bitten Ant Maven CruiseControl Gump TinderBox Comercial ClearCase StarTeam Perforce BitKeeper JIRA FogBUGZ CaliberRM ClearQuest Perforce AntHill Pro FinalBuilder BuildForge 28
Ferramentas: CVS Sistemas de Versões Concorrentes Concurrent Versions System (CVS) Gestão efetiva de modificação Uso de repositório simples Mantém todas as versões de um arquivo em um único arquivo com nome, armazenando somente as diferenças entre as versões progressivas do arquivo original Protege contra modificações simultâneas www.cvshome.org Freeware 29
Controle de modificação Pedido de modificação é avaliado Mérito técnico Efeitos colaterais Impacto Custo Resultado da avaliação Relatório de modificação Pessoa que toma a decisão final e a prioridade da modificação 30
3-Controle de modificação (cont.) Controle de acesso Controle de sincronização 31
4 Auditoria de Configuração Revisão técnica formal Auditoria da configuração de software 32
5 Preparação de Relatórios de estado O que aconteceu? Quem fez? Quando aconteceu? O que mais será afetado 33