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 |
AADL architecture model construction based on FACE mode
基于FACE模型的AADL体系架构模型构建方法
1
AVIC Xi'an Aeronautical Computing Technique Research Institute, Xi'an 710065, China
2
Shaanxi Aircraft Industry Co., Ltd, Hanzhong 723000, China
3
School of Software, Northwestern Polytechnical University, Xi'an 710072, China
Received:
17
December
2023
In the development of time-sensitive, mission-critical aerospace software systems, the modeling technology that combines the FACE(future airborne capability environment) open architecture model with the AADL(architecture analysis & design language) architectural model is gradually becoming a research hot spot. This paper proposes an automatic construction method for AADL models based on the FACE model. Firstly, the formal definition of the syntactic structure of the FACE model is given using context-independent grammar. Secondly, the 26 kinds of mapping rules from FACE model elements to AADL model elements are designed, and the rationality of the mapping rules is proved by the graph homomorphism theory. Then, the StringTemplate template is designed based on the mapping rules, and the template engine algorithm for generating AADL model is given. Finally, a total of 12 kinds of FACE models elements in four aspects are taken as experimental objects, 241 FACE model instances are designed as test cases, and the generated AADL models are verified in the OSATE tool. The method in this paper has been applied in the aviation field. The results can avoid repeated modeling work in the preliminary design stage and the detailed design stage.
摘要
在时间敏感任务关键航空航天等软件系统研制中, FACE(future airborne capability environment)开放架构模型和AADL(architecture analysis & design language)体系架构模型相结合的建模技术正逐渐成为研究热点。因此, 提出了基于FACE模型的AADL模型自动构建方法。采用上下文无关文法给出了FACE模型语法结构的形式化定义; 给出了FACE模型到AADL模型的映射机制, 包括26类FACE模型元素到AADL模型元素的映射规则, 并采用图同态理论证明了映射规则的正确性; 基于映射规则设计StringTemplate模板和引擎算法, 自动构建AADL模型; 将4个方面共计12大类FACE模型元素作为实验对象, 设计241个FACE模型实例作为测试用例, 构建的AADL模型均在OSATE工具中通过验证。所提方法已被实际应用于航空领域, 这样避免概要设计阶段和详细设计阶段的重复建模工作。
Key words: automatic model construction / FACE model / AADL model / mapping mechanism / StringTemplate template
关键字 : 模型自动构建 / FACE模型 / AADL模型 / 映射机制 / StringTemplate模板
© 2024 Journal of Northwestern Polytechnical University. All rights reserved.
This 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模型文件。
![]() |
图1 基于FACE模型构建AADL模型的框架图 |
3 核心映射机制
3.1 映射机制
本文提出了如图 2所示的模型映射机制。该机制分为基于语法规则的同构化处理、映射规则确定和模型构建3个方面。首先利用上下文无关文法对FACE模型和AADL模型的语法规则进行描述, 实现2个模型之间的同构化处理。然后,在模型同构化的基础上,制定两者之间的映射规则。
![]() |
图2 FACE开放架构模型到AADL模型映射机制图 |
3.2 映射规则定义
本节对FACE模型的4个方面分别定义到AADL模型的映射规则。
为解决命名规范问题,首先定义2条规则。Rule1(文件名命名规则)表示生成AADL文件时,文件应命名为“系统名称_转换部分”以避免歧义和关键字冲突。Rule2(包名命名规则)表示根据AADL语法规定,包名与文件名必须一致。
3.2.1 数据模型的映射规则
根据FACE模型和AADL模型的上下文无关文法的定义,制定两者之间的映射规则,如表 1所示。
数据模型映射规则表
3.2.2 UoP模型的映射规则
UoP模型分为可移植组件和特定平台组件, 并定义相关端口, 其对应的映射规则如表 2所示。
UoP模型映射规则表
3.2.3 ARINC653模型的映射规则
ARINC653系统模型由层间任务模型和系统层分区模型组成。ARINC653系统模型元素到AADL模型元素的映射规则如表 3所示。
ARINC653系统模型映射表
3.2.4 POSIX系统模型的映射规则
POSIX系统模型主要由I/O配置、传输服务以及UoP组件组成。POSIX系统模型以及AADL模型之间的映射规则如表 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个图G1和G2,其中 V1和 V2表示2个图的节点集合,E1和 E2表示图的边缘节点(边)集合。图同态函数f定义了从图G1到图G2的转换,f定义为f=G1→G2, f满足(1)式的约束。
结合定义1和映射规则,G1和G2分别对应FACE和AADL模型的文法定义,V1和 V2表示两者的终结符与非终结符集合,E1和 E2为各自的产生式规则集合。在FACE模型的上下文无关文法定义MF中,每个元素与产生式规则都对应FACE模型实例,映射为实例元素及其语法结构,因此映射函数β是图同态函数。同理,β′也具有图同态性质。
命题1 如果映射函数f是图同态的,并且映射函数g是图同态的,那么f和g的复合运算f∘g=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。
![]() |
图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
模板与规则对应表
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模型正确性。
实验对象
4.2 实验验证过程的案例分析
按照表 6,利用FACEGen建立FACE模型4个方面实例,所有实验对象依照算法1转换。以数据模型为例,算法输入为FACE数据模型文件和StringTemplate模板文件, 调用AADL模型构建引擎,自动生成对应的AADL模型文件。FACE数据模型文件的结构如图 4所示。
根据映射规则,数据模型模板设计如图 5所示。
本文把241个FACE模型测试用例文件作为测试用例,利用OSATE工具运行构建的AADL模型文件,均可正确编译执行。
![]() |
图4 FACE数据模型结构图 |
![]() |
图5 genDataPackage模板 |
4.3 实验结果分析
本文对表 6中的实验对象进行模型转换,生成AADL文件,表 7给出了生成的AADL模型和具体模型特征的描述。
实验结果表明,由生成的AADL模型具有可复用性和可移植性。如果人工原生态设计AADL模型,则无法保证AADL进程之间的解耦和兼容性、可移植性、IO设备访问的标准化、传输服务通讯的标准化,以及模型之间的一致性等问题。
AADL模型生成结果
5 结论
本文给出了FACE和AADL模型语法结构形式化定义的基础理论与方法框架;提出了FACE模型到AADL模型的核心映射规则,并对规则的合理性进行证明;提出了基于StringTemplate模板的AADL模型构建方法。AADL模型构建方法支持基于FACE模型或AADL模型的正向设计与分析。目前映射规则支持FACE 3.0,未来将依据FACE官方新版本进行优化,并结合时间敏感项目的不同需求,升级转换模板设计,实现模板的灵活定制与扩展。
References
- 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]
- ADAMS C. FACE software effort builds momentum[J]. Avionics Magazine, 2014, 38(3): 12–17. [Article] [Google Scholar]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- MOORE T, CARLING C. Understanding language: towards a post-chomskyan linguistics[M]. London: Palgrave Macmillan, 1982: 19–47 [Google Scholar]
- 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
All Figures
![]() |
图1 基于FACE模型构建AADL模型的框架图 |
In the text |
![]() |
图2 FACE开放架构模型到AADL模型映射机制图 |
In the text |
![]() |
图3 映射关系图 |
In the text |
![]() |
图4 FACE数据模型结构图 |
In the text |
![]() |
图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.