系統架構設計師 1

第一章 緒論

系統架構設計師(System Architecture Designer)是項目開發活動中的關鍵角色之一。系統架構是系統的一種整體的高層次的結構表示,是系統的骨架和根基,其決定了系統的健壯性和生命周期的長短。

1.1 系統架構概述

1946年第一臺計算機:ENIAC,電子數字積分器和計算機。由運算器、控制器、存儲器、輸入和輸出設備五部分組成。

馮~諾依曼針對 ENIAC 的不足,提出了 EDVAC ,離散變量自動電子計算機,采用二進制,控制計算機運行的程序存放在存儲器中,可以自動按順序執行指令。

1.1.1 系統架構的定義及發展歷程

定義

架構:是體現在組件中的一個系統的基本組織、它們彼此的關系與環境的關系及指導它的設計和發展的原則。

系統:是組織起來完成某一特定功能或一組功能的組件集。系統這個術語包括了單獨的應用程序、傳統意義上的系統、子系統、系統之系統、產品線、整個企業及感興趣的其他集合。系統用于完成其環境中的一個或多個任務。

環境或者上下文決定了對這個系統的開發、運作、政策以及會對系統造成其他影響的環境和設置。

任務是由一個或者多個利益相關者通過系統達到一些目標的系統的一個用途或操作。
通俗地說,系統架構(SystemArchitecture):是系統的一種整體的高層次的結構表示,是系統的骨架和根基,支撐和鏈接各個部分,包括組件、連接件、約束規范以及指導這些內容設計與演化的原理,它是刻畫系統整體抽象結構的一種手段。

架構設計的作用:主要包括以下幾點:
解決相對復雜的需求分析問題;
解決非功能屬性在系統占據重要位置的設計問題;
解決生命周期長、擴展性需求高的系統整體結構問題
解決系統基于組件需要的集成問題:
解決業務流程再造難的問題。
系統架構設計是成熟系統開發過程中的一個重要環節,它不僅是連接用戶需求和系統進一步設計與實現的橋梁,也是系統早期階段質量保證的關鍵步驟。

發展歷程

1)基礎研究階段(1968-1994年)
“軟件架構”首次提出。
模塊化思想推動了軟件架構的快速發展。
模塊化應遵循以下規則:

  1. 最高模塊化內聚;
  2. 最低耦合;
  3. 模塊大小適度;
  4. 模塊調用鏈深度(嵌套層次)不可過多;
  5. 接口簡單、精煉(扇入扇出數不宜太大),具有信息隱蔽能力;
  6. 盡可能地復用已有模塊;

2)概念體系和核心技術形成階段(1999-2000年)
首次對“軟件架構”進行了定義。
{elements,forms,rationale}=sofware,使之成為后續軟件架構概念發展的基礎。
1995年起,軟件架構研究領域開始進入快速發展階段。
2000年,IEEE 1471-2000標準的發布了第一次定義了軟件架構的形式化標準,組件化。
組件具有可組裝性和可插拔性。
3)理論體系完善與發展階段(1996年至今)
隨著組件架構理論的建立,與之相關的:軟件架構描述與表示、軟件架構分析、設計與測試、軟件架構發現、演化與重用、基于軟件架構開發方法、軟件架構風格、動態軟件架構等。
4)普及應用階段(2000年至今)
軟件架構是軟件生命周期中的重要產物,影響軟件開發的各個階段:
需求階段、設計階段、實現階段、維護階段。

1.1.2 軟件架構的常用分類及建模方法

1.軟件架構的常用分類

