Sie sind auf Seite 1von 20

Curso de Sistemas de Informação

2
0
1
7

Gestão da Configuração de Software -


1

Engenharia de Software II
Prof.ª Caroline Queiroz Santos
Gestão da Configuração de Software
Mudanças durante o desenvolvimento de software são inevitáveis.
O ambiente no qual o sistema opera muda, o entendimento dos usuários e
desenvolvedores sobre o sistema muda, os requisitos mudam.
Com tantas mudanças assim, como evitar que o desenvolvimento fique caótico?

A área da Engenharia de Software que trata esse assunto é a Gestão (ou


Gerência) de Configuração de Software.

2
Gestão da Configuração de Software
O que é?
◦ Conjunto de atividades de apoio que permite a absorção ordenada das mudanças
inerentes ao desenvolvimento de software, mantendo a integridade e a estabilidade
durante a evolução do projeto.
◦ Ou seja, é o conjunto de atividades para controlar as mudanças surgidas nos diversos
produtos do processo de desenvolvimento de software.
Quem faz?
◦ Todos os envolvidos no processo de desenvolvimento.
Por que é importante?
◦ Se não controlarmos as mudanças, elas que irão nos controlar…

3
Gestão da Configuração de Software
Parte essencial do processo de desenvolvimento.
Visa eliminar problemas de
◦ atualizações simultâneas
◦ existência de múltiplas versões do sistema (produção, desenvolvimento, teste
etc.)

Quando está bem feito?


◦ Quando qualquer mudança puder ser monitorizada e analisada.

4
Gestão da Configuração de Software
Ao longo do ciclo de vida de um software, seus artefatos sofrem
diversas alterações, causadas por
◦ correção de defeitos no produto
◦ melhorias de funcionalidades do produto
Estas alterações afetam todos os tipos de artefatos:
◦ documentos de requisitos
◦ documentos de análise e projeto
◦ código fonte
◦ programas e scripts de testes

5
Itens (ou elementos) da
Configuração de Software
Item de configuração do software (ICS):
◦ cada item de informação produzido como saída do projeto de software.

Algumas vezes, as ferramentas utilizadas no desenvolvimento do software


também são identificadas como itens de configuração.
O número de itens cresce à medida que avança o processo de desenvolvimento

Configuração do software:
◦ conjunto de itens de configuração que compreendem toda a informação relacionada ao
projeto de software.
o problema é que durante o processo ocorrem muitas
mudanças em qualquer momento e por muitas causas

6
Itens (ou elementos) da
Configuração de Software
Podem ser:
◦ Programa fonte
◦ Programa executável
◦ Descrição do banco de dados
◦ Esquema e estrutura dos arquivos
◦ Conteúdo inicial
◦ Manual de instalação
◦ Documentos de manutenção
◦ Procedimentos e padrões para o desenvolvimento do software
◦ Documentos que descrevem os programas (técnicos e de usuário)
◦ Dados (dentro e fora do programa)

7
Linha de base (baseline)
Quando todas as partes de um ICS forem revistas, corrigidas e aprovadas, o ICS
converte-se numa linha base.
Assim, um ICS (especificação ou produto) revisto e aprovado serve como base
para o desenvolvimento posterior, e só poderá ser modificado através de
procedimentos formais de controlo das mudanças.
É o ponto de referência no desenvolvimento de software que fica marcado pelo
envio e aprovação de um ou mais ICS em revisões técnicas formais

8
Linha de base (baseline)
Conjunto de resultados finais e intermediários associados a marcos importantes
do projeto
◦ formalmente revistos e aprovados através dos procedimentos previstos, completamente
consistentes entre si.

Os itens devem estar no mesmo nível de revisão e devem ser perfeitamente


rastreáveis entre si.
A linha de base pode ser modificada, mas apenas através de procedimentos
formais de controle de modificação.

9
Objetivos da linha de base
Garantir que, em cada projeto:
◦ todos os resultados intermediários e finais associados a marcos importantes do
projeto sejam colocados e controlados em bases de dados de Gestão de
Configurações;
◦ os itens sejam organizados em linhas de base que representam estados significativos
e consistentes do projeto;
◦ as alterações a itens das linhas de base sejam controladas e verificadas;
◦ toda a história dos itens de configuração do software seja recuperável e passível de
auditoria;
◦ todos os membros da equipe possam recuperar itens de configuração facilmente, em
versões oficiais atualizadas, de acordo com as respectivas permissões de acesso.

