[筆記] 系統分析師 第十二章 軟件架構設計(分析師主要工作)

文章目錄

  • 前言
  • 12.1 軟件架構概述
    • 12.1.1 軟件架構的意義
    • 12.1.2 軟件架構的發展史
  • 12.2 軟件架構建模
  • 12.3 軟件架構風格
    • 12.3.1 軟件架構風格概述
    • 12.3.2 數據流體系結構風格
      • 1.批處理體系結構風格
      • 2.管道-過濾體系結構風格
    • 12.3.3 調用/返回體系結構風格
      • 1.主程序/子程序風格
      • 2.面向對象體系結構風格
      • 3.層次型體系結構風格
      • 4.客戶端/服務端體系結構風格
        • 二層架構
        • 三層C/S架構
    • 12.3.4 以數據為中心的體系結構風格
      • 1.倉庫體系結構風格
      • 2.黑板體系結構風格
    • 12.3.5 虛擬機體系結構風格
      • 1.解釋器體系結構風格
      • 2.規則系統體系結構風格
    • 12.3.6 獨立構件體系結構風格
      • 1.進程通信體系結構風格
      • 2.事件體系結構風格
    • 12.3.7 面向服務的架構風格
      • 1.SOA概述
        • 基本服務結構
        • SOA設計原則
        • 服務構建與傳統構建
      • 2.SOA關鍵技術
        • UDDI
        • WSDL
        • SOAP
        • REST
      • 3.SOA實現方法
        • WebService
        • 服務注冊表
        • 企業服務總線ESB
  • 12.4 軟件架構標準
  • 12.5 軟件架構實現
    • 12.5.1 體系結構需求
      • 1. 需求獲取
      • 2. 標識構建
      • 3. 架構需求評審
    • 12.5.2 體系結構設計
      • 12.5.4 體系結構復審
      • 12.5.5 體系結構實現
      • 12.5.6 體系結構的演化
  • 12.6 軟件架構質量屬性
    • 12.6.1 質量屬性概念
      • 1.開發期質量屬性
      • 2.運行期質量屬性
    • 12.6.2 面向架構評估的質量屬性
      • 1.性能
      • 2.可靠性
      • 3.可用性
      • 4.安全性
      • 5.可修改性
      • 6.功能性
      • 7.可變性
      • 8.互操作性
    • 12.6.3 質量屬性場景描述
      • 1.可用性質量屬性場景
      • 2.可修改性質量屬性場景
      • 3.性能質量屬性場景
      • 4.可測試性質量屬性場景
      • 5.易用性質量屬性場景描述
      • 6.安全性質量屬性場景
  • 總結


前言

學者們提出了軟件架構(SofwareArchitecture)的概念,并試圖在軟件需求與設計之間架起一座橋梁,·重點解決系統結構和需求向實現平坦過渡的問題。

12.1 軟件架構概述

  • 軟件架構研究的主要內容涉及軟件架構描述、軟件架構風格、軟件架構評估和軟件架構的形式化方法等。

  • 解決好軟件的復用、質量和維護問題,是研究軟件架構的根本目的。

12.1.1 軟件架構的意義

  1. 架構是項目干系人進行交流的手段
  2. 架構是早期設計決策的體現
  3. 架構明確了對系統實現的約束條件
  4. 架構決定了開發和維護組織的組織結構
  5. 架構制約著系統的質量屬性
  6. 架構使推理和控制更改更簡單
  7. 架構有助于循序漸進的原型設計
  8. 架構可以作為培訓的基礎
  9. 架構是可傳遞和可復用的模型

12.1.2 軟件架構的發展史

縱觀軟件架構技術的發展過程,從最初的無架構設計到現行的基于架構的軟件開發。
經歷了4個階段:

  1. 無架構設計階段。以匯編語言進行小規模應用程序開發為特征。(20世紀70年代以前)
  2. 萌芽階段。出現了程序結構設計主題,以控制流圖和數據流圖構成軟件結構為特征。(20世紀70年代中后期)
  3. 初級階段。出現了從不同側面描述系統的結構模型,以 UML為典型代表。(20世紀80年代—90年代中期)
  4. 高級階段。以描述系統的高層抽象結構為中心,不關心具體的建模細節,劃分了架構模型與傳統軟件結構的界限。(20世紀90年代以后)

12.2 軟件架構建模

軟件架構設計的首要問題是如何表示軟件架構,即如何對軟件架構建模。
根據建模的側重點不同,可以把軟件架構的模型分為5種,分別是:

  • 結構模型
  • 框架模型
  • 動態模型
  • 過程模型
  • 功能模型

