《Science of Computer Programming》:From Agent-Oriented Modelling to Cyber-Physical Implementation: A Model-Driven Approach
编辑推荐:
•提出了一种面向代理的模型驱动开发流程,用于网络物理系统(MDD4CPS)。•定义了一种具有正式元模型、符号表示法和语义的领域特定语言,用于CPS建模。•实现了在CIM、PIM和PSM阶段之间的自动模型到模型以及模型到代码的转换。•将该流程整合到diagrams.net中,以实现
- •
提出了一种面向代理的模型驱动开发流程,用于网络物理系统(MDD4CPS)。
- •
定义了一种具有正式元模型、符号表示法和语义的领域特定语言,用于CPS建模。
- •
实现了在CIM、PIM和PSM阶段之间的自动模型到模型以及模型到代码的转换。
- •
将该流程整合到diagrams.net中,以实现可追溯且可重复的CPS开发。
- •
通过一个温室自动化示例的概念验证,证明了该方法的可行性。
引言
网络物理系统通过分布式组件整合计算过程与物理过程,这带来了较高的开发复杂性[1]、[2]。需要结构化的方法来管理这种复杂性,并使系统实现与高层目标保持一致[3]。面向代理的方法被认为是一种适合构建CPS的范式,因为它能够将组件建模为能够交互并适应环境的自主实体[1]。然而,尽管具有潜力,将面向代理的方法融入CPS工程仍是一项挑战。模型驱动开发通过从抽象模型到具体实现的连续转换,为软件和系统设计提供了一种系统化方法[4]、[5]、[6]。虽然已有研究探讨了MDD在CPS中的应用[7]、[8]、[9]、[10],但尚未建立起从概念建模到实际硬件执行的完整集成流程[11]。如[12]中所述,针对网络物理系统的模型驱动开发的系统性文献综述发现了几个未被充分研究的领域,包括需求、社会技术方面以及传感器和执行器等网络组件的软件问题。该研究还指出,对整个开发周期的覆盖不足,尤其是模型到模型和模型到代码的转换以及技术解决方案的可用性方面。我们将这些局限性作为一个整体来进行解决。
本研究成果是基于“设计科学研究”(DSR)这一更广泛的研究项目的一部分,通过设计和展示能够解决相关研究问题的成果来生成知识[13]、[14]。本研究属于DSR周期中的一个环节,旨在通过一系列转换,将面向代理的建模入口点与可执行的CPS软件连接起来,从而实现端到端的模型驱动流程,这一工作是在之前利用离散操作模式简化网络物理组件建模的基础上进行的[15]。在此基础上,本研究探讨了如何将这些概念模型系统地转换为可部署的CPS实现,同时保持不同抽象层次间的可追溯性。本研究以以下研究问题为指导:
- •
RQ1:如何构建一种基于面向代理概念模型的模型驱动流程,以生成可执行的CPS实现?
- •
RQ2:中间建模语言需要具备哪些特性,才能有效连接基于iStar的概念模型与特定平台的CPS实现?
- •
RQ3:如何在整个从CIM到代码的建模阶段保持可追溯性?
本研究提出了一种分为四个阶段的CPS模型驱动开发流程:与计算无关的建模(CIM)、与平台无关的建模(PIM)、特定平台的建模(PSM)以及代码生成。该方法在CIM阶段利用iStar 2.0实现面向代理的建模,然后通过一种领域特定语言将其系统地转换为具体的CPS结构。为支持这些转换,我们开发了与基于Web的建模平台diagrams.net集成的自定义工具,以实现自动的模型到模型和模型到代码的转换。该工作流程通过温室自动化的端到端概念验证得到了展示,从CIM开始一直发展到生成的代码。所生成的软件被部署在基于Arduino的计算设备上,通过MQTT1实现了传感器与执行器之间的交互及消息传递。这一概念验证展示了该流程的适用性,同时也说明了在所分析的场景中如何保持各阶段间的可追溯性。
与本设计科学研究周期的范围一致,本文侧重于在典型的CPS场景中设计相关成果并展示其可行性,而非对系统行为进行正式验证或开展大规模的实证研究。
本文是我们之前在伊比利亚美洲软件工程会议(CIbSE 2025)上发表的文章的扩展版,经过了大幅修改[16]。除了最初介绍该方法之外,这一版本还对网络物理系统的模型驱动开发流程(MDD4CPS)进行了更详细的阐述,包括其理论基础、方法论定位以及从概念建模到在实际硬件上运行的端到端工作流程。
尤其值得一提的是,本文引入了一种为中间建模阶段正式定义的领域特定语言,详细介绍了其符号表示、语义和元模型,并明确了连接CIM、PIM、PSM和代码各阶段的转换流程。此外,本文还阐述了由工具支持的流程、设计人员在优化过程中的作用,以及保持不同抽象层次间可追溯性的机制。而且,概念验证是在实际的CPS组件上进行的,这为该方法的可行性提供了超出会议版本概念范围的实证支持。这些补充内容使得所提出的面向代理的CPS模型驱动开发流程有了更为详细且具有技术依据的描述。
本文的其余部分结构如下:第2节介绍理论背景;第3节阐述所提出的MDD4CPS流程;第4节通过开发一个温室自动化系统来说明该方法;第5节呈现结果并进行分析;第6节回顾相关研究;最后,第7节对全文进行总结,并指出未来研究的方向。
章节摘录
网络物理系统
网络物理系统通过监控和控制为处理复杂的物理过程提供解决方案。这类系统既包含软件组件,也包含硬件组件,它们能够检测物理世界中的各种变量并作出相应响应。由于它们的软件和硬件分布在多个设备上,这类系统本质上具有较高的复杂性[1]。
除了技术构成之外,由于紧密的耦合关系,CPS还面临着诸多工程上的挑战
CPS的模型驱动开发:从代理到网络物理系统
基于前一节介绍的概念,所提出的方法将面向代理的建模与模型驱动开发相结合,形成了一种用于网络物理系统(CPS)的结构化工程流程。在本研究中,CPS被看作是由具备感知、执行、通信和计算能力的网络物理组件构成的系统。每个CPC都可以进行本地处理和决策,从而实现分布式控制
展示模型驱动开发方法:开发用于温室自动化的网络物理系统
为了证明在面向代理的方法下进行模型驱动开发以构建网络物理系统是可行的,我们实施了一个概念验证。这一演示应被视为可行性验证,而非正式实验。其目的是展示所提出的MDD4CPS流程的内部一致性及其实际应用价值,即从面向代理的概念模型到可执行的CPS的完整工作流程
结果与讨论
所提出的MDD流程被应用于一个CPS的设计与实现,涵盖了从概念建模(CIM)到可执行代码的整个工作流程。基于温室自动化示例的概念验证表明,根据模型设计,在基于Arduino的平台上运行的网络物理组件能够按照预期进行交互,并表现出预期的行为。这些观察结果表明,所提出的流程确实能够实现
相关研究
本节将MDD4CPS与近期一些用于CPS的模型驱动方法进行了对比。由于无法进行全面梳理,本分析主要关注那些涉及明确模型、基于转换的工作流程以及可执行成果生成的方法,同时考虑了它们的生命周期覆盖范围、抽象层次、自动化程度、质量考量以及背后的模型驱动机制。
结论
本研究提出了一种面向代理的CPS模型驱动开发流程,支持从概念建模(CIM)到可执行代码的端到端转换。通过在一个温室自动化示例上的概念验证,该流程得到了验证,所生成的网络物理组件能够在基于Arduino的平台上按预期运行,通过MQTT进行交互,并遵循预定义的行为模式。这些结果证实了通过模型驱动开发来构建CPS的可行性
关于稿件准备过程中生成式AI和AI辅助技术的声明
在准备本稿件时,作者们使用了ChatGPT和Mistral来减少表述上的歧义,确保英文表达对读者来说只有唯一含义。作者们根据需要对输出内容进行了审核和修改,并对最终发表文章的内容负全责。
CRediT作者贡献说明
Claudio Navarro:写作——审阅与编辑,写作——初稿撰写,验证,软件,数据整理,概念构建。Lorenzo Devia:验证,软件,形式化分析。Jose E. Labra Gayo:写作——审阅与编辑,验证,监督,概念构建。Carlos Cares:写作——审阅与编辑,监督,软件,方法论,研究实施,形式化分析,概念构建。
利益冲突声明
作者声明,他们不存在任何可能影响本文所述工作的已知财务利益或个人关系。
Claudio Navarro|Lorenzo Devia|Jose E. Labra Gayo|Carlos Cares