官术网_书友最值得收藏!

1.1 軟件架構的時空定義

計算機學科以及軟件工程中的很多概念都是從其他學科借鑒而來的,架構的概念也不例外,借鑒自建筑學中的architecture一詞。IEEE從空間的視角對軟件架構做出了定義:架構是系統的基本結構,這種結構體現在組件內系統之間的關系、系統與環境之間的關系,以及指導系統設計與演化的原則上。

IEEE的這個定義側重于空間的視角,軟件架構表征的是軟件的空間組成結構。軟件存在的空間既包括物理空間,如軟件運行所需的計算機硬件空間、網絡物理空間等,也包括虛擬空間,如軟件執行所需的指令空間和地址空間等。空間是客觀存在的,所以架構也是客觀存在的。不論人們是否關注或有意識地考慮架構,它都存在于系統的具體環境中,而且并不孤立,有著自己明確的目標。IEEE的定義中提及了系統的設計和演化,因此不可避免地融入了時間的因素。在考慮演化時,需要結合軟件的生命周期,否則演化將失去意義。

計算機專家Grady Booch對軟件架構給出了不同的定義:軟件架構代表形成系統的重要設計決策,這些決策涉及軟件的組織、組成系統的結構化元素及其接口的選擇、元素之間協作時特定的行為、結構化元素和行為元素形成更大子系統時所用的組合方式、引導這一組織(也就是這些元素及其接口)的協作風格等。其中,不同對象的重要程度用其變化帶來的成本變化來衡量。這個定義側重于時間的視角,更注重一系列動作。這個定義通過“重要設計決策”形成流程,并指出架構與成本之間的相關性。

關于軟件架構,還有很多類似的定義和理解,但基本上可以分為兩類:從空間角度看,是面向體系結構建設的“組成論”;從時間角度看,是面向設計流程實現的“決策論”。然而,空間和時間是密不可分的。維基百科上對軟件架構的定義就是從時空統一的視角給出的:軟件架構是規劃、設計和構建軟件及其組成結構的過程和最終成果。

任何概念都有其時空邊界,軟件架構也有自己的環境約束。引入約束條件后,軟件架構就可為軟件提供一個高級抽象,其中包括結構、行為和屬性。軟件架構由組件的描述、組件間的相互作用、指導組件集成的模式和這些模式的約束組成。軟件架構不僅顯示了軟件需求和軟件結構之間的對應關系,還規定了整個軟件的組織和拓撲結構,并提供了一些設計決策的基本原理。

綜上所述,筆者認為:軟件架構是軟件的空間體系結構和系統構建的時間決策流程的統一。

主站蜘蛛池模板: 定日县| 桦南县| 南部县| 富阳市| 澄城县| 兴宁市| 兴化市| 红原县| 通州市| 汉中市| 容城县| 滨海县| 华蓥市| 江华| 临邑县| 元氏县| 奇台县| 长宁县| 井研县| 隆安县| 凤翔县| 墨玉县| 犍为县| 武冈市| 旺苍县| 会理县| 江永县| 新野县| 重庆市| 玛曲县| 察隅县| 长宁县| 平顶山市| 开江县| 沈丘县| 云安县| 黄浦区| 广饶县| 绥中县| 定安县| 怀宁县|