| Description | Pattern Domain The purpose of the Compositionality family of concepts is to provide syntactic mechanisms that support the construction of composite Building Blocks. The Compositionality pattern handles situations where Building Blocks have an internal structure. Such Building Blocks are called Aggregate Blocks. They are made of internal nested Entitys called Aggregate Members. Aggregate Members contextualizes Building Blocks living outside the Aggregate Block structure (specialization in OMG - Kernel Modeling Language (KerML) is such an Aggregate Member). Advanced Aggregate Block features are provided by Bounded Aggregates which hide their internal structure to the outside world by means of a formal boundary (see Ordering Connection). |
|---|---|
| External references |
Christensen Institute - Modularity
DDD - Aggregate
DDD - Glossary - Entity
Martin Fowler - Evans Classification
OpenGroup - OAA - Modularity
OpenGroup - TOGAF - Definition - Building Block
Stanford Encyclopedia of Philosophy - Compositionality
SysFEAT - Modularity.pdf
Wikipedia - Domain driven design
|
| Dictionary |
SysFEAT Upper Ontology |
| Parent Domain |
Upper Ontology |
| Domain dependencies |
Packaging |
| Concept | Description |
|---|---|
Aggregate Block |
An Aggregate Block is a Building Block which has an internal structure made of Aggregate Members which, through nesting (Membership of -Aggregate Member-), contextualizes/aggregates (Aggregation of -Building Block- ) external Building Blocks within the Aggregate Block. |
Aggregate Entity Block |
An Aggregate Entity Block is a self-contained and independant Aggregate Block that is not a Ordering Connection. Examples: - Operating Eco-System; - Directive; - Agent.
|
Bounded Aggregate |
A Bounded Aggregate is an Aggregate Entity Block which hides its internal structure to the outside world by means of formal Borders. The only way to access a Bounded Aggregate is through its formal Borders, which ensures the aggregate's internal consistency. The Borders of a Bounded Aggregate is determined by the Ordering Connections it can participate to. Within a Bounded Aggregate structure, Bounded Members can be linked together through Ordering Connectors. The nature of Ordering Connectors is given by their associated Ordering Connection. Examples: - Action Processes are bounded by their start and end events (see Behavioral Event).
|
Building Block |
A Building Block is an autonomous Entity that contributes to the makeup of other Building Blocks. Building Blocks can be either reusable entities (packaged in Containers) or be local to the Aggregate Block that references them (see Block Lexical Scope and Hierarchical Member). Examples: - Functionality(ies), Business Process(es), Data Entity(ies), Tags, ARE Building Blocks. - Process Steps or Attributes of a data entity ARE NOT Building Blocks. They are members on an internal structure (see Aggregate Member).
|
Elementary Block |
An Elementary Block is a Building Block which doesn't have an internal structure. |
Ordering Connection |
An Ordering Connection is an Aggregate Block that defines possible connections between the Borders of two or more Bounded Aggregates. Examples: |
Unbounded Aggregate |
An Unbounded Aggregate is an Aggregate Entity Block that does not have boundaries and, thereby, that cannot participate to Ordering Connections. Examples: - Directive. |