建模技术在作战辅助决策系统开发中的应用

时间:2022-05-31 04:41:33

建模技术在作战辅助决策系统开发中的应用

摘 要:针对海军某作战辅助决策系统业务规则复杂、功能齐全的特点,依照模型驱动开发(Modeling-driven Development, MDD)的思想,采用UML建立该系统的需求和结构模型,使用相关工具构建基本框架. 建模技术贯穿系统设计和实现的全过程,可以控制和管理前期文档与图表,使其与系统开发同步.

关键词:模型驱动开发; 辅助决策系统; 建模; UML

中图分类号:TP311.56; TP391.9

文献标志码:A

Application of modeling technique in development of combat decision aided system

LIU Xiaoling1, WU Aihua1, PAN Juhui2

(1. Info. Eng. College, Shanghai Maritime Univ., Shanghai 200135, China;

2. Institute of Aviation, Naval Academy of Armament, Shanghai 200436, China)

Abstract: With the complicated operation rules and complete functions of a naval combat decision aided system, the requirements and structural models are constructed by UML according to Modeling-driven Development (MDD). The basic architecture is established by certain tools. Modeling technique runs through the whole development process, which can control and manage the documents and diagrams in prophase and keep synchronization with system development.

Key words: modeling-driven development; decision aided system; modeling; UML

0 引 言

辅助决策系统因其功能和内部流程复杂以及与应用领域结合紧密等特点,开发过程难以控制.为此,开发者必须针对其应用对象的特点,分析形成相应的业务规则,然后基于这些规则进行后续的软件开发.过去,前期开发的业务规则只是一些文档和图表,由于各种因素的影响,它们在开发人员与用户之间并不一致,导致交流和协作困难;随着开发过程的深入,这些文档和图表与实际开发逐步脱节,变得过时和无用,其结果严重影响辅助决策系统的开发.所以如何控制和管理前期的文档或图表,并保持其与开发系统的同步,成为系统开发成功与否的关键.目前许多开发者将建模技术引入辅助决策系统的开发中并取得明显效果.鉴于此,本文借鉴模型驱动开发(Modeling-driven Development,MDD)[1,2]的思想方法,通过分析海军某作战辅助决策系统的特点,将建模技术应用到该系统的开发全过程,所开发的系统已在海军中得到广泛应用.

1 建模技术介绍

MDD是基于模型进行软件开发的技术方法,模型在整个软件开发过程中起着举足轻重的作用,每一子过程都离不开模型的构建、修改与完善.

首先,在需求分析阶段,通过分析用户的需求,构建需求分析模型;当系统结构和功能复杂时,建立直观的系统需求分析模型,不仅可以帮助开发者准确把握需求,还能指导系统的总体设计,并在开发者与用户之间架设沟通的桥梁;主要的需求分析模型为用况(User Case)模型.

在总体设计阶段,基于需求分析模型,确定系统的功能划分、相互关系以及系统的输入输出,此时可建立系统的组件模型并规划系统的配置模型.

在详细设计阶段,通过建立类、对象模型,以进一步细化组件模型,逐步建立起系统的框架结构.编码实现之前,通过建立状态/活动图细化类中的方法,为编码实现提供程序算法.一些成熟的辅助建模工具如Rational Rose,MagicDraw等可以直接将系统模型转换为源程序,并能在模型和源程序之间建立同步关系,可及时更新源程序和模型.

对象管理组织(OMG)进一步发展了MDD方法,形成一套系统的基于模型的软件开发方法和体系[3-5]:模型驱动体系结构(Modeling-driven Development Architecture,MDA),其核心内容即将整个软件开发过程中建立的各种模型关联起来,按照抽象层次形成模型体系,开发者的关注焦点从编码过渡到模型,在工具的辅助下将模型转换为程序.

因此,模型已成为软件开发的核心内容,建模技术自然成为开发的关键技术;为了规范模型的描述和表达,OMG提出统一建模语言(UML)[6]并形成标准;为了适应MDD和MDA的开发要求,OMG进一步发展UML并形成UML 2.0规范.如今,UML已成为建模领域的公共语言和事实标准.

2 建模技术在辅助决策系统中的应用

海军某作战辅助决策系统因其功能复杂、实时性强,开发者初期对系统的特点把握不准确,对需求不够明确.后来借鉴MDD的思想方法对系统的要求分析后,通过从外到内、自顶向下的分析设计,最终完成该系统的设计与开发,并已在海军的相关部门推广应用.

2.1 系统建模

针对该作战辅助决策系统的特点,基于MDD的思想,第一步必须明确需求,为此,首先须建立系统的用况模型(见图1);以此模型为基础,经过与用户多方协商,明确系统的功能,建立系统的总体框架,形成系统的组件功能框架(见图2).于是,确立系统的框架,并将其定位为以数据库为核心的决策支持系统.

