Você está na página 1de 11

1.

Qual a diferença entre controle de modificações,


controle de versões e controle de configuração?

Controle de modificações (ou mudanças) -> Esta atividade é responsável por


fornecer um serviço complementar ao serviço oferecido pelo sistema de controle de
versão onde o foco desse tipo de ferramenta está nos procedimentos pelos quais as
mudanças de um ou mais itens de configuração são propostas, avaliadas, aceitas e
aplicadas.

Controle de versões -> Esta atividade é responsável por apoiar as atividades de


controle de modificações (ou mudanças) e integração contínua. Ela Identifica,
armazena e gerencia os itens de configuração e as suas versões durante todo o ciclo
de vida do software, mantém o histórico de todas as alterações realizadas nos itens de
configuração, cria os rótulos e ramificações no projeto e recupera uma configuração
em um determinado momento desejado tempo.

Controle de configuração -> é um 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.

2. O que é item de configuração?

Um item de configuração é qualquer componente de uma infraestrutura de tecnologia


da informação controlado pelo gerenciamento de configuração. Com ele é possível
gerenciar coleções de itens de configuração, além de criar solicitações de serviços,
incidentes, problemas, ordens de serviço, mudanças e liberações para o item de
configuração.

Os itens de configuração variam em termos de complexidade, tamanho e tipo. Um item


de configuração pode ser um serviço completo, incluindo toda a documentação de
hardware, software, entre outras. Na prática, a maioria dos itens de configuração com
a qual você lida está em um nível superior, incluindo ativos, serviços, itens e locais.
3. O que é um item derivado e item fonte?

Item Derivado -> item de configuração que pode ser obtido a partir de outro item de
configuração.

• Exemplo -> arquivos binários, executáveis etc.

Item Fonte -> item de configuração que serve como origem para um item derivado.

• Exemplo -> os itens de configuração que compõem o código-fonte são itens


fonte para o programa executável, que é item derivado.

4. O que é Granularidade de um Item de


Configuração?

É o nível de detalhamento que é possível identificar em um código quando ele é


modificado.
5. Quais são os tipos de topologia de sistemas de
controle de versão? Exemplifique com figura.
Explique o funcionamento e diferença entre as
topologias.

Controle de Versão Centralizado

O controle de versão centralizado segue a topologia em estrela, havendo apenas um


único repositório central, mas várias cópias de trabalho, uma para cada desenvolvedor.
A comunicação entre uma área de trabalho e outra passa obrigatoriamente pelo
repositório central.

No controle de versão centralizado há um único repositório e várias cópias de trabalho


que se comunicam apenas através do repositório central.
Controle de Versão Distribuído

São vários repositórios autônomos e independentes, um para cada desenvolvedor.


Cada repositório possui uma área de trabalho acoplada e as operações commit e
update acontecem localmente entre os dois.

No controle de versão distribuído cada desenvolvedor possui um repositório próprio


acoplado a uma área de trabalho. A comunicação entre eles continua sendo através
de commit e update.
Tipos de armazenamento

Completo -> Nesse tipo de armazenamento os arquivos de cada versão são


armazenados individualmente, o que consequentemente, ocupa muito espaço.

Forward -> Neste tipo de armazenamento somente a primeira versão é salva


completamente, as demais versões são apenas referências a primeira versão,
possibilitando uma economia de espaço.

Reverse -> Basicamente a mesma coisa do “Forward”, porém neste caso, somente a
última versão é salva, permitindo uma melhor performance em buscas.

6. Quais são os tipos de colaboração para um sistema


de controle de versões? Explique a diferença entre
eles.

Pessimista -> Nesse caso apenas um desenvolvedor pode estar fazendo modificações
no item, o que impede conflito de itens e facilita a junção posteriormente.

Otimista - > Nesse caso é possível vários desenvolvedores modificarem o mesmo item,
porém caso dê algum conflito os desenvolvedores devem resolver o problema, o que
dificulta a junção dos itens.

Mista -> Nesse caso também é possível vários desenvolvedores abrir o mesmo item, a
diferença é que nesse caso o programa vai avisar que há paralelismo e informar dos
possíveis problemas que isso pode causar, o que torna necessário um planejamento
por parte dos desenvolvedores envolvidos num marge posteriormente.
7. Defina e exemplifique codeline, mainline, baseline e
release.

Codeline -> Conjunto de versões de um determinado componente. As linhas de


desenvolvimento (codelines) são designadas para cada projeto e são compartilhadas
por vários desenvolvedores.

Mainline -> Coleção de versões de componentes que constituem um sistema. A


primeira linha de desenvolvimento definida no projeto é, por convenção, nomeada
mainline.

Baseline -> Sequência de baselines representando diferentes versões do sistema.


O ramo é criado no repositório e representa uma linha secundária de desenvolvimento
que pode ser unida novamente à linha principal (mainline) por meio da operação de
junção (merge).

Release -> Em determinados momentos do ciclo de vida de desenvolvimento e


manutenção do software, os itens de configuração são agrupados e verificados,
constituindo configurações do software voltadas para propósitos específicos. Neste
momento, cria-se marcos no versionamento de artefatos que são denominados
baselines ou releases.
8. O que é Merging ou junção?

Marge é uma operação fundamental que concilia várias alterações feitas a uma
coleção de arquivos controlada por versão. Na maioria das vezes, é necessária quando
um arquivo é modificado por duas pessoas em dois computadores diferentes ao
mesmo tempo.

9. Configuração e versão representam a mesma coisa?


Explique e exemplifique.

Não, pois a configuração representa o software em sua totalidade e a versão é a


diferença entre itens de configuração. A seleção de cada versão de um item integra a
configuração do software.

10. O que significa/representa os termos Ramo


(branch) e tronco (head, mainline, trunk) na
gerência de versões?

Branch -> São ramificações de versões na linha de desenvolvimento.

Tronco -> É a ramificação em que está se desenvolvendo.


11. Cite 3 ferramentas de controle de versões,
informando nome, site, tipo de licença e preço.

• Nome: Subversion

o Site: https://subversion.apache.org/

o Licença: Open source

o Preço: Free

• Nome: Git

o Site: https://git-scm.com/

o Licença: Open source

o Preço: Free

• Nome: Mercurial

o Site: https://www.mercurial-scm.org/

o Licença: Open source


o Preço: Free

12. Cite 3 ferramentas de controle de mudanças,


informando nome, site, tipo de licença e preço.

• Nome: Sharepoint

o Site: https://www.microsoft.com/pt-br/microsoft-
365/sharepoint/collaboration

o Licença: PUR

o Preço: R$ 28,90/mês

• Nome: Freshservice

o Site: https://freshservice.com/br/

o Licença: Volume License, Enterprise License, Trial License,


Opensource License, Free License.

o Preço: entre $19,00/mês a $109,00/mês

• Nome: Whatfix

o Site: https://whatfix.com/

o Licença: unknow
o Preço: $1200,00/ano

13. Cite 3 ferramentas de controle de configuração,


informando nome, site, tipo de licença e preço.

• Nome: Ansible

o Site: https://www.ansible.com/

o Licença: Open source

o Preço: Free

• Nome: Puppet

o Site: https://puppet.com/

o Licença: Open source, enterprise

o Preço: Enterprise entre $20,00/mês a $65,00/mês

• Nome: Chef

o Site: https://www.chef.io/

o Licença: PUR
o Preço: $250,00/ano

Você também pode gostar