19. Structure Package
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.
Organization of the Structure Package
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 Structure package depends on the following packages:
StructureModel Class Diagram
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.
– StructureModel Class Diagram
StructureModel Class
The StructureModel is a specific KDM model that represents the logical organization of a software system and owns all of the system’s StructuralElements.
structureElement:AbstractStructureElement[0..*] | structure elements owned by the model |
AbstractStructureElement Class (abstract)
The AbstractStructureElement represents an architectural part, related to the organization of the existing software system into modules.
AbstractStructureRelationship Class (abstract)
The AbstractStructureRelationship class.
Subsystem Class
The Subsystem collects the architectural parts of a software subsystem. The parts may be any other StructuralElement.
Layer Class
The Layer collects the architectural parts of a software subsystem to represent a software layer. The parts may be any other StructuralElement.
Component Class
The Component represents a collection, directly or indirectly, of code resources, which comprises an architectural component.
SoftwareSystem Class
The SoftwareSystem represents the entire system organization. It may contain subsystem or other StructureElements.
ArchitectureView Class
The ArchitectureView class represents a logical packaging of the architectural artifacts related to a particular view of a software system.
StructureInheritances Class Diagram
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.
– StructureInheritances Class Diagram
ExtenededStructureElements Class Diagram
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..
– ExtendedStructureElements Class Diagram
StructureElement Class (generic)
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
StructureElement should have at least one stereotype
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.
StructureRelationship Class (generic)
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 |
StructureRelationship should have at least one stereotype
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.