Atom Templates = Software Components
An Atom Template becomes an Atom Instance when instantiated, but it can also be composed of several other Atom Instances. So, when you instantiate that particular Atom Template, you are not creating one, but several Atom Instances at the same time. That Atom Template may also have parameters, becoming configurable. In addition, you can set creation constraints, defining where instances of that particular Atom Template can be placed.
These features build up to create the concept of a software component. Stored in an Atom Library, Atom Templates become real reusable assets.
In a general sense, ABSE lets you build applications like Lego(tm). A simple, yet effective constraint system drives you on the component discovery and construction process. Atom Parameters let you configure the component's variability, allowing it to adapt to multiple scenarios.

Reusable assets, constraint systems, and parameters become specially important in a team environment, where the knowledge of one becomes the knowledge of many. At the same time, novice developers can get up to speed fast, without needing to constantly grab the attention and time of the experts.
In an extreme scenario, you would be able to develop new applications by snapping together and configuring several dozens of Atom Templates encapsulating thousands of Atoms. This is very interesting in a Software Product Line scenario where application variability may come from optional components and configuration options.
|