Open Access
Issue
JNWPU
Volume 42, Number 6, December 2024
Page(s) 1160 - 1167
DOI https://doi.org/10.1051/jnwpu/20244261160
Published online 03 February 2025

© 2024 Journal of Northwestern Polytechnical University. All rights reserved.

Licence Creative CommonsThis is an Open Access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

基于模型的系统工程(model-based system engineering, MBSE)是复杂产品研制和全生命期保障的顶层方法学和研发范式。FACE(future airborne capability environment)和AADL(architecture analysis & design language)是MBSE的关键使能技术。FACE模型服务于复杂产品研制的系统概要设计,涵盖软件组件、组件间数据共享与互操作的数据模型、IO服务、组件间通讯服务、分区配置和接口标准,但不涉及硬件体系结构和组件/系统的行为建模[1]。AADL模型服务于复杂产品研制的系统详细设计与分析阶段,包括FACE中的软件模型和系统的硬件体系结构、组件/系统的行为模型和故障模型等。但AADL模型缺乏统一的组件设计标准、IO服务、组件间通讯接口标准以及数据模型共享和通讯规范,导致其跨平台可移植性和可复用性无法保证。

本文提出基于FACE模型的AADL体系架构模型自动构建方法,该方法建立在两者上下文无关文法定义和映射机制之上,保证两者之间功能和语义的一致性。主要贡献包括:

1) 提出了基于FACE模型的AADL模型生成框架,并采用上下文无关文法对FACE模型的语法进行精确定义, 为后续映射机制研究奠定理论基础。

2) 提出了FACE模型到AADL模型的映射机制,包括26类映射规则,并采用图同态理论证明映射规则的合理性。本文提出的映射机制为AADL模型生成提供理论指导,同时也可以指导原生态AADL模型的建模技术,使构建的AADL体系架构模型遵循FACE分段设计思想、接口标准和数据模型标准,具备可复用、可移植性。

3) 提出了基于StringTemplate模板自动构建AADL模型的方法。同时将FACE模型4个方面共计12类建模要素作为实验对象,设计了241个FACE模型作为测试用例,对方法有效性进行了实验验证,研究成果已被应用于在大型工程实践中。

1 相关工作

FACE标准作为一种面向服务软件架构,由美国军方、工业界和学术界于2010年共同发起[2],近5年,FACE被重点应用于航空领域,也被航天和其他嵌入式领域广泛借鉴。AADL作为软硬件架构建模语言,于2001年被提出,在航空航天等领域获得了较为成功的应用。

目前,模型转换已经成为国内外研究和工程实践的热点。Mian等[3]通过模型转换技术,对AADL模型进行了时序故障树分析和多故障模式分析。Zhang等[4]介绍了从AADL到有状态定时CSP的模型转换方法,以形式化分析AADL模型的行为属性。Wang等[5]建立了AADL多视图安全模型,并将其转化为时间抽象状态机模型,形成了基于扩展AADL模型的安全验证与评估方法。

目前涉及FACE开放架构模型转换的研究也逐步开展。2018年,Zhe等[6]提出将SysML、AADL和FACE模型协同使用,实现基于模型的软件产品开发,提出“SysML-AADL”、“AADL-FACE”、“FACE-AADL-SCADE Suite”3类映射策略。2019年美国汽车工程师学会(SAE)为了将开放架构组件以标准方式集成到AADL模型中,提出了将FACE模型转换为AADL模型的思想,借助AADL生态实现对FACE模型的分析和验证[7]。2021年Xiao等[8]基于元数据模型映射规则设计了SysML模型到FACE数据模型的映射转换方法,实现从需求模型到设计模型的自动转换。

本文在SAE[7]的基础上,采用上下文无关文法[9]严格形式化描述FACE模型,并细化了映射规则,覆盖12类关键建模要素,实现了从FACE到AADL模型的高效自动化转换。相较于现有研究,本文方法针对FACE模型提供了完整的语法定义,弥补了其描述不足的问题,为研究和实践FACE技术标准奠定了理论基础。

2 基础理论与方法框架

2.1 FACE模型上下文无关文法的定义

本文首次采用乔姆斯基上下文无关文法[8]对FACE模型进行形式化定义。以UoP模型为例,其核心元素包括可移植组件PortableComponent和特定平台组件PlatformSpecificComponent。下文给出了其语法结构G[UoPModel]的定义,其中组件包含端口信息MessagePort;ARINCProcess是识别这些组件在ARINC653系统中的节点元素,其属性通过属性(Attribute)定义;UoP模型通过第7条产生式规则右部的Id与G[DataModel]的第5条产生式规则中PlatformDataModel的Id对应。