在這里插入圖片描述
“4+1”:視圖模型從5個不同的視角來描述軟件架構,每個視圖只關心系統的一個側面,5個視圖結合在一起才能反映軟件架構的全部內容:

  • 邏輯視圖(靜態結構)
  • 開發視圖(靜態結構)
  • 進程視圖(動態結構)
  • 物理視圖(動態結構)
  • 場景:可以用文本表示,也可以用圖形表示

例如,圖12-2是一個小型電話呼叫系統場景片段的圖形描述,相應的文本表示如下:
在這里插入圖片描述

12.3 軟件架構風格

12.3.1 軟件架構風格概述

  • 軟件體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。
  • 體系結構風格反映了領域中眾多系統所共有的結構和語義特性,并指導如何將各個模塊和子系統有效地組織成一個完整的系統。對軟件體系結構風格的研究和實踐促進對設計的重用,一些經過實踐證實的解決方案也可以可靠地用于解決新的問題。例如,如果某人把系統描述為“客戶/服務器”模式,則不必給出設計細節,我們立刻就會明白系統是如何組織和工作的。

12.3.2 數據流體系結構風格

1.批處理體系結構風格

在這里插入圖片描述

2.管道-過濾體系結構風格

在這里插入圖片描述

12.3.3 調用/返回體系結構風格

1.主程序/子程序風格

在這里插入圖片描述

2.面向對象體系結構風格

在這里插入圖片描述

3.層次型體系結構風格

在這里插入圖片描述

4.客戶端/服務端體系結構風格

在這里插入圖片描述

二層架構

在這里插入圖片描述
表示層:表示層是系統的用戶接口部分,擔負著用戶與系統之間的對話功能。
數據層:負責對 DBMS 進行管理和控制。

三層C/S架構
  • 表示層:表示層是系統的用戶接口部分,擔負著用戶與系統之間的對話功能。它用于檢查用戶從鍵盤等輸入的數據,顯示輸出的數據。
  • 功能層:功能層也稱為業務邏輯層,是將具體的業務處理邏輯編入程序中。
  • 數據層:數據層相當于二層 C/S 架構中的服務器,負責對 DBMS 進行管理和控制。

在這里插入圖片描述

在這里插入圖片描述

與傳統的二層 C/S 架構相比,三層CS 架構具有以下優點:

  1. 允許合理地劃分三層的功能,使之在邏輯上保持相對獨立性,從而使整個系統的邏輯結構更為清晰,能提高系統的可維護性和可擴展性。
  2. 允許更靈活、有效地選用相應的平臺和硬件系統,使之在處理負荷能力上與處理特性上分別適應于結構清晰的三層,并且這些平臺和各個組成部分可以具有良好的可升級性和開放性。
  3. 系統的各層可以并行開發,各層也可以選擇各自最適合的開發語言,使之能并行且高效地進行開發,達到較高的性能價格比。對每一層的處理邏輯的開發和維護也會更容易些。
  4. 利用功能層可以有效地隔離表示層與數據層,未授權的用戶難以繞過功能層而利用數據庫工具或黑客手段非法訪問數據層,這就為嚴格的安全管理定了堅實的基礎。但是,若三層C/S架構各層間的通信效率不高,即使分配給各層的硬件能力很強,其作為整體來說也達不到所要求的性能。

此外,設計時必須慎重考慮三層間的通信方法、通信頻度和數據量,這是三層 C/S 架構設計的關鍵問題。

B/S層架構:

  • 瀏覽器/服務器(Browser/Server,B/S)架構是三層C/S架構的一種實現方式,其具體結構為“瀏覽器/Web服務器/數據庫服務器”。B/S架構利用不斷成熟的WWW瀏覽器技術,結合瀏覽器的多種腳本語言,用通用瀏覽器就實現了原來需要復雜的專用軟件才能實現的強大功能,并節約了開發成本。從某種程度上來說,B/S架構是一種全新的軟件架構。

B/S層架構優點:

  • 在B/S架構中,除了數據庫服務器外,應用程序以網頁形式存放于Web服務器上,用戶運行某個應用程序時,只需在客戶端的瀏覽器中鍵入相應的網址,調用 Web服務器上的應用程序,并對數據庫進行操作,完成相應的數據處理工作,最后將結果通過瀏覽器顯示給用戶。
  • 基于 B/S架構的軟件,系統安裝、修改和維護全在服務器端解決。
  • 用戶在使用系統時,僅僅需要一個瀏覽器就可運行全部的模塊,真正達到了“零客戶端”的功能,很容易在運行時自動升級。

