本报告总结了 TwinOps 项目的贡献,这是一个由软件工程学院资助并在 2020 财年执行的为期一年的项目。这项研究的贡献有两方面。首先,它介绍了 ModDevOps 作为一种创新方法,使用 DevOps 概念和模型代码生成来桥接基于模型的工程和软件工程。 ModDevOps 平滑地从模型级验证和验证 (V&V) 过渡到软件生产。其次,该研究开发了 TwinOps,这是一种特定的 ModDevOps 管道,通过在构建模型工件时对其进行仔细组合,使系统工程师具备新的分析能力。
这份技术报告总结了TwinOps项目的结论,这是一个在20财政年度执行的一年期项目。
TwinOps研究了网络物理系统(CPSs)的工程。CPSs表现出多种工程、验证和核实(V&V)以及测试的挑战。在这个项目中,我们的目标是通过改善工程和测试活动来减少交付软件密集型系统的时间。
TwinOps探索了三种核心技术之间的相互作用。
基于模型的工程(MBE)。一种工程方法,依靠模型作为系统的第一类抽象来支持工程活动。
DevOps:一种通过开发和运营活动之间更好的耦合来支持软件持续交付的组织努力。
数字孪生:一种支持系统实时监控和诊断的基础设施,以实现系统的持续改进。
到20财年结束时,SEI通过对TwinOps的研究取得了以下成果。
SEI提供了一个ModDevOps的例子,通过纳入MBE和V&V能力来扩展DevOps。我们展示了MBE模型处理能力是如何实现快速系统原型的。
SEI通过定义TwinOps流程,为构建软件密集型CPS的系统架构师创建了一个增强的分析和测试流程。
SEI利用TwinOps在ModDevOps和数字孪生的基础上,在运行时收集系统的数据,并将其与其他工程工件进行比较:模型模拟和分析。这种比较能够实现快速的系统诊断。
ModDevOps和TwinOps过程都被记录为SysML模型。这些模型支持流程的完整定义。因此,这些流程可以被审查并适应其他项目的需要。
两个使用组合建模语言(SysML、架构分析与设计语言[AADL]和Modelica[除C语言编程外])的案例研究说明了这两个贡献。我们使用Azure IoT和GitLab forge作为支持DevOps的基础设施。