Developing Expansion Modules

Walking Through the Expanders

In this walkthrough or Expander’s Tale, we describe the creation of an additional functional expansion, or code generation, module in the Normalized Systems Expanders and Normalized Systems Prime Radiant. We first explain the overall control structure of the expansion selection, configuration, and execution. Then, before going in detail through the actual creation of an expansion module for a specific functionality, we discuss the most intriguing part of NS development: the autogeneration or replication of the Prime Radiant in order to enable an extended metamodel.

A Declarative Control Structure

Currently, a major effort is being done to simplify both the control structure of the expanders, and the round trip engineering of model extensions and expander features.

Model Validation and Transformation

Formalizing nsx-prime, Expanders using Composite projections from expanded shared layer, and migration of model validations from the modeler to PR require a new approach to expressing internal model constraints.

Testing the Expanders

To test the result of the expanders, the diff compares the result with the previous version of the Expanders.