只有建立并有效使用信息化指挥控制系统,才能最大限度地发挥作战部队和武器装备的综合作战效能。因此,信息化指挥控制系统受到各国政府和军队的高度重视,发展迅速。指挥控制系统信息交互复杂、人机交互要求高,开展指控系统顶层体系结构和原型迭代优化设计方法的研究非常重要。
1 指挥控制系统设计现状指挥控制系统简称指控系统,是一种复杂信息系统,需要把指挥、控制、通信、情报和信息紧密联系在一起,形成一个多功能的统一系统,其涉及要素多、信息交互复杂,因此,系统体系结构设计是指挥控制系统设计过程非常重要的环节。
同时,指挥控制的实现是以计算机为核心的技术设备与指挥人员相结合,对兵力和武器实施指挥与控制的人机融合,实现全域实时动态的高效指挥,因此,人机交互的友好性、便捷性等都是指挥控制系统设计必须考虑的问题。
目前我国在指控系统设计过程中积累了一定的经验,形成了一些体系结构设计方法,包括基于模型的设计方法、基于仿真的设计方法等,但仍然存在一些问题,影响了顶层设计的效率和效果。主要表现在:
1) 体系结构描述需要进一步完善与规范化
对于指控系统的体系结构设计,传统的做法是设计人员分别对系统的组成关系、流程和信息接口等进行描述,完成体系结构设计报告,形成相关技术文档和模型。然而,这种设计方法并不规范和完整,系统之间互联、互通、互操作性不强,缺乏标准的体系结构模型框架对其进行统一和规范化。因此,需要基于标准模型框架的体系结构结构设计方法来支持。
2) 难以直观展现系统原型和设计初期迭代优化
指控系统设计初期往往重在系统组成结构、信息交互关系、以及使用流程等的设计,对系统界面的设计往往到软件实现层面才会涉及,但这样的指控系统设计流程往往导致难以及早发现问题并合理优化,难以确保系统界面风格的一致性和用户友好性。因此,需要一种能快速实现一个可操作、可演示的原型系统,弥补一般指控系统设计中难以所见即所得并快速验证的不足,为用户与设计人员提供共同交互、共同理解系统需求的面向计算机的原型系统,在此基础上实现系统设计与系统需求的逐步完善、逐步深化、逼近最终的系统。
2 基于体系结构设计的原型迭代设计方法为了解决上述指控系统设计难题,本文提出一种基于体系结构设计的原型迭代设计方法,利用相对标准化的体系结构设计解决体系结构描述和系统互联互通互操作问题,利用原型迭代设计解决难以直观展现系统原型和设计初期迭代优化问题。
2.1 美国国防部体系结构框架 DoDAF 设计方法随着目前信息系统日趋复杂,其体系结构设计迫切需要一种公认的标准来优化顶层设计,支持、验证体系结构的规范性,并促进系统实现互连、互通、互操作。目前,已发布了多项体系结构框架标准,如美国国防部的 DoDAF(Department of Defense Architecture Framework)、英国国防部的 MoDAF(Ministry of Defense Architecture Framework)、北约的 NAF(NATO Architecture Framework)等。
美国国防部体系结构框架 DoDAF 最初由 C4ISR(Command, Control, Communications, Computers,Intelligence,Surveillance and Reconnaissance)体系结构演进而来,先后经历了多个版本,发展到现在的 DoDAF 2.0 版,已成为当今应用最为广泛和最为成熟的体系结构框架,它能够用来确保各个指挥组织、部门的系统和信息体系结构描述和定义的一致性和协调性。利用这种统一的体系结构框架设计指控系统体系结构,便于系统分析、设计和实现人员及使用维护人员对系统体系结构设计的理解、比较和交流。
2003 年 8 月,美国国防部颁布 DoDAF 1.0 版,将体系结构分成全景视图 AV(All View)、作战视图 OV(Operation View)、系统视图 SV(System View)和技术标准视图 TV(Technical Standards View)来描述,每种视图又由一系列描述体系结构的图形、表格和文本产品构成。为了描述美军提出的网络中心战概念,美国国防部于 2007 年 4 月颁布 DoDAF 1.5 版,引入了面向服务架构 SOA(Service Oriented Architecture)的思想。2009 年 5 月,美国国防部发布了 DoDAF2.0 版本。它以企业体系结构为焦点,以服务于核心决策过程为目的,以元模型作为数据的组织形式,核心内容是以数据为中心的方法,强调对高效决策所需数据的收集、存储和维护。DoDAF2.0 将原先的系统视图划分为系统视角和服务视角两部分,以适应系统和软件工程实践上的拓展;将逻辑数据模型、物理数据模型和概念数据模型合并,放入新增加的数据信息视角;作战视角中增加业务、情报、作战等功能的规则和约束描述;原先的技术视图更新为标准视图,增加业务、商用标准和条例的描述;增加能力视角,支持能力的发展和能力数据采集的标准化;增加项目视角,反映国防部采办的影响。
基于 DoDAF 的体系结构设计方法主要包括以下 6 个步骤:
1) 明确体系结构的目的
定义体系结构的用途、体系结构描述方式、体系结构开发中使用的方法、所需的数据种类、潜在影响、预期达到的性能和客户满意度等。
2) 明确系统的边界
确定体系结构描述的深度和广度等边界、建立体系结构问题集、帮助定义上下文以及体系结构内容的详细程度。
3) 明确支持体系结构开发所需的数据
它通常与步骤 4 共同完成,迭代地采用至上而下的方式来组织数据采集和开发体系结构。一旦确定了原始数据内容的范围,其他决策中需要用到的数据就可以通过更容易理解的体系结构的视图内容来获得。
4) 采集、组织、关联、存储体系结构数据
通过视图的方式采集和组织数据,将数据存储到公认的商业或政府体系结构工具中。建立术语、定义与元素之间的关系。
5) 分析验证是否支持体系结构目标
对体系结构数据的分析决定了最终体系结构与目标需求相符的程度。为了更好地完成体系结构描述,达到其拟定功能,可以定义额外的开发过程步骤和数据采集需要,这将导致步骤 3 至步骤 5 的重复迭代。
6) 构建体系结构产品
通过对基础数据的查询,建立体系结构视图。为了将体系结构数据展示给不同的受众,需要将数据转换为决策者能够理解的表达,这与步骤 3 中的数据需求和步骤 4 中的数据采集方法紧密相关。
体系结构视图是经过选择后组织起来的体系结构数据的集合,目的是使数据可视化,从而易于理解。体系结构描述可以采用图板、融合视图、文本、组合视图或图形等可视化形式,来表现在体系结构开发过程中收集的数据和导出的信息,在实际应用中并不是所有的模型都必须创建,具体创建哪些模型需要以决策者的需要为基础。
2.3 系统原型迭代设计方法原型迭代设计方法主要是用来解决既有指控系统设计方法所带来的问题,包括系统需求不易开发、系统设计迭代不易开展、系统设计结果抽象不易演示、系统开发流程不易管理、系统界面风格不统一,代码复用工作繁琐的问题。使用本方法,在项目开发前,可以预览整个项目中实现的模块样式,尽早发现项目中可能出现的问题,从而节省项目开发中的人力成本和时间成本等问题。
原型迭代设计方法主要包括界面风格工程设计、拖拽式界面布局组件化设计、基于界面原型的软件开发等步骤,同时提供组件扩展方法。这里的组件不仅包括界面组件,还包括功能组件,在界面设计的同时,将基本功能融入,真正实现原型设计。
这种设计方法首先由系统设计人员基于已有的界面组件和功能组件进行界面整体风格设计,并通过简单便捷拖放和属性设置从而快速完成界面原型的构建,然后将统一设计的界面原型下发给开发人员开展基于界面原型的软件开发,同时基于控件库和控件包的体系不断的积累扩充,为其他项目功能组件中的代码复用带来高效合理的工作模式。
首先在界面编辑器中能够按照需求拖放不同的组件,按照需求和使用体验把各个不同的功能组件组合在一起,并且设置各个功能组件自适应变换的能力,拖放好相关的功能组件之后可以提前预览最后开发的程序的样式,如果满足需求和使用习惯再生成相关的UI约束文件,这样减少了只有在开发环境中才能查看相关功能组件样式的弊端,从而使设计和开发单独开来,给项目的开发中减少了很多不必要的麻烦。其次,新建项目时导入相关的 UI 约束文件,系统根据向导文件的约束条件控制功能组件的自适应及位置等,项目创建完成之后不需要手动添加任何代码就可以运行并看到原型程序结果,在后续的开发中,开发人员就不会再花费其他的时间来关心界面样式的问题。
从设计方法示意图可以看出,整个过程的应用层主要分为设计人员、开发人员、维护人员。
设计人员是来操作界面编辑器,界面编辑器导入控件库,然后设计人员在已有的控件库中选择相关功能的控件,拖放功能框并设置完成之后生成界面约束文件
维护人员按照需求创建工程模板构件,如组件层的指控模拟器和雷达模拟器是维护成员完成的工程模板构件,方便开发人员在项目的开发中代码高效的复用,从而省去不必要的麻烦步骤。
开发人员可以用则在创建新项目的时候在向导中选择维护人员创建的功能模板构件,并且导入设计人员的界面约束文件,然后生成具有简单功能和样式的原型程序。开发人员在此基础上二次开发,添加新的功能并且不用关心界面样式有关的问题。
3 基于 DoDAF 的指控系统原型迭代设计工具为了更好地实现基于 DoDAF 的指控系统原型迭代设计方法,实现系统原型迭代设计工具,在系统体系结构设计过程中,开展系统原型设计,及早发现设计问题以便迭代优化。
系统原型迭代设计工具采用界面框架集成模式,提供人机界面快速组装设计环境、基于界面原型的系统开发环境和可重用的界面元素库,满足验证系统人机界面统一设计、重用集成的需求,主要包括拖拽式界面编辑器、开发平台、界面组件元素库等部分。
界面编辑器主要为设计人员准备,设计人员跟据项目需求从已有的功能组件中选择相关的功能组件,拖动摆放功能组件并设置大小、位置、贴靠的方式等属性。功能组件的选择和设置之后可以提前预览设计是否符合需求及有好的用户体验性,如果符合要求之后再生成界面约束文件供开发人员在实际的项目中使用。
开发平台则是开发人员在创建项目的时候选择维护人员提供的模板构件,导入设计人员提供的界面约束文件,在生成的工程项目基础上二次开发。
界面库是维护人员将项目中的功能组件代码集成到模板构件中,避免相同的项目中负责不同模块的开发人员和其他功能组件的开发者有时候需要相同功能的模块或者不同的项目中需要相同功能的模块而手动的复制粘贴功能代码引起的耗时并且不能确保相关代码准确性的问题,开发人员在创建项目的时候选择相关的模板构件就行,不用关心这个功能组件的具体实现细节等问题。
3.1 拖拽式界面编辑器用户可利用界面编辑器对各个面板组件进行拖拽式布局、支持对拖拽的元素组件进行属性设置、支持自定义多个显示器数量级位置,是否自适应屏幕大小、支持多个界面元素以 TAB 栏的方式进行堆叠、支持界面占位元素,用户也可向组件添加自定义标题文字和图片。
在界面编辑器中导入界面定义文件(UI 定义文件)。需要说明的是,这里的 UI 定义文件对应工程模板构件,每个工程模板都有自己的 UI 定义文件,包括所有可用组件信息,是由系统维护人员来管理维护的,工程模板构件的 UI 定义文件是为了方便设计人员使用,设计完成后生成符合要求的 UI 约束文件,以便产品开发人员使用二次开发。
导入 UI 定义文件后就可以在左侧显示所有可使用组件,按照设计人员的设计需求及功能来选择组件拖拽到右侧窗口,并可以按照 Visual Studio 的操作习惯来完成贴靠和操作,形成可视化的界面原型设计样例。
3.1.2 组件属性设置当设计人员完成拖拽之后,需要对摆放好的组件进行微调,如按照显示器的大小不同各个组件要适应,部分组件的高度或者宽度固定,有的组件自适应,对部分组件的高宽可以微调,这些设置工作可以在界面编辑器左下方的组件设置区域完成(注:这里的属性设置对单个组件来操作)。
按照不同的需求,可以在界面设计的时候选择多显示器显示相应的组件,可以选择相应的组件显示在不同的显示器上,可以对每个显示器模板删除或者修改等操作。
当拖拽完成和微调完成之后可以提前预览一下生成的系统是否符合设计人员的需求,如果不符合要求之后再做修改,从而减少往返工作量。
3.1.3 生成相关的界面约束文件对选择的组件的排版和大小相关参数设置完成、预览符合项目需求之后,就可以导出相应的界面约束文件(UI 约束文件),方便开发人员导入相应的文件之后二次开发。
3.2 开发平台 3.2.1 导入界面约束文件在开发平台首先选择工程模板构件,接着选择界面约束文件,将相应的在界面编辑器中设计完成的界面原型以工程的形式导入开发平台。在不同的项目中,还可以按照不同的需求选择工具预设的不同的主题样式。
这里的约束文件是按照设计需求及功能生成项目,不管是有多少开发人员来操作生成的项目中体架构不会改变,样式也统一,很好地解决了多个开发人员同时开发的时候界面不统一的问题。
3.2.2 选择是否加载测试数据在部分组件中,在二次开发之前运行程序需要原型测试数据,这样能够接近实际的需求显示程序的运行结果,测试完成之后可以很快的注销相关的测试数据。
3.2.3 开发并运行系统上述数据加载完成之后,可以在此基础上进行二次开发,并编译运行原型软件。
3.3 界面库工具用于管理和维护已有界面元素以及利用基于组件化的拖拽式界面原型设计工具设计完成的工程项目,以便重用和扩展。
4 结 语本文对目前指控系统设计现状进行分析,提出了一种基于 DoDAF 的指控系统原型迭代设计方法,解决了指控系统设计中体系结构设计不规范难以实现互联互通互操作、设计初期难以直观展现系统原型和迭代优化的问题,并实现了相应的设计工具,提供人机界面快速组装设计环境、基于界面原型的系统开发环境和可重用的界面元素库,验证了该方法的可行性。
[1] | 周志敏, 纪爱华. 触摸式人机界面工程设计与应用[M]. 北京: 中国电力出版社, 2013. |
[2] | 陈启安. 软件人机界面设计[M]. 北京: 高等教育出版社, 2008. |
[3] | 赵英新. 人机界面设计[M]. 济南: 山东大学出版社, 2011. |
[4] | 马伟民. 基于组件技术的人机界面(HMI)研究[D]. 杭州:杭州电子科技大学, 2009. |
[5] | 霍发仁. 人机界面设计研究[D]. 武汉:武汉理工大学, 2003. http://cn.bing.com/academic/profile?id=5a0f290218625ea9cec4ba695aa360fd&encoded=0&v=paper_preview&mkt=zh-cn |
[6] | MYERS B, HUDSON S E, PAUSCH R. Past, present, and future of user interface software tools[J]. ACM Transactions on Computer-Human Interaction, 2000, 7 (1):3–28. DOI: 10.1145/344949.344959 |
[7] | 冯朝刚. 基于构件的软件复用研究[D]. 重庆:重庆大学, 2003. http://cn.bing.com/academic/profile?id=84aa28d8c92977874ae7b6b546fd2c00&encoded=0&v=paper_preview&mkt=zh-cn |
[8] | YEN I L, GOLUGURI J, BASTANI F, et al. A component-based approach for embedded software development[C]//Proceedings of the Fifth IEEE International Symposium on Object-oriented Real-time Distributed Computing. Washington, DC, USA:IEEE, 2002:402-410. |
[9] | 杨芙清, 梅宏, 黄罡. 构件化软件设计与实现[M]. 北京: 清华大学出版社, 2008: 35-64. |