如何确保嵌入式实时控制软件的质量?对这类软件的生产过程如何进行有效的质量控制?这是一个重要的研究课题。为解决软件危机而产生和发展起来的软件工程成功地解决了软件开发中存在的许多问题。它不仅对软件开发、设计和生产有直接影响,而且对提高软件质量有显著成效。实践表明,使用软件工程方法,可达到一般的质量要求。但当软件质量要求更高时,则必须在实施软件工程的同时,采取一些专门的可靠性工程技术和方法,以保证需求的可靠性。
软件工程是指按照工程的规律来组织软件的生产与开发。软件工程化要求以软件质量控制为核心,紧紧抓住软件生产方法、需求分析、软件设计、软件生产工具、测试、验证与确认、评审和管理等8个主要环节(图1)。
软件生产方法
软件是产品。从产品的意义上说,所谓软件开发应为软件生产。软件应采用工程化、结构化和规范化方法进行生产。软件工程化是指使用软件工程的理论、技术、要求和管理等来规范软件开发过程中的全部活动。硬件生产已有一套成熟的工程化方法,软件要向硬件学习,使软件硬化,把软件看作是软件工厂中的产品。
软件规范化是指在软件生存周期中,软件的生产活动必须严格遵循各项软件规范和标准。经验证明,没有规范就没有产品,也就没有软件。执行规范必须动真格。执行规范工作量是大些(工作量主要在文档、审查、验证、评审和管理上),但受益却是明显的。由于软件开发过程规范提高了软件质量,这样不仅减轻了损失,而且还促进了软件的生产进度,提高了软件的生产率。
软件结构化是指软件生产过程中采用了结构化分析和结构化设计方法。
软件需求分析
软件需求分析的目的是使软件设计人员和用户之间进行全面和深入的沟通,以明确用户所需的究竟是一种什么样的软件。需沟通的主要内容有:将要开发的软件所涉及的概念、定义、目标、指标、功能、控制逻辑、算法、环境、时序、执行过程和特点等。通过需求分析产生的软件规格说明书是此后软件设计、调试和测试工作的基础,是软件评审、鉴定和验收的依据之一。因此,需求分析是软件生产中的一个首要步骤。一份软件规格说明书的质量优劣,一方面取决于需要分析深入的程度,另一方面取决于系统分析员刻画软件需求的正确性、完整性、合理性和一致性达到的程度。
众所周知,软件怕修改,更怕需求变更。原因在于:
·软件修改的工作量大,关键软件的任何修改,必须经历一个调试、测试、验证与确认的步骤。
·花费的代价高,经试验考核过的软件,又要更改软件需求,即使是只改了一个参数,也需要对更改的软件作重复考核。有的实时控制系统一次试验的代价是相当大的。
·软件修改的牵涉面广,往往有牵一发而动全身的问题。尤其是由多个分系统组成的系统 (例如军事指挥的C3I系统),任何·一项修改均要考虑是否会影响其他的分系统。
软件可靠性需求分析要求全面、细致和深入。