Data Model Component Requirements¶
UML Diagram¶
The requirements on this page are intended as a supplement to the UML diagram above. The software architecture of the data model must conform to this UML diagram.
The data model shall provide a top-level model/document aggregate that owns the root object and a shared model context. The model context shall host infrastructure services such as ID management, while domain objects remain focused on domain behavior. |
Model objects may exist detached from a model context and become attached when inserted into a model. Attached objects shall have a model-registered ID; detached objects shall not be treated as persistent model members. |
A central ID factory shall provide |
Loading an existing model shall reserve all existing IDs and fail on duplicates. Deleting objects shall unregister IDs for the full removed subtree. Pasting within the same model shall remap IDs by default. |
The data model shall support tree-oriented navigation semantics for CLI usage.
Model objects shall provide |
Elements provide defined inputs/outputs, and connections are modeled explicitly. |
Access by body key, name, display name, and ID is consistently supported. |
Variable instances are consolidated so mapping and recorder features rely on a central structure. |
Objects are stored in a central SQLAlchemy + SQLite database, while model instances are represented in a model tree. A variable may appear multiple times in the model tree while still representing a single logical variable. |
The |
|
Each model object shall carry a |
|
|
|
|
The software architecture of the data model shall conform to the UML diagram on this page. |