• Nenhum resultado encontrado

GERÊNCIA DE CONFIGURAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "GERÊNCIA DE CONFIGURAÇÃO"

Copied!
43
0
0

Texto

(1)

GERÊNCIA DE CONFIGURAÇÃO E

VERSÕES DE SOFTWARE

Curso de Sistemas de Informação PUC Minas

Prof. Humberto Torres Marques Neto - Abril / 2009 Prof. André Pereira Viveiros - Fevereiro / 2012

(2)

Objetivos

• Discutir os principais problemas do processo de

desenvolvimento de software que estão relacionados com a configuração e/ou com a versão de um item que compõe tal processo

• Propor e discutir algumas soluções para os problemas discutidos

• Identificar e analisar ferramentas que apóiam a gerência de configuração e versão de software

(3)

Referência Bibliográfica

PRESSMAN, Roger S. Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006.

BABICH, Wayne A. Software Configuration

Management: coordination for team productivity. (s.l.) Addinson-Wesley, 1986.

BERSOFF, Edward. H., HENDERSON, Vilas D., SIEGEL, Stanley G. Software Configuration

Management: an investiment in product integrity. (s.l.) Prentice-hall, 1980.

(4)

Algumas situações que envolvem o processo de

desenvolvimento de software

• É necessário corrigir algo que já está sofrendo outros tipos de manutenção, contudo a correção tem prioridade sobre a evolução

• Um usuário “poderoso” solicita uma manutenção que afetará o trabalho de outros usuários

• Os usuários de um software não aceitam fazer o upgrade para a nova versão, criando assim a necessidade de

manter duas versões de um determinado software • Os módulos de um sistema funcionam separados,

(5)

Algumas situações que envolvem o processo de

desenvolvimento de software

• Um software atualiza uma biblioteca que está sendo utilizada por outro software, contudo a atualização não funciona para o segundo software

• Não existe backup das bibliotecas que foram atualizadas • Não existe backup de uma versão de um software que

possui as funcionalidades que precisam ser reimplantadas • A nova versão do software não atende as reais

necessidades do usuário, pois as modificações não foram solicitadas por ele

(6)

Primeira Lei da Engenharia de Sistemas

“Não importa a fase do processo de

desenvolvimento de sistemas, o sistema

demandará mudanças, e o desejo de

modificá-lo persistirá durante todo o

processo.” (BERSOFF, 1980. p. 43).

(7)

Marcos do Processo de Desenvolvimento de

Sistemas

“Baselines”: marcos de referência do processo de

desenvolvimento de sistemas, normalmente aprovado formalmente.

Principais “baselines” do ciclo de vida de um sistema (BERSOFF, 1980. p. 46-48):

Funcional: proposta de desenvolvimento de sistemasAlocação: especificação de requisitos

Projeto: especificação de implementação, bem como a revisão

crítica do projeto de desenvolvimento do sistema

Produto: documentação da implementação, bem como o plano

de testes de aceitação

Operacional: documentação do sistema, bem como o documento

(8)

Marcos do Processo de Desenvolvimento de

Sistemas

“O gerenciamento do processo de

desenvolvimento de sistemas é o

gerenciamento das ‘baselines’”.

(BERSOFF, 1980. p. 46-48)

“As ‘baselines’ de um sistema são

os produtos tangíveis do seu

processo de desenvolvimento.”

(BERSOFF, 1980. p. 46-48).

(9)

Integridade do Produto Software

• Um projeto não pode atingir o “sucesso” extrapolando exageradamente custos e prazos ou sendo sofisticado demais para ser utilizado pelo usuário.

• A integridade de um software é definida pelos seguintes atributos:

• Os que caracterizam um produto que vai ao encontro aos

requisitos impostos, ou assumidos, ou supostos, ou pretendidos pelo usuário durante qualquer fase do processo de seu

desenvolvimento

• Os que facilitam o delineamento do produto, desde a sua

