軟體質量概述的六大屬性
摘要:軟體屬性包括功能屬性和質量屬性,但是,軟體架構(及軟體架構設計師)重點關注的是質量屬性。文章從常見的六個質量屬性,即可用性、可修改性、效能、安全性、可測試性、易用性寫起,使讀者對其有初步的認識和了解。
關鍵詞:軟體;質量屬性;體系架構;
Six attributes of software quality overview
Absrtact:Software attributes include function attributes and quality attributes, but software architecture (and software architecture designers) focus on quality attributes. This paper starts with six common quality attributes, that is, usability, modifiability, performance, security, testability and USABILITY, so that readers have a preliminary understanding of them.
Keywords: Software; quality attributes; architecture;
一、可用性
1、可用性戰術將會組織錯誤發展為故障,或者至少能夠把錯誤的影響限制在一定範圍內,從而使系統恢復成為可能。可用性是指系統正常執行時間的比例,是透過兩次故障之間的時間長度或在系統崩潰情況下能夠恢復正常執行的速度來衡量的。
2、維護可用性的方法:
(1)錯誤檢測——用來檢測故障的某種型別的健康監視
(2)自動恢復——檢測到故障時某種型別的恢復
(3)錯誤預防——阻止錯誤演變為故障
3、可用性戰術分類
錯誤檢測、恢復監測和修復、重新引入、預防
二、可修改性
可修改性是指系統或軟體能夠快速地以較高地價效比對系統進行變更地能力。對於一個網站,我們要修改它某一板塊地UI介面,當我們對介面進行修改時是否引起對另一個UI模組地影響,是否會引起後臺控制,業務邏輯程式碼地變更,是否會引起整個網站地崩潰,這就體現了一個網站地整個架構是否具備可修改性。
引起可修改性地因素包括使用者需求和系統內在需求。使用者需求例如使用者對軟體某些圖示的更改,而淘寶網後期對資料庫體系架構的更新和完善則來源於系統內在的需求。
可修改性地戰術分析:
1、區域性化變更
區域性化意味著實現“模組化”思想,也就是設計模式中的“單一職責原則”的設計原則。通俗的來講就是一個模組只完成一個部分,使每一個模組責任單一,防止職責過多引起整體變更時的繁瑣,複雜,主要表現在類、函式、方法和介面的時候,實現“高內聚,低耦合”。
2、防止連鎖反應
所謂連鎖反應就是我們平時程式設計,無論是寫函式還是寫類,都需要被其他類還是函式呼叫,修改此函式或類就會影響到呼叫他的函式,這就是連鎖反應。
防止連鎖反應:
·資訊隱藏。資訊隱藏就是把某個實體地責任分解為更小地部分並選擇哪些資訊成為共有,哪些資訊成為私有的。
·維持現有的介面。該戰術的模式包括新增介面、新增介面卡、提供一個佔位程式。
·限制通訊路徑。限制與一個給定的模組共享的模組,減少聯絡,一旦變更影響會小很多。
·使用仲裁者。插入仲裁者來管理依賴之間的關係,就比如資料庫的使用,透過資料庫來管理不同的資料資訊。
3、推遲繫結時間
將有可能的修改,儘量用配置檔案,或者其他後期讓非開發人員可調整的方式實現。