软件架构非功能需求——可靠性

是什么

可靠性指软件在异常情况下或在被非法、非常规使用时维持自身功能的能力。

可靠性体现在容错和健壮性这两个方面。

  • 容错

容错指软件发生故障时仍保持正常运行的能力。它保证软件能在异常情况下正常运行,并在内部完成故障的修复工作。

修复完成后,软件需要继续或从头开始执行异常位置的操作。比如分布式系统在发生通信异常时会先暂时切断连接,等问题修复完成后再重新连接,恢复软件的运行。

  • 健壮性

健壮性是保护软件不受非正常使用方式或非法输入影响的能力。具备该能力后,不论什么样的使用方式,软件都能准确迁移至系统定义的状态。

健壮性值保证软件能迁移至系统定义的状态,并不要求软件修复或重新执行引发异常的处理。

为什么

软件对可靠性的需求是不尽相同的。

比如大规模系统或关键的业务系统就不允许出现中断服务的情况,就算缩减功能,也要持续提供服务。

而供个人使用的软件就不需要如此强大的持续性了。相较于在危险状态下继续提供服务,这类软件大多选择保存数据重新启动。

因此,在设计软件架构时,我们要先明确软件对可靠性的需求。

怎么做

从容错的观点出发,我们可以让软件架构存在内部冗余(双重冗余等)。也可以采用故障弱化的设计,在软件发生故障时缩减软件提供的功能,只保留关键功能,保证处理继续运行。

从健壮性的观点出发,我们可以采用故障安全的设计,在发生故障时剥离发生故障的部分。也可以采用故障保护的设计,保证软件在用户进行了错误操作的情况下也能安全运行,避免故障发生。

 

你可能感兴趣的:(编程的原则)