1)分層架構

  • 表現層(PresentationLayer):用戶界面,負責視覺和用戶互動。
  • 業務層(BusinessLayer):實現業務邏輯。
  • 持久層(Persistence Layer):提供數據,SQL語句就放在這一層。
  • 數據庫(DatabaseLayer):保存數據。
    2)事件驅動架構
  • 事件隊列(EventQueue):接收事件的入口。
  • 分發器(Event Mediator):將不同的事件分發到不同的業務邏輯單元。
  • 事件通道(EventChannel):分發器與處理器之間的聯系渠道。
  • 事件處理器(EventProcessor):實現業務邏輯,處理完成后會發出事件,觸發下一步操作。
    3)微核架構
    微核架構(Microkernel Architecture)又稱為插件架構(Plug-in Architecture),是指軟件的內核相對較小,主要功能和業務邏輯都通過插件實現。
    內核(Core)通常只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通信應該減少到最低,避免出現互相依賴的問題。
    4)微服務架構
    微服務架構(Microservices Architecture)是服務導向架構(Service-Oriented Architecture,SOA)的升級。每一個服務就是一個獨立的部署單元(Separatcly Deployed Unit)。這些單元都是分布式的,互相解耦,通過遠程通信協議(比如REST、SOAP)聯系。
    5)云架構
    包括處理單元、虛擬中間件。
    (1)處理單元:實現業務邏輯。
    (2)虛擬中間件:負責通信、保持會話控制(seesions)、數據復制、分布式處理和處理單元的部署。
    虛擬中間件:
  • 消總中間件(Messaging Grid):管理用戶請求和會話控制(sessions),當一個請求進來以后,它決定分配給哪一個處理單元。
  • 數據中間件(Data Grid):將數據復制到每一個處理單元,即數據同步。保證每個處理單元都得到同樣的數據。
  • 處理中間件(Processing Grid):可選,如果一個請求涉及不同類型的處理單元,該中向件負責協調處理單元。
  • 部署中間件(DcploymentManager):負責處理單元的啟動和蘭閉,監控負載和響應時PDF間,當負載增加,就新啟動處理單元,負載減少,就關閉處理單元。
2.系統架構的常用建模方法

結構模型、框架模型、動態模型和過程模型。

1.1.3 軟件架構的應用場景

不再是單一架構風格設計與開發。

1.1.4 軟件架構的發展未來

架構發展的主線可以歸納為 模塊化變成/面向對象編程、構件技術、面向服務開發技術和云技術。

1.2 系統架構設計師概述

1.2.1 架構設計師的定義、職責和任務

1.架構設計師的定義

架構設計師是系統或產品線的設計責任人,是一個負責理解和管理并最終確認和評估非功能性系統需求(如軟件的可維護性、性能、復用性、可靠性、有效性和可測試性等),給出開發規范,搭建系統實現的核心構架,對整個軟件架構、關鍵構件和接口進行總體設計并澄清關鍵技術細節的高級技術人員。

2.架構設計師的職責

不僅是技術指導,同時也必須有領導能力。

3.架構設計師的任務與組成

(1)領導與協調整個項目中的技術活動(分析、設計和實施等)。
(2)推動主要的技術決策并最終表達為系統架構。
(3)確定系統架構,并促使其架構設計的文檔化(包括需求、設計、實施和部署等“視圖”)。

1.2.2 架構設計師應具備的專業素質

1.掌握業務領域的知識。
2.掌握技術知識。
3.掌握設計技能。
4.具備編程技能。
5.具備溝通能力。
6.具備決策能力。
7.知道組織策略。
8.應是談判專家。

1.2.3 架構設計師的知識架構

  • 戰略規劃能力。
  • 業務流程建模能力。
  • 信息數據架構能力。
  • 技術架構設計和實現能力。
  • 應用系統架構的解決和實現能力。
  • 基礎 IT 知識及基礎設施、資源調配的能力。
  • 信息安全技術支持與管理保障能力。
  • IT 審計、治理與基本需求的分析和獲取能力。
  • 面向軟件系統可靠性與系統生命周期的質量保障服務能力。
    10.對新技術與新概念的理解、掌握和分析能力。
    系統架構設計師必須是開發團隊的技術引導者,同時也是綜合性特強的人才。

1.3 如何成為一名好的系統結構設計師

六個角色特質:

  • 領導者
  • 開發者
  • 系統綜合者
  • 具備企業家思維
  • 具備戰略技術專家的權衡思維與戰術思維
  • 具備良好的溝通能力

工程師階段
1~3年,積累基礎知識,包括編程語言、基本數據結構、開發環境、操作系統、數據庫以及相關軟件開發流程等。
高級工程師階段
3~5年,知識深度轉變,由 HOW 到 WHY;理論支持,熟悉前人總結出來的成熟的設計經驗。
技術專家階段
4~8年,“某個領域的專家”,高級工程師主要在已有的架構框架下完成設計,技術專家需要修改、擴展和優化架構。
系統架構設計師(初級)
5~8年,“獨立完成一個系統的架構設計”,技術專家基于經驗進行架構設計,初級架構設計師熟悉其原理。
初級架構設計師要形成自己的“架構設計方法論”。
系統架構設計師(中級)
8~10年,“能夠完成復雜系統的架構設計”,高性能、可擴展、海量存儲等復雜系統。關鍵在于“技術深度和技術理論的積累”。
系統架構設計師(高級)
10年以上,“創造新的架構模式”,開創新的技術潮流。

