Skip to main content

DevOps for Systems Engineering

· 4 min read
Josh Kaplan

DevOps, a portmanteau of development and operations, is the concept of breaking down the boundaries between development and operations to create an environment that achieves faster feedback and enables teams iterate faster towards the right solution.

While DevOps has been the norm in the software industry for quite some time, its application to systems engineering has broadly remained conceptual. I see major opportunities for changes in this space with the introduction of SysML 2.0. While the new language itself is not a silver bullet, it does provide a foundation for new technologies in systems engineering that can a revolution in the field.

The SE Lifecycle

The systems engineering lifecycle is consists of a number of phases, each supported by a number of systems engineering activities ranging from analysis to design to document generation.

The systems engineering V model

Source: Wikipedia, Public Domain, URL: https://en.wikipedia.org/wiki/File:Systems_Engineering_Process_II.svg

Most of these activities involve cross-disciplinary collaboration and the need for rapid communication of decisions and changes to that all members of the team can make informed decisions. This is where DevOps comes in.

DevOps is a set of practices and tools that enable teams to collaborate more effectively and iterate faster. A primary measure of successful DevOps is fast feedback loops.

A Brief Note on SysML 2.0

The introduction of SysML 2.0 is a major step forward for systems engineering. Regardless of the language itself, the introduction of a text-based modeling standard opens many new doors.

First, this text-based approach should allow system models to be version controled as code, a concept we'd refer to as models-as-code. This allows teams to leverage existing and well established tools based on Git. This is beneficial for two reasons:

  1. It establishes a mechanism for version control, rollback, and collaboration on system models.
  2. It allows for the integration of system models into CI pipeline platforms.

Second, the text-based approach means it is possible to develop tools that can parse and analyze system models. This part remains to be seen, but I believe tools, particularly open source tools, designed to work with SysML 2.0 models will open the door to a larger ecosystem of reusable and vendor-independent tooling for systems engineering.

DevOps in the SE Lifecycle

One the model exists as code, we can leverage existing CI/CD tools to apply all kinds of automation tasks to the systems lifecycle. Tools like GitHub Actions, GitLab CI, Azure DevOps, and others can be used to trigger automated workflows whenever a model is changed or under more specific and complex conditions. The following table introduces some of the actions a team might take at different phases of the systems lifecycle.

Lifecycle PhaseSE DevOps Actions
ConOpsPreliminary analysis, architecture validation
RequirementsRequirements analysis, SRD generation
DesignPrelim. Analysis, Detailed analysis, External tool integration, Design feedback / validation, Document generation
ImplementationCode Generation, IaC code generation, manufacturing integration
Integration & TestInterface control document generation, interface validation, Test procedure document generation
Verification & ValidationSemi-automated requirements verification, Automated testing
OperationsContinuous delivery, Cloud operations, Resource deployment

Applying continuous integration and continuous delivery practices to systems engineering opens the door for a number of new possibilities. Whether that be document generation and delivery for rapid communication of system design changes or automated analysis and testing to validate design choices, the possibilities are endless.

However, there are still gaps in tooling to make this a reality. While the SysML 2.0 lays a foundation for a text-based modeling standard, the open source tools that do exist are in their earliest stages and there are no widely available tools for parsing, querying, and interacting with system models. The introduction of an open source tool for parsing and interacting with SysML 2.0 models would be a a critical enabler for SE DevOps.