Buscar

Trabalho de Gerência de Configurações e Mudanças

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE
CURSO SUPERIOR DE TECNOLOGIA EM SISTEMA PARA INTERNET
ENGENHARIA DE SOFTWARE II
PROF. JOSÉ HENRIQUE
	
Gerência de Configurações e Mudanças
Desenvolvido por:
Alex Freire
Carlos Lindberg
Elber Magno
Leandro Oliveira
ABRIL de 2014
Aracaju - SE
Introdução sobre gerência de configuração e mudança.
	A gerência de configuração é uma área da engenharia de software que visa o apoio ao desenvolvimento de software. Estabelecer processos úteis que visam facilitar bem como prover um desenvolvimento adequada de cada função do programa.
	Segundo Roger Pressman, pode ser resumida em: “conjunto de atividades projetadas para controlar as mudanças pela identificação dos produtos do trabalho que serão alterados, estabelecendo um relacionamento entre eles, definindo o mecanismo para o gerenciamento de diferentes versões destes produtos, controlando as mudanças impostas, e auditando e relatando as mudanças realizadas”.
Descrição do processo de gerência de mudanças.
Objetivos e Características.
	Tem como objetivo prover processos de mudanças e atualização de softwares cada vez melhores. É um processo que permite saber o motivo no qual uma configuração foi mudada para outra configuração.
Papel do comitê de controle de mudanças.
	É um grupo responsável pela avaliação do impacto das mudanças nos projetos bem como sua garantia de eficiência. O grupo deve ser composto de várias pessoas técnicas e até mesmo clientes, que fornecerão assessoria ao Gerente de Mudanças sobre quais mudanças devem ser aprovadas e auxiliarão na programação das mudanças. Geralmente o CCM se reúne como uma determinada frequência para discutir todas as mudanças novas e em andamento.
Etapas do processo.
	As etapas do processo são: identificação, documentação, controle e auditoria.
Análise de impacto.
	A análise de impacto é um estudo profundo que define os seus processos de negócio críticos bem como os recursos necessários para os suportar. A análise incide sobre perdas financeiras e intangíveis que podem ocorrer caso estes sistemas, ativos e dados fiquem indisponíveis numa emergência.
Documento de solicitações de mudanças.
	É o documento no qual servirá de comunicação entre um membro da equipe ou toda ela para com o gerente visando a aprovação de uma mudança.
Conceitos de gerência de configuração.
Baseline.
	É um conceito que nos ajuda a controlar as mudanças no software, sem impedir a aplicação de mudanças justificáveis.
Repositório.
	É o nome que se dá ao lugar onde você irá guardar o seu projeto. Na prática, é um diretório, uma pasta qualquer guardada ou no seu computador, ou no seu pendrive. O repositório registra cada alteração realizada em cada arquivo e diretório controlado. À medida que o projeto evolui, o repositório passa a guardar múltiplas versões dos arquivos que compõem o projeto.
Branching.
	É uma técnica de ramificação que ajuda na concorrência do manuseio/uso do sistema de gerência.
Locking.
	É o travamento ou bloqueio de um processo.
Release.
	Representa a notificação formal e distribuição de uma versão aprovada do software.
Build.
	É uma versão compilada de um software ou parte dele que contém um conjunto de recursos que poderão integrar um produto final.
Merge.
	É a fusão de várias diretivas de software.
Diff.
	É uma técnica de diferenciação na qual se cria modelos diferentes do mesmo software.
Tagging.
	É uma técnica de marcação onde se associa um termo a uma informação.
Check-out.
	Retirar itens do sistema.
Check-in.
	Incluir itens no sistema.
