The Atom : ABSE's Meta-metamodel
The Atom represents a completely context-free unit. It does not represent anything specific. Instead, you instruct atoms to represent a portion of your logic: An idea, a feature, an object, a relation, a condition, anything. When you do that, you are in fact creating an Atom Template.
The Atom is ABSE's meta-metamodel: It describes how atoms are built and what they can do. The Atom is the smallest unit in an ABSE model.
When you model your application, you'll pick Atom Templates that represent your intent, and instantiate them. These instantiations of Atom Templates are named Atom Instances, and in these you will specify the template's variability: required input parameters and custom code.

You can further extend basic Atom Templates into more elaborate ones through template inheritance. Atom Templates can derive from other templates. Invariably, all Atom Templates will derive from root_default, the only pre-existing Atom Template in ABSE.
The Atom compared to an object
An Atom can also be compared to an object in an object-oriented programming language: The Atom is like the language specification; An Atom Template is like a class declaration; An Atom Instance is like an instance of a specified class; Atom Parameters are like the object's members; Atom Transformation Code is like the class' member functions; Generating code by executing an ABSE model is like running a program.
|