concepção (enquanto idéia), passando por todas as fases subseqüentes do seu processo de desenvolvimento

• Os que caracterizam um produto que alcança satisfatoriamente

(10)

Requisitos para se alcançar e manter a integridade de

um Software

Integridade do Produto Software SCM Teste e Avaliação Garantia de Qualidade Verificação e Validação Análise Projeto Implementação Teste Implantação Treinamento Documentação Gerência de Projeto

(11)

Segunda Lei da Engenharia de Sistemas

• Esta lei está relacionada à manutenibilidade de um sistema e é expressa nos termos da equação abaixo:

M = k1C + k2/B + k3/A

onde:

M = custo e/ou esforço requerido para manter um sistema no seu estado

operacional um maior intervalo de tempo

C = complexidade inerente às funções que serão realizadas pelo sistema B = grau de existência de “baselines” e documentação

A = grau de características estruturais que tem sido empregadas para

facilitar a manutenibilidade do sistema

(12)

Gerenciamento de Configuração de Software

-SCM

“Gerenciamento de Configuração de Software (Software Configuration Management - SCM) é a arte de

identificar, organizar e controlar modificações de um software que está sendo construído por uma equipe. A

meta é maximizar a produtividade e minimizar os erros.” (BABICH, 1986. p. 8).

(13)

Gerenciamento de Configuração de

Software

“SCM é uma atividade que abrange e é aplicada em todo o processo de engenharia de um software. Como

as mudanças podem ocorrer a qualquer tempo, as atividades de SCM são desenvolvidas para (1) identificar a mudança; (2) controlar a mudança; (3) garantir que a mudança esteja sendo adequadamente

implementada; e (4) relatar a mudança a outras pessoas que possam ter interesse nela.”

(14)

Gerenciamento de Configuração de

Software

“SCM é definido como uma disciplina de identificação de configuração de um sistema em determinados momentos do tempo, com o propósito de controlar sistematicamente as mudanças dessa configuração, mantendo a integridade de tal configuração dentro do

(15)

Funções da Gerência de

Configuração de Software

• Como uma organização identifica e gerencia as diversas versões de

programas e suas respectivas documentações e suas estruturas de dados utilizadas de uma maneira que possibilite alterações sem causar muito impacto?

Identificação de configurações: É o processo que envolve a

identificação de todos os itens de configuração de acordo com um padrão pré-definido.

• Como uma organização controla as mudanças antes e depois da

liberação do software para o usuário? Quem é responsável pela aprovação e pela definição de prioridade das modificações?

Controle de configurações: Envolve processos para Controle de

(16)

Funções da Gerência de

Configuração de Software

• Como podemos avaliar se as mudanças foram realizadas

corretamente?

Auditoria de configurações: Garante que a base de dados

de configurações e versões é consistente.

• Quais mecanismos e ferramentas são utilizados para verificar

se outras mudanças podem ser realizadas?

Histórico de configurações: Permite uma recuperação do

(17)

Divisão das categorias de informação do

processo de software

• Programas de computador (tanto na forma de código como na forma de executável)

• Produtos de trabalho que descrevem os programas (voltados para os profissionais como para os usuários) • Dados (contidos no programa ou externo a eles)

(18)

Gerente Configuração*

Cliente

Gerente Projeto

Equipe Desev

O Cliente gera uma requisição de mudança O Eng. software checks out os objetos configuração necessários Gerente acata a mudança e requisita ao engenheiro de software ES completa mudanças necessárias GM cria uma nova baseline sistema Cliente aprova mudanças

*Administra a base do projeto e provê acesso e controle aos engenheiros de software ES checks in Objetos de configuração modificados e notifica GC GC prepara um nova versão do sistema

Ciclo SCM

(19)

Um cenário operacional SCM

• Considerar um produto de 15 mil linhas de código sendo desenvolvidos por uma equipe de 6 pessoas • Um gerente de projeto encarregado de um grupo

