Auriga is a suite of dotnet libraries and tools that are used to deserialize (read), manipulate, and serialize (write) Eclipse Capella™ models. Capella is an open-source Model-Based Systems Engineering (MBSE) tool implementing the Arcadia method; its models are stored as Ecore-based XMI. Auriga makes the Capella semantic model (the five Arcadia architecture layers and the common packages) available as an in-memory .NET object graph, typically to support opinionated template-based code-generation and model transformation, and is a part of modeltopia.
Auriga builds on ECoreNetto for reading the Capella Ecore metamodel, and is a sibling of uml4net and SysML2.NET. Auriga provides a number of libraries that are described in the following sections.
Scope note. Version 1 targets the Capella semantic model (
.capella/.melodymodellerand.capellafragmentfiles). The Sirius diagram/representation files (.aird) are out of scope for v1.
The core library that contains the Capella object model: the C# implementation of the Capella metamodel (the Arcadia layers — Operational Analysis, System Analysis, Logical Architecture, Physical Architecture, EPBS — and the common packages), generated from the Capella Ecore metamodel. Together with Auriga.Xmi it provides the capability to read and write Capella models and make them available as an in-memory object graph.
The Auriga.Xmi library provides an XMI reader implementation to read Capella semantic model files (.capella / .melodymodeller) and an XMI writer implementation to write them back. It resolves intra-file (xmi:id) and cross-file (href) references, including references that cross .capellafragment boundaries, into a fully resolved object graph.
The Auriga.Extensions library provides extension methods to the Auriga library to support navigation and code generation: architecture-layer accessors and LINQ-friendly query helpers that respect the Arcadia methodology semantics. This library is part of the Auriga ecosystem.
The Auriga.CodeGenerator is an Ecore-to-C# code generator, built on ECoreNetto and ECoreNetto.HandleBars, that emits the Auriga object model from the vendored Capella .ecore files. It is a development-time tool and is not published as a package.
Auriga is in early development and has not yet had its first release. Once published, the packages will be available on NuGet:
Auriga— the Capella object modelAuriga.Xmi— the.capella/.melodymodellerreader and writerAuriga.Extensions— query extension methods
GitHub Actions are used to build and test the Auriga libraries.
| Branch | Build Status |
|---|---|
| Master | |
| Development |
Background and design documentation lives in the docs folder:
- Capella Metamodel Inventory — the
.ecorefiles, the inter-package dependency graph, and the v1 code-generation scope - Arcadia Semantics Not Visible in Raw Ecore — the layer, allocation, realization, and containment conventions the public API must respect
- ECoreNetto Validation Against the Capella Metamodel — proof that ECoreNetto loads the full Capella metamodel with fully resolved references
Eclipse Capella™ is an open-source MBSE tool hosted by the Eclipse Foundation. It implements the Arcadia method, a structured engineering method for the definition and validation of complex systems architecture. Learn more at https://mbse-capella.org and https://eclipse.dev/capella/.
As part of our commitment to security and transparency, this project includes a Software Bill of Materials (SBOM) in the associated NuGet packages. The SBOM provides a detailed inventory of the components and dependencies included in the package, allowing you to track and verify the software components, their licenses, and versions.
Why SBOM?
- Improved Transparency: Gain insight into the open-source and third-party components included in this package.
- Security Assurance: By providing an SBOM, we enable users to more easily track vulnerabilities associated with the included components.
- Compliance: SBOMs help ensure compliance with licensing requirements and make it easier to audit the project's dependencies.
You can find the SBOM in the NuGet package itself, which is automatically generated and embedded during the build process.
The Auriga libraries are provided to the community under the Apache License 2.0.
Eclipse Capella™ is a trademark of the Eclipse Foundation. Auriga is an independent project and is not affiliated with or endorsed by the Eclipse Foundation.
Contributions to the code-base are welcome. However, before we can accept your contributions we ask any contributor to sign the Contributor License Agreement (CLA) and send this digitally signed to s.gerene@stariongroup.eu. You can find the CLA's in the CLA folder.