B/S層架構缺點,與C/S架構相比,B/S架構也有許多不足之處,例如:

  • 缺乏對動態頁面的支持能力,沒有集成有效的數據庫處理功能;
  • 安全性難以控制
  • 采用B/S架構的系統在數據查詢等響應速度上遠遠低于 C/S 架構
  • B/S 架構的數據提交一般以頁面為單位,數據的動態交互性不強,不利于 OLTP 應用。

12.3.4 以數據為中心的體系結構風格

1.倉庫體系結構風格

在這里插入圖片描述

2.黑板體系結構風格

在這里插入圖片描述

12.3.5 虛擬機體系結構風格

1.解釋器體系結構風格

在這里插入圖片描述

2.規則系統體系結構風格

在這里插入圖片描述

12.3.6 獨立構件體系結構風格

1.進程通信體系結構風格

2.事件體系結構風格

在這里插入圖片描述

12.3.7 面向服務的架構風格

面向服務的架構(Service-Oriented Architecture,SOA)

1.SOA概述

基本服務結構

在這里插入圖片描述

SOA設計原則
服務構建與傳統構建

2.SOA關鍵技術

UDDI
WSDL

在這里插入圖片描述

SOAP
REST

REST是一種只使用HTTP和XML進行基于Web通信的技術,可以降低開發的復雜性,提高系統的可伸縮性。它的簡單性和缺少嚴格配置文件的特性,使它與SOAP很好地隔離開REST從根本上來說只支持幾個操作(POST、GET、PUT和DELETE),這些操作適用于所有的消息。

REST提出了如下一些設計概念和準則:

  1. 網絡上的所有事物都被抽象為資源。
  2. 每個資源對應一個唯一的資源標識
  3. 通過通用的連接件接口對資源進行操作。
  4. 對資源的各種操作不會改變資源標識。
  5. 所有的操作都是無狀態的。

3.SOA實現方法

WebService

在這里插入圖片描述

服務注冊表
企業服務總線ESB

12.4 軟件架構標準

軟件架構標準要素之間的關系,具體分為5個層次:

  • 任務
  • 環境
  • 利益相關者
  • 關注
  • 關注點庫、模型

在這里插入圖片描述

12.5 軟件架構實現

傳統軟件開發模型存在開發效率不高、不能很好地支持軟件重用等缺點。基于架構的軟,件開發模型(ABSDM)把整個基于體系結構的軟件過程劃分為體系結構需求、設計、文檔化、復審、實現和演化等6個子過程,
在這里插入圖片描述

12.5.1 體系結構需求

1. 需求獲取

在這里插入圖片描述

2. 標識構建

  1. 生成類圖
  2. 對類進行分組
  3. 把類打包成構建

3. 架構需求評審

組織一個由不同代表(如分析人員、客戶、設計人員、測試人員)組成的小組,對體系結構需求及相關構件進行仔細的審查。審查的主要內容包括所獲取的需求是否真實反映了用戶的要求,類的分組是否合理,構件合并是否合理等。必要時,可以在“需求獲取一標識構件一需求評審”之間進行迭代。

12.5.2 體系結構設計

  1. 提出體系結構模型
  2. 映射構件
  3. 分析構件間的相互作用
  4. 產生體系結構
  5. 設計評審
    在這里插入圖片描述

12.5.4 體系結構復審

  • 體系結構設計、體系結構文檔化和體系結構復審是一個迭代過程。從這個角度來說,在分析一個主版本的軟件體系結構之后,要安排一次由外部人員(用戶代表和領域專家)參加的復審。

  • 鑒于體系結構文檔標準化,以及風險識別的現實情況,通常我們根據架構設計,搭建一個可運行的最小化系統用于評估和測試體系架構是否滿足需要,是否存在可識別的技術和協作風險。

  • 復審的目的是標識潛在的風險,及早發現體系結構設計中的缺陷和錯誤,包括體系結構能否滿足需求、質量需求是否在設計中得到體現、層次是否清晰、構件的劃分是否合理、文檔表達是否明確、構件的設計是否滿足功能與性能的要求等。

12.5.5 體系結構實現

在這里插入圖片描述

12.5.6 體系結構的演化

在這里插入圖片描述

12.6 軟件架構質量屬性

12.6.1 質量屬性概念

