mvv - arquitetura da máquina virtual virtuosi

Post on 12-Jan-2016

25 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

MVV - Arquitetura da Máquina Virtual Virtuosi. Carlos José Johann Kolb Programa de Pós-Graduação em Informática Aplicada Centro de Ciências Exatas e de Tecnologia Pontifícia Universidade Católica do Paraná Outubro de 2004. arquitetura. Visão geral. metamodelo. class Pessoa { - PowerPoint PPT Presentation

TRANSCRIPT

1 de 26

MVV - Arquitetura da Máquina MVV - Arquitetura da Máquina Virtual VirtuosiVirtual Virtuosi

Carlos José Johann KolbCarlos José Johann Kolb

Programa de Pós-Graduação em Informática Programa de Pós-Graduação em Informática AplicadaAplicada

Centro de Ciências Exatas e de TecnologiaCentro de Ciências Exatas e de Tecnologia

Pontifícia Universidade Católica do ParanáPontifícia Universidade Católica do Paraná

Outubro de 2004Outubro de 2004

2 de 26

class Pessoa {

composition String nome;association String endereco;constructor make( String pN, ...) exports all {nome = pN;

...}

method void setNome( String n ) exports all {nome = n;

}

action obeso( ) exports all { if ( sexo == masculino) {v = Integer.make(100)

} ...}}

Visão geral Visão geral

class Pessoa {

composition String nome;association String endereco;constructor make( String pN, ...) exports all {nome = pN;

...}

method void setNome( String n ) exports all {nome = n;

}

action obeso( ) exports all { if ( sexo == masculino) {v = Integer.make(100)

} ...}}

Compilador Máquina VirtualVirtuosi

arquitetura

metamodelo

código fonte das classes de uma aplicação árvores de programa

que compõem a aplicação

3 de 26

Código fonte escrito em AramCódigo fonte escrito em Aram

class Pessoa {composition String nome;association String endereco;constructor make( String pN, ...) exports all {

nome = pN;...

}method void setNome( Pessoa outraPessoa ) exports all {

nome = n;if ( outraPessoa.obeso( ) ){

...}

}action obeso( ) exports all {

if ( sexo == masculino) {v = Integer.make(100);return execute

} else { return skip; }}

}

arquitetura

4 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

class Pessoa {composition String nome;association String endereco;...

5 de 26

Bloco de DadosBloco de Dadosarquitetura

6 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

class Pessoa {constructor make( String pN, ...) ...method void setNome( Pessoa outraPessoa ) ...action obeso( ) ...

7 de 26

Comando de Desvio Condicional e uma AçãoComando de Desvio Condicional e uma Ação

arquitetura

8 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

...v = Integer.make(100);

objetoTal.metodoTal();

valor = objX.metodoX();...

9 de 26

Árvore de ProgramaÁrvore de Programaclass Pessoa { composition Integer posicao; method void setPosicao(Integer p) exports all { posicao = p; }}

arquitetura

10 de 26

Uma aplicação é composta de muitas Uma aplicação é composta de muitas árvores de programaárvores de programa

arquitetura

11 de 26

Pontos de ligação entre árvores de Pontos de ligação entre árvores de programaprograma

arquitetura

12 de 26

Referências indiretas através de Tabelas de Referências indiretas através de Tabelas de ManipulaçãoManipulação

arquitetura

13 de 26

pessoa

integer

soma

pessoa

Carga das árvores de programa pela Carga das árvores de programa pela MVVMVV

arquitetura

14 de 26

Uma instância da Máquina Virtual VirtuosiUma instância da Máquina Virtual Virtuosi

class A {

...

constructor ca( ) exports all {

this.ma();

}

method metodoA( ) exports all {

...

}

}

arquitetura

15 de 26

Uma atividade navega sobre a árvore de Uma atividade navega sobre a árvore de programaprograma

arquitetura

16 de 26

Visão Geral da Arquitetura da VirtuosiVisão Geral da Arquitetura da Virtuosi

arquitetura

17 de 26

Protótipo e NúmerosProtótipo e Números

JavaJava Testes automatizadosTestes automatizados

Testes para criação de árvoresTestes para criação de árvores Testes para a interpretação das árvoresTestes para a interpretação das árvores

Cento e quarenta e uma (141) Cento e quarenta e uma (141) classes dividas em dois pacotes: core classes dividas em dois pacotes: core (47) e meta (94);(47) e meta (94);

Trinta e uma classes de teste;Trinta e uma classes de teste;

implementação

18 de 26

ContribuiçãoContribuição

Serve como base para um ambiente Serve como base para um ambiente distribuído de execução de software distribuído de execução de software orientado a objetos – o ambiente orientado a objetos – o ambiente VirtuosiVirtuosi

Formaliza o metamodelo da Virtuosi que Formaliza o metamodelo da Virtuosi que define e limita os conceitos de define e limita os conceitos de orientação a objetos implementados por orientação a objetos implementados por qualquer linguagem de programação qualquer linguagem de programação que deseje ser compatível com o que deseje ser compatível com o ambiente Virtuosiambiente Virtuosi

conclusão

19 de 26

Contribuição CientíficaContribuição Científica

Valida o uso de árvores de programa como Valida o uso de árvores de programa como representação intermediária para representação intermediária para software orientado a objetosoftware orientado a objeto

Valida o uso de tabelas de manipulação Valida o uso de tabelas de manipulação para manter referências entre árvores de para manter referências entre árvores de programa carregadas em memória programa carregadas em memória (relacionamentos inter e intra-classes)(relacionamentos inter e intra-classes)

valida o uso de tabelas de manipulação valida o uso de tabelas de manipulação para manter referências entre objetos para manter referências entre objetos instância de classes de aplicaçãoinstância de classes de aplicação

conclusão

top related