Gerência de configuração aplicada ao DBC: estado da arte

28
Gerência de configuração aplicada ao DBC: estado da arte Vanilson Burégio [email protected]

description

Gerência de configuração aplicada ao DBC: estado da arte. Vanilson Burégio [email protected]. Roteiro. História Contexto Gerenciamento de componentes GCS no DBC Motivação Questões Abordagens Ferramentas Conclusão Referências. História {anos 60}. - PowerPoint PPT Presentation

Transcript of Gerência de configuração aplicada ao DBC: estado da arte

Page 1: Gerência de configuração aplicada ao DBC: estado da arte

Gerência de configuração aplicada ao DBC: estado da arte

Vanilson Buré[email protected]

Page 2: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

Roteiro

História Contexto

Gerenciamento de componentes

GCS no DBC Motivação Questões Abordagens Ferramentas

Conclusão Referências

Page 3: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {anos 60}

Desenvolvimento de software em larga escala

Programação não é tudo!! Estrutura do software (Arquitetura?) Building? Evolução?

Crise de Software

Page 4: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {anos 70}

Busca de soluções… Notações Técnicas Ferramentas Case

Surgimento do gerenciamento de configuração

“A arte de coordenar o desenvolvimento de software para minimizar …a confusão…” [Babich, 1986]

“A arte de coordenar o desenvolvimento de software para minimizar …a confusão…” [Babich, 1986]

Page 5: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {anos 80}

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

Primeiros sistemas “caseiros” para controle de arquivos Scripts Unix sobre RCS (ferramenta simples de controle de

versão) e Make

Page 6: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {anos 90}

Surgimento de produtos reais de GCS Sem suporte a processo, apenas controle de arquivo Suporte a workspace Líderes de mercado: ClearCase, Continuus

Segunda metade dos anos 90… Consagração da GCS

essencial no desenvolvimento de software tecnologia bem estabelecida suporte a processo

1998: mais de $1bilhão de vendas! [Estublier, 2000]

Page 7: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {anos 90}

Por outro lado... Surge o DBC (Desenvolvimento Baseado em

Componentes)- Produtividade - Qualidade- Competitividade

Novas abordagens => Novos problemasNovas abordagens => Novos problemas

Page 8: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

História {Resumo}

GCS

1960 1970 1980 1990 2000

Crise de Software

GCS

DBC

Evolução do Software

Produto de Software

Software customizado

(distribuição limitada)

Sistemas distribuídosHardware de baixo custo Tecnologias orientadas a objetos

computação paralelaDBC

GCS aplicada ao DBC

"Software developers’principle tasks will shift from coding to designing and integrating“ [Voas, 1998]

Page 9: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

Contexto {Gerenciamento de componentes}

[Apperly, 2001] Processo de produção-gerência-consumo Produtor: implementa componentes Consumidor: busca e usa componentes Gerenciador de componentes: interface entre

produtor e consumidor Mais que um repositório estático de componentes Deve possuir interfaces com os serviços necessários aos

produtores e consumidores de componentes

Page 10: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

Contexto {Gerenciamento de componentes}

Processo de Produção

Gerência de configuração

RepositórioRepositóriode componentesde componentes

Processo de gerência

Processo de Consumo

Gerenciador de componentes

Gerência do repositório Gerência dos usuários do repositório Controle de qualidade Controle da disponibilidade Gerência de componentes Gerência de versões dos componentes

Implementação de componentes Documentação de componentes (Re)Publicação de componentes Notificar consumidores sobre novos

componentes ou problemas

Busca de componentes Especificação de componentes a

serem produzidos Uso/reuso de componentes Deploy de componentes Registrar interesse em

componentes

Produtor Consumidor

Escopo

Page 11: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Motivação}

[Voas, 1998] “Without revision control, the component maintenance

process will bring more disaster than benefit to your application development process”

[Mei, 2001] “More and more software development organizations

have noticed the importance of SCM, and viewed SCM as their infrastructure for software development.”

