APP下载

基于SCADE需求分析和用例设计在新型列控系统RMU子系统的应用

2021-03-09李春慧

铁路通信信号工程技术 2021年2期
关键词:输入输出用例区段

李春慧,曹 欣

(卡斯柯信号有限公司,北京 100070)

1 概述

新型列控系统空天地一体化列控系统(C4D-I)吸收优化既有信号逻辑,采用卫星定位、多模通信、运能动态配置等技术,达到轨旁设备最少化、通信多模化、车载中心化、运能适配化和维护智能化,对于西部和地域辽阔的边远地区的国防安全有着重大意义。C4D-I 系统去除轨道电路,尽量减少轨旁设备,可以有效降低建设和运维成本。同时可以极大减少信号设备现场调试时间和测试时间。

RMU(Resource Manage Unit)作为C4D-I列控系统的地面核心设备,它高度集成既有CTCS-3级系统地面RBC,TSRS,TCC 和联锁设备部分功能,从而降低系统接口复杂度,减少轨旁设备。作为新型列控系统,RMU 没有成熟的技术规范和参考文件。在产品项目初始阶段,产品需求不够清晰,模式化方法进行需求分析和用例设计非常必要。

本文提出了利用SCADE 进行需求分析,测试模型建立,来指导用例的设计。

2 SCADE的应用基础

SCADE(Safety-Critical Application Development Enviroment)作为一个高安全软件开发环境,它针对嵌入式软件的特点,运用了正确构建的概念,提出了一种基于模型的图形化开发方式,覆盖了从需求分析到代码实现的整个软件开发流程。SCADE 提出反应式系统、确定性、同步假设、并发性4 个概念,为基于模型的设计开发提供了理论基础。

如图1 所示,RMU 基于2 乘2 取2 架构的安全平台,主要完成列车位置管理、列车状态功能管理、运能调整功能、资源管理和分配、运营计划管理、差分和地图管理等功能。完成与车载(OBS)、对象控制系统(OC)、动态运能决策系统(DCD)、地基增强系统(TAAN)、列控维护支持系统(IOM)的通信和信息交互功能。RMU 系统有着如下特性。

1)工作方式是“输入-计算-输出”的连续循环过程,如图2 所示。给被测系统激励信号,同时获得相应响应,且兼具实时性和周期性。这样对于RMU 系统单一功能点可以简化为“输入-计算-输出”的基本模型。

2)对于RMU 系统,使用相同的一组输入序列,在相同的时间调度下,其反应情况相同,始终产生相同的一组输出。确定性的要求降低了系统设计的复杂度,简化了系统建模和仿真验证。SCADE开发环境提供的各种机制确保了系统的确定性。

图1 RMU测试架构图Fig.1 RMU test architecture diagram

图2 工作方式示意图Fig.2 Schematic diagram of working mode

3 基于SCADE进行需求分析和用例设计

需求分析是测试初期非常重要的一份工作,测试成功与否的关键因素之一就是对需求的把握程度。需求分析是产品研发设计与测试验证之间重要的桥梁,是控制软件质量的首要阶段。

3.1 建模机制

根据嵌入式软件的特点,可以把需求划分为接口和功能模块两部分,功能模块部分由连续控制部分与状态逻辑部分组成,其输入输出端分别为传感器和执行器。嵌入式软件的一般结构如图3 所示。

图3 RMU简化版模型Fig.3 Simplified RMU model

针对这种划分,SCADE 提供了两套图形化的建模机制:数据流图和有限状态机。对应嵌入式软件结构的划分,数据流图模型可以用来表示连续控制部分,主要包括输入输出处理、复杂的数学逻辑计算和实现各种算法等功能;有限状态机模型可以用来表示状态逻辑部分,主要包括各种状态的迁移和工作模式的变化等功能。

3.2 需求建模

RMU 系统采用的是基于V 模型的自顶向下的设计方式。自顶向下的设计方式是一种从抽象到具体的过程。它首先需要根据用户需求和系统的接口需求,建立系统的黑盒模型,并且根据系统的功能需求,对系统进行功能模块划分;然后将各个功能模块分配至具体的子系统或者子模块,并层层细化,直至最低层的可实现的模块单元。

SCADE Architect 是基于SysML 的建模工具,采用图形化方式对需求进行分析整理,减少自然语言的歧义,可以发现需求中的不一致和不完整错误。

1)在SCADE Architect 创建项目直接建立模型,重点强调不同功能模块划分及其之间的接口。

2)模型建立完成后,SCADE checker 提供check 功能,可以对模型进行初步检查,检查是否有未定义的输入输出,检查模型的完整性,是否有无用的数据流等内容。

3)对于上述模型进行评审和确认后,测试人员就可以基于该模型进行用例的设计和编写。

3.3 用例设计

