Skip to content

SysML2.NET

samatrhea edited this page Feb 5, 2023 · 2 revisions

PIM and SysML2 core classes

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.

Platform Independent Model (PIM)

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.DTO namespace
  • The POCO interfaces and classes are located in the SysML2.NET.Core.POCO namespace
  • The Enums are located in the SysML2.NET.Core namespace

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.

Clone this wiki locally