软件新技术论文:基于的列车调度软件设计
摘 要: 列车调度软件是ATS系统的核心,以往的ATS系统列车调度软件,按照传统的“V”型软件开发流程进行。由于采用手工编码方式,编码工作量大,实现完整测试非常困难,开发出来的软件安全性和可靠性难以保障。提出了以SCADE作为应用开发环境平台,既能够开发出高质量和高可用的软件,又能缩短开发周期降低开发成本,通过对ATS系统中列车调度软件的分析和设计,说明了基于SCADE的列车调度软件设计方法的可行性,同时,在未来ATS系统软件开发中具备广阔的应用前景。
关键词: SCADE;列车调度;软件设计
在城市轨道交通控制系统中, ATS (AutomaticTrain Supervision,自动列车监控系统)实现监督在线列车状态、控制线上列车运行的功能。ATS系统包括控制中心系统和车站设备,其中控制中心系统包括列车调度终端、调度长终端、大屏显示等设备,以及相应的后台服务器。
列车调度软件是ATS系统的核心,能根据运行图自动办理列车进路,自动调整列车运行间隔,记录列车运行数据等。列车调度软件的高安全性和高可靠性是ATS系统的关键要求。因此,如何提高开发效率和保证开发的高质量是列车调度软件所面临的挑战。
以往的ATS系统列车调度软件,遵循传统的需求分析、概要设计、详细设计、手工编码、代码测试等的“V”型软件开发流程。由于采用手工编码方式,工作量大,实现完整测试非常困难,难以保障软件的安全性和可靠性。
SCADE (Safety-CriticalApplication DevelopmentEnvironment)是ESTEREL的一个高安全性的应用开发环境平台。基于SCADE的软件开发流程从需求出发,用图形化建模的方式来实现概要设计和详细设计,采用基于模型构造系统的设计方法。利用SCADE提供的开发工具,可以从模型自动生成代码,且不必对所生成代码进行单元测试,大大减少了手工编码和测试工作量,也就能大大减少开发成本和开发周期。目前, SCADE环境平台已广泛应用于航空电子、汽车电子、军用飞机以及核电站控制等领域。
1 SCADE应用开发环境平台
1.1 图形化建模
SCADE提供了数据流图和有限状态机2套机制进行图形化建模。这2套机制都建立在严格的数学模型基础之上,具有严格的数学语义,保证了设计模型的精确性、完整性、一致性和无二义性。其中数据流图适合连续性系统的建模,有限状态机则适合于离散性系统的建模。SCADE把这2套机制很好地融合在一起,能够适合不同类型的系统,尤其是混合系统的开发。
数据流图适合于连续系统的建模,能够提供一常用的运算符,如算术算符、逻辑算符、时序算符、case操作符和条件操作符等,用节点作为功能单元,以图形化方法构建模型。有限状态机能够适应复杂逻辑状态控制建模,表达程序执行的先后顺序、优先级层次、并行的状态结构等。通过对有限状态机状态的穷举,分析和验证有限状态机所有可达状态的安全性,经过安全性验证的有限状态机可以称之为安全状态机。安全状态机是由一些相互独立的状态(State)组成,状态间有转换(Transi-tion)连接。它指明对象在执行一定动作或满足某特定条件时,由当前状态转换到一个新状态。安全状态机中的每个状态有3个标志值动作,即进入、保持和离开,可以在动作中为控制指令赋值。在有限状态机中,还有条件伪状态(Conditional PseudoStates),用于描述使用多重分支的较为复杂的状态转换。
在图形化建模后,可以对建立的模型进行检查,对模型中的不一致、类型不匹配、数据回路等所有的模型错误, SCADE都能以超文本的方式进行定位,以便纠错。
模型检查有2种形式:局部模式只检查选中的类型块、常量块或者操作符;全局模式则检查整个模型。
1.2 形式验证
模拟和仿真能够在一定程度上测试系统的模型是否很好地实现所期望的功能,但是,它不能保证系统是否做了预期外的不应该做的事情。因此,只经过模拟仿真测试的系统安全性,并不能完全得到保证。SCADE内置的形式验证功能可解决该问题。
详尽的形式验证既不需要执行模型,也不需要借助测试向量,就可以检验SCADE模型是否达到安全性、可靠性和其他方面的要求。设计好系统的安全性要求和一个“特性观察器”之后,就可验证SCADE的模型的安全性。如果模型是安全的,它能给出一个安全的证明;如果模型是不安全的,它能给出一个反例,而这个反例又可以在仿真器中调出来进行仿真,以详细地观察系统是如何进入不安全状态的。形式验证的这一功能在很大程度上方便了系统的纠错,同时保证了目标系统的安全性。
1.3 代码的自动生成
经过仿真和形式验证,在保证了模型的安全性之后, SCADE就可以自动生成面向工程的ANSI C语言代码,且所生成代码满足一系列的安全性特征。例如,有界的堆栈,没有动态指针,没有递归调用,没有死代码等等。另外, SCADE自动生成代码的运行空间和运行时间与手写代码基本相当,但比手写代码更易于维护和调整。
相比其他代码生成器, SCADE代码生成有2个显著特点:第1, SCADE所生成的代码完全面向工程,可以直接嵌入到所开发的系统中去,而不需要做任何修改;第2, SCADE基于严格的数据理论,它保证所生成代码的正确性,并承诺所生成代码的行为和仿真的行为完全一致。
通过上述分析可以发现, SCADE应用开发环境平台可以减少开发和验证的成本,避免编码和测试过程中的人为错误,进行模型级的需求验证,增加模型代码的再利用性,缩短开发周期,并能够减少质量验证工作。
2 列车调度软件设计
2.1 场景化的需求分析与模块设计
传统的ATS系统列车调度软件需求分析方法,采用以表格、文字叙述的方法,对调度员的需求进行描述,需求分析人员与用户,以及软件开发人员对问题的描述往往存在语义上的差别,结果造成了用户需求与实际软件开发间的偏差。
采用场景化的需求分析方法,以“用户-调度员”为中心,对用户需求以场景脚本式的描述方法,使需求分析人员、用户和软件开发人员三者间建立沟通的桥梁。同时,场景可以用UML语言进行准确定义,利用SCADE对UML建模方法的支持,可以直接把用户需求场景转化为SCADE模型。
在调度员应用场景分析的基础上,可以对列车调度软件按以下模块设计:编制运行基本计划,下达计划,给出基本显示,显示正晚点,显示区间运行追踪,显示本次列车是否有相邻冲突,显示上/下行,显示车站报点状态,显示记事栏,设置控制执行时间,绘制列车实迹运行图,排列进路,运行封锁,列车限速。同时,这些模块也是SCADE子模型。
2.2 基于SCADE的调度软件设计过程
在建立SCADE子模型基础上,如图1所示,对SCADE子模型如下过程进行后续处理:模型检查、模拟仿真、形式验证、代码自动生成、管理文档自动生成等。最后在应用模块和用户应用场景分析的基础上,按照业务流程把这些功能模块连接起来,就可以构成完整的列车调度软件。
3 结论
1. 根据对用户应用场景的分析建立SCADE模型,实现软件需求进行概要设计和详细设计。SCADE模型对用户需求的表达优于自然语言,能无歧义地表达需求。
2. SCADE模型可直接用于模拟、测试模型设计是否满足需求,从而可以在设计阶段发现错误。
3. 代码生成器可直接将模型转换成源代码,省去了代码编写过程,避免了代码编写过程中可能引入的人工错误。高质量的代码生成器还可略去代码的单元测试工作。
免责声明/版权申明 Passiontech
所有文章为网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果由您自己承担!
本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。
若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息三天内给予处理!
仿真测试