高速铁路信号系统安全软件质量控制自动化技术研究

2011-07-13 08:24高海舰
铁路通信信号工程技术 2011年6期
关键词:基线服务器流程

高海舰

(北京全路通信信号研究设计院有限公司,北京 100073)

当前我国高速铁路技术快速发展,作为控制列车高速安全运行的信号系统的地位越来越重要。从CTCS-2级到CTCS-3级,信号系统越来越复杂,软件在信号系统中所占比重越来越大,软件的复杂性、重要性也越来越高。

通常对信号系统安全相关软件的安全等级要求都比较高,一般要达到欧标SIL4级。对于这种高复杂度和高安全性软件,开发过程中如何进行高效的质量管理,以满足软件的高质量要求,始终是目前软件工程的一个难点和研究的热点。

高安全性软件质量管理脱离不开通常软件工程质量管理的范畴,只是会过程卡控更复杂、要求更严格。在欧标EN 50128中,安全软件质量保证要求供应商、开发者必须有适应于EN ISO 9000系列的质量保证体系,来支持本欧洲标准的要求,并高度推荐EN ISO 9001认证。保证软件质量,是保证软件安全性的基础。质量失控,软件的安全性就无从谈起。

软件开发的关键过程通常包括需求、设计、实现、测试4个阶段,过程并不复杂,但考虑到实际软件项目开发过程中的迭代及演进过程,如何保证此复杂开发流程中软件质量严格可控,同时又保证管理过程的效率,以便不对软件开发的进度造成太大的影响,始终是一个令人头疼的问题。

要解决这一矛盾,除了优化管理流程,完善管理制度,加强培训之外,还有一个更直接有效的方法,就是充分利用现代软件辅助开发或质量管理的工具,尽量实现管理过程的自动化、信息化和电子化,理想结果是达到寓管理于无形的效果,减轻开发人员和质量保障人员的负担与工作强度,提高管理的质量。

1 解决方案

要实现管理过程的自动化、信息化和电子化的目标,首先要把开发过程中关键阶段的成果——需求规范、设计规范、测试案例等,作为待审核对象放到一个可靠、规范的环境中进行开发和管理,建立需求和设计、测试的追踪关系,进行覆盖分析、变更影响分析,并进行版本控制及项目基线管理。同时还要有流程管理工具,从流程上对待审核对象进行审核控制,自动记录审核过程。

目前,针对需求管理、变更控制、版本管理都有成熟的专业商用工具软件,但这些工具软件往往只关注解决某方面的问题,缺少协同,并且没有有效集成,使用起来很不方便。如果通过筛选,选择合适的工具软件,经过系统设计及二次开发,进行功能扩展,同时实现各个分离工具的有机集成,可满足系统需求。

2 工具调研

IBM Rational DOORS(简称DOORS)是目前比较流行的商用需求管理工具,由IBM公司开发。具有需求编辑与查看、需求属性管理、需求基线管理、修改历史记录、需求检索、联接(Links)和可疑联接(Suspect Link)建立、关联关系的分析、访问权限控制、文档的导入导出等功能。

IBM Rational Change(简称Change)也是IBM公司的产品,定位于变更过程的管理与控制,具有灵活的流程定制、属性定制、数据查询、报告定制、用户及角色管理等功能,能实现变更管理流程、评审管理流程和缺陷管理流程。

3 架构设计

集成DOORS和Change工具,搭建软件质量管理自动化系统。将软件开发过程中的阶段性成果,包括需求规范、设计规范、测试案例都在DOORS内进行开发和管理。在一定阶段,将开发过程中阶段性成果按模板导出文档,然后将此文档上传Change服务器,并发起审核流程。待审核有结果时,将审核结果记录到审核服务器,便于后续的查询以及项目基线生成。

质量控制自动化系统由5部分组成:质量控制自动化系统客户端、DOORS客户端、DOORS服务器、Change服务器、审核状态记录及基线管理服务器(简称审核服务器)。

3.1 系统顺序图

管理过程覆盖需求、设计、测试等软件开发周期的主要部分。需求规范、设计规范和测试案例都在DOORS内进行开发和管理,审核过程主要在Change内完成。审核的结果以及项目的基线管理主要由审核服务器负责。主要过程如图1所示。

3.2 审核发起前的准备流程

审核流程发起前,首先要在DOORS内对待审核对象打基线,固化状态。然后将此基线版本导出文档,此文档将作为Change中的审核流程的附件上传,便于审核者审阅。具体过程如图2所示。

3.3 审核流程发起

首先在Change内定制符合ISO 9001质量标准和企业软件质量管理要求的审核流程。然后通过二次开发,实现在质量控制自动化系统的客户端自动登陆Change服务器,并发起审核流程。具体过程如图3所示。

3.4 审核结果反馈

在Change内,各个角色按照分配的权限,根据流程,执行对应的状态迁移,从而完成各自的职责。当最终待审核对象审核通过或未通过的状态迁移完成后,Change服务器要向审核服务器发送通知,由审核服务器获取待审核对象的审核结果及其他相关信息,进行存档,并生成或演进项目基线。具体过程如图4所示。

