Sie sind auf Seite 1von 27

Problema

Mudanças durante o desenvolvimento são inevitáveis;

o entendimento dos usuários sobre suas necessidades muda;

o ambiente no qual o sistema vai operar muda;

a legislação muda, os requisitos mudam.


Gerência de Configuração de
Software (GCS)

É um conjunto de atividades de apoio que permite a absorção controlada das


mudanças inerentes ao desenvolvimento de software, mantendo a estabilidade na
evolução do projeto
Questões Básicas na GCS
Quais mudanças aconteceram no sistema?

Por que essas mudanças aconteceram?

O sistema continua íntegro mesmo depois das mudanças?


Gerenciar Configuração
GCS é a disciplina de identificar a configuração de um sistema em diferentes
pontos no tempo com a finalidade de controlar sistematicamente as mudanças
realizadas, mantendo a integridade e rastreabilidade da configuração através do
ciclo de vida do sistema.
Ferramentas de Apoio
Controle de Versão - O problema do compartilhamento de arquivo

Programador sobrescrever o código de outro por acidente e acabar perdendo


as alterações feitas por ele?

Dificuldades em saber quais as alterações foram efetuadas em um programa,


quando foram feitas e quem fez?

Dificuldade em recuperar o código de uma versão anterior que está em


produção?

Ter problemas em manter variações do sistema ao mesmo tempo?


Ferramentas de Apoio
Controle de Versão

Existem duas soluções para o problema:

Alocar-Modificar-Desalocar

Copiar-Modificar-Unificar
Ferramentas de Apoio
Controle de Versão

É a espinha dorsal de toda a gerência de configuração, apoiando as atividades de


controle de mudança e integração contínua.

Fornece os seguintes serviços:

Identificação, armazenamento e gerenciamento dos itens de configuração e de


suas versões durante todo o ciclo de vida do software;

Histórico de todas as alterações efetuadas nos itens de configuração; Criação


de rótulos e ramificações no projeto;

Recuperação de uma configuração em um determinado momento desejado do


tempo.
Ferramentas de Apoio

Controle de Versão – Exemplos

• Subversion (SVN)

• Mercurial

• Git

• CVS

• StarTeam
Ferramentas de Apoio

Controle de Versão - Centralizado

Funcionamento do modelo centralizado


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
Ferramentas de Apoio

Controle de Versão – Distribuído


Funcionamento do Modelo Distribuído
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.
Ferramentas de Apoio

Controle de Mudança
Serviço complementar ao oferecido pelo sistema de controle de versão. O foco
desse tipo de ferramenta é nos procedimentos pelos quais as mudanças de um
ou mais itens de configuração são propostas, avaliadas, aceitas e aplicadas.
Oferece servi ç os para identificar, rastrear, analisar e controlar as mudanças
nos itens de configuração.
Ferramentas de Apoio

Controle de Mudança – Exemplos

Trac
Redmine
Mantis
Bugzilla
JIRA
Ferramentas de Apoio

Integração Contínua
Garantir que as mudanças no projeto são construídas, testadas e relatadas tão
logo quanto possível depois de serem introduzidas.
Em projetos de software, a construção do software é feita pela recuperação da
configuração correta no sistema de controle de versão e a construção dos
arquivos executáveis e de instalação do produto.
Este processo é executado geralmente após cada mudança publicada no
sistema de controle de versão ou em intervalos de tempo pré-definidos.
Ferramentas de Apoio

Integração Contínua - Exemplos


Jenkins
Bitten
Scons
Ant
Maven
CruiseControl
Gump
TinderBox
Conceitos
● Ambiente:
Individual
(Espaço de
○ Tudo aquilo que o projeto necessita Trabalho)
Desenvolvimento
para desenvolver e implementar o Integração
(Repositório)
software, tais como: processo,
orientações, ferramentas, modelos e Sistemas

infra-estrutura (hardware e software)


Infra-estrutura

● Ambiente de desenvolvimento: dos Ambientes


Testes Integrados

○ Ambiente aplicado à implementação Performance e


Aceitação

