1. 程式人生 > >軟體體系結構基本要素

軟體體系結構基本要素

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

定義

對於大規模的,分佈的,需要協作的,需要互動的,需要監測的,需要擴充套件的,需要演化的複雜軟體系統的規劃。

要素

元件(component )連線件 (connector) 配置 (configuration) 約束 (constraint)

4+1View主要特點

多檢視共同表達不同涉眾的觀點

  1. 邏輯檢視(Logical View):表示系統功能。考慮功能性需求——系統需要在給使用者的服務方面應該提供的。
  2. 開發檢視(Development View):表示開發分工和任務管理。考慮軟體模組組織——層次分析,軟體管理,重用,工具約束。
  3. 程序檢視(Process View):表示系統程序,執行緒,分佈等資訊。考慮非功能性需求——併發性,效能,可擴充套件性。
  4. 物理檢視(Physical View):表示系統物理部署情況。考慮非功能性需求——關於底層硬體(拓撲,通訊)。
  5. 場景(Scenarios):用一些場景、用例來描述系統各個部分之間,以及與環境之間的互動。考慮系統一致性,有效性。

風格

  • 描述一類體系結構
  • 在實踐中被多次設計、應用
  • 是若干設計思想的綜合
  • 具有已經被熟知的特性,並且可以複用

決定因素

  • 一組元件型別(資料容器、過程、物件)
  • 一組連線件型別/互動機制(過程呼叫、事件)
  • 這些元件的拓撲分佈
  • 一組對拓撲和行為的約束
  • 一些對風格的成本和益處的非正式的描述

舉例

管道-過濾器風格

在管道-過濾器風格下,每個功能模組都有一組輸入和輸出。功能模組稱作過濾器;功能模組間的連線可以看作輸入、輸出資料流之間的通路,所以稱作管道。
管道-過濾器風格的特性之一在於過濾器的相對獨立性,即過濾器獨立完成自身功能,相互之間無需進行狀態互動。
特性:1 過濾器是獨立執行的構件;2 過濾器對其處理上下連線的過濾器“無知”; 3 結果的正確性不依賴於各個過濾器執行的先後次序。
優點:設計者可以將整個系統的輸入、輸出特性簡單的理解為各個過濾器功能的合成。
1.潛在的並行支援;2 支援死鎖檢測等分析3 可維護性和可擴充套件性4 支援功能模型的複用。
不足:1 互動式處理能力弱;2 管道-過濾器風格往往導致系統處理過程的成批操作;3 設計者也許不得不花費精力協調兩個相對獨立但又存在某種關係的資料流之間的關係;4 根據實際設計的需要,設計者也需要對資料傳輸進行特定的處理,增加了過濾器具體實現的複雜性。

例項

1 數字通訊系統;2 Unix 系統中的管道過濾器結構;3 通訊協議的資訊封裝

ADL 體系結構描述語言

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

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

ADL 與其他語言的比較

構造能力:ADL 能夠使用較小的獨立體系結構元素來建造大型軟體系統;
抽象能力:ADL 使得軟體體系結構中的構件和連線件描述可以只關注它們的抽象特性,而不管其具體的實現細節;
重用能力:ADL 使得組成軟體系統的構件、連線件甚至是軟體體系結構都成為軟體系統開發和設計的可重用部件;
組合能力:ADL使得其描述的每一系統元素都有其自己的區域性結構,這種描述區域性結構的特點使得 ADL 支援軟體系統的動態變化組合;
異構能力:ADL 允許多個不同的體系結構描述關聯存在;
分析和推理能力:ADL允許對其描述的體系結構進行多種不同的效能和功能上的多種推理分析。

ADL 例項

1 一個常規的 Client-Server 架構;2 可容錯的 C/S 架構。

相關推薦

軟體體系結構基本要素

軟體體系結構(System Architecture簡稱SA) 定義 對於大規模的,分佈的,需要協作的,需要互動的,需要監測的,需要擴充套件的,需要演化的複雜軟體系統的規劃。 要素 元件(component )連線件 (connector) 配置

oracle筆記1:-安裝-體系結構-基本查詢

登陸界面 concat alter 密碼 服務器 中心 dmi 控制文件 to_number 一.Oracle數據庫的安裝(安裝在虛擬機的xp系統裏) 1.安裝虛擬機 2.虛擬機內安裝xp系統,以下步驟在虛擬機內進行 3.雙擊setup.exe,在出

軟體體系結構(一)緒論章節總結問題

1. 抽象級別有哪些? 面向機械 面向程式碼 面向物件 2. 目前軟體開發的關注點是什麼? 滿足客戶需求,提高軟體質量和協同能力,更多的介面和對介面更高的定義 3. 模型的基本概念是什麼? 模式是要解決的現實問題的簡化抽象;模型僅僅表述了現實機制或行為的一部