文法G[UoPModel]的定义:

1: UoPModel →" < " "model" Id UoPKind Guid">" PortableComponent|PlatformSpecificComponent" < " "/model>"

2: Id→"id""="string

3: UoPKind→ "kind""=""UoPModel"

4: Guid→"guid""="string

5: PortableComponent→" < ""model" Id PCSKind Guid">"([ARINCProcess|{MessagePort}+]" < " "/model>"|[{MessagePort}+]" < ""/model>")

6: PCSKind→"kind""=""PortableComponent"

7: ARINCProcess→" < ""atom" Id ARINCPKind (PeriodicAttribute|NonPeriodicAttribute) Guid ">"" < ""/atom>"

8: ARINCPKind→"kind""=""ARINCProcess"

9: PeriodicAttribute→Period ExecutionTime Deadline Offset

10: NonPeriodicAttribute→Deadline

11: Period→"period""=" int

12: Deadline→"deadline""=" int

13: ExecutionTime→"duration""=" int

14: Offset→"Offset""=" int

15: MessagePort→" < ""reference" Id "MessageName Guid>" < ""/reference>"

16: MessageName→"kind""=" "InBoundMessage"|"OutBoundMessage"

17: PlatformSpecificComponent→" < ""model" Id PSSSKind Guid">"([ARINCProcess|{IOPort}|{MessagePort}]" < ""/model>"|[{IOPort}|{MessagePort}]" < ""/model>")

18: PSSSKind→"kind" "=""PlatformSpecificComponent"

19: IOPort→" < ""model" Id IOPortName Guid ">" " < ""/model>"

20: IOPortName→"kind""=""IOSourcePort"|"IODestinationPort"|"IOBidirectionalPort"

2.2 基于FACE模型的AADL模型构建框架

基于FACE模型构建AADL模型的框架如图 1所示。首先,分析两者语法结构,建立映射机制。接着解析FACE模型文件,并将其保存至定义的实体类对象中。然后,根据映射机制分别为数据模型、UoP模型、ARINC653系统模型和POSIX系统模型设计对应的StringTemplate模板。最后,用实体类中的数据信息替换模板参数列表,实例化模板文件,通过模板算法引擎生成并输出AADL模型文件。

thumbnail 图1

基于FACE模型构建AADL模型的框架图

3 核心映射机制

3.1 映射机制

本文提出了如图 2所示的模型映射机制。该机制分为基于语法规则的同构化处理、映射规则确定和模型构建3个方面。首先利用上下文无关文法对FACE模型和AADL模型的语法规则进行描述, 实现2个模型之间的同构化处理。然后,在模型同构化的基础上,制定两者之间的映射规则。

thumbnail 图2

FACE开放架构模型到AADL模型映射机制图

3.2 映射规则定义

本节对FACE模型的4个方面分别定义到AADL模型的映射规则。

为解决命名规范问题,首先定义2条规则。Rule1(文件名命名规则)表示生成AADL文件时,文件应命名为“系统名称_转换部分”以避免歧义和关键字冲突。Rule2(包名命名规则)表示根据AADL语法规定,包名与文件名必须一致。

3.2.1 数据模型的映射规则

根据FACE模型和AADL模型的上下文无关文法的定义,制定两者之间的映射规则,如表 1所示。

表1

数据模型映射规则表

3.2.2 UoP模型的映射规则

UoP模型分为可移植组件和特定平台组件, 并定义相关端口, 其对应的映射规则如表 2所示。

表2

UoP模型映射规则表

3.2.3 ARINC653模型的映射规则

ARINC653系统模型由层间任务模型和系统层分区模型组成。ARINC653系统模型元素到AADL模型元素的映射规则如表 3所示。

表3

ARINC653系统模型映射表

3.2.4 POSIX系统模型的映射规则

POSIX系统模型主要由I/O配置、传输服务以及UoP组件组成。POSIX系统模型以及AADL模型之间的映射规则如表 4所示。

表4

POSIX系统模型映射规则表

3.3 映射规则合理性证明

采用图同态相关概念[10]的方法对本文模型转换方法的正确性进行验证。

图 3所示的模型转换映射关系中,MF和MA分别表示FACE和AADL的文法定义,Ins(F)和Ins(AADL)为其模型实例。映射由文法映射h、实例转换函数r、类型保留映射β(MF到Ins(F))和β′(MA到Ins(AADL))、MF到Ins(AADL)的映射关系φ构成。