文章目錄

  • 第一章 緒論
    • 1.1 系統架構概述
      • 1.1.1 系統架構的定義及發展歷程
        • 定義
        • 發展歷程
      • 1.1.2 軟件架構的常用分類及建模方法
        • 1.軟件架構的常用分類
        • 2.系統架構的常用建模方法
      • 1.1.3 軟件架構的應用場景
      • 1.1.4 軟件架構的發展未來
    • 1.2 系統架構設計師概述
      • 1.2.1 架構設計師的定義、職責和任務
        • 1.架構設計師的定義
        • 2.架構設計師的職責
        • 3.架構設計師的任務與組成
      • 1.2.2 架構設計師應具備的專業素質
      • 1.2.3 架構設計師的知識架構
    • 1.3 如何成為一名好的系統結構設計師

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

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

相關文章

2023年面試記錄(base杭州)

阿里外包(通過) 一面: 1、react 常用hook 2、css的重繪和重排 后面如果進入還有兩輪 二面: 1、解決不同版本的兼容問題能句幾個例子嗎 2、FCP和 CLS 這兩個指標是什么意思能講下嗎 3、具體優化的動作是什么呢 4、放到cdn上為什么…

React 國際化方案最佳實踐調研

文章目錄 前言主流國際化庫對比分析翻譯資源管理策略語言切換方式與自動識別Next.js 中的國際化支持Page Router 模式(pages 目錄)App Router 模式(app 目錄) 多語言 SEO 與預渲染注意事項企業級多語言開發與協作流程建議 前言 整…

基于Python實現自然語言處理(主題層次的情感分類)

主題層次的情感分類 1 任務及數據集介紹 該項目作業的具體任務是來自于 BDCI2018-汽車行業用戶觀點主題及情感識別的題目。數據是網絡中公開的用戶對汽車相關內容的評價文本。此任務是對每條文本內容(即用戶評論)進行分析,確定該條評論中討…

SpringBoot 線程池 配置使用詳解

