標籤:系統架構
當我們在討論軟體系統架構的一些概念的時候,經常會藉助一些其他學科(如造船、建築等)的概念進行描述。例如當我們討論"架構"這個概念的時候,我們就會藉助微處理器的內部結構、機器的內部結構、組織網路、軟體架構和其他許多東西進行對比和理解。今天主要介紹一下軟體架構、架構元素、架構描述和一些其他相關內容。
什麼是軟體架構 在現在社會中到處都可以看到電腦的身影,不僅僅是資料中心的案頭上,甚至在汽車、洗衣機和信用卡上。這些電腦無論體積大或小、結構簡單或者複雜,所有的電腦都是由三個基本組成部分:硬體、軟體和資料。
當我們研究電腦系統的時候,首先要瞭解的就是電腦的組成部分的功能,以及各個部分是如何在一起工作的,換句話講就是研究電腦的架構。通常我們認可的對電腦架構的概念是由坐落在匹茲堡的卡耐基-梅隆大學的軟體體繫結構研究所定義的。
該組織定義:一個軟體系統的體繫結構,包括軟體元素,軟體元素之間的關係,以及這些元素的外部可見特性。接下來讓我們具體瞭解一下定義中的兩個關鍵區段,即系統的結構和其外部可見度。
系統結構 對軟體架構師來講,系統結構包括靜態(設計時的組織圖)和動態(運行時的組織圖)兩個方面。
靜態體繫結構,定義了內部元素的設計和元素的排列。它告訴我們設計時的組織形式和軟體元素是如何組織的。內部元素包括:
內部軟體元素可以是模組、類或包、預存程序、服務或者其他獨立的代碼單元。
內部資料元素可以使類、關聯式資料庫的實體或表、資料檔案等。
內部硬體元素包括電腦或其他組成部分(如磁碟或者CPU)。
內部網路元素包括電纜、集線器、路由器等。
以上這些內部元素之間相關關聯、相互依靠,共同構成了我們的軟體體繫結構。
動態體繫結構,定義了系統運行時的元素和他們之間的相互作用。它說明了系統是如何工作的,系統運行時發生了什麼,如何響應外部請求等。元素之間的相互作用可以是資訊在元素之間的流動,可以是並行或順序執行的任務,也可以是元素對於資料的影響。
外部可見度 外部可見度主要包括兩個方面,一個是外部可見的行為(系統做了什麼),另一個是品質特性(系統如何做)。
外部可見的行為可以告訴我們一個軟體系統從外部觀察者的角度是什麼,即告訴我們系統與環境之間相互作用的功能是什麼。這些相互作用的功能包括系統內外資訊的流動,系統對外部請求的響應,對外提供的約定和API等。外部行為即對待系統的方式,我們可以將系統的看做一個黑盒子,外部行為不需要考慮和知道內容的實現,僅僅需要知道系統內部完成了哪些功能和處理。
品質屬性可以告訴我們一個系統的行為從外部觀察者的角度是什麼,即告訴我們系統的外部可見的非功能特性,如效能、安全和延展性。品質屬性所關注的範圍包括系統如何在較低的負載下執行,特定硬體的輸送量在峰值的是什麼,如何防止系統的惡意使用,系統運行多長時間崩潰,系統的運行、維護、管理怎麼更容易,更便於殘疾人使用等等,這些特性都屬於系統品質屬性所需要優先考慮的範圍。
到此為止,我們對系統架構的概念就介紹完畢了,接下來繼續講解軟體系統架構的其他內容。
……