0% acharam este documento útil (0 voto)
4 visualizações30 páginas

Gerenciamento de Configuração de Software (GCS) : Profa. Juliana Wolf

O Gerenciamento de Configuração de Software (GCS) é uma disciplina essencial que controla e rastreia modificações nos artefatos de software ao longo do ciclo de vida do projeto, garantindo integridade e rastreabilidade. O GCS envolve atividades como controle de versão, controle de mudança e auditoria de configuração, sendo fundamental para a qualidade do software e suporte a equipes distribuídas. A implementação eficaz do GCS previne riscos como perda de dados e inconsistência de versões, além de facilitar auditorias e garantir a conformidade com normas de qualidade.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações30 páginas

Gerenciamento de Configuração de Software (GCS) : Profa. Juliana Wolf

O Gerenciamento de Configuração de Software (GCS) é uma disciplina essencial que controla e rastreia modificações nos artefatos de software ao longo do ciclo de vida do projeto, garantindo integridade e rastreabilidade. O GCS envolve atividades como controle de versão, controle de mudança e auditoria de configuração, sendo fundamental para a qualidade do software e suporte a equipes distribuídas. A implementação eficaz do GCS previne riscos como perda de dados e inconsistência de versões, além de facilitar auditorias e garantir a conformidade com normas de qualidade.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Gerenciamento de Configuração

de Software (GCS)
Profa. Juliana Wolf
Objetivos da Aula
● Compreender o conceito e a importância do Gerenciamento de
Configuração de Software (GCS).
● Conhecer os processos e atividades fundamentais do GCS.
● Identificar ferramentas utilizadas no controle de versões e
mudanças.
● Analisar como o GCS contribui para a qualidade do produto de
software.
Introdução ao GCS
● O que é Gerenciamento de Configuração de Software?

○ Gerenciamento de Configuração de Software é uma disciplina


da engenharia de software que visa controlar e rastrear as
modificações feitas nos artefatos de software ao longo do ciclo
de vida do projeto.
Introdução ao GCS
Segundo Pressman:

“O GCS é um conjunto de atividades de suporte que


tem como objetivo gerenciar mudanças de forma
sistemática e garantir a integridade do produto de
software ao longo de seu desenvolvimento e
manutenção.”
Introdução ao GCS
● Os softwares mudam frequentemente, os sistemas podem ser
pensados como um conjunto de versões, que precisa ser mantido e
gerenciado.
● Versões implementam propostas de mudanças, correções de
defeitos, e adaptações de hardware e sistemas operacionais
diferentes.
● O GCS se interessa pelas políticas, processos e ferramentas para
o gerenciamento de sistemas de software que sofrem mudanças.
○ Você precisa de GCS porque é fácil perder a noção de quais
mudanças e versões de componentes foram incorporadas em
cada versão do sistema.
Introdução ao GCS
● GCS no Ciclo de Vida do Software

○ Aplicável desde a especificação até a manutenção.

○ Fortemente conectado com qualidade de software

○ Suporta práticas ágeis e tradicionais.


Introdução ao GCS
● Importância
○ Previne perda de dados e inconsistência de versões.
■ Evita perda de código ou documentos
○ Garante integridade e rastreabilidade.
○ Suporte a equipes distribuídas e projetos ágeis.
■ Facilita trabalho em equipe
○ É essencial para auditorias e garantia da qualidade.
■ Suporta auditorias e reuso
○ Melhora a qualidade e a manutenção do software
Introdução ao GCS
● Riscos da ausência de GCS
○ Sobrescrita de arquivos
○ Falta de controle de versões
○ Problemas de entrega
○ Dificuldade de manutenção
○ Dificuldade de cumprir com requisitos de qualidade e normas
(ex: ISO 9001, CMMI)
Termos do GCS
Itens de Configuração (ICs)
Definição: Qualquer artefato de software que deve ser gerenciado.

Exemplos:
● Código-fonte
● Documentação de requisitos
● Especificações
● Diagramas UML
● Scripts de banco de dados
● Casos de teste
Fluxo de trabalho do GCS
Atividades do GCS
Identificação de Configuração

● Estabelece quais artefatos serão controlados.


● Criação da Estrutura de Configuração de Itens.

Controle de Versão

● Gerencia múltiplas versões de ICs.


● Ferramentas: Git, Subversion (SVN), Mercurial.
● Branches e merges.

Controle de Mudança

● Processo formal para aprovar ou rejeitar modificações.


● Envolvimento de um Comitê de Controle de Mudanças.
● Registro de solicitações de mudança (RFC).
Atividades do GCS
Auditoria de Configuração

● Verificação da conformidade dos ICs.


● Garantia de integridade e rastreabilidade.

● Verifica se:

○ As mudanças aprovadas foram implementadas


○ Os documentos estão atualizados
○ As versões estão corretas

Relato de Status da Configuração

● Relatórios sobre o estado atual dos ICs.


● Traz histórico de mudanças, autores, datas, status.
Gerenciamento de mudanças
● Sistemas de software estão sujeitos a solicitações contínuas de
mudanças:
• De usuários;
• De desenvolvedores;
• De forças de mercado.

● O gerenciamento de mudanças está relacionado à manutenção da


rastreabilidade dessas mudanças, de modo que:
• Reparos realmente corrijam falhas
• Novas falhas introduzidas por reparos possam ser identificadas rapidamente
• Seja fácil descobrir quais mudanças foram implementadas e quando
O processo de gerenciamento de mudanças
1. É realizada uma solicitação de mudança em um item de configuração.
2. A solicitação é avaliada (considerando modificações nos itens relacionados).
3. Se aprovada, é realizado o check-out do item de configuração e ninguém
mais pode acessá-lo, exceto quem está executando as alterações.
4. As alterações são avaliadas.
5. Se aprovadas, é realizado o check-in (a nova versão do item de
configuração é disponibilizada e uma nova baseline é estabelecida).
O processo de gerenciamento de mudanças
Acompanhamento de mudanças
● O maior problema no gerenciamento de mudanças é o
acompanhamento do status da mudança.

