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

37
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

Upload: internet

Post on 19-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 2: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 3: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 4: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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)

Page 5: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 6: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 7: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 8: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 9: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 10: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 11: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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)

Page 12: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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.

Page 13: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 14: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 15: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 16: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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)

Page 17: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 18: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 19: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 20: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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)

Page 21: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 22: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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)

Page 23: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 24: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 25: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 26: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 27: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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}

Page 28: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 29: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 30: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

DemonstraçãoDemonstração

Page 31: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

Considerações Finais e Trabalhos Futuros

Considerações Finais e Trabalhos Futuros

Page 32: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 33: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 34: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 35: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 36: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

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

Page 37: Extensão da Ferramenta MVCASE com Serviços Remotos de Armazenamento e Busca de Artefatos de Software Daniel Lucrédio Orientador: Dr. Antonio Francisco

FimFim