de software

• Um gerente de configuração encarregado de procedimentos e políticas de CM

• Engenheiros de software responsáveis por desenvolver e manter

• O cliente que usa o produto

(20)

Um cenário operacional SCM

• O gerente de projeto no nível operacional quer

garantir que o produto seja desenvolvido no tempo. O acompanhamento é feito pela geração e análise de relatórios sobre o estado do sistema e suas

revisões

• O gerente de configuração tem o objetivo de

garantir que os procedimentos e políticas para criar, modificar e testar o código estão sendo seguidos, bem como tornar acessível a informação

(21)

Um cenário operacional SCM

• Os eng. de software querem trabalhar

efetivamente, comunicando e coordenando suas atividade ajudados pelas ferramentas SCM

• O cliente usa o produto sob controle GC, solicitando modificações e indicando bugs indicando o versionamento.

• O gerente de projeto vê o o sistema CM como um mecanismo de

auditoria; o GC vê como um mecanismo de controle,

acompanhamento e construção de política; o ES vê como

mecanismo de controle de modificação, construção e acesso e o cliente vê como mecanismo de garantia de qualidade

(22)

Itens de Configuração de Software

Itens de configuração de software (software

configuration item - SCI) é qualquer informação

gerada durante o processo de desenvolvimento de software.

• Uma organização de SCIs pode ser

(23)

Itens de Configuração de Software

• Alguns exemplos de itens de configuração de software: • Documentos com a formulação conceitual do sistema

• Especificação de requisitos (Diagramas, Modelos, Definições,

Protótipos, etc.)

• Especificação de implementação (Diagramas, Modelos,

Especificações de Módulos, Projeto físico de banco de dados, Projeto de interfaces, Configurações de hardware, etc.)

• Código fonte e executável dos programas desenvolvidos • Esquemas de banco de dados e estruturas de arquivos • Plano de teste (descrição e resultados)

• Carga inicial de dados (procedimento de carga e conteúdo) • Manuais do usuário (preliminar e as-built)

• Documentos relacionados à documentação (solicitações, relatórios de

problemas, ordens de execução, etc.)

(24)

Itens de Configuração de Software

Especificação de projeto: •Projeto de dados •Projeto arquitetônico •Projeto modular •Projeto de interface Especificação de teste •Plano de teste •Procedimentos de teste •Casos de teste Modelo de dados Componente N •Descrição de interface •Descrição de algoritmo Código fonte

(25)

Controle de Configuração de Software

• “Gerenciamento de configuração permite um usuário especificar configurações alternativas de um software através da seleção de versões apropriadas. Isso é

possível através da associação de atributos com cada versão de software, permitindo assim que a

configuração seja especificada (e construída) a partir do conjunto de atributos desejados.” (PRESSMAN, 1997. p. 218)

• Controle de configuração de software é responsável pelo gerenciamento do processo pelo o qual o(s)

software(s) de um sistema passa(m) durante o seu ciclo de vida.

(26)

Controle de Configurações de um Software

Padrões Ponto de Referência Estabelecido (baseline) Alterações Desejadas Novo Projeto Novo Ponto de Referência Proposto (nova baseline ou baseline atualizada)

(27)

O Repositório SCM

• É um conjunto de mecanismo e estruturas de dados que permite gerir modificações de forma efetiva. Algumas funções que podem ser

executadas ou propiciadas pelo repositório:

• Integridade de dados: validar entradas, executar modificações “em cascata”

• Compartilhamento de informação: controla o acesso a diferentes usuários,

bloqueia e desbloqueia

• Integração de ferramenta: fornece modelo de dados ao qual podem ter

acesso várias ferramentas

• Integração dos dados: funções permitindo que várias tarefas de SCM sejam

executadas em um ou mais SCIs

• Imposição de metodologia: define um modelo entidade-relacionamento que

implica um modelo de processo

• Padronização da documentação: Definição de objetos que leva a uma

