Você está na página 1de 20

Machine Translated by Google

Jonathan Sprinkle1, Bernhard Rumpe2, Hans Vangheluwe3 e Gabo

1
University of Arizona, Tucson, AZ, EUA
sprinkle@ECE.Arizona.Edu RWTH
2
Aachen University, Alemanha http://www.se-
rwth.de McGill University, Montreal,
3
Canadá hv@cs.mcgill.ca Vanderbilt
University, Nashville, TN, EUA
4
gabor.karsai@vanderbilt.edu

Abstrato. Este capítulo discute o estado atual da arte e os desafios de


pesquisa crescentes para metamodelagem. Na visão de ponta sobre
metamodelagem, revisamos abordagens, abstrações e metamodelagem de
ferramentas, avaliamos com relação a sua expressiv investigamos qual(is)
papel(is) os metamodelos podem desempenhar em tempo de execução e
como mantics podem ser atribuídos a metamodelos e as linguagens de mo
ling de domínio específico que eles poderiam definir. Na seção de desafios
emergentes, metamodelagem, destacamos questões de pesquisa
relacionadas ao gerenciamento de complexidade, consistência e evolução
de metamodelos, e como a semântica dos metamodelos afeta cada um deles

3.1 Metamodelação: Estado da Arte

Os modelos são ferramentas poderosas para expressar a estrutura, o comportamento


e outros em matemática, cada uma das ciências exatas e em todas as áreas da
engenharia os modelos são muito comuns, uma definição explícita de uma linguagem
de modelagem a manipulação explícita de seus modelos está intimamente ligada ao
computador ba Poder adicional pode ser obtido por definição explícita e ba pulação
computacional de modelos, por exemplo, em CAD, engenharia de controle, curso de
matemática algébrica e ciência da computação. Para poder manipular modelos, sua
linguagem deve ser especificada como modelo desses modelos – metamodelos.
Nesta seção descreve-se o estado da arte da metamodelagem, incluindo as estrutura
dos metamodelos, bem como a metamodelagem de sistemas de linguagens onde ap

3.1.1 Conceitos em Metamodelação

Metamodelagem (literalmente, “além da Modelagem”) é a Modelagem de seu uso


mais comum, metamodelos descrevem a estrutura permitida que os modelos devem
aderir [1]; embora fora do escopo deste capítulo, os modelos m descrevem
formalmente os metamodelos, pois eles definem o núcleo ab

www.se-rwth.de/publications
taton o te sintaxe o moes metamoes também pode ser usado para ene te de modelos,
Machine Translated by Google
como discutiremos mais tarde. A abordagem em camadas para modelagem (thr
tamodelling) é representada na Figura 3.1.

Meta-metamodelo camada M0

define

conforme a

Metamodelo camada M1

define

conforme a

Modelo camada M2

resumos

implemento

Artefatos semânticos
(por exemplo, código, simulação) camada M3

Fig. 3.1. A arquitetura de metamodelagem de quatro camadas [5, 2, 6]. Alguns publicam
a numeração dessas camadas, mas nós usamos essa numeração, pois as plataformas
podem criar camadas de profundidade arbitrária (por exemplo, M3 pode de fato ser
modificado em outra camada M2).