軟體體系結構——面向物件的體系結構示例

  面向物件體系結構的元件是類和物件。   連線件是物件之間通過功能與函式呼叫實現互動。物件是通過函式和過程的呼叫-返回機制來互動的,而類是通過定義物件,再採用呼叫-返回機制進行互動。   示例程式如下: class Count{ private int x;

面向模式的軟體體系結構-卷1-模式系統 pdf下載

POSA系列的開山之作,系統程式設計和中介軟體程式設計的一些架構模式,翻譯一般,架構師必讀 需要IT程式設計經典書籍資源大合集百度網盤連結的加qq 3083709327,另本人願意有償帶小白學python,幫助你答疑解惑,幫助你解決問題,指導你找工作,帶你入行。相信我有

軟體體系結構4+1模型(尚未完成,例子還沒有寫)

第一節:檢視間的關聯                                      &nb

經典軟體體系結構風格(五)

import java.io.*; import java.net.*; public class tcpServer { public static final int PORT=8888; public static void main(String[] args) throws IOExcept

常見軟體體系結構:B/S 、C/S

1 C/S l  C/S結構即客戶端/伺服器(Client/Server),例如QQ; l  需要編寫伺服器端程式,以及客戶端程式,例如我們安裝的就是QQ的客戶端程式; l  缺點:軟體更新時需要同時更新客戶端和伺服器端兩端,比較麻煩; l  優點:安全性比較好。 2 B

軟體體系結構—B/S和C/S架構

C/S架構是客戶端/伺服器端互動模式,是Client/Server的簡稱。它是早期常用的一種軟體架構,這種架構的軟體需要在使用者的電腦上安裝客戶端程式,下面通過一張圖來了解C/S架構客戶端與伺服器的互動過程。如圖1-1所示:圖1-1 C/S架構圖2.B/S結構B/S架構是瀏覽器/伺服器互動模式,是Browse

經典軟體體系結構風格(二)

 1.基於事件的隱式呼叫風格 基本元件:物件或過程,並分類為以下更小的元件 –過程或函式,充當事件源或事件處理器的角色 –事件 連線件:事件-過程繫結 –過程(事件處理器,事件的接收和處理方) 向特定的 事件進行註冊; –元件(事件源) 釋出事件; –當某

第1章 軟體體系結構概述

第1章               軟體體系結構概述 1.  根據自己的經驗,談談對軟體危機的看法。 答:軟體危機主要表現在: •   軟體成本日益增長 •   開發進度難以控制 •   軟體質量差 •   軟體維護困難 軟體危機的原因: •   使用者需求不明確 •   

軟體體系結構複習要點——chapter 3 軟體體系結構風格

Chapter 3 軟體體系結構風格1. 軟體體系結構風格概述:●軟體體系結構設計的一個核心問題是能否使用重複的體系結構模式,即能否達到體系結構級的軟體重用。●軟體體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。體系結構風格定義一個系統家族,即一個體繫結構定義一個

高等計算機體系結構基本概念總結

Tomasulo演算法 結構: 每個功能單元都有一個控制緩衝器,即保留站;所有保留站連線到通過公共資料,以檢測廣播;浮點暫存器具有控制位和tag域,能夠儲存register result status

軟體體系結構第二次作業

Requirements of the project:Run the program PipeFilterTestGui before you actually do any coding. Aft

軟體體系結構複習整理

一、 認識軟體架構 本書的主旨: 闡明企業目標、產品需求、設計師的經驗、構架和最終系統之間的關係——它們構成帶有迴路的、可由開發組織實施管理的週期 架構商業週期(ABC): 軟體架構是技術、商業和社會

軟體體系結構複習指南

前言 作為一個熱心學長(好的其實是要湊這個月的4篇文章了),發一下李大牛同志的課程複習幫助指南,這裡有《軟核》上冊的一些總結,相信靠這個可以保你及格了,如果要高分請把書本的結構梳理清楚 一、軟體工程定義集合 定義 1.1(軟體) 軟

經典軟體體系結構風格(三)

#模型-檢視-控制器風格常被簡稱為MVC風格   --元件:模型、檢視、控制器   --連線件:顯式呼叫、隱式呼叫、其他機制(例如:Http協議) #工作機制:  Model:  --模型的職責    1.負責資料存取    2.負責業務邏輯實現    3.負責資料驗證 #模型:模型是

軟體體系結構》 第一章 軟體體系結構概論

    開始複習《軟體體系結構》,雖然為了考試要背誦的內容比較多,但是從軟體工程到軟體測試,我發現這樣的課程,總可以增強自己的理解能力,更重要的是對於“軟體工程”的認識。天氣炎熱,能靜下心來複習也是一件美好的事情。小毛蟲,加油嘍。一、軟體危機 software crisis 

數據庫介紹(MySQL安裝 體系結構基本管理)

pat login 思路 第一個 配置 centos5 info 包括 shel 閱讀目錄 1.1 數據庫簡介 1.2 數據庫相關產品 1.3 Mysql簡介 1.4 mysql數據庫的安裝 1.5 mysql 5.7版本安裝說明 2.1 客戶端與服務器

數據庫介紹-1(體系結構基本管理)

rom pro 進行 use 切換 能夠 含義 idc class 第2章 Mysql體系結構與基本管理 2.1 客戶端與服務器端模型 2.1.1 mysql服務結構 mysql是一個典型的c/s模式,服務端與客戶端兩部分組成 服務端程序 m