SAP integration sample payloads for Azure Logic Apps
Joint Language and Domain Engineering
1. Joint Language and Domain Engineering Tobias Walter Fernando Silva Parreiras (WeST) Steffen Staab (WeST) Jürgen Ebert ECMFA 2010
2.
3.
4.
5. Roles in Language and Domain Engineering Language Engineering and Use Domain Engineering Language User Language Designer Language Metamodel uses specifies Domain Model builds Domain Designer builds
6.
7.
8.
9.
10. Joint Model Hierarchy Ontology-based Metamodeling Language with concepts for metatypes , metainstances , types , instances … M3 Layer Metametamodel M2 Layer Metamodel M1 Layer Domain model metatype metainstance type instance O2 ontological type layer O1 ontological instance layer linguistic instanceOf linguistic instanceOf ontological hasType ontological hasMetaType linguistic instanceOf
The complete box is called a chassis. The chassis consists of different cards, for example: Supervisor Engine 720 card for different IP and security features SPA Interface Card for 1-Gbps broadband connections (OSM Card) Hot Swap Controller for swapping cards at runtime (OSM Card)
The complete box is called a chassis. The chassis consists of different cards, for example: Supervisor Engine 720 card for different IP and security features SPA Interface Card for 1-Gbps broadband connections (OSM Card) Hot Swap Controller for swapping cards at runtime (OSM Card)
DSL User: builds domain models Uses Language metamodel to create domain models Language Designer Specifies metamodels which is provided to the langugae user Consider both engineering approaches: there is already an overlap. Language user and domain designer are building a domain model next slides: consider domain model using a language and domain model in domain engineering
Language engineering (definition of abstract syntax) mainly takes place at the M2 layer Create prescriptive metamodel – which prescribes structure and design of domain models. Language Use at M1 layer Result: Domain model consisting of linguistic instances (instances+links)
Domain engineering begins with considering existing domain information which is represented by existing instances in the domain. The idea is to describe these existing elements in the domain by types, relations connecting two instances, or attributes. Furthermore, (exitsing) instances should be assigned by / marked by a type. This should be realized by a separate hasType relation. Domain model is extended by new types and instances After applying the domain engineering, we have a (formal) domain model, which consists of the description of instances (by types, links) and it consists of the types itself.
Different domain designers might create different conceptualizations of the same domain. Need of a prescribing language that prescribes the core of the domain. Facility to extend the set of domain types in domain models (which is still not possible, since a usual modeling language only allows for creating instances)
Split class into metatype and metainstance (separate the concerns of a class) Definde hasMetatype to restrict the use of the hasType relation in the domain model Create metareference (allows for intantiation twice)
2 dimensions Why is the metamodeling language called „ontology-based“? Leads to the next slide and fulfills new challenges.
Services for productively modeling Classification: Domain designers often find instances that have no type. They automatically classify them. Consistency checking: domain instances wrt. domain types; domain model wrt. language metamodel Define a semantic for hasType and instanceOf
Define that each Device has at least one card (not possible with multiplicities at refereces, because there could be slots which are not occupied)
1. Each Cisco has plugged in super visor card (via a slot) 2. the type supervisor only consists of two domain instances 3. instance cisco7604 has an anonymous type