Skip to Main Navigation Skip to Content

Automate to Rapidly Prioritize and Quantify Cyber Risk

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:

  • StructureModel
  • StructureInheritances
  • ExtendedStructureElements

The Structure package depends on the following packages:

  • Core
  • kdm

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.

Superclass

KDMModel

Associations

structureElement:AbstractStructureElement[0..*] structure elements owned by the model

Constraints

Semantics

AbstractStructureElement Class (abstract)

The AbstractStructureElement represents an architectural part, related to the organization of the existing software system into modules.

Superclass

KDMEntity

Associations

structureElement:AbstractStructureElement[0..*] structure elements owned by the model
structureRelationship:AbstractStructureRelationship[0..*]
aggregated:KDMAggregatedRelationship[0..*]
implementation:KDMEntity[0..*]

Constraints

Semantics

AbstractStructureRelationship Class (abstract)

The AbstractStructureRelationship class.

Superclass

KDMRelationship

Constraints

Semantics

Subsystem Class

The Subsystem collects the architectural parts of a software subsystem. The parts may be any other StructuralElement.

Superclass

StructureGroup

Semantics

Layer Class

The Layer collects the architectural parts of a software subsystem to represent a software layer. The parts may be any other StructuralElement.

Superclass

StructureGroup

Semantics

Component Class

The Component represents a collection, directly or indirectly, of code resources, which comprises an architectural component.

Superclass

StructureGroup

Semantics

SoftwareSystem Class

The SoftwareSystem represents the entire system organization. It may contain subsystem or other StructureElements.

Superclass

StructureGroup

Semantics

ArchitectureView Class

The ArchitectureView class represents a logical packaging of the architectural artifacts related to a particular view of a software system.

Superclass

StructureGroup

Semantics

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

Superclass

AbstractStructureElement

Constraints

StructureElement should have at least one stereotype

Semantics

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

Superclass

AbstractStructureRelationship

Associations

from:AbstractStructureElement[1] The structure element origin endpoint of the relationship
to:KDMEntity[1] the target of the relationship

Constraints

StructureRelationship should have at least one stereotype

Semantics

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.