Comparativo entre as ferramentas.
CVS
O CVS, ou ConcurrentVersion System (Sistema de Versões Concorrentes) é um sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos. É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição colaborativa de um documento. A exemplo de outros softwares usados neste projeto, o CVS pode ser baixado gratuitamente e tem o seu código aberto.
Funcionamento
CVS utiliza uma arquitetura cliente-servidor: um servidor armazena a(s) versão(ões) atuais do projeto e seu histórico, e os clientes se conectam a esse servidor para obter uma cópia completa do projeto, trabalhar nessa cópia e então devolver suas modificações.
Vários clientes podem editar cópias do mesmo projeto de maneira concorrente. Quando eles confirmam suas alterações, o servidor tenta fazer uma fusão delas. Se isso não for possível, por exemplo, porque mais de um cliente tentou executar alterações na mesma linha do documento, o servidor apenas executa a primeira alteração e informa ao responsável pela segunda alteração que houve conflito, e que é necessária uma intervenção humana. Se a validação da alteração for bem sucedida, o número de versão de cada cliente arquivo envolvido é incrementado, e o servidor CVS escreve uma linha de observação (fornecida pelo usuário), a data e o autor das alterações em seus arquivos de log.
Clientes podem comparar diferentes versões de um arquivo, pedir um histórico completo das alterações, ou baixar uma determinada versão do projeto, ou de uma data específica, não necessariamente a versão mais atual. Clientes também podem usar o comando "update" para manter suas cópias locais atualizadas com a última versão do servidor. Isso elimina a necessidade de se fazer diversos downloads de todo o projeto.
Terminologia
Checkout: normalmente é usado para denominar o primeiro download de um módulo inteiro a partir do repositório CVS.
Commit: envio das modificações feitas pelo usuário ao repositório CVS.
Export: é o download de um módulo inteiro a partir de um repositório CVS, sem os arquivos administrativos CVS. Módulos exportados não ficam sob controle do CVS.
Import: geralmente é usado para designar a criação de um módulo inteiro dentro de um repositório CVS através do upload de uma estrutura de diretórios.
Module: é uma hierarquia de diretórios. Geralmente um projeto de software existe como um simples módulo dentro do repositório.
Release: é a versão de um produto inteiro.
Revision: é a numeração atribuída pelo CVS a cada modificação de um arquivo.
Tag: é um nome simbólico dado para um conjunto de arquivos em um instante específico durante o desenvolvimento.
Branch: é uma ramificação no desenvolvimento, usada para descrever o processo de divisão dos arquivos de um projeto em linhas de desenvolvimento independentes. Podendo servir para teste de uma nova funcionalidade ou para projetos destinados a um cliente específico.
Update: atualização da cópia local do trabalho através do download das modificações feitas por outros usuários no repositório.
Merge: é a fusão de modificações feitas por diferentes usuários na cópia local de um mesmo arquivo. Sempre que alguém altera o código, é necessário realizar um update antes do commit, de modo que seja feito o merge — ou a fusão — das mudanças.
Limitações
Os arquivos em um repositório CVS não podem ser renomeados, eles devem ser explicitamente removidos e readicionados. O protocolo do CVS não permite que os diretórios sejam movidos ou renomeados. Cada arquivo do subdiretório em questão deve ser individualmente removido e readicionado. Alguns dos principais desenvolvedores que trabalharam no CVS são atualmente responsáveis pelo Subversion (SVN), lançado no começo de 2004 e cujo objetivo é substituir o CVS ao lidar com algumas de suas limitações.
Configurando CVS no Eclipse
O plugin para utilização do CVS no Eclipse fornece toda a funcionalidade de um cliente de CVS convencional agregado às vantagens de estar integrado a IDE de desenvolvimento. Para começar a utilização do CVS, primeiro deve ser configurado um repositório, o que pode ser feito em “Window”, “Show View” e “Other...”.
Criando um novo respositório
Abra a perspectiva 'CVSRepositoryExploring'. 
Escolha 'New ->RepositoryLocation...' na view'CVS Repositories'. 
 
