问题 问答题

论软件可靠性设计与应用

答案

参考答案:目前在企业中,以软件为核心的产品得到了广泛的应用。随着系统中软件部分比例的不断增加,使得系统对软件的依赖性越来越强,对软件的可靠性要求也越来越高。软件可靠性与其他质量属性一样,是衡量软件架构的重要指标。
软件工程中已有很多比较成熟的设计技术,如结构化设计、模块化设计、自顶向下设计等,这些技术为保障软件的整体质量发挥了重要作用。在此基础上,为了进一步提高软件的可靠性,通常会采用一些特殊的设计技术,即软件可靠性设计技术。
在软件可靠性工程体系中,包含可靠性模型与预测、可靠性设计和可靠性测试方法等。实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。
请围绕“软件可靠性设计与应用”论题,依次从以下三个方面进行论述。
(1)概要叙述你参与实施的软件开发项目以及你所承担的主要工作。
(2)简要叙述影响软件可靠性的因素有哪些。
(3)阐述常用的软件可靠性设计技术以及你如何应用到实际项目中,效果如何。
写作要点
这是一道关于软件可靠性设计的试题,主要考查影响软件可靠性的因素以及软件可靠性设计技术和应用。本题需要特别注意的一点是:文章不能以“系统可靠性设计与应用”为主线组织内容。“系统可靠性设计”与“软件可靠性设计”的区别在于:系统可靠性包括了系统硬件的可靠性和系统软件的可靠性。
软件的可靠性设计技术主要有:恢复块方法、N-版本程序设计、防卫式程序设计。
恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变为恢复块。一个恢复块中包含若干功能相同、设计差异的程序块,每一时刻有一个程序块处于运行状态,一旦某程序块出现故障,则用备份程序块予以替换。
N-版本程序设计的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)。冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。
防卫式程序设计是一种不采用任何一种传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个己知的正确状态中去。其实现策略包括错误检测,破坏估计和错误恢复三个方面。

连线题
单项选择题 A1/A2型题