首先证明FACE模型实例Ins(F)到AADL模型实例Ins(AADL)的转换函数r是同态的。

定义1   图同态函数f。假设有2个图G1G2,其中 V1V2表示2个图的节点集合,E1E2表示图的边缘节点(边)集合。图同态函数f定义了从图G1到图G2的转换,f定义为f=G1G2, f满足(1)式的约束。

结合定义1和映射规则,G1G2分别对应FACE和AADL模型的文法定义,V1V2表示两者的终结符与非终结符集合,E1E2为各自的产生式规则集合。在FACE模型的上下文无关文法定义MF中,每个元素与产生式规则都对应FACE模型实例,映射为实例元素及其语法结构,因此映射函数β是图同态函数。同理,β′也具有图同态性质。

命题1   如果映射函数f是图同态的,并且映射函数g是图同态的,那么fg的复合运算fg=f(g(x))是图同态的。

根据命题1结合本文可知,因为函数h, β′是图同态的,所以φ(hβ′)是图同态的。

定理1   已知FACE元模型MF和AADL元模型MA之间存在同态映射函数h,MF和Ins(F)之间为类型保留映射函数β,MA和Ins(AADL)之间同样存在类型保留映射函数β′,则FACE模型实例Ins(F)与AADL模型实例Ins(AADL)之间的映射函数r是图同态函数。

定理1的证明如下所示:

由(1)式和(5)式可得:

将(6)式中的函数φ替换为rβ并化简可得

根据(7)式,因为类型保留映射函数β是图同态的,结合(1)式表示的同态函数满足的约束,可以推断映射函数r是图同态的,即证明定理1。

thumbnail 图3

映射关系图

3.4 AADL模型文件自动构建的引擎算法

为实现模型转换,分别设计FACE模型的数据模型、UoP模型、ARINC653系统模型和POSIX系统模型StringTemplate转换模板。模板与映射规则的映射关系以及模板待传参数如表 5所示。

算法1描述了AADL模型自动构建的流程。第1行初始化模板加载器并加载指定的StringTemplate模板文件;第2行初始化数据结构以存储不同类型的FACE模型参数;第3行解析FACE模型文件,从指定路径提取节点生成实体列表;第4~8行遍历实体列表,调用createModel方法生成模型对象并存入参数数组;第9行创建模板实例,第10~13行将解析的参数数据传入模板;第14行将模板渲染结果写入文件,完成AADL模型文件的生成。

算法1   AADL模型生成算法

输入: 模板文件(template), 开放架构模型文件(face)

输出: AADL模型文件(AADL)

1:   stg←STGroupFile(template)

2:    dataModelParam, UoPModelParam, PosixModelParam, ARINCModelParam←[], [], [], []

3:    dataEntity, UoPEntity, PosixEntity, ARINCEn-tity←selectNodes(DATA_PATH), selectNodes(UOP_PATH), selectNodes(POSIX_PATH), selectNodes(ARINC_PATH)

4:   for entity, param in[(dataEntity, dataModelPar-am), (UOPEntity, UOPModelParam), (PosixEntity, PosixModelParam), (ARINCEntity, ARINCModelParam)]

do

5:     for ele in entity do

//createModel(ele)→根据节点ele生成对应的模型对象

6:      param.add(createModel(ele))

7:     end for

8:   end for

9:   st←stg.getInstanceOf()

10: st.add("dataModelParam", dataModelParam)

11: st.add("UoPModelParam", UoPModelParam)

12: st.add("ARINCModelParam", ARINCModelParam)

13: st.add("PosixModelParam", PosixModelParam)

14: writeToFile(AADI, st.render())//将内容写入到文件file

表5

模板与规则对应表

4 实验结果及分析

4.1 实验对象及实验方法

搭建的硬件环境包括Inter Core2 Duo处理器、4 GB内存和1 000 GB存储硬盘,软件环境包括Windows 10(64位)操作系统、开放架构建模平台FACEGen、AADL建模工具、OSATE(版本2.10.0)。其中FACEGen是团队自主研发的FACE可视化建模工具(历时3年,代码量5万余行)。

将FACE模型4个方面的12类测试套件作为实验对象(见表 6),对共计241个测试用例采用本文方法生成对应的AADL模型文件。通过人工检查和OSATE工具编译共同验证AADL模型正确性。

表6

实验对象

4.2 实验验证过程的案例分析

按照表 6,利用FACEGen建立FACE模型4个方面实例,所有实验对象依照算法1转换。以数据模型为例,算法输入为FACE数据模型文件和StringTemplate模板文件, 调用AADL模型构建引擎,自动生成对应的AADL模型文件。FACE数据模型文件的结构如图 4所示。

