For example, add to the
language a modeling object that can be connected freely with other modeling
concepts and that has just one description property. The code generator can then
skip these model elements, yet we can inspect what additional modeling needs
there may be. Alternatively, we may limit the extension to only a few places, in
the modeling concepts that it makes sense to extend. A special case of this is
having a ???code object??? in the language, including plain code or referring to
external sources having the code. For example, in the mobile case, the form
validation function is made open in this way: a developer can enter any Python
script in the validation function and that code is then included in the generated
code. Clearly, this must be used sparingly to maintain a high level of abstraction.
Every domain concept (and variation point) does not need to be in the language.
Some relevant domain concepts can be ???composed??? by combining existing concepts.
For example, the mobile phone case applies the state machine as MOC where
navigation shows that the state changes in the application but the language still lacks
traditional transition characteristics like event triggering the transition, a condition
that needs to be met and the action performed during transition. Events are already
limited to a fewpossibilities, like pressing prede?¬?ned softkey buttons, and a condition
is left to be speci?¬?ed only in a few cases where a selected value is used as a condition
for choosing a speci?¬?c navigation path.
Pages:
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449