10
Gestão da Configuração de Software
As atividades da GCS e as respectivas ferramentas de apoio são:
◦ Controlar e acompanhar mudanças (Controle de Mudança)
◦ Registrar a evolução do projeto (Controle de Versão)
◦ Estabelecer a integridade do sistema (Integração Contínua)

11
Controle e Acompanhamento de
Mudanças
Mudanças aparecem durante todo o desenvolvimento e devem ser
Alguns exemplos
registradas, avaliadas e agrupadas de acordo com sua prioridade. de ferramentas
são:
Com base nessas informações, é possível planejar melhor o escopo,
prazo e o custo de cada iteração. BitBucket
Bugzilla
Em seguida, à medida que o desenvolvimento acontece, pode-se GitHub
acompanhar o estado da solicitação da mudança até sua Jira
Phabricator
implementação e até o lançamento de uma versão em produção. Redmine
Trac
Existem várias ferramentas disponíveis que executam essas ações.

12
Registro da Evolução do Projeto
Cada vez que uma solicitação de mudança é implementada, acontece um incremento
na evolução do projeto que deve ser registrado no histórico. Este incremento na
evolução corresponde a uma configuração:
◦ Configuração é o estado do conjunto de itens que formam o sistema em um
determinado momento.
As funcionalidades oferecidas pelo controle de versão vão além do simples registro do
histórico das configurações. Além do registro das configurações, o controle de versão
tem outras responsabilidades importantes:
◦ possibilitar a edição concorrente sobre os arquivos e a criação de variações no projeto.
O controle de versão é a parte principal da GCS. É o elo comum entre o controle de
mudança e a integração do projeto.
Exemplos de ferramentas de controle de versão:
Git – Mercurial – Subversion

13
Verificação da Integridade do
Sistema
O objetivo da integração é verificar se a construção do sistema a
Exemplos de
partir dos itens registrados em uma configuração é bem sucedida. ferramentas de
Integrar o sistema consiste em construir o sistema a partir dos itens integração
contínua:
registrados em uma configuração.
Em termos práticos, a integração é feita através de scripts que BuildBot
CircleCI
automatizam a construção, testes e também a coleta de métricas CodeClimate
de qualidade. CodeShip
Concourse
As ferramentas de integração contínua acompanham o controle de Drone.io
versão e disparam os scripts cada vez que uma nova configuração é Jenkins
registrada. Travis CI

14
GCS na Engenharia de Software
A Gerência de Configuração de Software é a base para as demais áreas de
Engenharia de Software.

15
Processo de GCS
- questões fundamentais

Como identificar e gerir as diferentes versões existentes de um programa e a sua


documentação de forma a introduzir mudanças eficientemente?
Como controlar as mudanças antes e depois da entrega do produto ao cliente?
Quem tem a responsabilidade de aprovar e atribuir prioridades às mudanças?
Como garantir a apropriada realização das mudanças?
Quais os mecanismos para avisar aos outros das mudanças?

16
Política de gerência de configuração

Deve haver uma política clara sobre:

◦ convenção de formato de nomes, extensões.


◦ responsabilidade por mudanças.
◦ documentação de mudanças.
◦ criação e nomes de diretórios.

17
Gerência de Mudança
Define o mecanismo de aprovação de mudanças no sistema.
Pode ser mais ou menos formal, dependendo do tamanho do projeto.
Avalia:
◦ o impacto na funcionalidade do produto.
◦ validade técnica da mudança
◦ consistência, uniformidade

Aprova, rejeita, ou põe em espera a solicitação de mudanças.


Segue um Cronograma.

18
Acompanhamento das Mudanças
Realizado através de:
◦ auditorias;
◦ emissão de relatórios;
◦ verificação das modificações.
Visa garantir que:
◦ a modificação aprovada para a linha de base foi realizada;
◦ uma revisão técnica formal foi conduzida, após a realização da modificação;
◦ o processo de desenvolvimento de software e os padrões para realização de
modificações foram seguidos;
◦ a data, o autor da modificação e um resumo do que foi modificado foram registrados.

19
Por fim...
A Gestão de Configuração de Software é essencial para produzir software de
qualidade.
Existem diversas ferramentas open source de GCS disponíveis. Por isso, não há
desculpa para não usar alguma.
E sim, é preciso um esforço inicial para entender os conceitos, definir alguns
processos, integrar e aprender a usar as ferramentas, mas é um investimento
baixo pelo retorno que oferece.

20