真實狀況(例如“開發(fā)人員分散在不同地點”)。這些約束性需求當(dāng)然對架構(gòu)設(shè)計影響很大,比如受到“項目預(yù)算有限”的限制,架構(gòu)師就不應(yīng)選擇昂貴的技術(shù)或中間件等,而考慮到開發(fā)人員分散在不同地點”,就更應(yīng)注重軟件模塊職責(zé)劃分的合理性、松耦合性等等。
運行期質(zhì)量屬性。這類需求主要指軟件系統(tǒng)在運行期間表現(xiàn)出的質(zhì)量水平。運行期質(zhì)量屬性非常關(guān)鍵,因為它們直接影響著客戶對軟件系統(tǒng)的滿意度,大多數(shù)客戶也不會接受運行期質(zhì)量屬性拙劣的軟件系統(tǒng)。常見的運行期質(zhì)量屬性包括軟件系統(tǒng)的易用性、性能、可伸縮性、持續(xù)可用性、魯棒性、安全性等。在我們的超市系統(tǒng)的案例中,用戶對高性能提出了具體要求(真正的性能需求應(yīng)該量化,我們的表1沒體現(xiàn)),他們不能容忍金額合計超過2秒的延時。
開發(fā)期質(zhì)量屬性。這類非功能需求中的某些項人們倒是念念不忘,可惜很多人并沒有意識到“開發(fā)期質(zhì)量屬性”和“運行期質(zhì)量屬性”對架構(gòu)設(shè)計的影響到底有何不同。開發(fā)期質(zhì)量屬性是開發(fā)人員最為關(guān)心的,要達(dá)到怎樣的目標(biāo)應(yīng)根據(jù)項目的具體情況而定,而過度設(shè)計(overengineering)會花費額外的代價。
什么是軟件架構(gòu)視圖
那么,什么是軟件架構(gòu)視圖呢?Philippe Kruchten在其著作《Rational統(tǒng)一過程引論》中寫道:
一個架構(gòu)視圖是對于從某一視角或某一點上看到的系統(tǒng)所做的簡化描述,描述中涵蓋了系統(tǒng)的某一特定方面,而省略了于此方面無關(guān)的實體。
也就是說,架構(gòu)要涵蓋的內(nèi)容和決策太多了,超過了人腦“一蹴而就”的能力范圍,因此采用“分而治之”的辦法從不同視角分別設(shè)計;同時,也為軟件架構(gòu)的理解、交流和歸檔提供了方便。
值得特別說明的,大多數(shù)書籍中都強調(diào)多視圖方法是軟件架構(gòu)歸檔的方法,其實不然。多視圖方法不僅僅是架構(gòu)歸檔技術(shù),更是指導(dǎo)我們進(jìn)行架構(gòu)設(shè)計的思維方法。
Philippe Kruchten提出的4+1視圖方法
1995年,Philippe Kruchten在《IEEE Software》上發(fā)表了題為《The 4+1 View Model of Architecture》的論文,引起了業(yè)界的極大關(guān)注,并最終被RUP采納。如圖2所示。
該方法的不同架構(gòu)視圖承載不同的架構(gòu)設(shè)計決策,支持不同的目標(biāo)和用途:
l 邏輯視圖:當(dāng)采用面向?qū)ο蟮脑O(shè)計方法時,邏輯視圖即對象模型。
l 開發(fā)視圖:描述軟件在開發(fā)環(huán)境下的靜態(tài)組織。
l 處理視圖:描述系統(tǒng)的并發(fā)和同步方面的設(shè)計。
l 物理視圖:描述軟件如何映射到硬件,反映系統(tǒng)在分布方面的設(shè)計。
運用4+1視圖方法:針對不同需求進(jìn)行架構(gòu)設(shè)計
如前文所述,要開發(fā)出用戶滿意的軟件并不是件容易的事,軟件架構(gòu)師必須全面把握各種各樣的需求、權(quán)衡需求之間有可能的矛盾之處,分門別類地將不同需求一一滿足。
Philippe Kruchten提出的4+1視圖方法為軟件架構(gòu)師“一一征服需求”提供了良好基礎(chǔ)。
邏輯視圖。邏輯視圖關(guān)注功能,不僅包括用戶可見的功能,還包括為實現(xiàn)用戶功能而必須提供的“輔助功能模塊”;它們可能是邏輯層、功能模塊等。
開發(fā)視圖。開發(fā)視圖關(guān)注程序包,不僅包括要編寫的源程序,還包括可以直接使用的第三方SDK和現(xiàn)成框架、類庫,以及開發(fā)的系統(tǒng)將運行于其上的系統(tǒng)軟件或中間件。開發(fā)視圖和邏輯視圖之間可能存在一定的映射關(guān)系:比如邏輯層一般會映射到多個程序包等。
處理視圖。處理視圖關(guān)注進(jìn)程、線程、對象等運行時概念,以及相關(guān)的并發(fā)、同步、通信等問題。處理視圖和開發(fā)視圖的關(guān)系:開發(fā)視圖一般偏重程序包在編譯時期的靜態(tài)依賴關(guān)系,而這些程序運行起來之后會表現(xiàn)為對象、線程、進(jìn)程,處理視圖比較關(guān)注的正是這些運行時單元的交互問題。
物理視圖。物理視圖關(guān)
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html