4 关键技术及实施途径

4.1 工具的集成技术

质量控制自动化系统通过DOORS和Change提供的应用编辑接口(API),将工具的客户端部分的功能集成到质量控制自动化系统的客户端,以简化和方便软件开发人员的操作。

4.1.1 DOORS集成

DOORS为功能扩展、定制以及与其他系统的集成提供API,主要的接口是DOORS eXtension Language(DXL)。在DOORS客户端有DXL Server,外部通过DOORS提供的API建立进程间通信(IPC)通道,将DXL脚本发送到DXL Server内解释执行,实现功能扩展。

4.1.2 Change集成

Web Service是建立可互操作的分布式应用程序的新平台,它是一套标准,定义了应用程序如何在Web上实现互操作性。它是一种新的Web应用程序分支,是自包含、自描述、模块化的应用。各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果。

本系统利用Change的Web Service提供的Web服务的接口,按照WSDL文件生成Java版的Change客户端,并集成到质量控制自动化系统的客户端。

4.2 基于需求的软件系统基线演进策略

软件开发过程中基线管理的难点:在软件开发过程,每次需求发生变更,理论上要求对应的设计、测试及实现都要及时修改,以适应需求的变更,在此基础上根据阶段目标形成一条条项目基线。但在开发过程中,由于种种原因,需求状态不稳定,开发过程中的需求往往存在如下特点:1) 更新频率大;2)基线版本多。这对项目开发过程中的项目基线管理构成很大的困难。

全面的基线配置项涵盖的范围比较广,除了需求规范、测试规范说明和设计规格说明、数据库描述外,还包括用户文档,如安装说明、操作说明、用户手册和维护要求等。但考虑到需求、设计、测试在软件开发过程中的重要作用,本文主要集中讨论软件开发过程中的需求、设计、测试的基线演进。至于软件项目开发前的项目策划,以及软件项目开发后期形成的用户文档的基线不在此处讨论。

前面已经说过,在DOORS内进行需求规范、设计规范、测试案例的管理;需求在软件开发过程中的地位尽人皆知,需求驱动开发,需求驱动测试的观念被广泛接收。在项目基线演进过程中,需求规范的作用独特。

收集需求、定义系统在软件开发过程的第一步,是设计和测试的依据,后续的整个设计、实现以及测试都由软件需求驱动。在软件开发过程中,需求规范应是最先形成,需求规范在需求管理工具DOORS内进行开发和管理。当需求开发到一定阶段后,生成一个需求基线,然后在Change内发起需求规范的审核流程。如果审核通过,Change服务器向审核服务器发送审核结果,审核服务器记录需求的基线版本,并生成新的项目基线。

需求规范通过审核并发布后,依据需求规范开展模型设计以及测试设计,输出是软件系统概要设计和测试案例。当模型设计和测试设计到一定阶段,与需求规范一样要提交审核,在提交审核时,要指明待审核的设计规格和测试案例是针对审核服务器中哪个需求基线进行的设计(指定设计输入)。审核通过后,Change服务器向审核服务器发送审核结果。

项目基线演进流程如图5所示。

4.3 审核结果通知

待审核对象的审核结果确定后,Change服务器要向审核服务器发送审核结果的通知,以便进行结果的采集和记录,同时由审核服务器按照项目基线演进策略生成项目基线。

在Change的流程设计中,可以通过定制,让流程状态迁移时,自动触发trigger,就是执行特定的perl脚本或javascript脚本,从而完成特定的功能,如设置状态、查询结果、发送邮件等。利用这种自动触发机制,编写perl脚本,然后通过http协议向审核服务器发送消息,通知其向Change服务器获取审核结果以及其他相关属性信息,完成审核结果通知功能。

发送消息的部分perl脚本如下。

my $ua = LWP::UserAgent->new;

5 结论

本文探讨通过设计与二次开发,将专业的需求管理工具扩展为需求规范、设计规范和测试案例的管理平台,将专业的变更管理工具扩展为过程审核平台,同时将它们有机集成到质量控制自动化系统中,结合新开发的审核服务器,实现了质量审核卡控过程的电子化,项目基线管理的自动化,并部分实现了项目配置管理的自动化。当然,本系统还有改进的余地,例如目前需求规范、设计规范和测试案例等重要的技术文档已经实现了审核过程电子化和配置管理自动化的目标,但代码还没纳入进来,后续考虑将长于代码配置管理的工具IBM Rational Synergy或版本管理工具Subvision集成进来,通过二次开发,实现源代码与技术文档的统一管理。

[1] 李佳慧.业务需求驱动的软件质量管理系统[EB/OL].[2009-06-25].http://www.ibm.com/developerworks/cn/rational/r-cn-bqdrqm/#authorl.

猜你喜欢
基线服务器流程
吃水果有套“清洗流程”
航天技术与甚长基线阵的结合探索
通信控制服务器(CCS)维护终端的设计与实现
一种SINS/超短基线组合定位系统安装误差标定算法
违反流程 致命误判
中国服务器市场份额出炉
一种改进的干涉仪测向基线设计方法
得形忘意的服务器标准
本刊审稿流程
析OGSA-DAI工作流程