-
Notifications
You must be signed in to change notification settings - Fork 6
SysML2.NET
The SysML2.NET library is a netstandard2.0 class library that is a .NET implementation of the OMG SysML v2 specification classes. Both the Platform Independent Model (PIM) and SysML core classes and enums are implemented. In both cases DTO and POCO versions are provided. The DTOs are typically used for serialization, the POCOs are used to represent a full object graph. The main difference between DTO and POCO is that where a POCO may reference a type by a pointer, in a DTO this reference is represented as the unique identifer of the instance being referenced.
The PIM implementation has been created on the basis of the Systems Modeling Application Programming Interface (API) andServices. The classes can be found in the PIM namespace. The PIM namespace has been hand-coded, at the time of writing (2023-02-05), no computer readable formal specication (uml/ecore) is availble in the public domain.

The SysML2 core classes have been created (generated) from the SysML.ecore Ecore model. The SysML.ecore makes use of mulit-inheritence. This is only supported in C# through the use of interfaces. For each class in the meta-model a C# interface is generated (for both DTOs and POCOs), where each interface may implement 0 or more other interfaces. For each concrete class in the SysML.ecore model a C# class is generated (for both DTOs and POCOs) which implements the interfaces as specified in the SysML.ecore model. The classes can be found in the SysML2.NET.Core namespace, or contained namespace:
- The DTO interfaces and classes are located in the
SysML2.NET.Core.DTOnamespace - The POCO interfaces and classes are located in the
SysML2.NET.Core.POCOnamespace - The Enums are located in the
SysML2.NET.Corenamespace
The interface that all other interfaces and classes implement is the IData interface. This interface only contains 1 attribute which is the unique identifer.
The abstract super class of all classes in the PIM is the Record class. The abstract super class (implemented as an interface) of the core is the Element class. Both implement the IData interface.
copyright @ Starion Group S.A.