根据映射规则,数据模型模板设计如图 5所示。

本文把241个FACE模型测试用例文件作为测试用例,利用OSATE工具运行构建的AADL模型文件,均可正确编译执行。

thumbnail 图4

FACE数据模型结构图

thumbnail 图5

genDataPackage模板

4.3 实验结果分析

本文对表 6中的实验对象进行模型转换,生成AADL文件,表 7给出了生成的AADL模型和具体模型特征的描述。

实验结果表明,由生成的AADL模型具有可复用性和可移植性。如果人工原生态设计AADL模型,则无法保证AADL进程之间的解耦和兼容性、可移植性、IO设备访问的标准化、传输服务通讯的标准化,以及模型之间的一致性等问题。

表7

AADL模型生成结果

5 结论

本文给出了FACE和AADL模型语法结构形式化定义的基础理论与方法框架;提出了FACE模型到AADL模型的核心映射规则,并对规则的合理性进行证明;提出了基于StringTemplate模板的AADL模型构建方法。AADL模型构建方法支持基于FACE模型或AADL模型的正向设计与分析。目前映射规则支持FACE 3.0,未来将依据FACE官方新版本进行优化,并结合时间敏感项目的不同需求,升级转换模板设计,实现模板的灵活定制与扩展。

References

  1. SIMI S M, UIDENICH J, MULHOLLAND S P, et al. Model-based tools designed for the FACETM technical standard[C]//2020 IEEE Aerospace Conference, 2020: 1–14 [Google Scholar]
  2. ADAMS C. FACE software effort builds momentum[J]. Avionics Magazine, 2014, 38(3): 12–17. [Article] [Google Scholar]
  3. MIAN Z, BOTTACI L, PAPADOPOULOS Y, et al. Model transformation for analyzing dependability of AADL model by using HiP-HOPS[J]. Journal of Systems and Software, 2019, 151: 258–282. [Article] [CrossRef] [Google Scholar]
  4. ZHANG F, ZHAO Y, MA D, et al. Formal verification of behavioral AADL models by stateful timed CSP[J]. IEEE Access, 2017, 5: 27421–27438. [Article] [CrossRef] [Google Scholar]
  5. WANG B, KE W, ZHANG J, et al. A method of software system security verification and evaluation based on extension of AADL model[C]//2018 Eighth International Conference on Instrumentation & Measurement, Computer, Communication and Control, 2018: 1726–1731 [Google Scholar]
  6. ZHE W, HUGUES J, CHAUDEMAR J C, et al. An integrated approach to model based engineering with sysML, AADL and FACE[C]//SAE Aerospace Systems and Technology Conference, 2018 [Google Scholar]
  7. EDMAN R, SMITH T D. AADL annex for the FACE technical standard edition 3.0(Draft)[J/OL](2018-04-15)[2023-12-10]. [Article] [Google Scholar]
  8. XIAO Z, HU X, XIAO J, et al. Transformation from system model to FACE data model based on metadata mapping[C]//2021 IEEE 16th Conference on Industrial Electronics and Applications, 2021: 1495–1500 [Google Scholar]
  9. MOORE T, CARLING C. Understanding language: towards a post-chomskyan linguistics[M]. London: Palgrave Macmillan, 1982: 19–47 [Google Scholar]
  10. YOUNES A B, HLAOUI Y B, AYED L J B. A meta-model transformation from UML activity diagrams to Event-B models[C]//2014 IEEE 38th International Computer Software and Applications Conference Workshops, 2014: 740–745 [Google Scholar]

All Tables

表1

数据模型映射规则表

表2

UoP模型映射规则表

表3

ARINC653系统模型映射表

表4

POSIX系统模型映射规则表

表5

模板与规则对应表

表6

实验对象

表7

AADL模型生成结果

All Figures

thumbnail 图1

基于FACE模型构建AADL模型的框架图

In the text
thumbnail 图2

FACE开放架构模型到AADL模型映射机制图

In the text
thumbnail 图3

映射关系图

In the text
thumbnail 图4

FACE数据模型结构图

In the text
thumbnail 图5

genDataPackage模板

In the text

Current usage metrics show cumulative count of Article Views (full-text article views including HTML views, PDF and ePub downloads, according to the available data) and Abstracts Views on Vision4Press platform.

Data correspond to usage on the plateform after 2015. The current usage metrics is available 48-96 hours after online publication and is updated daily on week days.

Initial download of the metrics may take a while.