幾類系統須要關注的質量屬性

前一篇文章,總結了三高系統所關注的一些重要質量屬性。就想到,其實不一樣類型的系統對質量屬性也每每要求大不同。html

下圖是軟件系統架構設計時,須要關注的一些軟件質量屬性。緩存

開發期質量屬性,是開發人員或後期的維護人員比較關心的,這些質量的好壞,每每會影響到開發和維護成本。而運行期質量屬性,則是最終用戶比較關心的,由於其在使用時是能切身體會到這些效果的,故而會影響用戶對整個系統的滿意度。安全

因此,對於基於互聯網的系統而言,其更關注的是:性能、可用性、伸縮性、擴展性、安全性。這些大多都是運行期的質量屬性。而這幾年互聯網、移動互聯網公司愈來愈熱,因此這些公司在討論設計時,每每是針對三高系統的設計,如:大流量、高併發、大數據量、集羣、緩存等,詳見上篇博客:《三高系統經常使用架構模式》。網絡

而對於企業級應用系統而言,其更關注的則是開發期的質量屬性。由於 2B 的軟件開發公司,關注的更多的是快速開發、快速實施的開發成本,以及後期的維護成本。因此在這些公司的架構師在討論設計時,每每談論的是快速開發平臺、快速實施平臺、業務組件級的大粒度重用等。架構

再如,遊戲的架構設計,則更爲複雜。特別是如今的網絡遊戲,幾乎大部分質量屬性的要求都會很高。一個好的架構設計,即會影響用戶體驗、公司的收入,也影響到開發一款新遊戲的開發成本。因此厲害的遊戲公司,能夠很快地經過累積的遊戲框架或引擎開發出一款新的遊戲,也能在三高的狀況下保證用戶的體驗,甚至還能在運行期不間斷的快速持續更新。併發

固然,上面說的只是簡單粗略的劃分。其實不一樣的系統,每每要求都不一樣,咱們不可一律而論。應該說,全部的系統,都應該對開發期、運行期的質量屬性進行分析。因此,架構師在作軟件架構設計時,須要針對不一樣類型的系統,對質量屬性進行具體的分析。這須要經過與 Stake Holder 的溝通,分析出目標系統對這些質量屬性的要求,而後排列出質量屬性(非功能需求)的重要度、優先級,以做爲架構設計的主要目標。框架

相關文章
相關標籤/搜索