O documento discute a Gerência de Configuração de Software, que é responsável por controlar itens de configuração como código-fonte, dados de teste e casos de uso. Isso é feito por meio de atividades como identificação, documentação, controle e auditoria desses itens para organizar o estado do sistema em momentos-chave do desenvolvimento.
2. Itens de Configuração
Produtos/artefatos gerados na construção de
software e que devem ser colocados sob
controle de versão.
– Banco de dados;
– Código-fonte;
– Programas executáveis;
– Dados de teste;
– Casos de Uso etc;
3. Gerência de Configuração de Software
É uma área da engenharia de
software responsável por fornecer o apoio para
o desenvolvimento de software.
4. Gerência de Configuração de Software
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.
5. Objetivo
Organizar todos estes elementos de forma a
saber em qual estado o sistema se encontrava
nos momentos chave do desenvolvimento.
• Exemplo:
– Quando o sistema foi entregue ao cliente;
– Quando o sistema passou por uma mudança de
versão;
– Quando o sistema foi enviado para auditoria, etc.
8. Gerência de Configuração
Trata especificamente dos elementos
necessários a construção de sistemas de
software, e em geral, controla apenas os
elementos em formato computadorizado.
10. Funções Básicas
No início do desenvolvimento, a GCS permite à equipe de
desenvolvimento identificar as unidades que compõem o
sistema de acordo com as funcionalidades que elas deverão
desempenhar, e as interfaces entre estas
unidades, documentando assim a interação entre elas.
O controle contínuo da evolução destas funcionalidades e
interfaces permite que a integração entre estas unidades tenha
sucesso continuado, com as mudanças devidamente gerenciadas
e documentadas.
Por fim, a auditoria das funcionalidades identificadas,
documentadas e controladas garante a confiabilidade do
sistema.
11. Item de Configuração de Software - SCI
• É um elemento unitário que será gerenciado;
– Exemplo:
• Arquivo de código fonte:
• Documento de texto;
• Projeto de uma placa eletrônica;
• CD-ROM de instalação de um sistema operacional, etc.
• Durante o desenvolvimento de software, uma grande
quantidade de informações é produzida e cada um
desses documentos produzidos que precisam sofrer
controle de versões e de mudanças .
12. Baseline
• Ajuda a controlar as mudanças, sem impedir
seriamente as mudanças justificáveis.
• Marco de referência no desenvolvimento de
um software, que é caracterizado pela entrega
de um ou mais itens de configuração;
– Exemplos:
• Versão 1.0;
• Versão de correção de erros 1.1;
• Versão personalizada do sistema .
13. Controle de Versões
Ocorrem muitos problemas durante o
desenvolvimento de software que são causados por
falta de controle sobre os arquivos do projeto.
– Você já perdeu alguma versão anterior do arquivo do
projeto?
– Já teve problemas em manter diferentes versões do
sistema rodando ao mesmo tempo?
– Alguém já sobrescreveu o seu código por acidente e
você acabou perdendo seu arquivo?
– Você tem dificuldades em saber quais as alterações
que foram efetuadas e quando foram feitas e quem
fez?
14. Finalidade do Controle de Versões
É dar um controle maior sobre tudo que você
altera no seu projeto de software.
Permite que se tenha histórico das mudanças no
projeto.
15. Sistema de controle de versão
• Soluções Livres: CVS, Mercurial, Git e SVN;
• Soluções Comerciais: SourceSafe, PVCS
(Serena) e ClearCase.
17. 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.
18. Responsabilidade
• Definir o ambiente de desenvolvimento;
• Política para o controle de versão;
• Definir procedimentos para o controle de
mudanças;
• Facilitar a integridade das partes do projeto;
• Auditar mudanças.
19. Benefícios
• Aumento de produtividade no
desenvolvimento;
• Redução de defeitos;
• Redução nos custos de manutenção;
• Maior rapidez na identificação e correção de
problemas.