do software
● Ambiente de testes: Produção Produção

○ Ambiente aplicado aos testes


Funções envolvidas
● Administrador de Sistemas:
○ Responsável pela infra-estrutura do
ambiente

● Especialista em Ferramentas:
○ Seleciona, adquire, instala e suporta as
ferramentas necessárias

● Engenheiro de Processos:
○ Responsável pelo processo a ser aplicado
ao desenvolvimento
Fluxo de trabalho de ambiente
Objetivos das atividades
● Preparar ambiente do projeto:

○ Utilizada na iniciação, com o propósito de preparar o ambiente de desenvolvimento do projeto


● Preparar o ambiente para uma iteração:

○ Adequar o ambiente de desenvolvimento do projeto para uma iteração


● Suportar o ambiente durante uma iteração:

○ Garantir que todas as demandas de processos e ferramentas sejam atendidas durante uma
iteração do projeto
A: Preparar ambiente do projeto
A: Preparar o ambiente para uma iteração
A: Suportar o ambiente durante uma iteração
Essência da disciplina de ambiente

Preparação do Preparação de Suporte de


Projeto: Iteração: Iteração:

• Processo de • Caso de • Infra-estrutura de


Desenvolvimento Desenvolvimento Desenvolvimento
• Caso de • Diretrizes e
Desenvolvimento Templates
• Diretrizes e Específicas do
Templates Projeto
Específicas do • Requisições de
Projeto Mudança
• Ferramentas • Manual de Guia
de Estilo
• Ferramentas
P: Processo de Desenvolvimento
● Trabalho do Engenheiro de Processos:

○ Adequar o processo de desenvolvimento (RUP ou outro) ao Projeto

○ Publicar o processo especificado para a equipe:

■ Ferramentas:

● Rational Method Composer

● Rational RUP Builder

○ Preparar o Caso de Desenvolvimento, descrevendo como o processo deve ser utilizado


P: Caso de Desenvolvimento
● Seções típicas:

○ Visão Geral do Caso de Desenvolvimento

■ Modelo de Ciclo de Vida

■ Exemplos de Planos de Iteração (1 para cada fase)

● Fases: Iniciação, Elaboração, Construção e Transição

○ Detalhe do Fluxo de Trabalho (1 para cada fase)

○ Produtos de Trabalho (artefatos)

○ Relatórios

○ Funções
P: Templates Específicos do Projeto
● Modelos de documentos do projeto:
○ A padronização é fundamental

○ Responsabilidade do Engenheiro de
Processos

○ Os padrões produzidos são amplamente


reusados

○ Exemplos:
■ Requisições de Mudança
■ Caso de Desenvolvimento
■ Plano de Iteração
■ Plano de Desenvolvimento do
Software ■ Avaliação de Iteração

■ Etc.
Referências
Sigla Referência

HAC97 JoAnn T. Hackos e Dawn M. Stevens 1997. Standards for Online Communication. John Wiley and Sons, Inc.

Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. 1998. Addison
JAC98
Wesley Longman.
Per Kroll e Philippe Kruchten 2003. The Rational Unified Process Made Easy, A Practitioners Guide to the RUP.
KRO03
Addison Wesley Longman.

KRU98 P. Kruchten; The Rational Unified Process: An Introduction, Object Technology Series, Addison-Wesley, 1998.

MAR05 Márcio Moreira. Resumo do livro Unified Process. Márcio. Uberlândia (MG). 2005.

MAR06 Márcio Moreira. Engenharia de Software - RUP . Uniube - Universidade de Uberaba - Uberlândia (MG). 2006.

MAR09 Márcio Moreira. Metodologia e Conceitos de Implantação de Sistemas. Empresa. Bom dia TI. Uberlândia (MG). 2009.

MOS98 Microsoft 1998. O Microsoft Manual of Style for Technical Publications. Redmond, WA: Microsoft Press.

PRE95 PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995.

RUP08 IBM Rational. RUP – Rational Unified Process – 7.5 – For Large and Small Projects. 2008. IBM Rational.

SUM07 Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007.

Das könnte Ihnen auch gefallen