2.2 系统内部建模

建立系统的用况和功能框架,从总体上规划系统的软件体系结构,接着为各个功能模块(对应系统的各个组件)设计其内部类层次结构以及数据库结构.在该系统中,作战方案模拟是系统的核心模块,也是系统中最复杂的组件.在对抗条件下实现作战方案的模拟仿真,涉及对抗双方的兵力构成、指挥决策与行动规则等,其中首先面对的是红蓝双方的兵力构成,为此,须建立红蓝双方的兵力构成模型,见图3.

指挥决策在蓝方则体现为蓝方的指挥机构,为此,必须建立其指挥机构的层次结构图.通过分析,系统建立蓝方指挥机构结构模型(见图4),图中还给出相关类的属性和重要方法以及类的继承关系.具体决策过程和行动规则以及红方的指挥决策处理因保密,不便在这里详细展开.

对于数据库,UML描述能力也非常好,由于采用的数据库模型为关系数据库模型,UML不能精确地规定关系表之间的依赖和约束关联关系;因而,结合UML,在中间层采用PowerDesigner建立数据库的关系模型(相当于MDA的PIM模型).

2.3 模型变换与系统构建

按照MDD与MDA的思想建立系统的各种模型后,采用模型转换工具,即可生成更具体的模型,乃至源代码.即使需求发生变化,只需修改初始模型,使用模型转换工具即可让源代码与模型保持同步.由于系统模型和模型工具有待完善,实际操作过程中,开发者需要因时因系统采取不同的变通方法.

在该辅助决策系统的开发过程中,用户需求发生多次变化,因而模型也经历多次更改,当模型确定后,借助相关的模型转换工具,将其中的类结构图直接变换为C++类和对象以及SQL Server数据库的关系表和视图,通过这些辅助工具的逆向和正向工程功能,实现源代码框架与模型的同步,核心的处理逻辑需要开发者维护和修改,图5描述了红蓝双方模型的简单变换过程.

图 5 模型变换

3 结论与展望

MDD是软件开发的重要方法,MDA是MDD的 进一步发展并被许多学者描述为软件开发的一次革命;无论是MDD还是MDA,软件开发的重心已逐步从编码向模型转变.

针对某作战辅助决策系统的特点,依照MDD的思想详细讨论如何使用建模技术进行该系统的开发.开发过程中,需求分析是系统开发的第一个环节,也是最关键的一个环节,通过采用MDD的思想,系统用户与开发者之间通过直观的用况图明确系统的外部功能,系统组件模块图则帮助开发者确定系统的基本框架.系统的内部规则主要通过组件模块内部功能的状态机图和交互图等描述,由于原因,未在此详细展开和讨论.

由于大多数的建模辅助工具仍不够完善,在建立系统的类图、状态机图以及交互图后,借助辅助工具的正向工程可以生成基本的代码框架,核心的功能方法需要手工维护;虽然如此,借助辅助工具的逆向工程功能,仍然可以在框架结构层次上保持基本同步,方便系统分析员与直接参与项目的用户准确把握系统的总体结构.

由于文中讨论的作战辅助决策系统具有很强的实时性要求,标准UML在建立实时性要求苛刻的功能模块时,显现出描述能力不够的缺陷.在数据库建模上,标准UML不能很好地体现关系之间的依赖和约束关联关系.系统开发过程中采用PowerDesigner建模工具,准确建立系统的关系数据模型,然后在目标数据库上形成数据库结构,数据库结构与关系数据模型之间可以保持很好的一致性.

随着MDD和UML语言,尤其是MDA的发展成熟,基于模型的软件开发将更加方便,模型也将在软件开发的整个生命周期内占据更重要的地位.

参考文献:

[1] BEYDEDA S, BOOK M, GRUHN V. Model-driven software development[M]. Springer, 2005.

[2] 胡东波, 陈晓红, 胡东滨. 模型驱动的决策支持系统开发组件研究[J]. 系统工程, 2004, 22(4): 77-81.

[3] KLEPPE A, WARMER J, BAST W. 解析MDA[M]. 北京:人民邮电出版社, 2004.

[4] 陈平, 王柏. MDA――新一代软件开发方法学的挑战与发展研究[J]. 计算机科学, 2005, 32(3): 127-131.

[5] 韩超, 黄健, 黄柯棣. 利用模型驱动体系架构开发分布仿真系统[J]. 计算机仿真, 2004, 21(7): 93-95.

[6] PENDER T.UML bible[M]. New York:John Wiley & Sons,Inc, 2003.

上一篇:网络在线教育中情感模型的设计 下一篇:STAR-CCM+使用技巧