軟件系統質量屬性(Quality Attribute)是一個系統的可測量或者可測試的屬性,用來描述系統滿足利益相關者(Stakeholders)需求的程度。

基于軟件系統的生命周期,可以將軟件系統的質量屬性分為開發期質量屬性和運行期質量屬性兩部分。

1.開發期質量屬性

2.運行期質量屬性

12.6.2 面向架構評估的質量屬性

1.性能

2.可靠性

3.可用性

4.安全性

5.可修改性

6.功能性

7.可變性

8.互操作性

12.6.3 質量屬性場景描述

1.可用性質量屬性場景

在這里插入圖片描述

2.可修改性質量屬性場景

在這里插入圖片描述

3.性能質量屬性場景

在這里插入圖片描述

4.可測試性質量屬性場景

在這里插入圖片描述

5.易用性質量屬性場景描述

在這里插入圖片描述

6.安全性質量屬性場景

在這里插入圖片描述

總結

參考:
10種常見的架構風格,你用過幾種


關于博主

wx/qq:binary-monster/1113673178 (添加時注明來意,否則不予通過)
wxgzh: 二進制怪獸
CSDN:https://blog.csdn.net/qq1113673178
碼云:https://gitee.com/shiver
Github: https://github.com/ShiverZm
個人博客:https://www.binary-monster.top

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/100412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/100412.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/100412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++---存儲周期,作用域,鏈接性

在C程序設計中,變量的行為不僅由其類型決定,還由存儲周期(變量在內存中存在的時間)、作用域(變量可被訪問的代碼范圍)和鏈接性(變量在多文件程序中的可見性)共同約束。 一、存儲周期…

基于Python的商品爬取與可視化系統

本系統是基于Python的商品數據爬取與價格分析可視化系統,集成了數據爬取、數據存儲、數據展示和可視化分析等功能。下面介紹一下系統主要功能和技術棧。一、主要功能:1、數據爬取功能 支持淘寶美妝商品數據爬取 可配置搜索關鍵詞和爬取頁數 實時顯示爬取…

聯邦學習過程中,了解清楚影響準確率的因素有哪些也很重要

影響模型準確率的因素有很多,下面是一些主要的因素,它們可以從數據、模型設計、訓練策略以及超參數等多個層面來考慮。1. 學習率作用:學習率直接影響模型的訓練速度、穩定性和最終表現。過高的學習率可能導致模型不收斂或收斂不穩定&#xff…

C# WPF中使用System.Management.Automation類調用Powershell報錯解決辦法

在WPF開發中,需要使用powershell進行自動化管理,以下為開發環境 1、.NET framework 4.7.2 2、VS2019 社區版 使用System.Management.Automation類 遇到的問題: 需要引用 System.Management.Automation類,但是在使用using指令時無法…

從 Pump.fun「直播」看熱點幣的生與死

在加密市場里,熱點就是流量,流量就是價值。最近,Solana 生態的 Pump.fun 推出了「直播」板塊,讓發幣這件事變得像看秀一樣:一個個新幣在鏈上實時登場,社區即時互動,玩家實時下注。這種形式不僅帶…