● Ferramentas de gerenciamento de mudanças fornecem meios para se


acompanhar a situação de cada solicitação de mudança

○ Automaticamente enviam solicitações de mudança para as


pessoas certas no tempo certo.
Comitê de controle de mudanças
● As mudanças podem ser revisadas por um grupo externo, que
○ decide se elas são ou não adequadas em termos de custo, tempo
e risco
○ ponto de vista estratégico ou organizacional ao invés de um ponto
de vista técnico.

● O grupo deve ser independente do responsável de projeto pelo


sistema. Esse grupo é, algumas vezes, chamado de comitê de controle
de mudanças (CCB).
● O CCB pode conter representantes do cliente e do pessoal fornecedor.
Ferramentas de GCS

Ferramenta Tipo Características

Git Distribuído Rápido, com


ramificação
SVN Centralizado Simples, usado em
legados
Mercurial Distribuído Similar ao Git
Gerenciamento de versões e releases
● Elaborar um esquema de identificação para versões de sistema.
● Planejar quando uma nova versão de sistema será produzida.
● Assegurar que procedimentos e ferramentas de gerenciamento das
versões sejam adequadamente aplicados.
● Planejar e distribuir releases da nova versão do sistema.
Versões/variantes/releases
● Versão
○ É uma instância de um sistema que é funcionalmente distinta, de
alguma maneira, de outras instâncias de um sistema.
● Variante
○ Uma versão de um sistema que tem apenas pequenas diferenças
com relação a outras instâncias (normalmente devido a diferenças
no hardware/software alvo)
■ Ex.: O Office para MacOS é uma variante do Office para
Windows
● Release
○ É uma instância de um sistema distribuída para os usuários fora
da equipe de desenvolvimento.
■ Ex. Office 2019
Identificação de versões
● Os procedimentos para identificação do versionamento devem definir
uma maneira não ambígua de identificar versões

● Existem técnicas básicas para identificação de componentes:


○ Numeração de versões;
■ V1, V1.1, V1.2, V2.1, V2.2…

○ Identificação baseada em atributos;


■ Data, Criador, Linguagem de Programação, Cliente, Status,
entre outros.
Codelines e baselines
● Um codeline é uma sequência de versões de código que evolui ao
longo do tempo.
○ Normalmente se aplicam a componentes de sistemas de modo que
existem diferentes versões de cada componente.

● Um baseline é uma versão aprovada e registrada de um conjunto de


artefatos (código, requisitos, documentos, etc.) que serve como
referência estável.
○ Especifica as versões dos componentes que estão incluídos no
sistema além de uma especificação das bibliotecas usadas, arquivos
de configuração, etc.
Codelines e baselines
Branching e Merging
● Um elemento fundamental do gerenciamento de configuração
● Compromisso entre produtividade e risco
● Branching: Consiste em usar diferentes “ramos” de desenvolvimento
para aumentar o paralelismo
○ Cada ramo é chamado de branch
○ Código não é compartilhado entre branches

● Merging: a combinação de um desses ramos com o ramo principal


○ Processo de unir as mudanças de um branch ao outro
○ Diferenças entre os branches combinados precisam ser resolvidas
Algumas Razões para se Criar um Branch
● Implementar uma solicitação de mudança
● Implementar uma funcionalidade pontual
● Paralelizar o desenvolvimento dos componentes do sistema
○ Aplicável ao desenvolvimento paralelo de diferentes versões do sistema
○ Atribuição de tarefas a diferentes partes da equipe de desenvolvimento
○ Trabalhar em novas funcionalidades sem afetar o código principal
○ Corrigir bugs de forma isolada
○ Testar ideias sem comprometer a versão estável
Branching e Merging
Gerenciamento de mudanças e métodos ágeis

● Em alguns métodos ágeis, os clientes estão diretamente envolvidos


no gerenciamento de mudanças.
● Propor uma mudança nos requisitos e trabalhar com a equipe para
avaliar o seu impacto e decidir se a mudança deve ter prioridade
sobre os recursos planejados para o próximo incremento do sistema.
● As mudanças para melhorar o software são decididas pelos
programadores que trabalham no sistema.
● A refatoração, em que o software é melhorado continuamente, não é
vista como uma sobrecarga, mas como uma parte necessária do
processo de desenvolvimento.
GCS e Qualidade de Software
O GCS é um processo de suporte essencial:

● Rastreabilidade melhora a verificação de requisitos.


● Menor risco de regressões e bugs não controlados.
● Facilita auditorias e certificações (ex: ISO 9001, CMMI).
● Suporte essencial à Integração Contínua e Entrega Contínua.

Está relacionado aos requisitos da norma ISO 9001:2015 (controle de


mudanças, documentação, rastreabilidade).
Conclusão

● Gerenciamento de configuração é o gerenciamento de um sistema de


software em evolução.
● Durante a manutenção de um sistema, uma equipe é responsável para
garantir que as mudanças sejam incorporadas ao sistema de uma forma
controlada e que os registros são mantidos com os detalhes das mudanças
que foram implementadas.
● Gerenciamento de mudanças envolve avaliar propostas de mudanças do
sistema de clientes e outros stakeholders e decidir se é efetivo
implementá-las em um novo release de um sistema.
● Gerenciamento de versões envolve manter o acompanhamento das
diferentes versões de componentes de software.

Você também pode gostar