軟體架構(software archiecture)也稱之為軟體體系結構,它是一組有關如下要素的重要
決策:軟體系統的組織,構成系統的結構化元素,介面和它們相互協作的行為的選擇,結構
化元素和行為元素組合成粒度更大的子系統的方式的選擇,以及指導這一組織(元素及其接
口、協作和組合方式)的架構風格的選擇。
軟體架構是對系統整體結構設計的刻劃,一直以來,對於架構的理解有兩個基本概念,
乙個稱之為組成,另乙個稱之為決策。
組成:架構的組成概念強調「計算機及元件之間的互動」。例如在的初步設計中,「表
示層」和「業務層」是兩個粗粒度的黑盒,當內部也表達了一些粒度比較細的元件
的時候,這兩個黑盒變成了「灰盒」。互動的概念表現在架構描述了它們之間的關
系,例如資料如何讀取、功能如何呼叫等。
決策:架構決策不但表現了系統組織、元素、子系統的組織風格決策,還包括了非
功能性需求的決策,例如對於可擴充套件性的決策,對於表示邏輯與業務邏輯變化的隔
離,第三方工具包變化的隔離等,這就使架構有了彈性。
架構的組成 與決策是架構設計的兩個基本概念,這兩個概念並不矛盾,在架構設計中,
往往是同時體現這兩個概念,確保架構滿足產品要求。由這兩個概念出發,我們自然會提出:
軟體架構的核心思維到底是什麼呢?
首先,任何軟體系統都是以滿足需求作為目的,所以,好的架構設計必須以全面深入的
需求分析作為基礎,根據需求來組織合理的產品架構。事實上架構設計是沒有統一的模式的,
任何模式只有針對問題才有意義。作為架構設計來說,必須對需求分析有足夠的理解,這樣
才能有針對性地解決問題,才可能設計出真正優秀的產品來。
其次,乙個軟體系統的質量,很大程度上是由架構設計的質量決定的,所以架構師的眼
光一般都專注於質量屬性上,應該根據產品質量屬性的要求提出合理的架構決策。但是很長
時間以來,人們大都把目光關注在流程、方法、結構原理甚至編碼的本身,而不太注意架構
設計最本質的東西,思考的深度也欠深入,結果,很多產品即使設計出來,後期執行中也是
問題百出,特別是發生變更的時候帶來了很大的困難。這就給我們提出了乙個問題,架構設
計的思維到底是什麼?
另一方面,任何架構思想的實現,必須與具體的專案組織相匹配才能發揮作用。因此,
系統架構師應該仔細研究現代專案管理的思想和方法,吃透其中的精髓,根據自己的設計思
想,提出合適的軟體工程策略。反之,乙個軟體工程策略,也不可避免的也會影響到架構設
計的特點。因此,軟體架構設計是乙個系統工程,它需要系統構架師有很寬的知識面,從需
求分析、架構設計到類設計甚至**實現一直到專案管理都需要有透徹的理解,這之間的關
系是你中有我我中有你,是不可能截然分開的。必須說明,軟體系統設計的方法不是乙個僵
化的規則,關鍵是在實踐中實事求是的摸索規律,從而找出符合實際達到要求的設計來。
軟體架構的定義及其理解
所謂軟體架構,指的是軟體系統的整體結構,包括軟體子元素,這些元素的外部屬性以及元素元素之間的關係。這個定義包含了以下三層意思 1 軟體架構是對系統的抽象。它不僅規定了系統有哪些主要軟體元素或模組,還定義了這些元素之間是如何互動的。它並不暴露每個元素的內部屬性 也叫區域性資訊 也就是說每個子模組的私有...
軟體的架構與框架
這些天,總是看到有地方說,搭建xx系統的框架,然後又出現搭建xx系統的架構。很明顯這個所謂的 架構 和 框架 它們之間確實存在聯絡,但它們絕對不是一回事。所以我也來討論討論吧,寫的不好,請看友多擔待。軟體架構?框架之間?很明顯軟體的架構是乙個系統草圖,是關於軟體設計方面的重要的決策,它將軟體規範的分...
軟體計畫 問題定義
概念 問題定義為軟體需求分析功能與效能的依據 問題定義的主要內容有 1 問題的背景。弄清楚待開發系統現在處於什麼狀態,為什麼要開發它,是否具備開發條件等問題。2 提出開發系統的問題要求以及總體要求。3 明確問題的性質 型別和範圍。3 明確待開發系統要實現的目標 功能和規模。4 提出開發的條件要求和環...