王晓懿
(北京全路通信信号研究设计院有限公司,北京 100073)
随着铁路信号系统的发展,软件在整个信号系统中的地位越来越重要。研究使用技术手段保证信号系统软件研发的设计开发平台有着十分重要的意义。
信号系统软件设计开发的挑战体现在以下几个方面。第一,从组成结构来看,信号系统包括多种底层硬件设备和操作系统。研发人员在进行设计开发时必须考虑不同底层系统的特性,处理多种多样的底层细节,难以尽力集中到业务逻辑层面来。第二,信号系统软件作为高安全等级要求的软件,其设计开发流程有着严格的要求。如何通过技术手段规避人为疏漏造成的执行不规范是我们亟待解决的问题。第三,随着信号系统软件产品数量越来越多、规模越来越大、复杂程度越来越高,带来了大量的重复性劳动、飞涨的开发成本及低下的开发效率等诸多问题。第四,质量安全是信号系统软件的灵魂,如何在人力不足、工期紧张的条件下保证信号系统的质量安全成为一个挑战。
为了应对上述挑战,本文提出了一种铁路信号系统软件设计开发平台,为信号系统软件的研发提供技术支撑。
国外铁路信号公司对信号系统设计开发平台的研究都非常重视,一些大的信号公司如西门子、阿尔斯通,都在公司层次建立了相应的设计开发平台,并依托平台推出系列产品。
在通用软件开发平台领域的市场上,也存在着一些设计辅助工具。例如,IBM公司的DOORS提供了需求开发管理功能;IBM Rational Rhapsody是一款模型驱动的设计工具;IBM Change则提供了变更管理功能。
这些现有的开发工具为单个的点工具,未能集成为一个专用的信号系统设计开发平台,造成研发人员往往需要在不同的设计开发阶段切换、配置不同的设计工具,不利于提高设计的效率。因此,本文提出的平台对这些工具进行了有机的结合,统一成为一个用于信号系统设计开发的平台。
信号系统软件设计开发平台(Signalling sys-tem Development Platform,以下简称平台或SDP平台)是支撑铁路信号系统软件开发的专用平台。本平台具有以下方面的特色。
第一,支持规范化、流程化的研发方式。信号系统软件的研发有着严格的规范和流程,但是执行中人为疏漏,难以保证按照流程规范地执行,需要使用技术手段辅助、引导研发人员按照规定的流程执行。在这种研发方式下,研发人员划分为不同的角色,并且只能按照自己的角色进行规范流程内赋予的研发活动。
第二,支持模块化、组件化的开发方式。在开发信号系统这样一个复杂的系统时,采取模块化、组件化的架构是技术发展的方向。使用SDP平台采用组件化的架构之后,可以将功能相同或类似的部分进行组件化,然后将组件进行合理的组合,通过组件组态之后生成功能完整的软件产品。这样的软件系统架构可以有效地减少重复工作,增加开发的效率。另外,组件化的架构还可以使得软件系统的结构层次更加清晰,使得系统的管理和修改更加方便。
第三,提供自动化、智能化的辅助研发工具。在研发过程中存在大量的耗费人力和时间的工作,在此方面,平台提供了一系列的自动化工具,如自动化专项测试工具,辅助研发人员完成这些工作。
SDP平台总体的结构如图 1所示。
从图1中可以看到,在业务逻辑方面,SDP平台包括全研发全命周期开发支持、质量审核卡控支持、专项测试及组件收集复用等方面的功能。在数据支持方面,SDP包括了若干核心支撑库,其主要功能是对具体业务提供有效而灵活的数据支持。左右两侧分别为IRIS规范和统一的用户管理服务器贯穿上下,表明了SDP平台每一个层面都是严格遵循IRIS体系规范并实行统一的用户认证、授权管理策略,保证了SDP平台在安全保障上的可信性。
在下文中将就SDP平台的核心业务逻辑:信号系统软件全生命周期开发支持、审核卡控支持、组件化开发支持进行介绍。
SDP平台支持信号系统全生命周期的协同开发,包括需求开发,设计模型开发,代码编写,测试案例编写、测试执行等功能,如图 2所示。
SDP平台需求开发工具同时支持DOORS和Word文档的编写。需求文档开发工具具有如下功能:1)同时支持本地word需求文件的编写和集成DOORS的文档编写功能。2)将DOORS上的需求文档映射到SDP平台上,使得信号系统软件研发中其他的数据能够和DOORS上的需求文档在SDP平台上关联起来,例如管理测试案例对需求的覆盖分析。3)根据IRIS规范提供Word版本和DOORS版本的文档模板,强制信号系统软件研发中的文档符合规范。
4.2.1 设计模型开发工具
SDP平台支持使用流程图、状态图等图形化方式描述信号系统软件的逻辑。通过选择符合标准UML2的设计建模方式,提供支持流程图、状态图、顺序图等的UML设计建模工具。SDP的模型设计开发工具包括:1)符合UML2的标准的建模工具;2)提供UML图形化编辑器;3)针对UML2扩展出适合描述C函数逻辑的流程图模型;4)支持使用UML2中状态图描述信号系统软件的逻辑。
4.2.2 代码开发、安全性检查工具
代码开发和安全性检查工具包括如下功能:1)开发专用C语言集成开发工具(CDT)提供代码开发环境。包括对C语言代码的语法分析,集成编译环境等功能。2) 集成Testbed对C语言代码进行安全性检查。
4.2.3 文档及文档模板定制
SDP平台支持文档的编写和管理工作,支持的文档格式包括本地文档,如Word,Excel等,远程数据库文档,如DOORS数据库中存储的文档。支持一定的检索功能,例如基本属性检索,内容概要检索,版本检索等。
文档模板是根据IRIS规范体系的要求,预先定义在SDP平台内部,用户在创建各类标准文档时,可以选择这些预定义的文档模板,从而保证文档格式的统一,同时避免了文档内容的缺失。
针对信号系统软件专项测试工作量大、手工测试易出错且缺陷难以复现等问题,平台提供了自动化的专项测试平台,采用编写并自动执行测试脚本的方式对模块或子系统进行自动测试。专项测试工具的逻辑组成关系如图3所示。
从图3可以看到,专项测试系统通过主引擎执行测试脚本,驱动分引擎测试目标系统。
SDP平台的专项测试工具具有良好的可扩展性,表现在两个方面:一方面,可以通过灵活的测试协议自定义接入新模块、新系统的专项测试;另一方面,SDP平台专项测试工具可以接入多台测试机进行并发测试,图4所示为并行测试时测试系统的物理部署。
当测试工作大量增加时,只需要增加测试机的数量,而无需增加更多的测试人力。另外,从图上可以看到,SDP平台同时提供了测试环境定制、测试案例和测试脚本编写、测试执行监控、测试报告生成、测试覆盖率分析等功能,协助测试人员准备测试输入,查看测试输出,减少了测试人员的工作量和出错的可能性。
在质量审核卡控方面,SDP平台提供符合IRIS规范的研发过程和研发成果发布的审核卡控功能,通过技术手段辅助研发人员严格执行开发流程。具体来说,在项目研发过程中,SDP平台将开发人员分为若干个角色,如项目负责人角色、需求开发人员角色、设计开发人员角色、测试设计人员角色、测试执行人员角色等。在角色的基础上,SDP平台进一步识别、设置研发流程中的关键卡控点,如图 5所示就是研发项目审核卡控流程示例,其中每个阶段都需在经过评审后在项目负责人的控制下进入下一个阶段。
从图5可以看出,SDP平台提供的审核卡控流程具有以下特点:第一,平台保证研发项目的所有阶段成果都需要审核,否则不能进入下一阶段;第二,平台保证只有通过审核,并由项目负责人认可的阶段成果才能作为下一步研发的输入;第三,平台提供项目基线等配置管理功能,并根据研发人员在项目中不同的角色,提供给研发人员通过审核、版本正确的工作输入。
SDP平台集成Change服务器对信号系统软件全生命周期(需求、设计、编码、测试等)的阶段成果进行审核,并使用审核记录服务器将通过审核的阶段成果(配置项)串联形成项目基线,如图6所示。
SDP平台提供模块化的信号系统软件开发方式。SDP平台建立了信号系统的组件库,其中收集了已有的可复用组件和系统。在使用SDP平台开发信号系统软件时,可以复用组件库总的组件来拼装成新的信号系统软件,或以已有系统为原型进行少量修改来构建新的系统。而且,当新的系统研发完成后,其包含的可复用组件以及系统本身都会被收集到组件库中以供以后复用。因此,SDP平台构成了一个闭环的组件收集和复用的组件化开发平台。
SDP平台对信号系统软件系统及子模块进行规范化,使之能方便快捷的被用户查询、复用、统计和管理,SDP平台将其定义为“SDP组件”。SDP平台包含了组件库服务器收集这些组件,同时支持SDP客户端访问和网页访问,可以供不同研发人员和管理人员方便地实现组件的查询、复用、统计和管理功能。图7所示为SDP组件库的结构图。
从图7中还可以看出,为了保证入库组件的质量,所有的组件在入库时必须经过审核后,才能正式发布,从而为新系统所复用。
SDP平台作为一个支撑平台,针对信号系统研
发的特点和挑战,提供了对信号系统软件产品全生命周期研发的支持,通过技术手段对研发流程进行审核卡控,支持信号系统软件产品的组件化、规范化、自动化、智能化,可以有效地提高研发的效率,保证研发流程的规范,支持技术成果的重用,有利于进一步缩短研发周期,保证产品质量,提高研发综合实力。