Page 12: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Motivação}

[Apperly, 2001] “One of the primary ways to enable a successful

component development life cycle is to implement a process that includes an integrated configuration management and component library environment.”

Page 13: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Questões}

[Mei, 2001] Visualizar um componente como um item de configuração (IC) e

operar sobre componentes e não sobre arquivos individuais Controlar modificações concorrentes em cada componente Gerenciar a composição e relacionamentos entre componentes

[Apperly, 2001] Suportar os níveis de abstração de um componente

[Larsson, 2001] manter o rastreamento de componentes e seus inter-relacionamentos

Técnicas tradicionais de GCS não suportam DBCTécnicas tradicionais de GCS não suportam DBC

Page 14: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Questões}

Gerenciamento de versões Identificação de versões

Estabelecer nomenclatura padrão Informações a serem consideradas?

Evolução dos componentes relacionamentos internos relacionamentos externos

Gerenciamento de Mudanças Manter a consistência

Diferentes níveis de compatibilidade

Análise de impactos controle de dependências rastreabilidade

Page 15: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Níveis de abstração [Apperly, 2001]

Modelo de GCS para DBC [Mei, 2001]

Modelo de versionamento [Gergic, 2003]

Atualização de componentes [Plasil, 1997] [Cook, 1999] [Vandewoude, 2002]

Controle de dependências [Lucas, 1997] [Larsson, 2001]

Page 16: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Executável

Especificação

Implementação

Deployment

.exe.dll.jar ...

Java C# C++ ...

Deploy 1 Deploy 2 Deploy 3 ...

Uma especificação pode possuir mais de uma implementação

Uma implementação pode possuir mais de um executável

Um executável pode possuir mais de um deploy

Componente

Níveis de abstração [Apperly, 2001]

Problema: gerenciar os links (dependências) existentes entre cada nível de abstração do componente

Problema: gerenciar os links (dependências) existentes entre cada nível de abstração do componente

Page 17: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Gerência de componentes [Apperly, 2001] Tarefa difícil! Grande necessidade de ferramentas Componente deve ser visto sob seus diferentes níveis de abstração

Gerenciamento de versões [Apperly, 2001] Identificação de versão

Cada nível de abstração também precisa ser identificado Exemplo:

V 1.0

V 1.1

V. 1.1

V 1.1

Componente vr. 1.1 Componente vr. 1.2

V 1.0

V 1.2

V. 1.2

V 1.2

Page 18: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Modelo de GCS para DBC [Mei, 2001] Conceitos básicos

File: unidades de armazenamento, não representam constituintes lógicas Component: constituinte lógica do sistema (componentes primitivos e

componentes compostos) Configuration: configurations representam componentes compostos

(conjunto de configuration item).o Configuration item (CI): componente primitivo ou configuração existente

Baseline: versão de uma configuração (configuration). Formada pela seleção de uma versão ou baseline de cada CI na configuração.

Relationship: representa as relações entre componentes. Ex.: relação de dependência

Configuration

Componente primitivo

Sub-configuration

Page 19: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Modelo de GCS para DBC [Mei, 2001]The Construction and Evolution of Composite Components

CompositeComponents

The evolution of primitive components

Primitive Components

Component Adaptation

Component Development

Component Composition

Advanced Evolution

ConfigurationCriation

BaselineCriation

Configuration

Modification

Configuration

Branching

Checkout and Checkin of Primitive

Components

Branching and Merging of PrimitiveComponents

Concurrency of PrimitiveComponents

Relationship creation and

Tracing

SCM Support

Page 20: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Questões chaves do modelo [Mei, 2001] Manutenção de consistência

Qualquer versão/baseline deve ser logicamente um componente Estratégia de concorrência

Para arquivos: exclusive-write modificação do componente: estilo checkout-edit-checkin

Merging horizontal e vertical

1.0

1.1

1.2

1.3

1.4

1.2.1.0

Branch

1.2.1.1

1.5

Merge

A B C

B C D

