extensão da ferramenta mvcase com serviços remotos de armazenamento e busca de artefatos de...

Post on 19-Apr-2015

105 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Extensão da Ferramenta MVCASE com Serviços

Remotos de Armazenamento e Busca de Artefatos de

Software

Extensão da Ferramenta MVCASE com Serviços

Remotos de Armazenamento e Busca de Artefatos de

Software

Daniel Lucrédio

Orientador: Dr. Antonio Francisco do Prado

Daniel Lucrédio

Orientador: Dr. Antonio Francisco do Prado

2

RoteiroRoteiro

• Introdução• A Ferramenta MVCASE• Extensão da ferramenta MVCASE• Demonstração• Considerações finais e trabalhos

futuros

• Introdução• A Ferramenta MVCASE• Extensão da ferramenta MVCASE• Demonstração• Considerações finais e trabalhos

futuros

3

IntroduçãoIntrodução

• Reutilização de Software• CASE (Computer-Aided Software

Engineering)– MVCASE

• Mecanismos para reutilização– Armazenamento remoto– Busca– Artefatos de alto nível de abstração

•Modelos

• Reutilização de Software• CASE (Computer-Aided Software

Engineering)– MVCASE

• Mecanismos para reutilização– Armazenamento remoto– Busca– Artefatos de alto nível de abstração

•Modelos

4

O Padrão XMIO Padrão XMI

• Integração entre ferramentas– Integração de dados

•Uso de XML– Representar metadados– Vantagens: Linguagem aberta,

Inúmeras APIs ...

•Baseado no padrão MOF (OMG, 2002b)

• Integração entre ferramentas– Integração de dados

•Uso de XML– Representar metadados– Vantagens: Linguagem aberta,

Inúmeras APIs ...

•Baseado no padrão MOF (OMG, 2002b)

5

O Padrão XMIO Padrão XMI

Pedro

JoãoM0 - DadosM0 - Dados

M1 - ModeloM1 - Modelo

M2 – MetaModelo

M2 – MetaModelo

M3 – Meta-metaModelo

M3 – Meta-metaModelo

ProdutoCliente

Classe

Classe MOF

Farinha

XMI

XMI

XMI

XMI

6

Controle de versõesControle de versões

• Durante o desenvolvimento– Versões de um artefato

• Armazenar e gerenciar versões– Controle de versões ou versionamento– Gerenciamento de Configuração

• CVS– Ferramenta livre– Controle de versões– Controle de acesso– Travamento de arquivos

• Durante o desenvolvimento– Versões de um artefato

• Armazenar e gerenciar versões– Controle de versões ou versionamento– Gerenciamento de Configuração

• CVS– Ferramenta livre– Controle de versões– Controle de acesso– Travamento de arquivos

7

Busca de componentesBusca de componentes

• História– Esquema de Classificação– Outros aspectos– Repositórios distribuídos– Aspectos humanos

• Futuro– Mercado de componentes

• Busca– Grande quantidade de componentes– Desempenho– Segurança– Interoperabilidade

• História– Esquema de Classificação– Outros aspectos– Repositórios distribuídos– Aspectos humanos

• Futuro– Mercado de componentes

• Busca– Grande quantidade de componentes– Desempenho– Segurança– Interoperabilidade

8

A Ferramenta MVCASEA Ferramenta MVCASE

• Modelagem textual e gráfica• Desenvolvimento Baseado em

Componentes Distribuídos• Utilização de Padrões de Projeto• Suporte para Diferentes Modelos de

Componentes• Desenvolvimento de Software

Orientado a Aspectos• Geração de Código

• Modelagem textual e gráfica• Desenvolvimento Baseado em

Componentes Distribuídos• Utilização de Padrões de Projeto• Suporte para Diferentes Modelos de

Componentes• Desenvolvimento de Software

Orientado a Aspectos• Geração de Código

Extensão da Ferramenta MVCASE com Serviços

Remotos de Armazenamento e Busca de Artefatos de

Software

Extensão da Ferramenta MVCASE com Serviços

Remotos de Armazenamento e Busca de Artefatos de

Software

10

Extensão da MVCASEExtensão da MVCASE

•Suporte para XMI•Serviço de Armazenamento Remoto

•Suporte ao controle de versões

•Serviço de busca

•Suporte para XMI•Serviço de Armazenamento Remoto

•Suporte ao controle de versões

•Serviço de busca

11

Suporte para XMISuporte para XMI

•XMI é XML– SAX (Simple API for XML) / DOM

