【正文】
. dynamic semantics 4. static semantics (constraints) ? Languages can be classified (roughly) as – General purpose (multiuse, domainindependent) – Domainspecific ? Domainspecific languages not widespread – Still required the 4definitions (above) – Why do all that work, if there will be no future use for it? 10/23/2022 Life after metamodeling ? Highlevel, domainspecific language syntax, static semantics, and ontology, can be represented with metamodels ? Language prototypes relatively easy to create ? Languages simple to modify on user request ? Still require a piler to be fully functional ? Metamodeling lessens the work required to produce a domainspecific language 10/23/2022 MIC ? ModelIntegrated Computing (MIC) – A crucial ingredient of MIC is the building of formal specifications of a system or family of systems – Aims at the following goal (the “Golden Rule”): Small changes in the requirements should be reflected by small changes in the implementation. ?? 10/23/2022 Implementation? ? To the modeler – the implementation is the model of the system, not the artifact – They don’t care what’s “under the hood”, because that is all abstracted away 10/23/2022 Modeling and metamodeling ? Domainspecific modeling languages can be created using metamodels – Provides for rapid development of the ability to do modeling in the domain – Domain models are changed to propagate change to the application level Model Builder Model Interpreters Models MIPS Environment Model Interpretation Application Domain App. 1 App. 2 App. 3 Application Evolution MetaLevel Translation Metaprogramming Interface Formal Specifications Domain Evolution 10/23/2022 Application Evolution ? Application evolution – Changes are made to the models – Model interpretation updates the executable system Model Builder Model Interpreters Models MIPS Environment Model Interpretation Application Domain App. 1 App. 2 App. 3 Application Evolution MetaLevel Translation Metaprogramming Interface Formal Specifications Domain Evolution 10/23/2022 DomainSpecific Modeling ? Wouldn’t it be great if it were easy to create applications that were simple to use, yet useful at the same time? Bottled beer taste in a can. Wouldn’t that be great? 10/23/2022 Well... ? Rapid design of modeling environments is a recent research success in the area of modeling ? It is now possible to create a working domain application in a matter of hours instead of weeks. ? “So what?” “Surely you can’t be serious?!” “I am serious. And stop calling me Shirley.” Airplane! 10/23/2022 DomainSpecific Modeling ? Wouldn’t it be great? – If the domain I was designing for had a language – If those people who work in that domain could do all of the programming, because they know the language? ? Doesn’t this remind you of FORTRAN? Yggdrasil, the Icelandic tree of knowledge 10/23/2022 Modeling and metamodeling ? Enter the Domain Specific Modeling Environment (DSME) – Custom made for each domain ? Finite state machines ? Digital ponent layout ? Saturn’s JIT (Just In Time) plant scheduling ? C++ class design ? Embedded system design – Created so that domain users can use these DSMEs to do their jobs better 10/23/2022 Modeling and metamodeling ? Let’s take an easy example – VHDL – Now, would you rather lay out the model graphically, or type in all of the text? ? Domain specific modeling helps relieve the “programmer” of mundane or difficult to understand chores ? This gives more time to the domain designer (that’s you!) Alright! More time! 10/23/2022 Creating DSMEs through metamodeling ? So, what’s the idea, here? Metamodeling environment Domain specific modeling environment Executable models System designer System user(s) Plant!!! Produces Produces Uses Program(s) Runs 10/23/2022 Modeling and metamodeling ? So, what does a metamodeler do then? – Designs the language of a DSME ? Creates the “types” of models, and how they are allowed to interact – Designs how that language is to be interpreted ? For each model type, create a “meaning” ? Then, the meaning of a designed system is derived from the meaning of its ponents ? Functions much like a piler – Designs constraints to help the domain modeler know what s/he’s doing ? Outlaw certain interaction