(28)

O Repositório SCM e suas características

• Para apoiar SCM o repositório precisa ter um conjunto de ferramentas

que forneça as seguinte características:

• Determinação de versão:no progresso do projeto várias versão do SCIs são

criadas. Deve ser capaz voltar uma versão salvar versões

• Acompanhamento de dependências e gestão de modificação: Gerir o

relacionamento dos objetos, por exemplo um diagrama UML modificado deve traze as alterações das classes alteradas aos desenvolvedores

• Acompanhamento dos requisitos: Acompanhamento avante dos objetos

gerados pelo requisito e retroacompanhamento do item de configuração gerado por determinado requisito

• Gestão de configuração: Gerenciamento de marcos e versões específicas

• Pistas de auditoria: informações como, quando, por quem, porque as

(29)

O processo de SCM

• O processo e seus objetivos principais: (1)identificar todos os itens itens que identificam coletivamente a configuração de software (2) gerir

modificações em um ou mais desses itens (3) facilitar a construção de diferentes versões de uma aplicação e (4) garantir que a qualidade de software seja mantida a medida que a configuração evolui ao longo do tempo.

• Nos levando a cinco tarefas:Identificação, controle de versão, controle de

modificação, auditoria de configuração e preparação de relatórios.

SCIs identificação Controle de modificação Controle de versão Auditoria de configuração Preparação de relatórios

(30)

Identificação de objetos

• Cada item de configuração recebe um nome e sua organização

pode ser dada conforme abordagem OO. Dois tipos de objetos: objeto básico e objeto agregado.

• Objeto básico por exemplo pode ser uma seção de especificação

de requisitos , parte do modelo, uma seqüência de casos testes

• Objeto agregado por exemplo pode ser a especificação do projeto

contendo uma coleção de objetos básicos ou outros objetos agregados. Funcionando como um ponteiro para outros objetos

• Há também na identificação o relacionamento por exemplo:

• diagrama de classe <parte-de> modelo de análise;

(31)

Controle versão de Software

• O que é uma versão de software?

“Cada versão de software é uma coleção de SCIs (código fonte, documentos, dados, etc.), que pode ser composta por diferentes ‘variantes’.” (PRESSMAN, 1997. p. 218-219)

• A política de mudanças deve fazer parte da metodologia de

desenvolvimento de sistemas?

“Controle de versão combina procedimentos e ferramentas para gerenciar diferentes versões de objetos de configuração que são criados durante o processo de software.” (PRESSMAN, 2006. p. 750)

(32)

Sistema de controle versão de Software

Deve implementar ou deverá estar integrado a

quatro capacidades:

Um banco de dados de projeto (repositório) que guarda todos os objetos de configuração relevantes

Uma capacidade de gestão de versão que guarda todas as versões de um objeto de configuração (ou permita que qualquer versão seja construída usando diferenças de versões anteriores)

Um facilidade de construir que permita o ES coletar todos os objetos relevantes para gerar uma versão específica do software Capacidade de acompanhamento de tópicos que permite a equipe registrar e acompanhar tópicos importante associados a cada

(33)

Controle de Modificações (PRESSMAN)

• Necessidade de modificação é reconhecida, e solicitada pelo usuário

• O “desenvolvedor” avalia a solicitação e produz um relatório de mudança

• Um “comitê de controle de modificações” (CCM) decide se a modificação será realizada ou não: geração de “ordem

de execução” ou o usuário é avisado da não aprovação

• Em caso de aprovação, os recursos são alocados

É feito um “check-out” no objeto de configuração que será modificado

• A modificação é realizada e revisada

(34)

Controle de Modificações (PRESSMAN)

Uma baseline é estabelecida para teste

• Atividades para teste e verificação de qualidades são executadas

• É realizada uma nova revisão

• A versão de software apropriada é reconstruída • A alteração de todos os SCIs é revista

