What is Systems as Code?

We are strong proponents of the “Everything as Code” approach to various engineering problems, which is the practice of defining and managing various artifacts as code.

Some examples of “as-code” practices in software and IT engineering are:

  • “Infrastructure as Code” (e.g. Terraform),

  • “Documentation as Code” (e.g. Sphinx),

  • “Pipelines as Code” (e.g. GitHub Actions, GitLab CI/CD).

With the introduction of SysML v2 and its textual syntax, we saw an opportunity to push forward the “Systems as Code” paradigm, empowering systems engineers with the same fast and efficient feedback loops as software and IT development has had for many years now.

Compared to previously very popular XMI-based formats, textual notation has the following benefits:

  • Changes are traceable and easily inspected through Git and other version control systems.

  • It enables modularization of models through model packages and dependencies, which helps with system readability, scalability and reusability.

  • Custom validation rules can be implemented, reducing human error.

  • Universal format allows users to choose their favorite modeling tool, without being locked into the tool vendor’s designs. Some tools (e.g. VSCode Live Share Extension or Zed) also allow for concurrent editing of textual models, making it easier to collaborate on models.