可靠性是软件的非功能性需求,指软件在异常情况下或在被非法、非常规使用时维持自身功能的能力。 在软件研制任务书中,可靠性与安全性、保密性一起都是作为关键性要求来描述的。 可是,在实践中,对于可靠性的描述并不准确。常见的描述都不具备可实现、可测试,不符合需求验收准则的要求。 那么,软件可靠性应该如何描述呢? 软件的可靠性体现在容错和健壮性这两个方面,描述可靠性可以从这两个方面考虑。
容错指软件发生故障时仍保持正常运行的能力。 需求开发人员从容错的观点出发,可以这样描述可靠性:
健壮性是保护软件不受非正常使用方式或非法输入影响的能力。软件具备可靠性后,一旦出现非正常使用方式或非法输入,软件都能准确迁移至系统定义的状态。 健壮性只保证软件能迁移至系统定义的状态,并不要求软件修复或重新执行引发异常的处理。 需求开发人员从健壮性的观点出发,可以这样描述可靠性:
软件对可靠性的需求是不尽相同的。 比如一些关键的业务系统是不允许出现中断服务的,最多采取弱化的方式——缩减功能,但也要持续提供关键服务。 而供个人使用的软件可能就不需要这种持续性,这类软件大多都是选择保存数据重新启动。 所以,需求开发人员应当根据软件的实际情况分析是否需要给出可靠性需求,给出什么样的可靠性需求。 这正是: 说起需求可靠性,非功能中很关键 参考书目:编程的原则:改善代码质量的101个方法,作者:上田勋,译者: 支鹏浩,出版社: 人民邮电出版社 |
|