实时控制软件的质量控制
软件也和硬件一样,它的质量是设计出来的,生产出来的。其中,设计对软件质量具有关键性的影响。设计的重要性可从图3看出,其中(a)为经历了设计步骤后的效果,在软件使用和维修阶段,软件的问题少;反之,(b)为跳过设计步骤,到了使用和维修阶段,软件问题成堆,到了不可收拾的地步。基于这种情况,应强调:软件设计未完成,不得转入软件编码阶段。

良好的软件设计与所采用的软件设计方法、设计工具和设计准则有关。软件设计方法主要有面向数据流的设计、面向对象的设计和面向数据的设计方法等。这些方法均有其优缺点和不同的应用领域。目前,大多数嵌入式的实时控制软件使用的是面向数据流的设计方法。该方法的目标是以一种全局的软件观点和体系结构设计的角度派生出程序结构。
面向数据流的设计又称为结构化设计。它强调模块化、层次化和自顶向下等设计思想。这些思想的根本目的是对复杂问题的解决采用一个简化过程以获得满意的答案。通过这种简化,纵有千头万绪也能理得清清楚楚。一个设计准则是要将复杂的问题简化,切忌将简单的问题复杂化。好的程序设计语言,无疑对设计高质量的软件是有益的。例如,Ada语言,与一般语言比较,它所特有的一些语言成分旨在突出软件可靠性和安全性,便于软件维护,便于实行程序的层次式管理和提高程序的易读性、高效性等。
软件可靠性设计主要将软件的检错、避错、容错和异常处理技术灌输到软件设计中去,设计时应处处关心:
·控制逻辑的完整性;
·软件与硬件、软件与软件界面之间的协调性;
·人机交互的有效性;
·信息交换的正确性;
·设备控制的安全性;
·时序控制的合理性;
·数学运算中变量定义域的合法性。
软件生产工具
软件生产的主要工具是软件试验台(Software Testbed) 或软件开发平台。在软件需求分析的同时,就要考虑到这类软件开发环境的创造。它应满足下列要求:
(1)它的组成、结构、性能、功能和工作的方式与状态,力求与实际系统一致。优点是:
·它与实际系统出现的故障现象是一样的,便于故障隔离。
·软件试验台与实际系统的软件可彼此互相复制,便于软件开发过程交替上升。
·具有互补性,试验台有局限性的问题可在实际系统解决;实际系统上有困难的,代价太大的检测活动可在试验台上进行。
(2)配上多媒体工作站,提供软件测试过程中综合信息的显示和生产真实工作环境中的音响效果。
(3)配备实时数据采集器。
(4)能支持实时与非实时两种运行方式的调试活动。
软件试验台是辅助软件调试、测试、试验和验证的重要工具。在某种程度上可以得出这样的结论:没有软件试验台就不能顺利地开发出实时控制系统软件。原因在于:
(1)这类复杂的软件在实际系统上开发是不可能的,其代价太大,效率太低,效果太差。
(2)软件开发是个做细致研究、分析和不断探索的过程,软件试验台能适应这种工作方式。
(3)它是软件编程、调试、测试、集成和试验的综合环境。
(4)它是支持软件原型化开发方法的重要手段。
一般来说,实时控制系统软件的第一个原型是在软件试验台上开发出来的。有了软件原型,就有了与用户深入讨论、分析和确认软件需求的基础。实践证明,经过软件试验台测试通过的软件,基本上能用于实际实时控制系统的系统联调、测试、试验和系统验收。