模型驱动的雷达信号处理系统软件开发浅析

(整期优先)网络出版时间:2018-12-22
/ 2

模型驱动的雷达信号处理系统软件开发浅析

孙保义1俞灵泉2黄崇交3

关键词:雷达信号处理;模型驱动;软件开发

1模型驱动软件开发研究现状

模型驱动是一种指导软件开发的方法和思想,支持软件设计和模型的可视化、存储和转换。MDA的核心是模型,因此需要有相应的建模语言来支撑其建模和验证。统一建模语言(UML,UnifiedModelingLanguage)由于其具有极好的扩展性和开放性,在软件工程领域取得了较大的成功。国际系统工程学会和对象管理组织UML2.0的基础上进行重用和面向系统工程的扩展,定义了一种新的系统建模语言标准SysML。

MDA的核心技术之一是模型转换,是一种将某个模型转换到系统中另一个模型的过程。模型转换的方法有很多,比如基于规则的模型转换、基于模板的代码生成技术、基于元模型间映射的模型转换、基于模式的模型转换等。ATLAS转换语言是一种基于规则的模型转换语言,既有描述性语言的特征,又含有命令式语言的内容。

2模型驱动的雷达信号处理软件开发流程

将基于模型的软件开发流程划分为需求工程、概要设计、以及软件测试等几个阶段。

2.1需求工程

需求工程主要包括需求开发与需求管理两部分,其中需求开发主要为了确定最初的需求基线,需求管理主要面向需求的变更及其传播。在此,我们主要讨论需求开发相关步骤,其又细分为需求获取、需求分析、需求建模、需求确认与验证四个阶段。模型驱动架构最主要的功能是将软件工程过程中的产物以模型来表示,并以模型转换为手段驱动整个开发过程的开展。

2.1.1需求获取

需求获取主要是通过调研获得清晰、准确的客户需求,这些需求既包括来自于企业外部的需求,也包括来自于企业内部各部门的需求;需求的种类包括功能需求、性能需求、环境需求、可靠性、安全性等多个方面。需求获取的方法主要以问卷、面谈等直接交流的方式获得,其结果可以以条目化文本的方式进行呈现,并使用需求管理工具进行创建与管理。在创建和管理需求时,需要为条目化需求指定唯一的编号,并指定需求之间的层级、追踪等关系,并及时更新需求的状态,如已评审、已设计、已实现等。

2.1.2需求分析

需求分析主要是对从需求获取阶段收集而来的用户需求进行提炼、分析和审查,形成工程人员可理解的系统需求。对于面向过程的软件系统来说,结构化分析是当前软件开发方法中最成熟、应用最广泛的需求分析方法之一。其基本思想是“分解”和“抽象”:通过自顶向下的分解逐渐对系统进行求精,通过抽象来明确系统最本质的属性,从而反映“做什么”的功能。结构化分析可以借助于数据流图、控制流图、状态转换图等工具分析软件的处理流程,借助于实体关系图、数据字典等分析软件使用或产生的所有数据对象及其之间的关系。

2.1.3需求建模

需求建模主要是对需求分析过程中产生的层次化的系统需求用形式化、无二义的模型进行表达。SysML提供了丰富的、可扩展的建模元素,可视化的模型展示,并通过建模工具保证模型间的一致性,从而便于系统的表达、呈现和维护,也是自动化分析与设计的基础。因此,需求模型既可以记录需求,也可以辅助需求分析。在SysML的多种图中,可以采用以下图对需求的各个方面进行描述:

(1)需求图:它是条目化需求的可视化表示,可以清晰展示需求以及需求与项目中其他产物之间的关系;

(2)用例图:描述了系统的各种使用场景以及系统在使用过程中与外部参与者之间的交互;

(3)顺序图:描述系统在完成某一用例过程中与外部参与者之间的交互序列;

(4)活动图:描述系统完成某一用例的基本流程;

(5)块定义图:对系统所涉及到的数据进行建模。

2.1.4需求确认与验证

需求确认主要是确保系统需求以及需求模型正确记录和反映了用户的实际需求。这通常需要用户或代表用户的内部人员参与,主要是为了确保需求正确描述了系统应该实现的任务,并且完整记录了系统应该实现的所有任务。对需求模型自身的正确性的检查可以采用静态模型验证或动态仿真的方式来完成。静态模型验证采用形式化的模型检查手段和工具,检查需求模型本身的逻辑是否存在问题。

动态仿真通常需要将需求模型转换为某一可执行的仿真模型(例如雷达信号处理系统仿真常用的Matlab数字样机),通过观察仿真的执行过程和结果来检查需求。需求的验证主要是验证已实现的软件系统是否符合系统需求。该活动贯穿整个软件系统生命过程,在每个设计阶段完成后,其设计产物模型都需要与需求模型进行对比,以保证其与需求的一致性。与需求确认类似,它也可以采用静态或动态两种方式来完成。

2.2概要设计

概要设计的目的是以需求工程所产生的需求模型为出发点,将系统划分为独立的小粒度模块,从而将这些模块交付给不同的团队进行实现。它可以分为数据设计、架构设计、接口设计以及架构评估几个方面,现在主要讨论数据设计。

数据设计主要是将需求分析阶段产生的数据信息转化为软件实现所需的数据结构。我们可以采用SysML块定义图对这些数据结构进行建模。块定义图中的最主要的建模元素为块(Block),它可以具有子块、值属性、端口等丰富的属性描述,从而对数据从多个方面进行刻画。

2.3软件测试

严格来讲,软件测试活动应当贯穿整个开发过程始终,在任何开发产物生成后,都应当开展软件测试活动从而确保产物的正确性。软件测试包括以下四个方面:

1.单元测试:测试某个代码块的正确性;

2.集成测试:测试几个有连接关系的模块集成在一起工作时的正确性;

3.系统测试:对整个系统进行端到端的测试,从而确保整个系统的正确性;

4.验收测试:确定最终完成的系统满足用户的最终需求。

建模语言以及模型驱动开发对软件测试可提供的支持体现在对测试用例及其流程进行模型化描述,从需求模型或设计模型自动提取测试用例模型等方面。

3模型驱动雷达信号处理系统软件开发模式

雷达信号处理系统软件的开发,并非汇集全部技术力量,集中投入科研开发,而是一步一步进行构建。在增量模型中,软件作为一系列的增量构件来设计、实现、集成和测试,每个构件由多种相互作用的模块所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件子部件,开发人员逐个交付子部件,这样做的好处是软件开发可以较好地适应系统变化,客户可以清晰地看到开发的软件进程和效果,提出或更新要求,不断优化匹配,融合完善,一定程度上也降低了开发风险。

参考文献:

[1]张奎,毕明雪.雷达信号处理系统仿真设计[J].沈阳理工大学学报,2014,33(02):31-34.

[2]周杰,李小娟,张伟,全英汇.一种通用雷达信号处理系统的硬件设计[J].电子科技,2013,26(05):91-94.