圖靈完備性:計算理論的基石與無限可能

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! 1 圖靈完備性的基本概念 圖靈完備性(Turing completeness…

HarmonyOS 5.0應用開發——V2裝飾器@once的使用

【高心星出品】 文章目錄V2裝飾器once的使用概念一、核心作用與規則二、適用場景案例V2裝飾器once的使用 概念 在鴻蒙ArkTS開發中,Once裝飾器用于實現子組件僅接受父組件傳遞的初始值,后續父組件數據變化不再同步至子組件。以下是其核心要點&#xff1…

跨域請求:解決方案

一、跨域核心概念:同源策略與跨域定義 跨域問題的根源是瀏覽器的 同源策略(Same-Origin Policy),這是瀏覽器為保護用戶數據安全而設置的核心安全限制。 1. 什么是 “同源”? “同源” 指的是兩個 URL 的 協議、域名…

前端形態與樣式風格:從古典到現代的視覺語言演進

目錄前端形態與樣式風格:從古典到現代的視覺語言演進概述1. 前端形態的演進:四種核心范式1.1 古典范式:語義化HTML與CSS1.2 組件化范式:模塊化與復用1.3 響應式范式:多端適配1.4 動態范式:狀態驅動視圖2. 樣…

用戶系統從0到1:登錄、權限、積分一網打盡

👤 用戶系統從0到1:登錄、權限、積分一網打盡 副標題:Flask-Login 多級權限 積分會員系統實戰 項目原型:https://madechango.com 難度等級:???☆☆ 預計閱讀時間:20分鐘 🎯 引子&#xff1…

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的視頻內容理解與智能預警升級

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的視頻內容理解與智能預警升級引言:正文:一、傳統安防監控的 “三重困局”:看不全、看不懂、反應慢1.1 人工盯屏 “力不從心”1.1.1 攝像頭密度與人力的矛盾1.1.2 錄像調閱 “馬后炮”1.2…

OpenHarmony包管理子系統核心源碼深度解讀:從BundleManager到AMS,徹底打通應用安裝、卸載與沙箱機制全鏈路

目錄 架構概覽 核心組件詳解 包安裝流程分析 包卸載流程分析 包更新流程分析 包信息存儲機制 Launcher界面管控 開機默認系統應用安裝機制<

簡單聊聊神經網絡中的反向傳播

參考文章&#xff1a; 一文弄懂神經網絡中的反向傳播法——BackPropagation - Charlotte77 - 博客園 反向傳播求偏導原理簡單理解_反向傳播偏導-CSDN博客 這篇文章是筆者在讀完上述兩篇參考文章后的整理或者說按照自己的理解進行的一些補充&#xff0c;強烈推薦先閱讀上述兩篇文…

JSP自駕游管理系統46u2v--(程序+源碼+數據庫+調試部署+開發環境)

本系統&#xff08;程序源碼數據庫調試部署開發環境&#xff09;帶論文文檔1萬字以上&#xff0c;文末可獲取&#xff0c;系統界面在最后面。系統程序文件列表開題報告內容一、研究背景與意義 近年來&#xff0c;自駕游因自由度高、個性化強成為國內旅游市場增長最快的領域&…

通過 SQL 快速使用 OceanBase 向量檢索學習筆記

背景 AI時代離不開向量數據庫&#xff0c;向量數據庫簡單說就是在數據庫中用多維向量存儲某類事物的特征&#xff0c;通過公式計算各個向量在空間坐標系中的位置關系&#xff0c;以此來判斷事物之間的相似性。相關基礎概念如下: ● Embedding ● 距離/相似性度量 ○ Cosine dis…

PromptAD:首次引入提示學習,實現精準工業異常檢測,1張正常樣本即可超越現有方法

近年來&#xff0c;工業異常檢測&#xff08;Anomaly Detection&#xff09;在智能制造、質量監控等領域扮演著越來越重要的角色。傳統方法通常依賴大量正常樣本進行訓練&#xff0c;而在實際生產中&#xff0c;異常樣本稀少甚至不存在&#xff0c;能否僅憑少量正常樣本就實現精…

算法 --- 字符串

字符串 字符串算法題目主要處理文本的查找、匹配、比較、變換和統計問題&#xff0c;其核心特點是輸入數據為字符序列&#xff0c;解題關鍵在于利用其連續性、前綴性、字典序等特性&#xff0c;并常借助哈希、自動機、指針滑動、動態規劃等技巧高效處理。 詳細分類型與適用場景…

SpringBoot中 Gzip 壓縮的兩種開啟方式:GeoJSON 瘦身實戰

目錄 前言 一、GZIP壓縮知識簡介 1、什么是Gzip 2、Gzip特點 3、Gzip在GIS方面的應用 二、SpringBoot中開啟Gzip的方式 1、在SpringBoot中開啟Gzip的知識簡介 2、SpringBoot中GeoJSON的實例 三、全局開啟Gzip實現 1、實現原理 2、實現效果 四、局部約定配置 1、實現…

PPTist+cpolar:開源演示文稿的遠程創作方案

文章目錄前言【視頻教程】1. 本地安裝PPTist2. PPTist 使用介紹3. 安裝Cpolar內網穿透4. 配置公網地址6. 配置固定公網地址前言 PPTist作為開源在線演示文稿工具&#xff0c;提供媲美PowerPoint的核心功能&#xff0c;支持多頁面編輯、圖表插入、音視頻嵌入和動畫效果設置。特…

服務注冊/服務發現-Eureka

目的&#xff1a;解決微服務在調用遠程服務時URL寫死的問題注冊中心服務提供者&#xff08;Server&#xff09;&#xff1a;一次業務中&#xff0c;被其他微服務調用的服務&#xff0c;也就是提供接口給其他微服務。服務消費者&#xff08;Client&#xff09;:一次業務中&#…