系統的健壯性(robustness)也稱為系統的堅固性或堅實性,這是衡量一個系統能否從各種出錯條件下恢復能力的一種測度。
引起出錯的條件可以是來自系統內部,也可以是系統外部的。比如:一個健壯的系統可以容許數據輸入的錯誤,也可以允許內部組成部件的故障。
雖然在健壯性與可靠性之間有着一定的聯系,但是兩者是不同的測度。
提高可靠性的技術一般可以分為兩類,一類是避免故障,在開發過程中,盡可能不讓差錯和缺陷潛入軟件,這類常用的技術有:
算法模型化,把可以保證正確實現需求規格的算法模型化。
模擬模型化,為了保證在確定的資源條件下的預測性能的發揮,使軟件運行時間、內存使用量及控制執行模型化。
可靠性模型,使用可靠性模型,從差錯發生頻度出發,預測可靠性。
正確性證明,使用形式符號及數學歸納法等證明算法的正確性。
軟件危險分析與故障樹分析:從設計或編碼的結構出發,追蹤軟件開發過程中潛入系統缺陷的原因。
分布接口需求規格說明:在設計的各階段使用形式的接口需求規格說明,以便驗證需求的分布接口實現可能性與完備性。
這些技術一般都需要比較深厚的數學理論知識和模型化技術。
另一類就是采用冗余思想的容錯技術。
容錯技術的基本思想是使軟件內潛在的差錯對可靠性的影響縮小控制到最低程度。
軟件的容錯從原理上可分為錯誤分析、破壞程度斷定、錯誤恢復、錯誤處理四個階段。
常用的軟件容錯技術有N-版本技術、恢復塊技術、多備份技術等。
N-版本程序設計是依據相同規范要求獨立設計N個功能相等的程序(即版本)。獨立是指使用不同的算法,不同的設計語言,
不同的測試技術,甚至不同的指令系統等。恢復塊技術是使用自動前向錯誤恢復的故障處理技術。
健壯性和穩定性是特定的軟件自身的要求, 不同軟件不能就健壯性做對比, 健壯性和穩定性是
軟件處理邏輯的一部分, 不同軟件的處理邏輯需求可以不一樣.
軟件架構的健壯性和穩定性是該軟件規划時所確定的目標, 如果軟件的實現沒有達到原先規定
的目標, 則我們可以說該軟件的健壯性和穩定性不夠或不好!