Na abordagem de quatro camadas (generalizada para n-camadas no MDA, a


seguir) os artefatos em cada camada se conformam e/ou são abstraídos pela camada
abstrata adjacente (neste caso, a camada com artefatos semânticos subscritos
inferiores no M3 camada são abstraídas em modelos da camada que por sua vez se
conformam aos metamodelos da camada M1 . À medida que essas abstrações são
percorridas, o papel de cada camada de abstração muda.
Por exemplo, um modelo é uma codificação de algum aplicativo ou abstração de
design. Os metamodelos restringem a estrutura (e talvez dos modelos, mas os
metamodelos são relevantes para todos os projetos, não apenas um exemplo
específico) Um exemplo amplamente conhecido disso é que um documento XML está
em conformidade com a definição de tipo (seja um esquema DTD ou XSD), mas dado
apenas um sch não é possível recuperar um arquivo XML específico.Ao modelar a
linguagem tamodel, basicamente, precisa ser considerado um modelo da linguagem sy
abstrata.
Na Figura 3.1 mencionamos artefatos semânticos. Estes são dados, arquivos em
execução, etc. que têm algum significado em outro contexto, por exemplo, pelo usuário.
considero muitos como outra representação sintática a ser desenvolvida. Para
Machine Translated by Google
que uma abordagem de metamodelagem tenha um impacto significativo desses
artefatos, eles devem eventualmente ser produzidos no processo de design; O
processo de dellagem é melhor classificado como documentação sofisticada.

Metamodelação: um processo de design


Geralmente, um processo de design que utiliza metamodelagem primeiro envolve
um dos conceitos de algum domínio ou aplicativo no apropriado (estes são
definidos pelo meta-metamodelo M0), usando o metamodelo trabalhando na
camada M1 . Os metamodelos podem aplicar várias restrições arquetípicas à
forma como os modelos são construídos, conforme mostrado na Tabela 3.1. O
informante verá uma semelhança dramática desses conceitos com o modelo de
classe em design de software. Na verdade, a representação visual escolhida para
muitos ambientes de modelagem de objetos e de linguagens de metamodelagem
é mais parecida com os diagramas de classe UML.

Tabela 3.1. Abstrações arquetípicas usadas em metamodelagem (adaptadas para

arquetípico Desc
Conceito
Aula Classes específicas de entidades que existem em um determinado
sistema ou modelos de domínio são as próprias entidades e podem
conter entidades. Entidades são instâncias de classes. Classes
(portanto, podem ter atributos.
Associação Associações binárias e n-árias entre classes (e entidades) Associaçã
Especialização binária entre classes denotando um relacionamento IS-A Associação
Hierarquia binária entre classes denotando “contenção de agregação”. Realiza
encapsulamento e informações Uma expressão que define o co
Limitação (computável estaticamente) de parte do modelo : somente se todas
essas restrições avaliarem o modelo é chamado de “bem formado”.

Uma descrição visual do processo de projeto de metamodelagem pode ser


encontrada na Figura 3.2. Nesta figura, a Interface de metamodelagem
corresponde à camada M1 , e o Ambiente de Modelagem corresponde às
ferramentas da camada enquanto o Domínio de Aplicação corresponde às
ferramentas da camada M3 . À medida que o cátion evolui, as alterações não
são feitas na camada M3 , mas na camada mor (M2). Da mesma forma, como o
Ambiente de Modelagem requer novos tipos modificados no modelo do ambiente
de modelagem (os Metamodelos). Conforme discutimos na Seção 3.1.5,
metamodelos que especificam lang também denotam a sintaxe concreta para
elementos de linguagem e restringem a linguagem no metamodelo.
Meu
Interface de metamodelagem
Metamodelo
Machine Translated by Google Evolução

Metamodelo
Especificações

Ambiente de modelagem

Construtor de modelo

Metamodelo modelos
Semântica
Tradução
Interpretação

Mapeamento semântico
Funções

Aplicativo
Evolução
Aplicativo. Aplicativo. Aplicativo.

1 2 N

Domínio de aplicativo

Fig. 3.2. O processo de design de metamodelagem

Um exemplo concreto pode ajudar a entender melhor o processo de


metamodelos. Vamos considerar o domínio de aplicação (M3) de comandos
eletrônicos (ECUs) para aplicações automotivas. A ferramenta (M2) deve
permitir que os co sejam conectados entre si, e para que os componentes
sejam definidos de operações matemáticas em suas múltiplas conexões de
entrada/saída também deve haver restrições que impeçam as saídas de
dois componentes conectados entre si, por exemplo. A interface de
metamodelagem será utilizada para criar a ferramenta, M2, através da
especificação do abstra que permite modelar este tipo de aplicações. O
Metamodel t sintetiza a ferramenta, M2, e a interpretação semântica dos
modelos construídos gera, por exemplo, o código embutido para cada
componente, uma execução sc de componentes em um sistema operacional
em tempo real, registrando finalidades de depuração divertidas e outros
recursos necessários no ECUs de aplicação.
Caso um determinado design (M3) deva ser alterado, o t criado em M2
deve ser modificado e, em seguida, a interpretação semântica deve ser
realizada novamente. Isso é chamado de evolução do aplicativo. Se o
domínio mudar, talvez por meio de restrições adicionais, novos tipos
disponíveis ou mudanças na filosofia de design, então a evolução do
metamodelo será executada, a fim de alterar o ambiente de design M2.
Conforme a figura 3.2, M2 deve ser evoluído alterando a especificação do
metamodelo e executando a tradução do metamodelo novamente.
nomenclatura diferente 8. Como exemplo, a ocultação de formação abstrata
Machine Translated by Google
undamental” é geralmente implementada usando contenção (como em estados hi).

Uma vez definidos os metamodelos no processo de design, algum processo


trans gera os artefatos semânticos necessários para continuar no de pode ser a
geração de esqueletos de software que implementam uma classe di a síntese de
arquivos de configuração que permitem o uso de um mod genérico Modeladores
textuais pode usar os metamodelos para gerar configurações f e lexers para operar
em arquivos de texto que estejam em conformidade com o metam definido. projeto
baseado. Uma vez que o design do design do aplicativo é codificado em termos
de meta-tipos (usando ferramentas do M1 la transformação das instâncias desses
meta-tipos no semântico é realizada. No restante desta seção, discutiremos alguns
estados s Abordagens de última geração para metamodelagem.

3.1.2 Meta Object Facility (MOF)

Central para o projeto e implementação da superestrutura de infrastrutura UML 2.0


é o conceito de transformações de modelo entre as várias abstrações. A fim de
permitir essas transformações (modelo para instâncias mo, objeto para objeto),
algumas especificações adicionais devem ser usadas para criar a estrutura desses
objetos - e isso é denominado Meta-Obje (MOF).

O objetivo da metamodelagem por meio do MOF é descrever o modo de várias


camadas usando abstrações comuns de modelagem. Isso permite o acesso a
modelos em todas as camadas usando reflexão, padroniza o acesso por meio de
uma API comum e permite a serialização de modelos por meio do padrão. A
especificação do padrão MOF em si é um documento OMG bem descrito que rege
o MOF (consulte especialmente [9]), e não descrevemos completamente esses
formalismos e termos aqui. No entanto, iremos desvendar os conceitos de
modelagem usados pelo MOF para realizar a metamodelagem, e iremos a partir da
perspectiva do Essential MOF (EMOF), conforme descrito ne

3.1.3 MOF Essencial (EMOF)

Um grande benefício das linguagens de modelagem é incluir formas concretas que


facilitam a modelagem de conceitos específicos. Para a metamodelagem, a
quantidade significativa de liberdade na especificação pode levar à complexidade
que os modelos precisam ser atualizados. Assim, o uso de um subconjunto
essencial de uma linguagem delling pode isolar os modelos criados de mudanças no
essência, o que apresentamos er s te metamoe o .
Machine Translated by Google

Reflexão, Identificadores e Extensão Os


pressupostos básicos para usar EMOF (e CMOF) incluem a capacidade de
reflexão, extensão e identificadores. Reflexão é a capacidade de determinar
seu tipo (classe ou “metaobjeto” nos metadados associados ao vocabulário
EMOF). Extensão é a capacidade de um objeto ser anotado com pares nome-
valor. Isso permite uma certa quantidade de processamento de objetos
específicos, permitindo que um objeto crie um novo arquivo de dados que possa
usar posteriormente, sem criar um novo tipo. Observe que, quando usado,
apenas esse objeto recebe esses novos pares nome-valor, eles se propagam
para todos os objetos desse tipo. Por fim, os identificadores são uma maneira
de manter a exclusividade, independentemente de quaisquer valores com os
quais seja insta quaisquer extensões com as quais seja anotado.
Em essência, dois desses três conceitos correspondem a atributos-chave
das linguagens orientadas: um objeto é único, um objeto conhece seu tipo. A
tensão) é uma nova introdução aos modelos quando comparados ao l textual,
pois para estender uma classe em uma linguagem textual requer tipo de criação.

Classes EMOF Os
arquétipos fundamentais da metamodelagem são facilmente visíveis na Figura
(parede à Tabela 3.1). No entanto, como este é o metamodelo do MOF, ele foi
ligeiramente reescrito. O MOF permite que objetos de classe (que herdam de
objetos de tipo classe poderão conter recursos de propriedade e operação, os
recursos de propriedade e operação que pertencem a uma classe são derivados
de objetos de parâmetro ou associados a objetos de propriedade.
Deve ficar claro para o leitor, ao examinar os tipos de at este metamodelo,
que um dos principais objetivos do MOF é a modelagem de software mo é, o
objeto Class tem um membro de dados específico isAbstract, que é comumente
associado à arquitetura de software. Nem todas as metatécnicas são usadas
simplesmente como abstrações para modelos de software, como veremos na
Seção 3.1.5.
Dada a ampla aceitação do EMOF como uma estrutura de metamodelagem,
estão alguns dos principais recursos e benefícios do EMOF. É possível serializar
modelos usando o padrão XMI que o acompanha (que fornece o mapa de
EMOF para XML). Há também mapeamentos de EMOF para Java, gerando
arquiteturas de software e APIs a partir dos modelos. Usando as formas, também
é possível gerar operações reflexivas em software, manipulação de elementos
de metamodelo.
Machine Translated by Google
0..1 atributopropriedade Propriedade isReadOnly : 1
aula {pedido} 0..* Boolean = false default : String
[0..1] isComposite : Boolean = 0..1
false isDerived : Boolean = oposto
false isID : Boolean

TypedElement MultiplicityElement TypedElement MultiplicityEleme

0..*
superClasse

Operação
0..1 propriedadeParâmetro Parâmetro
{pedido} 0..*
0..1 OwnOperation
aula {pedido} 0..*
0..* 0..* Tipo
levantadaException

Fig. 3.3. O metamodelo EMOF [10]

3.1.4 Estrutura de Modelagem do Eclipse (EMF)

Da mesma forma que o EMOF, o Eclipse Modeling Framework (EMF) é um modelo


de construção de estruturas de dados. O EMF, por estar vinculado a uma parte
(Eclipse), apresenta alguns benefícios adicionais na medida em que pode gerar re e
aplicativos personalizados para o Eclipse. Na raiz, ainda é bastante familiar para criar
modelos de software. EMF é um subconjunto restrito de conceitos de classe UML, ou
seja, as definições de classes, atributos pertencentes a tho e relações entre classes.

Acompanhando o conjunto de ferramentas EMF, há um conjunto de plug-ins que


permitem a reutilização de modelos. Entre as mais significativas estão as ferramentas
que permitem editar o EM (e customizar os editores do EMF) e sintetizar o software do
EM. Essas são discutidas mais adiante nas pesquisas de linguagens de metamodelage
bem como a documentação do EMF.
A popularidade do pacote de ferramentas Eclipse traz consigo uma infinidade de
plug-ins e EMF, plug-ins e ferramentas que usam a serialização que vem com o uso
de padrões XMI e o intercâmbio implícito de ferramentas que é possível aceitação
popular da plataforma Eclipse.
Existe uma estrutura de modelagem complementar para a visualização de dels,
chamada Graphical Modeling Framework (GMF), que é a suíte de ferramentas p
Eclipse. GMF usa o Graphical Editing Framework (GEF para fazer interface com
modelos de domínio graficamente e pode alavancar tamodels existentes para inicializar
a definição de linguagem visual em GMF. Algumas modelagens específicas de
domínio, como especificação de restrição e multisualização, ainda não fazem parte do
o pacote de ferramentas GMF, mas não é uma ferramenta para modelagem de
aplicativos baseados em Java.
, .
Machine Translated by Googledos usos comuns de EMOF e EMF distingue as ferramentas MetaGME taEdit+
[13] e AToM3[14, 15]. Um uso comum de linguagem ge para sintetizar linguagens
de domínio específico [16], e um rico legado de aplicação nesta área pode ser
encontrado nos procedimentos de [17, 18, 19, 20], e também a metamodelagem
de linguagem adia a representação e o uso para a la editor de modelo. Editores
metaconfiguráveis, como GME, AToM3 e M, são capazes de reutilizar a mesma
estrutura de editor para muitos l O GEF do Eclipse também permite a reutilização
de várias configurações de editor único. H uso da linguagem (alternativamente,
uso do ambiente de modelagem), as questões de sintaxe e visualização devem
ser abordadas. Discutimos isso na Seção Uma propriedade adicional encontrada
na metamodelagem de linguagens é t para especificar a visualização seletiva
(também conhecida como aspectos ou propriedades do ponto de vista permitem
a filtragem do espaço de visualização para um design intuitivo, conforme
particionado em tempo de design. Um exemplo disso pro visto na Figura 3.4, onde
os subconjuntos de cada objeto são visíveis, dependendo do aspecto em uso.
Neste exemplo particular do processamento de sinal em certos blocos
computacionais podem compartilhar parâmetros, mas esses blocos estão
funcionalmente conectados. Para fins de projeto, pode ser conveniente o que os
blocos computacionais compartilham os mesmos parâmetros, mas se isso fosse
mostrado na mesma tela das conexões funcionais, seria difícil entender o diagrama

A propriedade final que discutimos com relação à modelagem de linguagem


não encontrada na modelagem de dados é a especificação de restrição dentro do
m Restrições podem existir para certos aplicativos de modelagem de dados, mas
em um nível de medida, tais restrições podem impedir ou restringir a capacidade
de criar certas construções que são conhecidos a priori por não terem uma
interpretação bem definida (ou talvez uma interposição semântica não permitida,
mas conhecida). Essas restrições podem ser especificadas em termos de OCL
(Object Language) [22].
Um uso comum de restrições é permitir metamodelos simples específicos em
pequenas exclusões de seu uso. Por exemplo, um metamodelo pode definir co
entre portas de objetos contêineres (como o mostrado na Figura 3.6a). uma
restrição pode impedir a conexão de duas portas de saída uma à outra, caso
essas portas de saída não estejam em níveis diferentes de hierarquia (ou seja,
passando a porta de saída de um pai val). Tal restrição pode ser escrita em OCL c

OutPort.attachingConnections( BufferedConnection )->forAll( c |


c.connectionPoints( "src" )->theOnly( ).target( ).parent( ).par
c.connectionPoints( "dst" )->theOnly( ).target( ).parent( ) )

Isso afirma concisamente que, se um objeto OutPort participar de um tipo


BufferedConnection, o avô do src mu pai do dst. Isso evita que dois objetos
OutPort do mesmo C
Inp

Machine Translated by Google Inp Fora


Inp
Fora
Inp

Inp
Fora afundar

p2 p4
source2

Inp Fora

p5

(a) Estrutura do fluxo de sinal.

param2

Inp c1 Inp
Inp

source1 p1 p3
Fora

Inp c2 Inp
Inp
afundar

source2 p2 p4

c3

p5
param1

(b) Parâmetros compartilhados do sistema.

Fig. 3.4. Essas duas figuras mostram como os mesmos elementos estruturais podem ter
aspectos diferentes para visualizar os elementos do sistema de maneira eficaz. Em (a), é
dado o st relacionado ao fluxo de sinal. Em (b) os parâmetros compartilhados entre c são
facilmente vistos - e facilmente alterados.

de se conectar através deste tipo de associação. As restrições fornecem meios para


impedir que o modelador crie modelos mal formados, enquanto uma linguagem fácil de
compilar.

3.1.6 Metamodelação Textual

A metamodelagem é útil em linguagem textual, bem como gráfica/visual, fato, certamente


há casos em que uma linguagem textual é preferida [2 considerando os métodos
tradicionais de especificação de gramáticas (por exemplo, Ba Form [24] e BNF Estendido),
é evidente que tais especificações a sintaxe abstrata de uma linguagem. As ferramentas
que geram analisadores e tais gramáticas (como antlr, bison, etc.) são os análogos textuais
aos geradores de árvores sintáticas encontrados em ambientes de modelagem [25]. A
aplicação dos tipos de linguagem de programação à sua semântica é bem estudada [26],
um tratamento de sua especificação pode permitir entendimentos sutis.
, ,
Machine Translated by Googlequestione como especificar melhor a sintaxe concreta durante o projeto da
linguagem metamodellin, bem como como são as sintaxes abstrata e concreta
Para linguagens de modelagem textual, alguma sintaxe concreta é necessária
para agilizar a construção do modelo. Embora os desenvolvedores de linguagem
visual estejam entre os proponentes mais vocais da modelagem, há linguagens
específicas de domínio r textual significativas, por causa de sua melhor eficiência
definição de linguagem e uso [28].
Para linguagens de modelagem gráfica, uma sintaxe concreta (padrão) pode
ser dimensionada diretamente do metamodelo, desde que um concreto padrão
seja fornecido para cada tipo arquetípico. A ferramenta GME, por exemplo, tem
classificação genérica definida pelo meta-metamodelo, que fornece um syn
concreto padrão substituído no nível de metamodelagem. Sobrescrever a sintaxe
concreta de forma direta (muitas ferramentas como Simulink e LabVIEW
permitem que isso possa ser feito no nível M2 ou M1 . Há questões importantes
a serem resolvidas com relação à semântica do nível de alteração da sintaxe
concreta, especialmente para ferramentas que são de domínio específicos por
natureza e profundo entendimento intuitivo de modelos visuais; discutimos essas
questões porque ferramentas como DiaGen [29] utilizam conceitos semelhantes
aos de atributos de visualização GME para os nós e gráficos de arestas que codif

Especificação de sintaxe concreta de nível de metamodelagem.


A definição de uma sintaxe concreta específica é possível para a linguagem
gráfica, especificando um glifo ou gerador de glifos que fornecerá uma
visualização específica do contexto) para um tipo específico na linguagem.
Então, para sempre deste tipo que é visualizado, esta imagem (ou a imaged
produzida pelo gerador t) substitui o valor padrão. Isso é muito útil para linguagen
visuais específicas simples, onde itens de domínio concretos podem ser
compostos com outros itens de domínio.

Especificação de sintaxe concreta de nível de modelagem.


Redefinir a aparência de um modelo, ou seja, a sintaxe concreta, também é
possível um nível de delling, embora não tão difundido quanto substituir um nível
de tamodelling. Considerando que a redefinição no nível de metamodelagem de
cada instância criada, a redefinição no nível de modelagem substitui uma
instância particular, permitindo assim formas individuais para cada mento. Essas
substituições são, até certo ponto, também questionáveis devido ao fato de (por
algum motivo) o designer do metamodelo ter escolhido um sistema concreto
diferente. Esta sintaxe concreta está sendo substituída? Isso vai confundir outro
modo deste modelo? Qualquer confusão nessas áreas reduzirá o impacto
positivo da utilização de linguagens de modelagem para especificar um projeto,
já que o novo uso é incapaz de distinguir entre a semântica da linguagem e o
visual de outro modelador.
idiomas, ou para tornar a programação ou moeing mais fácil. Na interpretação
Machine Translated by Google
mântica de uma linguagem, no entanto, existe a possibilidade de que a sintaxe
concreta possa ser usada em definições semânticas, ou que diferentes da sintaxe
concreta tornem a representação visual de um modelo ambíguo. A incapacidade de
distinguir representações ambíguas a partir do modelo é mostrada na Figura 3.5.

Tipo 1 Tipo 1

Type2 Type2
isAbstract : Boolean = false isAbstract : Boolean = false

(a) O tipo de linha é (b) O tipo de linha está


herança, sintaxe concreta em herança, mas o ponto
padrão. final mudou para “diamante”.

Fig. 3.5. Alterar a sintaxe concreta no tempo de modelagem pode levar à


confusão, a sintaxe concreta padrão para herança é usada. Em (b) um
modelador tem c aparência da linha, mas a interpretação semântica ainda será

É uma boa prática, geralmente, não usar o mapeamento de det de sintaxe


concreta da semântica, mas depender inteiramente da sintaxe abstrata. semântica
como possíveis falhas de design no modelo, linguagem ou compilador de linguagem

3.1.8 Sistema de Tipos

Os sistemas de tipos em linguagens de programação tradicionais são estabelecidos


em tempo de design. Em linguagens de programação (digitadas), bem como em
matemática, basicamente uma descrição para um conjunto de valores junto com um
conjunto de operações para manipular esses valores. No cenário de metamodelagem,
essa abordagem pode ser adaptada para estruturas de metatipo. Diferente da
abordagem de programação, as abordagens de metamodelagem tendem a mesclar a
digitação e o O desafio de definir um tipo dentro do modelo e aplicá-lo no tempo pode
ser enfrentado por meio do uso de protótipos e clones, conforme discutido Para os
tipos de linguagem de modelagem, o modo de tipo mais comum de por meio da
especificação em um metamodelo (conforme descrito na Seção 3.1. este modo de
definição, as abstrações ou definições tradicionais orientadas a objetos podem ser
aproveitadas na linguagem de modelagem. Isso inclui herança, contenção e
associação. Propagação do modo
O avaliador é conveniente para t te tipo de nraestrutura ou oect-orente ção do metamodelo na
Machine Translated by Google
linguagem de modelagem definida. No entanto, construa um sistema de tipos totalmente
diferente e, quando o estilo oo de typi se encaixa, somos até forçados a fazê-lo.

Existem as seguintes fases de uso e especificação do sistema de tipos

– Tempo de metametamodelação: a especificação da meta-dade fundamental define como


os tipos permitem contenção, associação, valores de atributos,
– tempo de metamodelagem: especificação do metamodelo, usando
tipos, a fim de definir tipos de modelo (por exemplo, domínio específico concebe a sintaxe
abstrata da linguagem para meta geradora de linguagem – Tempo de modelagem:
especificação de certos clones e placas de estrutura de clones para posterior instanciação.

Novos padrões e estruturas não concebidos no momento do design da linguagem podem surgir
depois que os metamodelos foram projetados. Muitos ambientes de modelo permitem a
especificação em tempo de modelagem de um novo tipo de sistema, permitindo que um
modelador desenvolva um novo “tipo” a partir da composição e de instâncias de tipos de
domínio. Nesse caso, o novo “tipo” pode ser instanciado várias vezes e pode propagar as
alterações feitas em quaisquer instâncias desse tipo.

Para distinguir facilmente entre os tipos (definidos no metamodelo e tipos em tempo de


modelagem, usamos a seguinte nomenclatura (de [3

– protótipos: tipos em tempo de modelagem; e – clones:


instanciações de protótipos.

Exploramos esse comportamento de tipos de tempo de modelagem por meio de um exemplo.

Tipos e Clones em Tempo de Modelagem Considere a


linguagem definida pelo metamodelo mostrado na Figura 3 modelos construídos usando esta
linguagem mostrada na Figura 3.6b. Agora, vamos supor que o modelo C2, contido no
Componente1 seja um clone do protótipo Co. Isso significaria que para cada objeto contido no
Componente2, haveria um objeto correspondente do mesmo tipo (e participando de corr
associações internas) em C2. Por associações internas, queremos dizer que uma associação
está contida naquele modelo (e não é uma associação fora do tipo).

Com relação aos valores dos atributos desses modelos, sempre que um clone ou tipo é
criado, ele recebe os valores dos atributos do protótipo. A partir daí, existem várias questões
semânticas que devem ser abordadas pelo ambiente.

1
Esse metamodelo é reutilizado no Capítulo 9 para discutir a evolução
Machine Translated by Google
InPort OutPort

(a) O metamodelo permite objetos do tipo Port, que é especializado como I


e OutPort.

p1 pa
Componente1 Componente 2
p3 p2 pb peças

Componente1
p11
C1 p13 p1
p12

p21
p3 C2 p23 p2
p22

(b) Um modelo construído usando o metamodelo em (a). O conteúdo do Compon


é mostrado para exibir as associações adicionais nas quais seu Port ob
desempenha um papel.

Fig. 3.6. (a) Um metamodelo que permite a interconexão de portas entre o modelo
compone construído usando o metamodelo em (a). A “seta” final da conexão com
a função dst.

(1) Os valores dos atributos dos clones podem ser modificados?


(2) Se um valor de atributo de um clone for modificado e o atributo do protótipo for
modificado, o que deve ser feito para o atributo do modelo clone (3) Se os valores
de atributo do protótipo mudarem, os clones não modificados devem ser atualizados?

Ferramentas e ambientes que permitem protótipos e clones adotam uma visão consistent
dessas questões. Ambos GME [12] e Ptolomeu II [3] atribuem modificações de valor de
clones. No caso de alterações no ori totype, é utilizado um comportamento copy-on-write
específico do atributo, em que os valores do atributo u refletem os valores do protótipo,
em vez de mantê-los no tempo de instanciação. Discutiremos na próxima seção como a
seleção por conter novos objetos em clones e protótipos pode criar alguma confusão.
Geralmente, cabe ao desenvolvedor da ferramenta determinar como visualizar protótipos
e clones. Se for fornecido um navegador separado que permita pesquisar e reproduzir
apenas hierarquias de protótipo e clone, não é necessário ter uma indicação visual de
que um determinado objeto é um clone.
protótipo se propaga para um cones desse protótipo. um oect conta um protótipo
Machine Translated by Google
é excluído, todos os clones removem suas associações de objetos
correspondentes a esse modelo, conforme apropriado).

Protótipos e subprotótipos em tempo de modelagem Os


subprotótipos têm um subconjunto das restrições e restrições do diagrama de
classe clo permite que as subclasses especializem a estrutura de seu subprotótipo
sa pode adicionar aos recursos de um protótipo na modelagem a restrição de que
não existe nenhum objeto em a instância que corresponde a um objeto contido
no tipo não é necessária (ou seja, a corres é injetiva de protótipo para subprotótipo

3.1.9 Fusão de Metamodelos

Dada a capacidade dos modelos de aplicar hierarquia e refinamento como abs e


o fato de que os metamodelos são modelos em si, a capacidade de tamodelar
(outros dizem “compor metamodelos” estruturalmente) é um pouco difícil. A
semântica dessa fusão, no entanto, merece alguma discussão.
Considere dois metamodelos, M1,M2, tais que M1 ÿ M2 = ÿ (ou seja, não
compartilham nenhuma meta-classe). Agora, considere que alguns elementos de
cada metamodelo podem ser relacionados em um novo metamodelo mesclado,
M3 = M1 Ao mesclar os metamodelos, alguns elementos de cada um dos dois m
devem estar de alguma forma associados um ao outro. Podemos usar esta
função para definir relações apropriadas entre os elementos do metamodelo.
Essas relações podem ser consideradas como mapeamentos para identidade,
ou novos p Conforme discutido em [30, 32], a equivalência de identidade mapeia
dois tipos (um metamodelo) como idênticos e, portanto, permite que as
associações e atributos desses tipos sejam uma união de a definição nos dois
metamod sutis é o desejo de transferir apenas algumas das associações e
atributos de um determinado tipo. Estes são criados como novos tipos de
metamodelo (encontrados nos quais podem herdar a interface dos tipos existentes
ou a implementação dos tipos existentes (o que significa que a contenção e
outras relações não são transferidas). Para essas sutilezas, encaminhamos o
leitor para [ 30, 32] explicação com exemplos.
Um pequeno exemplo de fusão de metamodelos é dado na Figura 3.7. Em F
vemos uma linguagem de modelagem simples para sistemas discretos. Nesta
linguagem, o comportamento do sistema é obtido acionando o(s) modelo(s) de
comportamento i rent state. Uma linguagem de modelagem simples para sistemas
de tempo contínuo é a Figura 3.7b, com a capacidade de atribuir valores a
equações algébricas e diferenciais (fluxo) de objetos variáveis. Para criar um novo
Machine Translated by Google
origem

0..*
0..*
Variável Descrição
0..*
min : Float max : FlowDynam :
0..* Float Strin fire( ) : vector<
Evento de Descrição
0..*
transição : Guarda do comportamento : Descrição Descrição
de string: Ação de String fire(): void da restrição : AlgebraicBeh :
string: String String isValid( ): Boolean Strin fire( ) : vector<

(a) Uma lan de modelagem de sistemas discretos (b) Um sistema contínuo mo


calibre. calibre.

DST
Estado Descrição
éInicial: Boolean = false 0..* do sistema : String
fire(): void
origem

Equivalente

0..* 0..*
0..* 0..*
Transição Comportamento Variável Descrição
evento : String descrição: String fire(): min: Flutuar FlowDynamics : String
guard : String void máx.: Flutuante fire( ) : vector<Variable>
action : String 0..*
Limitação Descrição do
descrição: String comportamento algébrico :
isValid( ): Booleano String fire( ) : vector<Variable>

(c) Uma linguagem de modelagem de sistemas híbridos.

Fig. 3.7. Elementos dos domínios discreto e contínuo são mesclados em um novo
domínio, e uma relação de equivalência é usada para indicar o elemento idêntico em
cada metamodelo

capaz de modelar sistemas híbridos (aqueles sistemas onde cada disco tem uma dinâmica contínua),
podemos mesclar os dois metamodelos, e i relação de equivalência entre Comportamento na linguagem
de sistemas discretos Sistema na linguagem de sistemas contínuos. Nesta nova linguagem de
modelagem então é possível criar novos objetos do tipo System dentro de um State, mas isso não é
mostrado explicitamente através de relações de contenção entre Sy State. É possível ainda atribuir
relações entre objetos, uso, associação ou outras relações.

Uma preocupação adicional de metamodelagem é a propagação de metamodelos constra que são


mesclados. Estes, e especialmente os problemas de pesquisa semanti, são discutidos na Seção 3.2 a
seguir.

3.2 Metamodelação: Desafios de Pesquisa

A metamodelagem como tecnologia fornece um poder significativo aos designers e tem sido
amplamente explorada em termos de dados de modelagem, linguagens suaves. Embora muitas das
propriedades, semântica e usos do delling sejam agora problemas “resolvidos”, há desafios de pesquisa
significativos.
Machine Translated by GoogleUma Questão Unificadora: Semântica
Uma característica unificadora de quase todas as questões de pesquisa pendentes
que dizem respeito à metamodelagem é a questão da semântica. O significado de
modelos e metamodelos clonados, evoluídos, etc., pode não ser claro, dependendo
das circunstâncias em que essas operações são realizadas.

3.2.1 Anexo Semântico

Lembramos que os metamodelos são basicamente representações sintáticas


puras daquilo que descrevem [4]. Avanços significativos foram feitos ao anexar
informações a esses metamodelos, o que em muitas abordagens é chamado de
anexos tic”. O problema significativo no apego semântico não deve ser resolvido?
mas sim “quais métodos são apropriadamente eficientes e i Um compilador
tradicional que percorre uma árvore sintática abstrata para pro fatos no domínio
semântico pode ser prontamente produzido (e ferramentas para sig automatizar a
análise e travessia foram desenvolvidas [33, 28]).
Métodos para fundamentar a semântica entre metamodelos para um se
principal comum se mostram promissores [34, 35] ou através da definição explícita
dos semanti [36, 37, 38]. Utilizando essas técnicas, mapeamentos semânticos,
bijetivos e sem perdas entre um metamodelo e uma âncora semântica, como a
linguagem de máquina de estado (ASML), podem promover a correção semântica
entre as ferramentas ou de um domínio semântico para outro. Uma questão a ser
pesquisada são as especificações desses mapeamentos para mim complexo e sua
representação intuitiva.
Os casos de uso esperados para anexar semântica a metamodelos, incluindo

– para fins de documentação/definição precisa; – facilitação da


verificação automática de alguma propriedade; e – tradução automática
entre ferramentas.

3.2.2 Inferência entre Metamodelos

Conforme descrito na Seção 3.1.9, é possível mesclar metamodelos no metamodelo


e (por design) marcar certos elementos do metamodelo como automação
equivalente dessa identificação entre dois metamodelos relacionados (mas
separadamente metamodelos é um desafio de pesquisa interessante. Problemas es

– Equivalência semântica de tipos equivalentes inferidos em cada metamo –


Problemas de visualização; e – Propagação de constrangimentos.

Entre estes, a equivalência semântica pode requerer a interação do usuário com o


meu. A propagação de restrições, no entanto, apresenta alguns interesses
Assim como a propagação seletiva do conteúdo ou as reações contadas na satisfação
Machine Translated by Google
da restrição, uma abordagem inteligente para utilizar herança de implementação e
interface pode permitir alguma inferência de equivalência, ao mesmo tempo em que
relaciona qualquer uma das (união) de restrições.

3.2.3 Evolução de Modelos Impulsionados pela Evolução de Metamodelos

Esta questão apresenta um tremendo desafio na preservação de restrições e


semântica. À medida que o metamodelo evolui, por exemplo, porque é atualizado
para uma nova versão, pode ser que os modelos construídos usando o não estejam
mais em conformidade com o metamodelo evoluído. Nesse caso, modelos evolut
(para se adequar ao novo metamodelo) podem ser necessários. Esta questão foi
estudada para linguagens visuais [39], mas mais pesquisas são necessárias para a
melhor maneira de retratar intuitivamente (e com precisão) tais formações de evolução
Uma extensão interessante é a automação de tal transf baseada em mudanças no
metamodelo em sua evolução. Mais discussão sobre este tópico complexo no
Capítulo de Gerenciamento de Modelos.

3.3 Conclusões

Apesar das muitas ferramentas disponíveis para metamodelagem, a base da


orientação a objetos promoveu que a maior parte da metamodelagem seja um
conjunto comum de abstrações com apenas pequenas variações. Usando essas
ções, é possível elevar a especificação de uma linguagem e seu t acima da camada
de implementação. Recursos adicionais aumentam a metamodelagem, permitindo a
síntese de linguagens, bem como técnicas de análise e síntese semiautomáticas. O
modelo em tempo de execução permite que os usuários definam seus próprios
protótipos e alavanquem novos padrões padronizados no tempo de design do
metamodelo, e a visualização dos modelos pode ser especificada para garantir que
as informações sejam apresentadas de maneira apropriada. app integra os conceitos
em um grande metamodelo.

A engenharia baseada em modelos e, em particular, a modelagem de embedde


se beneficia fortemente da metamodelagem devido à estrutura que o meta dá aos
modelos e à semântica que pode ser anexada ao metamod dessa estrutura, a
especificação da semântica é mais fácil, metamodelos de correspondência podem
ser denotados, analisadores /lexers podem ser sintetizados ec pode ser avaliado.
Esses recursos são os alicerces para elevar a especificação de sistemas a modelos,
em vez de implementações de baixo nível.
são moes oo. n: : roceengs oe coerência
Machine Translated by Google simulação, Winter Simulation Conference, pp. 597–605 (2002)
[2] Karsai, G., Nordstrom, G., Ledeczi, A., Sztipanovits, J.: Especificando sistemas
gra deling usando metamodelos baseados em restrições. In: IEEE International
posium on Computer-Aided Control System Design, CACSD 2000, (2000)

[3] Sprinkle, J., Karsai, G., L´edeczi, A., Nordstrom, G.: A nova metam neração. In:
Eighth Annual IEEE International Conference and Works Engineering of Computer
Based Systems, abril de 2001, pp. 10), 64–72 (2004)

[5] Peltier, M., B´ezivin, J., Ziserman, F.: Sobre os níveis de transformação do modelo
Europa 2000, pp. 1–17 (2000)
[6] Sprinkle, J.: Computação integrada por modelo. IEEE Potentials 23(1), 28–3 [7]
Vangheluwe, H., de Lara, J.: Fundamentos da modelagem multiparadigma ção:
modelagem multiparadigma automatizada por computador: transformação da
metamodelagem. In: WSC 2003: Proceedings of the 35th Conference Simulation,
Winter Simulation Conference, pp. 595–603 (2003)
[8] Weisem¨oller, I., Sch¨urr, A.: Uma comparação de idiomas específicos de domínio
de maneira compatível com o padrão. In: ATEM 2007: 4th International Worksho
ware) Language Engineering, em conjunto com MoDELS (2007)
[9] Grupo de gerenciamento de objetos: Meta Object Facility 2.0 (janeiro de 2006)
[10] Object Management Group: Unified Modeling Language 2.1.2: Superstr
Infrastructure (novembro de 2007)
[11] Emerson, M., Neema, S., Sztipanovits, J.: 33. In: Metamodeling Lang
Metaprogrammable Tools. CRC Press, Boca Raton (2008) ISBN: 9781 [12]
Ledeczi, A., Bakay, A., Maroti, M., Volgyesi, P., Nordstrom, G., S Karsai, G.: Composiçã
de design específico de domínio ambientes. Cálculo 44–51 (2001)

[13] Tolvanen, JP, Rossi, M.: Metaedit+: definindo e usando linguagens de especificação
de domínio e geradores de código. In: OOPSLA 2003: Companion o Conferência
Anual ACM SIGPLAN sobre Linguagens de Programação Orientada a Objetos e
Aplicações, pp. 92–93. ACM, Nova York (2003)
[14] Mosterman, PJ, Vangheluwe, H.: Multi-paradi ling automatizado por computador:
uma introdução. Simulação: Transações da Society for Mo Simulation International
80(9), 433–450 (2004); Edição Especial: Grande para Modelagem e Simulação.
[15] de Lara, J., Vangheluwe, H., Alfonseca, M.: Meta-modelagem e gráfico para
modelagem multiparadigma em AToM3. Software e Sistemas Mod 194–209 (2004)

[16] Kurtev, I., B´ezivin, J., Jouault, F., Valduriez, P.: Model-based dsl fr Em: OOPSLA
Companion, pp. 602–616 (2006)
[17] Gray, J., Sprinkle, J., Rossi, M., Tolvanen, JP (eds.): 8th OOPSLA W Domain-
Specific Modeling (DSM 2008), University of Alabama at Bir OOPSLA (outubro de
2008), ISBN : 978-0-61523-024-5
ovanen, .., ray, ., prne, . es.: orsop o
Machine Translated by Google Modelagem Específica (DSM 2006), Universidade de Jyv¨askyl¨a, Jyv¨askyl¨a
OOPSLA (outubro de 2006), ISBN: 951-39-2631-1
[20] Tolvanen, JP, Sprinkle, J., Rossi, M. (eds.): 5th OOPSLA Workshop o Specific
Modeling (DSM 2005), University of Jyv¨askyl¨a, Jyv¨askyl¨a OOPSLA (outubro de
2005) , ISBN 951-39-2202-2
[21] Gray, J., Tolvanen, JP, Kelly, S., Gokhale, A., Neema, S., Sprinkle, J. modelagem
específica. In: Fishwick, PA (ed.) Handbook of Dynamic Syst ling. Chapman & Hall/
CRC, Boca Raton (2007), ISBN: 1584885653 [22] Warmer, J., Kleppe, A.: The
Object Constraint Language: Precise Mod
UML. Addison-Wesley, Reading (1999)
[23] Whitley, K.: Linguagens de programação visual e as evidências empíricas contra.
Journal of Visual Languages and Computing 8(1), 109–142 (1 [24] Knuth, DE:
backus normal form vs. backus naur form. Commun. A 735–736 (1964)

[25] Rekers, J., Sch¨urr, A.: Definindo e Analisando Linguagens Visuais com Laye
Grammars. Journal of Visual Languages and Computing 8(1), 27–55 ([26] Pierce,
BC: Types and Programming Languages. The MIT Press,
(2002)
[27] Winskel, G.: A semântica formal das linguagens de programação. Foun Computing
Series. The MIT Press, Cambridge (1993)
[28] Krahn, H., Rumpe, B., V¨olkel, S.: MontiCore: Linguagens específicas de domínio
de desenvolvimento modular. Em: Paige, RF, Meyer, B. (eds.) Proceedi 46ª
Conferência Internacional Objetos, Modelos, Componentes, Padrões Europa), pp.
297–315. Springer, Heidelberg (2008)
[29] Minas, M.: Especificação Visual de Editores Visuais com VisualDiaGen.
JL, Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, páginas Springer,
Heidelberg (2004)
[30] Karsai, G., Maroti, M., Ledeczi, A., Gray, J., Sztipanovits, J.: Compo cloning em
modelagem e meta-modelagem. IEEE Transactions on Contr Technology 12(2),
263–278 (2004)
[31] Eker, J., Janneck, J., Lee, E., Liu, J., Liu, X., Ludvig, J., Neuendorffer, S., Xiong, Y.:
Domando a heterogeneidade – a abordagem de Ptolomeu. Procedimento IEEE
91(1), 127–144 (2003)
[32] Ledeczi, A., Nordstrom, G., Karsai, G., Volgyesi, P., Maroti, M.: O del composer.
In: Proceedings of the 2001 IEEE International Con Control Applications (CCA
2001), pp. 756–760 (2001)
[33] Nordstrom, S., Shetty, S., Chhokra, KG, Sprinkle, J., Eames, B., L Anemic: ativador
de interface automática para computação integrada de modelo. ning, F.,
Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 138– ger, Heidelberg
(2003)
[34] Jackson, E., Sztipanovits, J.: Formalizando a semântica estrutural de linguagens de
modelagem específicas. Modelagem de Software e Sistemas 8(4), 451– [35] Chen,
K., Sztipanovits, J., Abdelwahed, S., Jackson, E.: Transformações semânticas de
modelos de ancoragem. In: Hartman, A., Kreische, D. (eds.) ECMDA LNCS, vol.
3748, pp. 115–129. Springer, Heidelberg (2005)
, ., , .., , . –

Machine Translated by Google Modelo para UML: O modelo de máquina de estado. Relatório Técnico TUM-
I071 f¨ur Informatik, Technische Universit¨at M¨unchen (fevereiro de 2007)
[38] Broy, M., Cengarle, MV, Rumpe, B.: Semântica de UML – Rumo a um S
del para UML: O Modelo de Dados Estruturais. Relatório Técnico TUM-
I061 f¨ur Informatik, Technische Universit¨at M¨unchen (junho de 2006)
[39] Sprinkle, J., Karsai, G.: Uma linguagem visual específica de domínio para solução
de domínio. Journal of Visual Languages and Computing 15(3-4), 291–307 (2
edição oficial: Modelagem de domínio específico com linguagens visuais

Você também pode gostar