軟體架構的定義及其理解

2021-06-22 01:20:37 字數 1640 閱讀 9051

所謂軟體架構,指的是軟體系統的整體結構,包括軟體子元素,這些元素的外部屬性以及元素元素之間的關係。

這個定義包含了以下三層意思:

(1)軟體架構是對系統的抽象。它不僅規定了系統有哪些主要軟體元素或模組,還定義了這些元素之間是如何互動的。它並不暴露每個元素的內部屬性(也叫區域性資訊),也就是說每個子模組的私有資訊是不劃歸到軟體架構的範疇的。需要注意的是,每個元素的外部屬性依然是軟體架構的一部分。這裡所謂的外部屬性,指的是乙個元素對其他元素所承擔的責任實體,包括:提供的服務,所需的服務,效能特徵,錯誤處理以及資源的使用。

軟體元素,一般分為元件,聯結器和資料

三種。乙個元件是軟體指令和內部狀態的乙個抽象單元,通過其介面提供對於資料的轉換。乙個聯結器是對於元件之間的通訊、協調或者合作進行仲裁的一種機制。乙個資料是元件通過乙個聯結器接收或傳送的資訊元素。

資料的例子包括位元組序列,訊息,編碼過的引數以及序列化過的物件,但不包括那些永久駐留或元件的私有資訊。聯結器的例子包括rpc遠端過程呼叫、訊息傳遞協議和資料流等。

(2)每個軟體系統都有乙個架構。每個系統都是由乙個或多個元素組成,並且這些元素之間都存在一定的關係。只有乙個元素的系統是最簡單的一種情況。

(3)系統可能有多個檢視。從不同的角度,系統可能獲得不同的結構表示圖。單單其中乙個檢視無法代表軟體架構。軟體架構是所有這些檢視的總和。在一般情況下,你可以選擇其中乙個或幾個結構檢視用以對軟體系統進行分析,理解或團隊間溝通。

軟體架構勾畫了乙個公用的框圖,可供不同的人參閱,學習和理解。這使得我們對軟體系統的理解和溝通更為順暢,具體體現為:

(1)與使用者討論和協商軟體需求;

(2)讓客戶及時了解我們的軟體開發進展及大致成本;

(3)對實施管理層的決定和人力調配起到一定幫助作用。

一方面,軟體架構對具體的軟體的實現是描述性的,但另一方面,它對軟體實現也是有限制性作用的。描述性可以幫助團隊更好的理解軟體系統,限制性可以對軟體的設計和編碼做出一定的限制。系統性的資源分配決定對子元素的實現也起到一定的限制作用。軟體架構必須做出系統性的取捨和權衡(trade-off).

(1)可以幫助管理者在團隊內部如何劃分任務,確保每個團隊成員明確自己的職責;

(2)可以幫助管理者做人力和其他開發成本預算。

(3)可以幫助組織開發文件。

(4)可以對軟體的整合起到幫助作用;

包括但不限於:安全性、可擴充套件性、可修改性、可重用性、效能等

軟體架構把變化歸為三類:

(1)區域性性變化。如,修改單個子元素或元件;

(2)大範圍變化。如,多個元件需要被修改;

(3)架構性變化。如修改整個系統拓撲檢視,修改元件之間的通訊模式或變更元素間的協調機制。

乙個好的軟體架構,一定是在改動最少的情況下,能夠很好的自適應各種變化。

(1)如建築領域一樣,軟體架構應充當乙個框架的作用。我們可以往框架填充軟體元件。也就是說,軟體元素是可以作為外掛程式整合到系統裡的;

(2)通過把某些軟體功能劃分到某個或某幾個軟體元素,我們可以分而治之,各個擊破;

(3)可以提前通過架構分析出哪些軟體元素可能對專案的成功存在風險,進而對資源分配進行調整。

某個軟體產品線,一般只有乙個軟體架構。但乙個軟體架構不應該只能適用於某個系統,它應該是乙個模型,可以為多個系統和多種系統服務。軟體設計者和開發者可以重用這些模型,受益於該模型,並將它運用到其他軟體產品線

軟體架構的理解

軟體設計師中有一些技術水平較高 經驗較為豐富的人,他們需要承擔軟體系統的架構設計,也就是需要設計系統的元件如何劃分 元件之間如何發生相互作用,以及系統中邏輯的 物理的 系統的重要決定的作出。通常在乙個開發小組中,最有經驗的程式設計師會負責一些架構方面的工作。在乙個部門中,最有經驗的專案經理會負責一些...

理解SDP軟體定義邊界 概念 架構 流程

目前,虛擬專用網路 vpn 是很多公司遠端訪問的解決方案之一。但是,vpn使用者一旦獲得授權就可以廣泛訪問公司網路上的資源。這種廣泛訪問的方法使潛在的敏感資源和資訊暴露給vpn使用者和攻擊者。因此,圍繞軟體定義的邊界解決方案 sdp 成為安全遠端訪問的乙個更具吸引力的替代方案。虛擬專用網 vpn 面...

MVC MVP MVVM 軟體架構的理解

複雜的軟體必須有清晰合理的架構,否則無法開發和維護。mvc mvp mvvm 就是常見的軟體架構模式,屬於程式設計的方 mvc 是 model view controller 的縮寫 較其他模式的特點 model 和 view 之間存在直接的通訊,而這在其他兩種模式中不存在 優點 缺點 mvp 是 ...