O diálogo'Add CVS Repository' aparecerá. 
Digite as informações para a conexão nos campos relacionados. 
Host: O host que roda o servidor. 
Repository Path: O repositório que será utilizado no servidor. 
Authentication: O servidor pode ser configurado para utilizar autenticação dos usuários. 
Connection: Protocolo e porta que devem ser utilizados para conectar com o servidor. 
Selecione o checkbox 'Validate Connection on Finish' e Pressione Finish.
Se todas as informações foram digitadas corretamente, aparecerá o repositório:  
CONCLUSÃO
Otimizar o processo de sincronização do código.
Colocar tudo que for de poder de todos no CVS: site, código, artefatos.
CVS não é a solução para todos os problemas.
CVS não substitui o diálogo e reuniões da equipe.
SVN – Subversion
Subversion (SVN) sistema de controle de versão com a plataforma Eclipse. Usando o plug-in Subversive, você pode trabalhar com projetos armazenados em repositórios Subversion diretamente a partir do trabalho do Eclipse de uma forma similar de trabalhar com outros provedores de controle de versão do Eclipse, como CVS e Git. 
Conceitos Básicos
Repositório -> É o local onde estão contidos todos os arquivos do projeto. É armazenado no banco de dados do SVN. 
Working Copy -> Literalmente, uma cópia de trabalho local na qual o desenvolvedor atua. É criada sempre que é feito checkout de algum projeto. 
Revision -> Número que identifica cada uma das alterações ou conjunto de alterações realizadas em um repositório. Tal número é obtido a partir de uma sequência a qual é compartilhada por todos os diretórios do repositório. 
Estrutura
Trunk -> O trunk contém os projetos que estão em desenvolvimento. Todas as atualizações efetuadas dia-a-dia são armazenadas na pasta trunk. 
Branches -> Quando o projeto está estável e completo de acordo com o escopo definido, a pasta trunk é copiada para uma dentro da pasta branches e com o nome de versão. Este branch é congelado e geralmente não sofre mais alterações, apenas correções e ajustes.
Nos branches também podem conter pastas com “linhas de desenvolvimento” de tal projeto, que entre elas podem haver poucas diferenças, porém uma independe da outra. 
Tags -> Quando os testes efetuados encima de um branch estão completos, a versão que se encontra no branch é copiada para a pasta tags, formando assim um “release” ou uma versão “liberada”. Esta pasta tag é empacotada e enviada para o cliente. Qualquer modificação em branch, deve ser copiada para a pasta de tags, após todos os testes. 
Comandos Básicos
Checkout -> Ato de fazer download de um projeto para a máquina local, de modo que seus arquivos estejam vinculados ao SVN e passíveis de manipulação. O projeto para o qual será feito o checkout deve existir no repositório. 
Commit -> Comando para enviar as modificações realizadas localmente para o servidor SVN. 
Update -> Comando para baixar atualizações presentes do servidor SVN para a cópia local 
Merge -> Comando para a mesclagem de arquivos. Sempre deve ser realizada com a working copy apontando para o destino do merge. 
Relocate -> Realocação do endereço de um repositório. Apenas atualiza o endereço, sem realizar nenhum tipo de atualização nos arquivos. 
Instalando o SVN no Eclipse
Vá na opção Help - > Softwares e Updates na aba Available Software -> Add Site...
URL: http://subclipse.tigris.org/update_1.6.x
Selecione o subeclipse e em seguida Install
Click em NEXT.
Aguarde o download dos pacotes assim como a instalação, isso poderá levar alguns minutos. No final ele irá solicitar que reinicie o JS, aceite. 
Pronto o SVN vai esta configurado no Eclipse.
CVS x SVN.
A utilização de sistemas de controle de versões é uma atividade essencial da gerência de configurações, para realizar monitoramento das mudanças realizadas em projetos de desenvolvimento de softwares, e controlar o desenvolvimento paralelo. Dentre as soluções existentes atualmente para realizar o controle de versões, merecem destaque o CVS e o Subversion, objetos desta pesquisa, por ambos serem baseados em código aberto, possuírem qualidade e notoriedade no uso em projetos de softwares.
	CARACTERÍSTICAS
	CVS
	SVN
	Commit atômico
	Não possui
	Possui
	Controle de diferentes tipos de arquivos
	Possui
	Possui
	Controle de Mudanças
	Possui
	Possui
	Controle de Permissões
	Possui
	Possui
	Merges e Braches
	Possui
	Possui
	Portabilidade
	Possui
	Possui
	Renomeações de arquivos
	Não possui
	Possui
	Suporte
	Possui
	Possui
	Integração
	Atende totalmente
	Atende totalmente
	Aplicabilidade
	Atende totalmente
	Atende totalmente
	Extensibilidade
	Não atende
	Não atende
	Suporte a equipe
	Atende totalmente
	Atende totalmente
	Usabilidade
	Atende parcialmente
	Atende parcialmente
	Maturidade
	Atende totalmente
	Atende totalmente
	Suporte a configurações
	Atende totalmente
	Atende totalmente
	Treinamento
	Não atende
	Não atende
Integração: O nível de integração com outras ferramentas.
Extensibilidade: A capacidade de personalizar e configurar.
Suporte a equipe: A capacidade de oferecer suporte a uma equipe de usuários que está geograficamente distribuída.
Usabilidade: A facilidade de aprender e usar.
Maturidade: O nível de maturidade da ferramenta. 
Suporte a configurações: Suporte disponível para instalação, configuração e uso.
Treinamento: Treinamento disponibilizado pelo fornecedor.
Commit atômico Garantir a atomicidade das atualizações no repositório.
Controle de diferentes tipos de arquivos: Além do ASCII, permitir controle de arquivos em diversos formatos tais como Unicode e binário.
Controle de mudanças: Prover informações sobre quais itens estão em alteração por algum membro da equipe.
Controle de permissões: Atribuir de permissões individuais de leitura e gravação aos membros de equipe.
Merges e Braches: Permitir realizar junções e realizar de maneira satisfatória os braches (Quando a linha de desenvolvimento precisa ser dividida em duas ou mais).
Portabilidade: Suportar a integração de itens oriundos de clientes com ambientes operacionais distintos.
Renomeações de arquivos: Permitir renomear arquivos no repositório.
Suporte: Identificar distintas versões de arquivos que compõem uma distribuição e recuperação da mesma
CONCLUSÃO
O comparativo realizado demonstra que o sistema Subversion atendeu a um maior número dos critérios adotados. Embora o Subversion atenda parcialmente o critério de usabilidade, e não atenda aos critérios de extensibilidade e treinamento, atende totalmente a todos os outros critérios estabelecidos destacando-se quando se trata de atomicidade de commits, renomeações de arquivos e controle de diferentes tipos de arquivos. 
Podendo o mesmo, ser uma boa indicação para a gerência de configuração no momento da escolha de um sistema de controle de versões, enquanto o sistema CVS, além de não atender aos critérios de extensibilidade e treinamento, atende parcialmente ao critério de usabilidade e ao critério de características e funções, o qual se apresenta como essencial para um bom desempenho do sistema em projetos de softwares.

Outros materiais