测试用例是软件测试的核心内容。由于测试不可能穷尽,测试用例设计的核心是利用合理的测试技术来精简测试用例集,用尽可能少的用例覆盖全被测需求,来平衡质量和成本的矛盾。目前有多种用例设计技术,因果图、判定表、正交组合、等价类和边界值等方法。选定合适的用例设计技术有利于后续用例的自动化生成。本文仅提及用例设计所采用的测试技术。关于自动化生成测试用例不在本文范围内。20 世纪90 年代曾提出依据因果图得出关系或者约束的逻辑表达式来自动生成测试用例,但是对于因果关系不清晰或者约束条件太多时,这种用例设计方法效率太低。

本文基于SCADE architect 对需求分析建模的成果加以复用如图4 所示,采用多条件组合的方式设计用例。

1)参数建模,根据SCADE architect 对于需求的建模,将输入、输出参数抽象化。明确输入的参数个数、每个参数的取值,然后组合等价类、边界值等方法精简输入参数取值集。

2)基于具体的业务规则描述,梳理业务逻辑,明确不同输入取值情况对应的输出取值,以及各个输入条件之间的约束条件。

3)将不同输入的取值及相应的输出形成二位矩阵,列为规则,行为结果。

对于某一单一功能有3 个输入(In 1、In 2 和In 3),两个输出(Out1,Out2),对于输入项取值为0 意味着该条件不满足,取值为1 意味着该条件满足;对于输出项需根据具体业务流程识别。具体形式如表1 所示。

表1 就是针对某一单一功能的用例集。在转化为用例时可以依据用例集本身的复杂程度进行用例的拆分,避免单个用例步骤过于复杂。

这种用例设计方法可以很好的避免用例导致的需求覆盖不全或者错误覆盖问题,同时为自动化设计导出用例提供了很好的前期工作。

4 在RMU系统中的应用

基于SCADE Architect 需求分析和用例设计,整个流程参考图4。

图4 基于SCADE的需求建模和用例设计Fig.4 Requirements modeling and test case design based on SCADE

表1 基于组合条件法的决策表Tab.1 Decision table based on combination condition method

4.1 自定向下需求建模

数据流图描述输入数据流到输出数据流的变化过程,用于对RMU 系统的功能进行分层建模,如图5、6 所示,其中图5 功能模块不全,仅列出部分模块为例。

4.2 单一功能用例设计

针对资源管理模块中的资源申请功能点,进行建模,如图7 所示。

利用第3 章提到的方法将每个分支建立输入输出矩阵,针对资源申请分支,将输入输出建立如下数学模型。

输入1(In1):消息主体

In11:车 0

Int12:DCD 1

输入2(In2):道岔位置

In21:在规定位置 0

In22:不在规定位置 1

In23:挤岔 2

输入3(In3):区段状态

In31:区段占用 0

In32:区段出清 1

输入4(In4):封锁状态

In41:有LOI 封锁,无区段封锁 0

图5 第一层数据流图—RMU系统Fig.5 Layer 1 data flow - RMU system

图6 第二层数据流图—资源管理模块Fig.6 Layer 2 data flow - resource management module

In42:有LOI 封锁,有区段封锁 1

In42:无LOI 封锁,无区段封锁 2

In42:无LOI 封锁,无区段封锁 3

输出1(Out1):OC 驱动道岔

Out11:驱动道岔 0

Out12:不驱动道岔 1

输出2(Out2):设置资源申请状态

Out21: 申请中→申请成功 0

Out22: 申请中→申请失败 1

以消息主体为车时,也即In1=0 时为例,生成如下输入输出矩阵,如表2 所示,此处可能会因为具体的业务规则删掉一些无效的规则项,此表的每一列均为一个用例。利用这种符号化、模型化的用例集可以为后续自动化用例设计提供基础。

5 总结

SCADE Architect 提供了一种结构化方法对需求进行分析建模,可以减少传统手工需求分析方法中的个人随意性,提高需求分析的准确性和完整性,从而大大节省了测试人员分析需求和理解需求的时间成本,保证了测试输入的高度一致性。可以避免测试工程师在设计用例时减少个人理解导致出错的可能。同时本文采用组合条件设计用例,把测试输入输出转化为字符表达式处理,易于操作,方便对于需求完整性追踪性的验证。同时为进一步自动生成用例提供前期准备,后续工作是根据建好的用例模型自动生成用例。

图7 单一功能数据流图—资源申请Fig.7 Single function data flow - resource application

表2 输入输出矩阵Tab.2 Input/output matrix

猜你喜欢

输入输出用例区段
中老铁路双线区段送电成功
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
广州地铁CBTC系统特殊区段NCO延伸分析和验证
列车通过3JG和1LQ区段时编码电路的设计与研究
铀浓缩厂区段堵塞特征的试验研究
输入输出理论在大学英语听说课堂中的教学探索
输入输出理论在高中英语教学中的应用
输入输出视角下高职英语教学研究
基于输入输出交互理论的高中英语读写课