一、核心特性 Springboot 集成 支持 Async 注解,簡化異步方法調用。 參數可配置化 核心線程數、最大線程數、隊列容量、拒絕策略等均可通過配置調整。 生命周期管理 實現 Lifecycle 接口,支持線程池的啟動和關閉(如應用關閉時優雅終止任務…

Elasticsearch/OpenSearch MCP Quickstart

項目概述 elasticsearch-mcp-server 是一個基于 Model Context Protocol (MCP) 的服務器實現,提供了與 Elasticsearch 和 OpenSearch 交互的能力。該服務器允許用戶搜索文檔、分析索引以及管理集群,通過一系列工具函數實現這些功能。 項目結構 項目主…

《Elasticsearch 分布式搜索在聊天記錄檢索中的深度優化》

Elasticsearch 分布式搜索在聊天記錄檢索中的深度優化 引言 在現代聊天應用中,聊天記錄檢索面臨著數據量大、查詢復雜、實時性要求高的多重挑戰。以某社交平臺為例,其聊天記錄每天新增數千萬條,總數據量達百億級,用戶需要在海量…

CSS實現元素撐滿剩余空間的5種方法

CSS實現元素撐滿剩余空間的5種方法 🎨 在日常開發中,我們經常需要讓某個元素占據容器的剩余空間。這是一個常見的布局需求,比如側邊欄主內容區、頭部內容區底部等布局。本文將介紹5種不同的方法來實現這個需求,并分析各種方法的優…

[AI]從零開始的YOLO數據集增強教程

一、前言 不知道大家在訓練YOLO時有沒有遇到過這樣的情況,明明數據集已經準備了很多了,但是YOLO還是不認識某個物品,或者置信度低。那么有沒有辦法讓我們不制作新數據集的情況下讓代碼幫我們生成新的數據集來訓練模型呢?當然有&am…

軟件工程的相關名詞解釋

目錄 1. 軟件生命周期2.開源軟件3.軟件工程4.模塊化原則5.信息隱藏原則6.雙向追蹤7.原型8.軟件需求9.需求工程10.邊界類11.軟件實現(的任務)12.軟件缺陷13.回歸測試14.軟件β版15.軟件部署16.糾正性維護17.改善性維護18.適應性維護19.軟件邏輯老化 1. 軟…

2025.06.17【BUG】|多樣品VCF文件合并技巧及注意事項(以bcftools為例)

文章目錄 [toc]一、合并VCF的常用命令1.1 合并多個bgzip壓縮的VCF文件1.2 使用文件列表合并 二、合并前的準備與注意事項2.1 文件格式要求2.2 樣本名唯一性2.3 檢查文件模式匹配 三、常見報錯與解決方法3.1 報錯:Error: Duplicate sample names (sample1), use --fo…

包含30個APP客戶端UI界面的psd適用于旅游酒店項目

包含30個APP客戶端UI界面的psd適用于旅游酒店項目 此資源包含30個完全可編輯的psd界面組成。內容包括歡迎頁、登錄、注冊、首頁、搜索、側邊菜單、用戶中心、個人介紹、用戶空間、產品詳細信息、酒店預定、天氣情況等各種常用界面,您可以將其用于旅游酒店類的APP應用…

ArrayList源碼分析

目錄 ArrayList簡介 ArrayList和vector的區別(了解即可) ArrayList添加null值 ArrayList和LinkedList區別 ArrayList核心源碼解讀 ArrayList擴容機制分析 一步一分析ArrayList擴容機制 hugeCapacity()方法 System.arraycopy() Arrays.copyOf()方法 …

NX二次開發C#---通過Face找Edges,再通過Edges找Curve

文章介紹了一個名為AskFaceEdge的靜態方法,用于處理3D建模中的邊緣曲線生成。該方法通過NX Open API調用,主要功能是獲取指定面的邊緣并生成相應的曲線。方法接收兩個參數:faceTag(面標簽)和curveLoop(曲線…

設計模式筆記_創建型_工廠模式

1. 工廠模式簡介 工廠模式是一種創建型設計模式,主要用于創建對象實例。 它通過定義一個接口或抽象類來創建對象,而不是直接實例化具體類,從而將對象的創建過程與使用過程分離。 工廠模式通常分為兩種類型: 簡單工廠模式&#x…

2025.6.16總結

工作:今天閉環了個遺留問題。在做專項評估時寫得太簡單,這讓測試經理質疑你的測試質量。如果換位思考,你是測試經理,你該怎么去把握風險和保證產品的質量,就知道寫得太簡單,沒有可信度。 找開發看了下后臺…

記錄:安裝VMware、Ubuntu、ROS2

安裝了VMware,就能夠在Windows系統裝安裝Ubuntu,使用Linux系統。安裝了Ubuntu,就能在里面安裝ROS2,之后寫代碼控制機器人兒。 安裝VMware 我安裝的是16 pro【具體是vmware16.2.4】,下載網站:VMware Works…

將后端數據轉換為docx文件

使用docx npm install docx 按照注釋處理數據并轉換為對應的bolb數據流 <template><Button type"primary" click"handleDocxCreate">{{buttonTitle || "報告生成"}}</Button> </template><script> import {Doc…

數據結構排序算法合集

快排 private static void quickSort(int[] ret) { quick(ret,0,ret.length-1); } private static void quick(int[] ret, int left, int right) { if(left>right) 記一下這里是大于等于 return; int pivot partition(ret,left,right); quick(ret…

【算法筆記】紅黑樹插入操作

紅黑樹插入與調整詳解 一、紅黑樹的五大性質 紅黑樹是一種自平衡的二叉搜索樹&#xff08;BST&#xff09;&#xff0c;其核心特性如下&#xff1a; 顏色屬性&#xff1a;每個節點非紅即黑根屬性&#xff1a;根節點必須為黑色葉子屬性&#xff1a;所有的 NIL 葉子節點都是黑…

認知計算革命:從算法創新到產業落地的AI專業核心應用全景

??一、自動化機器學習&#xff08;AutoML&#xff09;?? ??技術機理與產業實踐深度剖析?? ??神經網絡架構搜索&#xff08;NAS&#xff09;?? 強化學習方案&#xff1a;Google Brain的NASNet采用策略梯度優化卷積單元進化算法方案&#xff1a;DeepMind的AmeobaNe…