鲁棒性(Robustness)是一种程序或系统不受预料之外的或恶意的状态或变量影响的能力。通常情况下,鲁棒性总是比抗干扰性更具有挑战性,也更具有研究价值。它以错误处理或容错性而著称,能够在外来干扰条件变化时仍能保持正常运行。本文将详细分析鲁棒性从软件及硬件两个方面。

一、鲁棒性在软件中的应用
1.错误处理
软件系统开发过程中,程序员需要考虑错误情况,阻止程序在错误发生时无法正常运行。为了提高软件的鲁棒性,需要对系统中可能出现的错误进行详细的分类和定义,然后将这些错误主动捕获,并为用户提供有效的信息。
比如说,用户输入的数据不符合系统的要求时,可以使用异常处理对错误信息进行捕获,提醒用户输入错误。当比如用户在Web上访问超时或者链接异常时,能够友好提示用户,使用JavaScript脚本自动重新请求数据或重新登录等,而不是仅仅只简单出现一行“我知道是什么错误。我来告诉你,你有一个系统错误”。
2.API设计
应用程序编程接口(API)在今天的软件系统开发中已成为一个基本要求。API设计的核心原则之一就是要具有鲁棒性。那么,API的鲁棒性可以体现在哪几个方面呢?
首先,API需要能够让调用者释放接口的资源,例如文件操作时,API需要保证空文件会被关闭释放,完成文件处理后,调用方需要确保文件被关闭,否则会导致文件内容损坏,影响API的鲁棒性。
其次,API的参数需要进行有效的校验,这样就可以避免函数参数校验失败,从而造成调用方面出现异常。
最后,API开发也需要考虑到运行环境的鲁棒性,比如说,CI/CD流程中,在不同环境中编译和打包部署,在不同环境中有时候会出现不一致的情况,鲁棒性就要求开发要处理这种不一致性,从而达到API运行在任何环境中都能可靠性运行。
二、鲁棒性在硬件中的应用
1.电路鲁棒性
在电路设计中,鲁棒性是一个指系统设计能够准确地输出期望输出,即使环境发生了某种意外情况时也没关系,从而能够在变化的环境中使系统发挥最佳性能的一个重要概念。
一般电路系统有两个挑战:设计确定性;硬件失效。考虑器件漂移、温度漂移和负载非线性等设计确定性的挑战,可采用电阻温度特性和变换电容偏置电阻、温度补偿电路等技术实现,避免内部器件状态变化造成电路故障。
而由失效外部器件所产生的非确定性挑战,可以采用杂质自校正、盲检测方法