软件工程之可靠性工程

在过去的二十年中,软件工程技术的使用、更好的程序设计语言、有效的质量管理已经使软件可靠性得到了显著提高。然而,软件失效仍然出现,这些故障影响可用性或者导致了不正确结果的产生。故障-错误-失效模型定义了人为错误导致系统故障,系统故障导致系统错误,系统错误导致系统失效。

故障、错误和失效之间的差别,帮助我们找出三个可以用于改善系统可靠性的辅助方法:1、故障引入避免。2、在系统部署之前故障检测和修复。3、系统出错后仍保持系统可操作的容错机制。

应用错误避免、错误检测和容错技术并非总是成本效益合算的。软件开发企业默认他们的软件存在一定的参与故障。可以接受的故障的基本原则是,当系统失效时,失效造成的损失比在系统发布之前发现和消除它们的开销要小。但是发布包含故障的软件并不仅仅是一个经济问题,同时还要考虑系统失效的社会和政治影响。

可靠性是指系统在一个特定时间特定环境中针对一个特定目的而执行的无失效操作的可能性。可用性是指系统在一个时刻是可操作的和能执行请求服务的可能性。

失效是一种违反系统规格说明的行为。但是软件规格说明通常是不完整和不正确的,系统开发人员也不会阅读软件规格说明。不能客观定义系统失效,系统失效是由系统用户判断的。

可依赖性需求分为两种:1、功能性需求。2、非功能性需求。

可靠性和可用性度量包括:1、请求失效概率。2、单位时间内失效发生率。3、可用性。

定量的可靠性规格说明在很多方面是有用的。1、决定可靠性需求级别的过程对弄清利益相关者真正的需求是有帮助的。2、提供了一个用来评估何时停止测试系统的标准。3、定量的可靠性规格说明是一种评估不同设计策略的方式,目的是提高系统的可靠性。4、证明系统必须的可靠性目标得到满足。

刻画可靠性需求时,应当遵循三条标准。1、针对不同类型的失效定义可用性和可靠性需求。2、针对不同类型的服务定义可用性和可靠性需求。3、考虑是否真的需要高可靠性。

系统中有4类功能性可靠性需求。1、检查需求,明确对系统输入的检查。2、恢复需求,帮助系统在失效之后进行恢复。3、冗余性需求,定义系统的冗余特征。4、过程性需求,避免故障。

容错机制是一种确保运行时可靠性的方法,定义了系统发生错误后的运行机制,即使发生软件或硬件故障,也能保证系统正常工作。有三种不同类型的容错体系结构:1、保护性系统。2、自监控系统。3、N版本编程。

实现软件多样性很难,因为现实中不能保证软件的每个版本都是真正独立的。

可依赖性编程指南:1、限制程序中信息的可见性。2、检查所有输入的有效性。3、为所有的异常提供处理程序。4、尽可能不使用容易出错的结构。5、提供重启功能。6、检查数组边界。7、调用外部结构时加入超时处理功能。8、为每一个表示现实世界值的常量命名。

为评估系统可靠性,需要获得系统运行时的数据。1、对给定数量的系统服务请求统计系统失败的次数。2、系统失效时间间隔,以及总的时间或总的事务处理次数。3、系统失效导致不能提供服务之后的维修和重启时间。

统计测试用来评估软件可靠性。它采用与运行概况相匹配的测试数据对系统进行测试,这个测试数据集反映软件在使用时的输入分布。

b7fe2f96c1deabbf93429cf6be4a7518.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值