閱讀筆記8

軟件體系結構基本要素

軟件體系結構(System Architecture簡稱SA)ios

定義:對於大規模的,分佈的,須要協做的,須要交互的,須要監測的,須要擴展的,須要演化的複雜軟件系統的規劃。api

要素:組件(component )鏈接件 (connector) 配置 (configuration) 約束 (constraint)

4+1View主要特色:多視圖共同表達不一樣涉衆的觀點

邏輯視圖(Logical View):表示系統功能。考慮功能性需求——系統須要在給用戶的服務方面應該提供的。架構

開發視圖(Development View):表示開發分工和任務管理。考慮軟件模塊組織——層次分析,軟件管理,重用,工具約束。併發

進程視圖(Process View):表示系統進程,線程,分佈等信息。考慮非功能性需求——併發性,性能,可擴展性。框架

物理視圖(Physical View):表示系統物理部署狀況。考慮非功能性需求——關於底層硬件(拓撲,通訊)。ide

場景(Scenarios):用一些場景、用例來描述系統各個部分之間,以及與環境之間的交互。考慮系統一致性,有效性。工具

風格

描述一類體系結構

在實踐中被屢次設計、應用性能

是若干設計思想的綜合spa

具備已經被熟知的特性,而且能夠複用線程

決定因素

一組組件類型(數據容器、過程、對象)

一組鏈接件類型/交互機制(過程調用、事件)

這些組件的拓撲分佈

一組對拓撲和行爲的約束

一些對風格的成本和益處的非正式的描述

舉例:管道-過濾器風格

在管道-過濾器風格下,每一個功能模塊都有一組輸入和輸出。功能模塊稱做過濾器;功能模塊間的鏈接能夠看做輸入、輸出數據流之間的通路,因此稱做管道。 
管道-過濾器風格的特性之一在於過濾器的相對獨立性,即過濾器獨立完成自身功能,相互之間無需進行狀態交互。 
特性:1 過濾器是獨立運行的構件;

2 過濾器對其處理上下鏈接的過濾器「無知」;

3 結果的正確性不依賴於各個過濾器運行的前後次序。 
優勢:設計者能夠將整個系統的輸入、輸出特性簡單的理解爲各個過濾器功能的合成。 
1.潛在的並行支持;

2.支持死鎖檢測等分析

3.可維護性和可擴展性

4.支持功能模型的複用。 
不足:

1.交互式處理能力弱;

2.管道-過濾器風格每每致使系統處理過程的成批操做;

3.設計者也許不得不花費精力協調兩個相對獨立但又存在某種關係的數據流之間的關係;

4.根據實際設計的須要,設計者也須要對數據傳輸進行特定的處理,增長了過濾器具體實現的複雜性。

實例

1.數字通訊系統;

2.Unix系統中的管道過濾器結構;

3.通信協議的信息封裝

ADL 體系結構描述語言

ADL 是在底層語義模型的支持下,爲軟件系統的概念體系結構建模提供了具體語法和概念框架。基於底層語義的工具爲體系結構的表示、分析、演化、細化、設計過程等提供支持。其三個基本元素是:構件、鏈接件、體系結構配置。 
主流語言: Aesop、MetaH、C二、Rapide、SADL、Unicon 和 Wright 等;

這些 ADL 強調了體系結構不一樣的側面,對體系結構的研究和應用起到了重要的做用,但也有負面的影響。每一種 ADL 都以獨立的形式存在,描述語法不一樣且互不兼容,同時又有許多共同的特徵,這使設計人員很難選擇一種合適的 ADL,若設計特定領域的軟件體系結構又須要從頭開始描述。

ADL 與其餘語言的比較

構造能力:ADL 可以使用較小的獨立體系結構元素來建造大型軟件系統; 
抽象能力:ADL 使得軟件體系結構中的構件和鏈接件描述能夠只關注它們的抽象特性,而無論其具體的實現細節; 
重用能力:ADL 使得組成軟件系統的構件、鏈接件甚至是軟件體系結構都成爲軟件系統開發和設計的可重用部件; 
組合能力:ADL使得其描述的每一系統元素都有其本身的局部結構,這種描述局部結構的特色使得 ADL 支持軟件系統的動態變化組合; 
異構能力:ADL 容許多個不一樣的體系結構描述關聯存在; 
分析和推理能力:ADL容許對其描述的體系結構進行多種不一樣的性能和功能上的多種推理分析。

ADL 實例

1.一個常規的 Client-Server 架構;

2.可容錯的 C/S 架構。

相關文章
相關標籤/搜索