(Document Object Model)

•Manipulação dos metadados– MOF (Meta-Object Facility) (OMG,

2002b)– Interfaces para manipulação – IDL

(Interface Definition Language) (OMG, 2002a)

– JMI (Java Metadata Interface) – Sun Microsystems (DIRCKZE, 2002)

•XMI é XML– SAX (Simple API for XML) / DOM

(Document Object Model)

•Manipulação dos metadados– MOF (Meta-Object Facility) (OMG,

2002b)– Interfaces para manipulação – IDL

(Interface Definition Language) (OMG, 2002a)

– JMI (Java Metadata Interface) – Sun Microsystems (DIRCKZE, 2002)

12

Suporte para XMISuporte para XMI

•MOF/JMI possuem 2 maneiras de acesso aos objetos– Acesso direto (métodos set, get, add,

remove)– Módulo reflexivo

•Permite descobrir o tipo de um objeto, seus atributos, relacionamentos, etc.

•Permite navegar entre os diferentes meta-níveis. É a ligação entre dados e metadados.

•MOF/JMI possuem 2 maneiras de acesso aos objetos– Acesso direto (métodos set, get, add,

remove)– Módulo reflexivo

•Permite descobrir o tipo de um objeto, seus atributos, relacionamentos, etc.

•Permite navegar entre os diferentes meta-níveis. É a ligação entre dados e metadados.

13

msg02

Suporte para XMISuporte para XMI

O2:C

O3:C

O1:C

Object

Mi

Mi+1

Mi+2

Mi-1

Message

getName() O3getType() C

getName() MessagegetReferences() objSender, objReceiver

getName() msg02getSender() O2getReceiver() O3

refMetaObject() MessagerefAllObjects() msg01, msg02

msg01

objSender

objReceiver

14

Suporte para XMISuporte para XMI

•Existem várias implementações JMI– MDR (Netbeans MetaData Repository)

•Existem várias implementações JMI– MDR (Netbeans MetaData Repository)

JMI - Java Metadata Interface

MDR XMI

MetamodeloUML

Edição visualdos modelos

JMI

Componentes

JMI

Gerador decódigo

JMI

Outrasfuncionalidades

JMI

Acesso direto Módulo reflexivo

XMI

15

Resumo Suporte para XMIResumo Suporte para XMI

• Pouca dependência entre módulos• Maior flexibilidade• Extensibilidade• Interoperabilidade com outras

ferramentas

• Pouca dependência entre módulos• Maior flexibilidade• Extensibilidade• Interoperabilidade com outras

ferramentas

16

Serviço de Armazenamento Remoto

Serviço de Armazenamento Remoto

•Repositórios CVS– Cliente CVS – javacvs (Netbeans)– Principais comandos do CVS – plug-in

•Repositórios CVS– Cliente CVS – javacvs (Netbeans)– Principais comandos do CVS – plug-in

MVCASE

XMI

Engenheirode Software

CVSPlugin

CVS

MVCASE

Engenheirode Software

CVSPlugin

XMI

Rede

(a)

(b) (c)

(d)

17

Serviço de Armazenamento Remoto

Serviço de Armazenamento Remoto

• Problema utilização XMI / CVS• XMI define um identificador único para

cada elemento– Porém, ele é único somente dentro de um

documento XMI– Por isso, o identificador XMI é descartado após a

leitura, e gerado novamente na escrita– Documentos diferentes podem conter elementos

diferentes que possuam um mesmo identificador

• Inconsistência• Má formação de documentos XMI• Conflitos inexistentes

• Problema utilização XMI / CVS• XMI define um identificador único para

cada elemento– Porém, ele é único somente dentro de um

documento XMI– Por isso, o identificador XMI é descartado após a

leitura, e gerado novamente na escrita– Documentos diferentes podem conter elementos

diferentes que possuam um mesmo identificador

• Inconsistência• Má formação de documentos XMI• Conflitos inexistentes

18

Serviço de Armazenamento Remoto

Serviço de Armazenamento Remoto

elemento1: id=1elemento2: id=2

A B

elemento1: id=1elemento2: id=2elementoA: id=3

elemento1: id=1elemento2: id=2elementoB: id=3

elemento1: id=1elemento2: id=2elementoA: id=3elementoB: id=3

CVS

19

Serviço de Armazenamento Remoto

Serviço de Armazenamento Remoto

elemento1: id=1elemento2: id=2

A B

elementoA: id=1elemento1: id=2elemento2: id=3

