列表

详情


论软件可靠性设计与应用
 目前在企业中,以软件为核心的产品得到了广泛的应用。随着系统中软件部分比例的不断增加,使得系统对软件的依赖性越来越强,对软件的可靠性要求也越来越高。软件可靠性与其它质量属性一样,是衡量软件架构的重要指标。
软件工程中已有很多比较成熟的设计技术,如结构化设计、模块化设计、自顶向下设计等,这些技术为保障软件的整体质量发挥了重要作用。在此基础上,为了进一步提高软件的可靠性,通常会采用一些特殊的设计技术,即软件可靠性设计技术。
在软件可靠性工程体系中,包含有可靠性模型与预测、可靠性设计和可靠性测试方法等。实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。

参考答案:

详细解析:

一、论文中要具体介绍项目的总体需求(特别是可靠性需求)、采用的技术等内容和承担的实际工作。
二、影响软件可靠性的主要因素有:运行环境(软件可靠性的定义是相对于运行环境的);软件规模;软件内部结构(内部结构越复杂,包含的缺陷数就可能越多);软件的开发方法和开发环境;软件的可靠性投入等。
三、可靠性设计是在常规的软件设计中,应用各种方法和技术使程序设计在兼顾用户功能和性能需求的同时,全面满足软件的可靠性要求。软件可靠性设计技术就是以提高和保障软件的可靠性为目的,在软件设计阶段运用的一种特殊的设计技术。
主要的软件可靠性设计技术包括:
(1)容错设计技术。对于软件失效后果特别严重的场合,例如宇航器控制系统、空中交通控制和核反应堆控制系统等,可采用容错设计方法。常用的软件容错技术主要有恢复块设计、N版本程序设计和冗余设计。恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变为恢复块。一个恢复块中包含有若干功能相同、设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则用备份程序块予以替换。N版本程序设计的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)。冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。
(2)检测技术。在无须在线容错或不能采用冗余设计技术的部分,但又有较高的可靠性要求时,一般采用检测性设计,在软件出现故障后能及时发现并报警。但其明显的缺点是不能自动解决故障,如果没有人工干预,最终将导致系统不能正常运行。
(3)降低复杂度设计。软件的复杂性与软件可靠性有密切关系。软件复杂性是产生软件缺陷的重要根源。降低复杂度设计的思想就是在保证实现软件功能基础上,简化软件结抅。

上一题