一、外部和內部質量因素
1 、外部因素:通過用戶檢測軟件產品的質量(如速度或者易用性)
注:用戶不僅是真正與最終產品交互的人,還包括那些購買軟件或簽約的人
2、內部因素:適用於軟件產品的其他特性,例如模塊化的或可讀的。只能被能夠訪問實際軟件文本的計算機專業人員察覺
3、外部質量因素影響用戶,內部質量因素影響軟件本身及其開發人員。
4、只有外部因素很重要,但實現這些外部因素的關鍵在於內部。外部質量是內部質量的結果。
二、重要的外部因素
1、正確性
正確性是軟件產品按照其規格所定義的執行其確切任務的能力。
正確性是最重要的質量因素。
確保正確性的方法:測試和調試。
2、健壯性
健壯性是軟件系統對異常情況做出適當反應的能力。
健壯性補充正確性。(正確性解決了系統在其規範所涵蓋的情況下的行爲,健壯性表徵了該規範之外發生的事情。)
穩健性是爲了確保如果出現這種情況,系統不會導致災難性的事件; 它應該產生適當的錯誤信息,乾淨地終止它的執行,或者進入 所謂的“優雅降級(毀壞)”模式。
3、可擴展性
可擴展性便於規範軟件產品適應變化。
兩項原則對於提高可擴展性至關重要:
①簡單的設計 :簡單的架構將會更容易適應變化。
②分權 :模塊越自主,可擴展性越高(一個簡單的改變只會影響一個模塊,或者一個小模塊。而不是在整個系統中觸發變化的連 鎖反應。)
4、可重用性
可重用性是軟件元素爲構建許多不同應用程序提供服務的能力。
5、兼容性
兼容性是將軟件元素易於與其他元素相結合。
兼容性的關鍵是標準化,特別是標準協議。
方法包括:
標準化的文件格式 ,如Unix系統中的每個文本文件一樣只是一個字符序列。
標準化的數據結構 ,如Lisp系統中的所有數據和程序也由二叉樹表示(在Lisp中稱爲列表)
標準化用戶界面 ,如各種版本的Windows OS / 2和MacOS,所有工具都依賴單一的通信範例與用戶一起,基於標準組件如 Windows,圖標,菜單等。
6、效率
效率是軟件系統對硬件資源儘可能少的需求的能力,例如處理器時間,內部和外部存儲器中佔用的空間,通信設備中使用的帶寬 等。
如果軟件不正確,效率無關緊要
功能性是系統提供的可能性範圍。
及時性是軟件系統在何時發佈的能力或者在用戶需要之前。
三、內部因素
1、源代碼相關因素,如代碼行(LOC),循環複雜性等。
2、體系結構相關因素,如耦合,內聚等。
3、可讀性,可理解性和清晰度,複雜性,尺寸。
四、質量屬性之間的權衡
完整性與易用性、 經濟與功能、效率與可移植性、 效率與可重用性、 及時性與可擴展、 經濟性與可重用性
五、在軟件行業中最重要的四個
正確性、健壯性、可擴展性、可重用性
六、軟件構建的五個關鍵質量目標:
- 易於理解 :優雅和美觀的代碼/可理解性
- 準備好改變 :可維護性和適應性
- 開發便宜 :設計/重用:可重用性
- 從錯誤安全 :健壯
- 高效運行 :性能