A B C D

Merge Horizontal

1.0

1.1

1.2

1.3

1.4

Antes do merge

Merge Vertical

1.5

1.0

1.1

1.4

Depois do merge

1.5

Merge

Árvore de versão de um componente primitivo

Page 21: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Modelo de versionamento [Gergic, 2003] SOFA/DCUP Versões com mais informações (atributos/relações)

apache-1.3.9-8mdk-i586.rpm Repositório de versões

Contém informações de todas entidades versionadas Busca com MQL (M-Cube Query Language)

o SELECT component_implementations HAVING (OS successor "Win95")

Page 22: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Abordagens}

Atualização de componentes DCUP [Plasil, 1997]

Dynamkic Component Updating (Java/CORBA)

Framework Hercules [Cook, 1999] Atualização de componentes com suporte a múltiplas versões simultâneas em tempo

de execução

Atualizações dinâmicas [Vandewode, 2002] SEESCOA – sistema de componentes em Java com suporte a atualizações dinâmicas Informações de versão incluídas nas classes Java quando carregadas

Controle de dependências Contratos de reuso [Lucas, 1997]

Dependências controladas através de documentação

Especificação de dependências [Larsson, 2001] Dependency Browser

Page 23: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Ferramentas}

JBCM [Zhang, 2001]

Sistema de gerenciamento de configuração de componentes

Baseado no modelo proposto por Mei (2001)

High-Level Management Function

Change Control

Audit Control

Build Support

Status Report Process Control

Configuration Support

Version Control and Concurrency

Control of Primitive

Components

Relationship Support

Mechanism of Version Control and ConcurrencyControl of Primitive Components

Basic Management Function

Mechanism

Arquitetura

Page 24: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Ferramentas}

Dependency Browser [Larsson, 2001]

Ferramenta para análise de dependências Monta grafos de dependências

o Nós: componenteso Arestas: dependências

Protótipo analisou dependências ente os componentes do Windows 2000

Page 25: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Ferramentas}

Aonix Select component Manager

Gerenciador de componentes Parte de um conjunto de

soluções (Select Business Solution)

Independente da tecnologia de componentes

Suporta os níveis de abstração apresentados em Apperly (2001)

Page 26: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

GCS no DBC {Ferramentas}

Microsoft Visual component Manager

Gerenciador de componentes integrado ao ambiente de desenvolvimento da MS (Visual Studio)

Permite publicação, busca e reuso de componentes em um repositório

Page 27: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

Conclusão

Técnicas tradicionais de GC não podem ser aplicadas diretamente em componentes nova definição de operações e objetos

GCS aplicada ao DBC Área de pesquisa recente

Muitos problemas a serem resolvidos Controle de versão é apenas uma questão!

Falta de ferramentas com uso prático comprovado

Ferramentas dependentes de tecnologia de componentes específica

Page 28: Gerência de configuração aplicada ao DBC: estado da arte

Reuse in Software Engineering Group

Referências

[Estublier, 2000] Jacky Estublier, Software Configuration Management: A Roadmap, ACM Press, 2000.

[Babich, 1986] W. A. Babich, Software Configuration Management, Addison-Wesley,1986.

[Apperly, 2001] Hedley Apperly, Configuration Management and Component Libraries, In Component-Based Software Engineering: Putting the Pieces Together, Addison Wesley, 2001.

[Gergic, 2003] Jaroslav Gergic, Towards a Versioning Model for Component-based Software Assembly, 2003.

[Larsson, 2001] Magnus Larsson, Crnkovic Ivica, Configuration management for component-based systems, In the Tenth International Workshop on Software Configuration Management – SCM 10 (ICSE 2001), Toronto, Canada, May 2001

[Mei, 2001] Hong Mei, Lu Zhang, Fuqing Yang, A Software Configuration Management Model for Supporting Component-Based Software Development, Peking University, 2001

[Voas, 1998] Jeffrey Voas, Maintaining Component-Based Systems, IEEE Software,1998