Introducing the Atom
The whole concept of ABSE revolves around the notion of atoms. ABSE Atom's real-world counterpart, the atom, is the smallest qualifiable portion of matter. Real-world atoms are still composed of even smaller things. The same happens with ABSE Atoms. Each atom has its own properties, and atoms of different types can be combined to form anything in existence today. Real-world atoms follow the laws of physics to combine themselves into an infinite number of molecules. Molecules can combine themselves to build larger, more complex molecules. We can continue climbing the complexity ladder until we reach DNA. Likewise, in ABSE you can build reusable small or large structures made up of Atoms, following constraint rules.
Now, this is a quite remarkable metaphor because you can transpose this physics metaphor directly to software and get a glimpse of what ABSE is.
| ABSE |
Real-world |
| Atom |
laws of physics |
| Atom Instance |
atom |
| Atom Template |
molecule |
| Project Model |
DNA |
In ABSE, the Atom is a very flexible entity. An Atom can be anything: An idea... an object... a feature... a requirement, you name it. In fact, you are in charge. You can turn an Atom in anything you want it to be.
When you build a model with Atoms, these can interact and work together to reach one common goal: to generate.
The Atom and its relation to MDSD
The Atom is to ABSE what a meta-metamodel is to MDSD. A model that specifies how you build metamodels. And metamodels specify how you build models of your applications. Yes, the "meta" word is a kind of recursive concept, but you'll find this easy after you take a while to think about it.
|