Structure package defines constructs for defining the high level abstraction of the organization of a software system. The Structure model constructs specify how the software's divisions and subdivisions down to the modules defined in the Code Package.
The form of the system may be presented as a single form or a set of layers components, subsystems, or packages. The reach of this representation extends from a uniform architecture to entire family of module-sharing subsystems.
The Structure model is a collection of StructuralElement instances.
Packages are the leaf elements of the Structure model, representing a division of a system's Code Modules into discrete, non-overlapping parts. An undifferentiated architecture is represented by a single Package.
StructuralGroup recursively gathers StructuralElements to portray various architectural divisions. The Software System subclass provides a gathering point for all the system's packages directly or indirectly through other Structure elements. The packages may be further separated into Subsystems, Layers, and Components or Architecture Views.
The Structure package defines a collection of meta-model elements whose purpose is to represent architectural organization of the existing software system.
The Structure package consists of the following 3 class diagrams:
The StructureModel class diagram follows the uniform pattern for KDM models and extends the KDM framework with specific meta-model elements related to high-level structural elements and their associations. The class diagram shown in See - StructureModel Class Diagram. captures these classes and their relations.
The StructureModel is a specific KDM model that represents the logical organization of a software system and owns all of the system's StructuralElements.
The AbstractStructureElement represents an architectural part, related to the organization of the existing software system into modules.
The Subsystem collects the architectural parts of a software subsystem. The parts may be any other StructuralElement.
The Layer collects the architectural parts of a software subsystem to represent a software layer. The parts may be any other StructuralElement.
The Component represents a collection, directly or indirectly, of code resources, which comprises an architectural component.
The StructureInheritances class diagram shown in See - StructureInheritances Class Diagram. depicts how various data classes are types of Core KDM classes. Each of the Structure Package classes within this diagram inherits certain properties from KDM classes defined within the KDM Core Package.
The ExtendedStructureElements class diagram defines two "wildcard" generic elements for the structure model as determined by the KDM model pattern: a generic structure entity and a generic structure relationship.
The classes and associations of the ExtendedStructureElements diagram are shown in See - ExtendedStructureElements Class Diagram..
The StructureElement class is a generic meta-model element that can be used to define new "virtual" meta-model elements through the KDM light-weight extension mechanism
An structure entity with under specified semantics. It is a concrete class that can be used as the base element of a new "virtual" meta-model entity types of the structure model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.
The StructureRelationship class is a generic meta-model element that can be used to define new "virtual" meta-model elements through the KDM light-weight extension mechanism
from:AbstractStructureElement[1] |
The structure element origin endpoint of the relationship |
to:KDMEntity[1] |
the target of the relationship |
An structure relationship with under specified semantics. It is a concrete class that can be used as the base element of a new "virtual" meta-model relationship types of the structure model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.