標籤:style blog http ar 使用 sp java strong on
From:http://www.cnblogs.com/wintersun/archive/2013/04/24/3039877.html
每一種架構模式都有它的優缺點以及潛在風險,選擇正確模式來滿足需求功能和品質特性是非常重要的.品質特性在需求分析過程中已經定義了, 品質特性可分為三種類型:
1. 實現特性.
* 協作性.在內部組件與外界通用訪問與交換資料. 協作性需要鬆散依賴的基礎架構.
* 可維護性與擴充性. 修改系統與方便地擴充的能力.
* 可測試性. 協助系統建立測試案例. 可測試性通常需要完整的系統設計與實現文檔.
* 輕便性. 系統級的獨立於軟體與硬體平台. 系統開發用進階程式設計語言通常具有這個特性. 一個典例的例子就是JAVA, 大多數JAVA程式編譯一次可以在任何地方運行.
* 伸縮性. 適用增加使用者請求量的能力. 系統設計中伸縮性是比較討厭的瓶頸.
* 靈活性. 系統易於修改適應於非原始設計的系統不同環境或問題, 系統開發使用面向組件或面向服務的架構通常處理這個特性.
2. 運行時特性.
* 可用性. 一個系統應該具有24/7的能力. 可用性通過複製與謹慎設計可應付硬體, 軟體, 網路故障來實現.
* 安全性. 一個系統應對內外界各種類型的攻擊. 安全效能通過安裝防火牆, 建立認證與授權過程與使用加密.
* 效能. 增加一個系統效率系統到回應時間, 輸送量, 資源利用, 通常與其它幾個特性呈對立系統.
* 易用性. 使用者使用系統時感到滿意. 易用性包含完整性, 正確性, 相容性幾個因素, 也包括友好的使用者介面, 完整文檔與支援人員.
* 可靠性. 準確的輸出結果. MTTF(平均失效前時間), 從故障中恢複, 故障預測.
* 可維護性(擴充性, 適用性,可服務性, 測試性, 相容性, 可配製性, 軟體系統易於修改.
3. 業務特性.
* 市場時效性. 從需求分析到產品發布之日所需時間.
* 成本. 構建到營運系統的消耗.
* 生命週期. 一個產品”存活”到”退休”期間時間
在大多數情況下,沒有一個單一架構模式能同時滿足所有品質特性. 軟體架構師通常需要在很多特性之間做出權衡. 典型成對應系統品質特生有這些:
* 空間與時間的取捨. 空間換時間, 或是時間換空間.
* 可靠性與效能的取捨. 例如, 像CSharp這樣的語言實現防止記憶體溢出可能, 但純C語言使用指標可以效能高但可靠性低.
* 延展性與效能的取捨. 例如, 一個典型的方法來提高服務的延展性運用複製伺服器。 為了確保所有伺服器的一致性,以確保每個伺服器都有相同的一致性的資料,整個服務的效能就會受到影響。
在選擇架構模式時,不能滿足所有的品質特性,系統分析師或軟體架構師需要與客戶一起來確定品質特性的優先順序。通過枚舉備選體繫結構設計和計算加權來評價品質屬性, 以便軟體架構師可以最佳化設計與選擇最合適的方案。
軟體架構中品質特性