• As modificações são incorporadas à nova versão • Finalmente, a configuração é distribuída

• Algumas questões sobre o processo:

(35)

Auditoria de Configurações

• Algumas questões que devem ser respondidas por essa função

do processo de gerenciamento de configurações de software (PRESSMAN, 2006. p. 612):

As modificações especificadas foram realizadas?

Algo de novo foi realizado? Ou seja, foi feito alguma modificação

que não foi especificada?

Foi utilizada alguma técnica formal para verificação e validação da

modificação?

Os padrões de engenharia de software foram criteriosamente

respeitados?

Os atributos dos objetos de configuração envolvidos na modificação

refletem o que foi modificado? A data e autor do serviço estão identificados?

Os procedimentos de controle e de geração de histórico da modificação foram realizados?

(36)

Algumas questões sobre a

Auditoria de Configurações

• Quando a auditoria de configuração de software deve ser realizada? Deve haver uma periodicidade definida a

priori?

• Qual a relação custo/benefício de um processo de auditoria de configuração de software?

• Quais os custos da prevenção? Quando vale a pena esperar o problema ocorrer?

• Quem deve ser o responsável por tal processo? Uma equipe interna ou externa?

• Existem ferramentas que podem otimizar um processo de configuração de software?

(37)

Histórico de Configurações ou relatórios de estado

• Algumas questões que devem ser respondidas por essa

função do processo de gerenciamento de configurações de software (PRESSMAN, 2006. p. 756):

O que aconteceu?Quem fez isso?Quando foi feito?

(38)

Métodos utilizados para

armazenamento de versões

Arquivos separados

• Um arquivo para cada versão do item de configuração • É necessário definir uma padronização de nome de item

para identificar as versões

Deltas

• Um arquivo para a primeira versão, e arquivos contendo as

diferenças relativas ao “arquivo base”, ou à versão anterior, formando assim uma “cadeia”.

Compilação condicional

• Todas as versões estão em um único arquivo (programa

fonte) e são “separadas” ou “geradas” em tempo de compilação

(39)

Derivações

(BABICH, 1986. cap. 3)

• Derivação é a história do item de configuração e de seus respectivos relacionamentos com outros itens de

configuração, inclusive os que compõem o ambiente (compiladores, esquemas e instâncias de banco de dados, entre outros).

Para a derivação ser útil em um processo de “debug” ou de reconstrução de uma versão, ela deve ser precisa.

Algumas questões para discussão

Quais as vantagens e desvantagens de cada método de

armazenamento para cada tipo de versão?

Tais métodos se aplicam para outros tipos de itens de

(40)

CM Tools

• Concurrent Version System (CVS)

• Subversion

(41)
(42)
(43)

Copy-Modify-Merge System-2 [3]

Referências

Documentos relacionados

Contudo, não é possível imaginar que essas formas de pensar e agir, tanto a orientada à Sustentabilidade quanto a tradicional cartesiana, se fomentariam nos indivíduos

[r]

Modeladora  –   Equipamento profissional para indústria alimentícia destinado à. modelar massas pela sua passagem entre

• Os municípios provavelmente não utilizam a análise dos dados para orientar o planejamento de suas ações;. • Há grande potencialidade na análise dos micro dados do Sisvan

Todavia, há poucos trabalhos sobre interferência de herbicidas no crescimento da cultura; portanto, visando avaliar os efeitos de amicarbazone e diuron + paraquat, estes foram

Como pontos fortes, destacam-se a existência de iniciativas já em- preendidas em torno da aprovação de um Código de classificação e uma Ta- bela de temporalidade e destinação

Assinale a alternativa correta. Para a perfeita manutenção do equipamento, o operador tem que conhecer as partes integrantes dos sistemas de transmissão, sistema

Palestra Ministrada na Universidade Vale do Rio Verde “Campus” Três Corações – MG, Intitulada “Comunicação de Dados: A Rede pela Rede Elétrica” na III Convenção