extensão da ferramenta mvcase com serviços remotos de armazenamento e busca de artefatos de...
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