杨双泽 赵有华 朱丹 陈启航
摘 要:针对体系结构视图产品在验证系统动态行为及状态转换等方面存在的不足,难以有效保证所建模型与具体军事需求的一致性,提出了基于xUML与DODAF的可执行体系结构建模及验证方法,分析了该方法的可行性与适用性,及其在验证系统动态行为方面的优势,给出了利用该方法进行建模的具体步骤。最后结合区域防空指挥信息系统开发实例,通过建模对该系统的部分动态行为进行了验证和分析,进一步证明了该方法的有效性。
关键词:可执行体系结构;体系结构验证;可执行统一建模语言;动作规约语言
中图分类号:TP399 文献标识码:A 文章编号:2096-4706(2023)05-0024-06
Research on Executable Architecture Modeling of Command Information System Based on xUML and DODAF
YANG Shuangze, ZHAO Youhua, ZHU Dan, CHEN Qihang
(Army Engineering University of PLA, Chongqing 400035, China)
Abstract: In view of the existing shortcomings of architecture view products in verifying system dynamic behavior and state transition, it is difficult to effectively ensure the consistency between the built model and specific military requirements, and an executable architecture modeling and verification method based on xUML (executable Unified Modeling Language) and DODAF (Department of Defense Architecture Framework) is proposed. The feasibility and applicability of this method and its advantages in verifying the dynamic behavior of the system are analyzed. The specific steps of modeling using this method are given. Finally, it combines the example of the development of regional air defense command information system, and verifies and analyzes some dynamic behaviors of the system by modeling, which further proves the effectiveness of the method.
Keywords: executable architecture; architecture validation; executable unified modeling language; action specification language
0 引 言
体系架构[1]是系统各组成部分的结构、它们之间的关系以及制约其设计与随时间演进的原则和指南。体系结构框架是体系结构的开发指南和规范,规定了体系结构的描述方法,表现方式和开发步骤等。在军事领域,美国国防部体系结构框架(Department of Defense Architecture Framework, DODAF)[2]采用多视角的描述方法从不同角度展现系统全貌,能够很好地反映指挥员、系统使用人员、技术人员等不同角色的需求,打破了部门、项目、领域等层次界限,实现有序的信息共享,是当前最具代表性的体系结构框架,目前已发展至v2.05版本。多国和组织在借鉴DODAF的基础上,结合自身实际,也分別研究制定了符合自身特点的体系结构框架,如英国国防部体系架构(MODAF)、北约体系架构(NAF)、统一体系架构(UAF)等。
体系结构验证是体系结构开发阶段的重要工作,是体系结构质量的重要保障。其任务主要是检查体系结构设计的正确性,确保所设计的体系结构能够满足系统各项功能性与非功能性需求[3]。当前各体系结构框架大多采用多视图的描述方法,各视图之间存在多种关联关系,能够更加全面的展现系统的整体面貌,但也增加了开发和验证的难度。且开发的视图产品都是静态的,虽然有描述系统动态行为的视图产品,但对于指挥信息系统这类分布异构、功能多样且结构复杂的巨系统来说,其体系结构描述中必然包含大量内容和信息,对其动态行为的验证必然是复杂且困难的。因此,将体系结构产品通过一定的规则转化为可执行模型,通过模拟仿真验证系统动态行为是当前体系结构验证的热点和趋势。如,文献[4-9]分别基于着色Petri网(CPN)、对象Petri网(OPN)及ExtendSim仿真工具的方式对体系结构动态行为如逻辑运行规则、状态变迁、资源竞争及冲突死锁等方面的建模与验证进行了一定的研究,取得了较好的效果。其基本思路都是将部分描述系统动态行为的视图产品转化为可执行模型,通过仿真模型的运行来完成体系结构验证的。但这种方式在转换的过程中会产生中间件,存在转换风险,不能绝对保证转换后的模型与原模型完全一致,且这种转换风险会随系统复杂度的提高而增加。此外,转换后的模型可读性较差,需要相关人员具备深厚的数学功底,不利于非专业人员理解和掌握。
因此,本文借鉴模型驱动架构(Model Driving Architecture,MDA)思想,以区域防空指挥信息系统为实例,利用xUML(Executable Unified Modeling Language)进行体系结构相关视图产品的构建,通过动作规约语言(Action Specification Language, ASL)精准定义系统动态行为,进而自动生成可执行代码,通过激励测试,验证系统对特定信号事件的响应、状态转换、信息流程等系统动态行为。拟降低模型转化的风险,提高可执行模型的可读性,实现体系结构开发与验证的一体化。
1 MDA、xUML与ASL
1.1 模型驱动架构
模型驱动架构(MDA)是由对象管理组织(OMG)提出的应用软件开发方法,其思想是将系统的业务功能需求与具体的实现细节相分离,通过对不同的问题域进行精确的建模,并以这些模型为核心,驱动包括分析、设计及实现等在内的整个软件开发过程。
MDA中包括两种基本形式的模型:平台无关模型(Platform-Independent Model, PIM)与平台相关模型(Platform-Specific Model, PSM)。PIM独立于任何实现平台,它详述了系统的所有业务需求,每个PIM描述了系统的一个方面,在MDA中用“域”来表述,所有的PIM主题域组合在一起就是对系统的完整描述。在基于MDA的开发过程中,第一阶段是将系统划分为多个PIM主题事务域;第二阶段则是通过对PIM添加针对特定平台技术体制的映射规则和辅助工具,转换成与特定实现技术相关的应用模型,即PSM,再将经过充实的PSM转换成代码。这样,当系统非功能性需求发生变化时,只需要重写映射规则就可以应对这些变化,而不需要逐一修改同一个系统模型在不同抽象层次上的冗余表示。
可以看到,基于MDA的开方法不仅与DODAF多视图的描述方法不谋而合,且使得开发人员能够更加专注于系统需求,而不需要为特定的实现技术和平台而分散注意力,有利于开发人员准确地掌握系统需要做什么,从而分析设计出更加精确的模型,提高开发效率,还能将技术的变更对系统的影响降至最低。
1.2 xUML
xUML是OMG指定的MDA建模方法之一。xUML是UML的一个子集,它去除了UML当中的弱语义部分,并添加了精确定义的动作语义,xUML通过这些精确的动作语义来描述系统中对象之间的交互和行为,使之变为了可执行的模型。图1非正式地表示了xUML的概念。
xUML的模型包括包图、用例图、时序图、类图、类交互图和类状态图。在仿真环境中,类状态图是可执行模型的核心,它通过状态和转移实现模型的执行。其他模型为其提供操作、信号、数据等支撑。
1.3 动作规约语言ASL
动作规约语言(Action Specification Language, ASL)是一种独立于实现的动作语言,它与任何平台无关,用于定义面向对象系统的所有动态行为,为系统的动态行为提供精准、简明、可读的定义。ASL可以通过多种不同的技术映射到特定的软件体系结构和实现语言当中,可自动转译成包括ObjC、Java、C、C++、SQL、Ada等在内的多种计算机语言。
ASL支持以下行為语义的定义:
类操作与对象操作——对应状态无关的行为。
状态动作——对应状态相关行为。
域操作——对应域提供的服务。
桥操作——桥操作用于将多个域连接到一起。
初始化片段——用于完成系统初始对象的定义,确定系统初始状态。
测试例程——在仿真环境下用于激励模型的驱动程序段。
利用ASL详述的xUML是无歧义、可执行的。在仿真环境中,通过提前定义的测试例程来测试系统对于不同信号事件的状态转换来检测系统行为的正确性、内容的完备性以及逻辑的合理性等,进而达到体系结构验证的目的。
2 可执行体系结构的构建与验证
2.1 体系结构验证的内容
构建可执行体系结构的目的在于验证体系结构的正确性,实现体系结构开发与验证的一体化。目前,各类文献对于体系结构验证的内容没有权威的定义,大多数学者是参照国防科技大学信息系统工程重点实验室提出的体系结构验证内容[10,11]来展开相关研究。其将体系结构验证分为语法、语义和语用3个层次。语法层的验证是静态的,主要是验证体系结构描述“对不对”,例如,开发的各类体系结构产品是否符合框架的标准规范,描述的内容有无缺失等;语义层的验证是动态的,主要是验证体系结构“行不行”,例如,系统是否按照想定的顺序处理相关事件,系统功能流程是否合理等;语用层的验证也是动态的,主要验证体系结构“好不好”,包括系统满足需求的程度如何,各类功能性与非功能性需求能否达标等。验证的具体内容大致可归纳为以下几项,如表1所示。
基于xUML与ASL的可执行体系结构对上述各层次的验证内容有较好地支持作用,一是对语法层的支持,xUML指定的建模工具iUML Modeler能够智能地维护模型的完整性,不完整的模型是无法在仿真环境下运行的。此外,它能自动提示使用上下文的选取列表,以确保使用者不会输入与现有模型不一致的信息,这就很大程度上确保了数据的完整性与一致性;二是对语义层的支持,xUML仿真环境iUML Simulator提供了实例数据库、信号队列和跟踪历史等功能,且可以在所有对象的任何状态、信号和类上设置断点,这保证了开发人员能够根据需求验证作战/系统流程的正确性与合理性;三是语用层的支持,开发人员可以将系统相关参数写入模型当中,达到对系统部分性能的验证评估。
2.2 可执行体系结构的构建方法
当前,美国国防部体系结构框架最新版本DODAF 2.0只给出了用于描述体系结构的多视图产品模型、开发思想和总体步骤等,但没有指定具体的开发方法和工具。目前主要的体系结构开发方法是面向过程的开发方法与面向对象的开发方法。其中,面向对象的开发方法作为软件开发的成熟方法,其通过从现实世界客观存在的事物出发来认识问题域和构造系统的方法更加接近人的思维。UML是面向对象开发方法的主流方法,它定义良好、表达清晰、功能强大且普遍适用,受到多数学者的青睐。与此同时,DODAF本体文件在视图产品的推荐建模方法中也提及了UML方法对部分视图产品的支持。文献[12-14]等,在构建DODAF视图产品中均用到了UML的模型。
xUML作为UML的子集,他不仅继承了UML的大多数功能,还通过引入动作规约语言(ASL)弥补了UML语言在表述上的模糊性和不可执行性,使之成为了更加“精准”的且可执行的模型。可以看出,xUML的模型同样能够为DODAF的较多视图产品提供支持,而且在ASL的精确描述下,模型是可执行的,能够更好地验证系统的动态行为。因此,基于xUML开发DODAF体系结构视图产品是可行的。
xUML可执行模型的核心是类的状态图,DODAF 2.0中关于状态转换的视图模型(OV-6b、SV-10b、SvcV-10b)均可用类的状态图来表示。而规则模型(OV-6a、SV-10a、SvcV-10a)则可以通过转换为‘if-then的形式,结合ASL语法规则,写入到状态图当中,可实现了两者的统一。DODAF2.0中作战视图、系统视图和服务视图的部分视图产品与xUML模型的对应关系如表2所示。
2.3 可执行体系结构建模的步骤
结合DODAF2.0体系结构开发思想与视图模型特点、xUML模型及其仿真环境(iUMLite2.20)的功能特点,基于xUML与DODAF的可执行体系结构建模步骤大致可分为以下几步:
(1)利用用例图详述系统需求。体系结构开发从系统需求分析入手,必须细化顶层作战概念,明确系统需要做什么。用例图是系统搭建的蓝图,它为“系统需要做什么”提供了简化的图形表示,提纲挈领地让用户了解和掌握系统的概况。因此,它能有效地捕获作战概念,为捕获用户需求提供支持。例如,对于区域防空指挥信息系统来说,通过分解其高层作战概念,可以得到以下作战活动:预警探测、精准识别与跟踪、打击拦截和效果评估等。可利用例图构建其高级作战概念图OV-1。
(2)利用顺序图详述每个用例对应的系统线程。用例图描述了系统需要做什么,顺序图则对其进行了进一步细化,它描述了一个用例的主要参与者与完整流程,参照表2内容,利用顺序图可构建相应的事件跟踪描述。
(3)分解主题事物域。首先,利用面向对象的方法进行系统级别的对象闪电战,抽象出整个系统的全体类图;然后根据类的性质进行主题事务域的划分,将整个系统划分为若干个相对独立的域模型,域之间通过“桥”进行链接。参照DODAF视角模型,可初步将其划分为作战域、服务域、系统域、能力域等。域中的类图展示了实体的连接关系,以此可以构建OV-2、SV-2、SvcV-2。
(4)填充系统动态模型。前文提到,xUML模型仿真运行的必要条件是模型必须是完整的,因此需要利用动作规约语言(ASL)对类中的操作、状态的入口动作等进行详细定义,使状态图全面完善。
(5)利用ASL编写初始化片段和测试方法。模型运行前,还需要利用ASL对初始化片段进行描述以确定系统的初始场景。并根据实际需求,编写相应的测试方法。
(6)生成代码。利用iUMLite 2.20内置可自動编译并生成代码。在此过程中,如果模型各部分定义正确,则能直接生成代码。否则会提示相应错误。
(7)仿真运行与模型验证。代码生成完毕后即可运行模型,iUML Simulator提供的信号追踪功能和状态图可以很好地验证系统是否按照想定的流程完成相应的动作,用户还可根据需求,设置断点检查特定部位或单步执行逐步检查整个系统。以此来检验当前体系结构与目标系统的差异,如果满足要求,则验证通过,否则对当前模型进行修改,直到满足要求为止。
3 实例分析——区域防空指挥信息系统
该节以简化的区域防空指挥信息系统开发为例,主要阐述基于xUML的体系结构开发与验证过程。由于篇幅有限,这里只对核心模型和过程进行展示,开发工具为iUMLite 2.20。
3.1 案例背景介绍
该设计案例背景为:区域防空指挥信息系统对目标区域来犯的各类空中目标进行拦截,以确保我方区域领空安权。该指挥信息系统由各型雷达、指挥所和武器平台组成。雷达包括低早期警戒雷达、高空警戒雷达与低空警戒雷达等,根据指挥所的控制指令对指定空域的弹道导弹、高空飞机、无人机、直升机等目标进行全时探测监视,并实时传输探测数据。指挥所对雷达发送过来的数据信息进行处理,形成情报信息和态势,依据目标类型、威胁程度等选择武器平台对目标实施打击。根据打击效果评估决定下一步行动。图2所示为利用例图表示的高级作战概念图OV-1。
3.2 核心模型展示
图3所示为系统作战资源流描述OV-2,也称作作战节点连接图。它描述的是作战节点之间的连接关系及节点间资源流需求。如图3所示,每一个作战节点用一个类表示,类的第一栏为实体节点的名称,‘n为实体的编号,‘kl为其主键编码,用于唯一标识实体;第二栏为实体的属性,第三栏为实体提供的操作。
图4至图7为利用xUML状态图描述的部分作战实体节点的状态转换图,它们是可执行模型的核心。以图3指挥所作战状态转换为例,指挥所的初始状态为战备值班状态(Be on duty),在收到目标信息(Targ_Inform)后,转入数据融合处理状态(Data fusion processing)并执行状态入口动作(这里调用数据处理操作函数CP1:Datafusion[]),得到处理后的信息(Detail_Inform),转入情报分析状态(Intelligence analysis)并执行状态入口动作(调用操作函数CP2:IntellegenceAnalysis)。由于篇幅原因,后续状态不再赘述。这里的状态入口动作和实体提供的操作均是利用ASL进行描述的,所有的操作和状态都必须在执行前利用ASL完全定义。
3.3 系统初始化与测试信号
在完整建立xUML模型之后,还需利用ASL对系统初始条件和测试方法进行编写。具体描述如下:
这里展示初始化一个早期预警雷达:
IDofEWRadar=2
ScaleofEWRadar=1500
PollingRate=500
PollingRateUnits of Time_Units=‘SECOND
[theEWRadar]=EWR1:PowerOn[IDofEWRadar,\
ScaleofEWRadar,\
PollingRate,\
PollingRateUnits,\
IDofTarget]
将其与指挥所连接:
link theEWRadar R4 theCommandPost
测试方法:
(1)向早期预警雷达发送控制命令:
theEWRadar=find-one Early_Warning_Radar where R_ID=2
generate EWR1:BootCommand() to theEWRadar
(2)向早期预警雷达发送作战命令:
theEWRadar=find-one Early_Warning_Radar where R_ID=2
generate EWR4:DetectionCommand() to theEWRadar
在利用ASL完成系统初始化设置片段和测试方法的编写后,即可利用iUMLite 2.20内置的代码生成器CEGN自动生成相应的可执行代码。在此阶段,如果通过仿真环境的编译,代码生成成功,则完成了模型的初步验证。这是因为,在xUML中,如果前后数据不一致、不完整,语法使用不规范,代码将会生成失败。因此,基于xUML的体系结构开发和验证方法可以及时发现开发过程中的错误并纠正,避免了后续因错误堆积而导致的开发困难的局面。
3.4 模型验证与分析
代码生成成功后,模型即可运行,iUML Simulator提供了一个命令行窗口和一个图形窗口使用户能够与可执行模型进行交互,如图8所示,展示了区域防空指挥信息系统执行中的某个片段。
在模型执行的过程中,对象实例表显示了实例的具体参数,可以通过查看对象实例表来检查每个对象实例当前所处的状态,各类参数是否设置正确,以及各类连接关系是否按预期行为建立,图9展示了部分系统实例的状态表。
还可以通过查看系统的状态图来验证模型状态的完备性,如图10所示,图中的行表示实体可能接受到的信号的集合,列表示系统的状态。每一个单元格对应一个状态转换。如,当系统处于Be on duty状态时,如果此时收到Targ_Inform信号后,则会转入Data fusion process状态。图中多数单元格的值为“unknown”,这表示状态机是不完全的,需要将其进一步完善,该案例主要用于阐述基于xUML的体系结构开发与验证过程,因此对案例模型的完备性不作要求。
此外,iUML的信号跟踪功能可以查看模型执行过程中信号产生和消耗的历史,行为的执行情况以及这些信号所引起的状态转换。图11中Src Domain/Class指产生信号的域/类,Dest Domain/Class指消耗信号的域/类,Src State指信号源的状态,Dest Old St.指目标域/类接收到指定信号前的状态编号,Dest New St.指目标域/类接收到指定信号后转入的状态编号。
区域防空指挥信息系统体系结构的正确执行,验证了其数据的一致性、完备性以及状态的可达性等,检验了体系结构时序与规则的正确性,有效地完成了系统的非功能性需求。此过程验证了基于xUML的体系结构开发与验证的可行性和有效性。
4 结 论
本文将模型驱动架构的思想引入到体系结构建模当中,利用基于xUML的方法对可执行体系结构建模和验证进行了研究,阐述了xUML用于可执行体系结构建模过程中展现出可读性强、易于操作、开发与验证保持一致等优点,分析了xUML对DODAF相关视图产品的支持,并给出了基于xUML与DODAF的体系结构建模方法与步骤,结合区域防空指挥信息系统开发实例验证了此方法的科学性。
参考文献:
[1] C4ISR Architecture Working Group. C4ISR architecture framework version 2.0 [R]. Washington DC:US Department of Defense,1997.
[2] DoD Architecture Framework Working Group. DoD architecture framework version 2.0 Volume II:Architectural Data and Models [R].Washington DC:US Department of Defense,2009.
[3] 孔瑞远,肖桃顺,沈艳丽.军事信息系统体系结构验证方法综述 [J].工程研究-跨学科视野中的工程,2016,8(6):605-613.
[4] 王立强,董剑,于海霞.基于可执行模型的复杂体系仿真验证研究 [C]//2019全国仿真技术学术会.琼海:《计算机仿真》杂志社,2019:23-26+48.
[5] 刘正,张新强,王鸿飞,等.基于DoDAF的可执行模型改进方法 [J].指挥与控制学报,2016,2(2):121-128.
[6] 林文祥,刘德生.网络信息体系信息流程挖掘方法研究 [J].指挥控制与仿真,2022,44(2):108-115.
[7] 张洪源,王立强,龚博,等.基于混杂逻辑框架的复杂体系仿真验证研究 [C]//'21 全国仿真技术学术会议论文集.贵阳:《计算机仿真》杂志社,2021:226-229.
[8] 傅炯,罗爱民,罗雪山,等.基于PES的Petri网可执行模型生成方法 [J].系统工程与电子技术,2017,39(5):1030-1035.
[9] 熊健,陈英武,王栋. 武器装备体系结构可执行模型 [J].系统工程与电子技术,2010,32(5):966-970.
[10] 刘俊先,罗雪山,罗爱民,等. C4ISR体系结构验证评估 [J].指挥与控制学报,2016,2(2):129-133.
[11] 姜志平.基于CADM的C4ISR系统体系结构验证方法及关键技术研究 [D].长沙:国防科学技术大学,2007.
[12] 王新尧,曹云峰,孙厚俊,等.基于DoDAF的有人/无人机协同作战体系结构建模[J].系统工程与电子技术,2020,42(10):2265-2274.
[13] 朱连军,张熙迪,张涛.基于DoDAF的陆军装备维修保障业务架构研究 [J].装甲兵工程学院学报,2018,32(4):1-6.
[14] 李大喜,张强,李小喜,等.基于DoDAF的空基反导装备体系结构建模 [J].系统工程与电子技术,2017,39(5):1036-1041.
作者簡介:杨双泽(1994—),男,汉族,贵州修文人,硕士在读,研究方向:自组网应用、效能评估;赵有华(1973—),男,汉族,重庆市人,硕士研究生导师,副教授,研究方向:无线通信技术与应用;朱丹(1989—),女,汉族,江苏南通人,硕士在读,研究方向:无线通信技术与应用;陈启航(1993—),男,汉族,山东青岛人,硕士在读,研究方向:自组网应用。
收稿日期:2022-06-29