1. 程式人生 > 實用技巧 >【軟體體系結構】軟體體系結構概述

【軟體體系結構】軟體體系結構概述

軟體體系結構概述

文章目錄

  軟體體系結構學習第一篇,軟體體系結構概述。


1.軟體體系結構的意義

在這裡插入圖片描述

  架構的意義在於充當需求和實現之間的橋樑。更準確來說,整個架構設計在軟體生命週期的體現在於概要設計和部分詳細設計,上承需求分析,下接程式碼實現。所以一個軟體架構師不僅需要懂得需求分析,而且還需要有經年累積的開發經驗。



2.軟體體系結構的定義

  軟體體系結構沒有一個公認的定義,簡單來說,**軟體體系結構就是充當需求(Requirements)和實現(Implements)之間的橋樑。**正如David Garlan & Dewane Perry 提出的

… bridging the gap between requirements and implementations…


  除此外,還需要掌握的是軟體體系結構概念的提出者Mary ShawDavid Garlan所闡述的定義:軟體體系結構包括構成系統的設計元素的描述,設計元素的互動,設計元素組合的模式,以及在這些模式中的約束。


  總的來說,綜合其他的定義,可以得出如下公式,軟體體系結構 = 構件(Component)+連線件(Connector)+約束(Constraint).


  1. 構件

    構件是可預製和可重用的軟體部件,是組成體系結構的基本計算單元或資料儲存單元.它可大可小,即可小到一個函式,又可大到一個子系統。構件應當滿足SRP原則,即單一職責原則。


  1. 連線件

    構件是可預製和可重用的軟體部件,是組成體系結構的基本計算單元或資料儲存單元.它可大可小,比如共享變數的訪問中共享變數就是一個連線件。而在現實世界的網路中,通訊協議就充當了連線件。


  1. 約束

    約束闡明瞭構件和連線件之間的關係。


舉例說明:

e.g1

在這裡插入圖片描述


e.g2

資料庫表可當做是構件,表的外來鍵可當做是表與表之間的連線件,而表的約束條件就充當約束。



3.軟體體系結構的發展

  太早以前的略過,本節瞭解即可。2000年至今的新架構風格:C/S架構,B/S架構,基於代理的架構,SOA(面向服務的架構)。

  開發架構的很重要的兩個點是可維護性和可複用性,很多面向物件設計原則都是為了這兩個點服務。



4.軟體體系結構的優勢

  軟體體系結構的優勢如下:

  1. 容易理解

    高層抽象,遮蔽細節,以圖展示,直觀易懂。


  1. 重用

    比如構件的重用,避免重複造輪子。


  1. 控制成本

    根據功能點,或是功能難度(比如登入註冊和資料探勘的區別)來預估成本。


  1. 可分析性

    從不同角度去看待系統,比如銀行系統更注重安全性,社交軟體更注重及時性等等。



5.總結

  這篇其實主要記住如下幾點:

  1. 軟體體系結構是需求與實現的橋樑,主要由3C構成(Component,Connector,Constraint),並用兩個案例Java單繼承,資料庫表的約束來輔助理解和記憶。
  2. 軟體體系架構現在的New Wave是 C/S,B/S,基於代理的架構,SOA。不管怎麼發展,軟體架構都會注意兩個點,可複用性和可維護性。
  3. 軟體架構的優勢說白了就是好理解,好賺錢。好理解就是使得系統更容易理解,更容易從不同角度去分析。好賺錢就是重用和控制成本,重用可以縮短開發時間,控制成本可以節省開支預算。