elementoB: id=1elementoC: id=2elemento1: id=3elemento2: id=4

elemento1: conflito!elemento2: conflito!

CVS

20

Serviço de Armazenamento Remoto

Serviço de Armazenamento Remoto

•3 ações– Novo identificador

• Endereço da máquina na rede + hora local + número aleatório

– Utiliza-se este identificador na escrita do XMI, ao invés do sequencial

– Como o identificador é descartado na leitura, utilizou-se outro mecanismo para armazenar este identificador•Tabela intermediária (Hash)

•3 ações– Novo identificador

• Endereço da máquina na rede + hora local + número aleatório

– Utiliza-se este identificador na escrita do XMI, ao invés do sequencial

– Como o identificador é descartado na leitura, utilizou-se outro mecanismo para armazenar este identificador•Tabela intermediária (Hash)

21

Resumo do serviço de armazenamento

Resumo do serviço de armazenamento

•Controle de versões–Gerenciamento de Configuração

•Trabalho cooperativo•Reutilização

•Controle de versões–Gerenciamento de Configuração

•Trabalho cooperativo•Reutilização

22

Serviço de buscaServiço de busca

Mineraçãode dados

Armazenamento

EJB

ContaBancária

Funcionalidade Modelo de

componente

- Mineração de dados- Armazenamento- Segurança- Autenticação

- EJB

- CORBA

Artefato

Facetas

(PRIETO-DÍAZ, 1991)

23

Serviço de buscaServiço de busca

CVS CVS CVS CVS. . .

Webbrowser

ServidorWWW

Base dedados

Indexadorautomático

Interpretador JavaDocInterpretador XMI… (outros interpretadores)

Reutilizador

.xmi

.java

.html.doc

.html

.doc .html

.xmi

.java .xmi

.xmi

.xmi

Estrutura deindexação

métrica

Plug-in daMVCASE

Indexadormanual

24

Serviço de buscaServiço de busca

• Indexação automática– Interpretador Javadoc

• Código Java

– Interpretador XMI• Modelos

•Cinco facetas– Pacote– Primeira letra– Tipo– Tipo do interpretador utilizado– Repositório

• Indexação automática– Interpretador Javadoc

• Código Java

– Interpretador XMI• Modelos

•Cinco facetas– Pacote– Primeira letra– Tipo– Tipo do interpretador utilizado– Repositório

25

Serviço de buscaServiço de busca

• Base de dados populada– Facetas

• Busca por navegação– HTML Browser

• Busca por consulta– Palavras-chave

• Busca por similaridade (LUCRÉDIO et al., 2004)– Métricas de semelhança– Estrutura de indexação métrica

• Base de dados populada– Facetas

• Busca por navegação– HTML Browser

• Busca por consulta– Palavras-chave

• Busca por similaridade (LUCRÉDIO et al., 2004)– Métricas de semelhança– Estrutura de indexação métrica

26

Serviço de buscaServiço de busca

• Métrica de similaridade– Quão semelhantes são dois artefatos– Informações contidas na base de

dados (facetas)

•K-Metric– Dados dois artefatos…– A distância entre eles é…

• O número mínimo de inserções e remoções necessárias para tornar seus conjuntos de palavras-chave iguais

• Métrica de similaridade– Quão semelhantes são dois artefatos– Informações contidas na base de

dados (facetas)

•K-Metric– Dados dois artefatos…– A distância entre eles é…

• O número mínimo de inserções e remoções necessárias para tornar seus conjuntos de palavras-chave iguais

27

A K-MetricA K-Metric

• Exemplo (3 componentes Java, 3 facetas)• Button

– Tipo de dados = {Graphic, Button, Event}– Tipo do componente = {Visual}– Ações = {Create, Send}

• Menu– Tipo de dados = {Graphic, Menu, Event}– Tipo do componente = {Visual}– Ações = {Create, Manage, Send}

• CardLayout– Tipo de dados = {Layout, Graphic}– Tipo do componente = {Visual}– Ações = {Manage}

• Exemplo (3 componentes Java, 3 facetas)• Button

– Tipo de dados = {Graphic, Button, Event}– Tipo do componente = {Visual}– Ações = {Create, Send}

• Menu– Tipo de dados = {Graphic, Menu, Event}– Tipo do componente = {Visual}– Ações = {Create, Manage, Send}

• CardLayout– Tipo de dados = {Layout, Graphic}– Tipo do componente = {Visual}– Ações = {Manage}

28

A K-MetricA K-Metric

• Exemplo (3 componentes Java, 3 facetas)• Button

– Tipo de dados = {Graphic, Button, Event}– Tipo do componente = {Visual}– Ações = {Create, Send}

• Menu– Tipo de dados = {Graphic, Menu, Event}– Tipo do componente = {Visual}– Ações = {Create, Manage, Send}

• CardLayout– Tipo de dados = {Layout, Graphic}– Tipo do componente = {Visual}– Ações = {Manage}

• Exemplo (3 componentes Java, 3 facetas)• Button

– Tipo de dados = {Graphic, Button, Event}– Tipo do componente = {Visual}– Ações = {Create, Send}

• Menu– Tipo de dados = {Graphic, Menu, Event}– Tipo do componente = {Visual}– Ações = {Create, Manage, Send}

• CardLayout– Tipo de dados = {Layout, Graphic}– Tipo do componente = {Visual}– Ações = {Manage}

Distância = 3

Distância = 6

29

Busca por similaridadeBusca por similaridade

• Estrutura de indexação métrica– Consulta por vizinhança– Consulta por abrangência

• Estrutura de indexação métrica– Consulta por vizinhança– Consulta por abrangência

DemonstraçãoDemonstração

Considerações Finais e Trabalhos Futuros

Considerações Finais e Trabalhos Futuros

32

Trabalhos relacionadosTrabalhos relacionados

• Projeto Agora (SEACORD;HISSSAM;WALLNAU, 1998)– Descoberta– Introspecção

• (HUMMEL;ATKINSON, 2004)– Descoberta– Execução

• XMI: ArgoUML e Poseidon• (OLIVEIRA;MURTA;WERNER,2004)

– Controle de versões utilizando MOF

• Projeto Agora (SEACORD;HISSSAM;WALLNAU, 1998)– Descoberta– Introspecção

• (HUMMEL;ATKINSON, 2004)– Descoberta– Execução

• XMI: ArgoUML e Poseidon• (OLIVEIRA;MURTA;WERNER,2004)

– Controle de versões utilizando MOF

33

Trabalhos futurosTrabalhos futuros

• MDD (Model-Driven Development)– Rapidez de desenvolvimento,

manutenibilidade, flexibilidade e ...

• Reutilização– (KRUEGER, 1992), (GRISS, 1995), (FRAKES;

ISODA, 1994), (JACOBSON; GRISS; JONSSON, 1997)

– Reutilização em alto nível

• Idéias MDD + Tecnologias de apoio (MDA - OMG) + MVCASE

• MDD (Model-Driven Development)– Rapidez de desenvolvimento,

manutenibilidade, flexibilidade e ...

• Reutilização– (KRUEGER, 1992), (GRISS, 1995), (FRAKES;

ISODA, 1994), (JACOBSON; GRISS; JONSSON, 1997)

– Reutilização em alto nível

• Idéias MDD + Tecnologias de apoio (MDA - OMG) + MVCASE

34

Trabalhos futurosTrabalhos futuros

• Na MDA (Model-Driven Architecture)– Conceito chave: Transformação– Embutidas na ferramenta– Programação

• QVT (OMG, 2002c)– Linguagem para consulta e transformações– MOF

• Ferramenta para transformações– MDA– Refactoring

• Na MDA (Model-Driven Architecture)– Conceito chave: Transformação– Embutidas na ferramenta– Programação

• QVT (OMG, 2002c)– Linguagem para consulta e transformações– MOF

• Ferramenta para transformações– MDA– Refactoring

35

Trabalhos futurosTrabalhos futuros

•MDA– UML não é suficiente (THOMAS, 2004),

(FOWLER, 2004)– Linguagens mais específicas

•Aproveitar a infra-estrutura da MVCASE– META-CASE– Estudos comparativos

•MDA– UML não é suficiente (THOMAS, 2004),

(FOWLER, 2004)– Linguagens mais específicas

•Aproveitar a infra-estrutura da MVCASE– META-CASE– Estudos comparativos

36

Trabalhos FuturosTrabalhos Futuros

•Mecanismo de busca mais elaborado– Descrições textuais

•Avaliação quantitativa– Métricas reutilização, facilidade de

intercâmbio, etc...

•Queda de desempenho– MDR– Outros meios de acesso aos metadados

•Mecanismo de busca mais elaborado– Descrições textuais

•Avaliação quantitativa– Métricas reutilização, facilidade de

intercâmbio, etc...

•Queda de desempenho– MDR– Outros meios de acesso aos metadados

FimFim

top related