軟體架構設計:五視圖方法的介紹

2021-01-04 老墩頭兒

在軟體架構中,都知道畫架構圖是架構師必須掌握的一項基本功能。但是軟體系統經過數十年的發展和迭代,已經由當初的單體應用變成了現如今非常複雜的分布式應用,且其所服務的業務量也是已是指數級的增長。面對如此龐大的軟體系統,一張架構圖已經不能概括出系統的全貌。作為一名架構師,應該從哪些方面著手進行架構的梳理,從而概括出系統的全貌呢?五視圖方法論是一個可以參考和實踐的方案。

五視圖方法論裡面將系統架構圖劃分成了五中類型,分別是邏輯視圖架構、開發視圖架構、運行視圖架構、物理視圖架構、數據視圖架構。從它們的名稱上,我們可以大致理解幾種架構實體的側重點。

邏輯視圖架構:通俗的理解即我們平常說的系統分成,主要從系統業務梳理的層面入手將系統分成不同的層級,常見的比如前後端分離、三層架構(表示層、業務層、數據層)等。在時下流行的微服務方案中,如何結合業務和團隊資源,將系統拆分成多個合理的微服務,也是邏輯視圖架構設計時需要考慮的問題。

開發視圖架構:主要關注項目具體實現時的技術方案選型方面的問題,比如系統採用什麼開發語言、使用什麼框架、採用什麼開源或第三方組件、資料庫/消息中間件/緩存中間件使用什麼組件等。從技術角度對系統各個層面的實現方案進行選型,最終將各種組件和框架整合在一起,能夠支撐產品當前的功能需求以及未來的擴展述求。

運行視圖架構:主要關注系統運行過程中的一些事項的設計,比如系統間各模塊的通信機制、併發模式下線程的調度和協調、數據一致性、熔斷限流等問題。

物理視圖架構:主要關注部署和運維相關的方案,需要考慮系統在不同的業務場景下,需要多少網絡、存儲、計算資源,如何讓系統具有高可用和彈性伸縮的能力,以及單點故障規避方案等都需要考慮,總之就是要考慮清楚如何部署運維才能保證系統長時間穩定的不間斷運行。

數據視圖架構:主要關注系統數據的可靠持久化和高性能響應問題。比如數據如何存儲備份、容災方案如何設計等都需要考慮,比較數據是一家公司最重要的資產,必須保證數據的可靠性和安全性。

以上這麼多的視圖架構,如果都讓一個架構師設計,往往無法兼顧,且對一個人的能力要求很高。因此,很多公司裡面又將架構師細分成軟體架構、系統架構、業務架構等角色,將不同的架構任務進行拆分。

正所謂「書山有路勤為徑,學海無涯苦作舟」,技術日新月異,更新太快,學是學不完的。擼起柚子盡力鑽研吧。

相關焦點

  • 如何做架構設計?六視圖法介紹
    什麼是架構設計架構設計的定義很多,沒有一個權威的說法,個人對此有兩種理解針對應用主題,進行系統建模,實現,部署的技術和行為指導在經驗的基礎上提煉出普遍有效的技術框架和規範架構設計要能落地,誇誇其談,高談闊論,生造一大堆概念,最後不能落實就成了 PPT 架構師
  • 阿里P8耗時一年最終總結出系統架構設計程式設計師向架構師轉型之路
    本書把「程式設計師向架構師轉型」作為切入點,提供架構師所需的各方面技能和相應的學習方法,包含針對轉型的一些思路、方法、工程實踐及可能會碰到的問題和解決方法。本書從架構師的定位及如何成為一名架構師的角度出發,除了技術和設計之外,還會介紹各項系統工程方法論和軟能力,旨在為廣大開發人員提供一套系統的、全面的轉型指南。
  • Android 架構組件中的視圖綁定
    在android developers中,有一個開發架構組件,叫做視圖綁定,這個架構組件,類似butterknife,功能也是為通過視圖綁定功能,您可以更輕鬆地編寫可與視圖交互的代碼。在 Activity 中使用視圖綁定如需設置綁定類的實例以供 Activity 使用,請在 Activity 的 onCreate() 方法中執行以下步驟:
  • 微服務架構:介紹、分布式集群、架構四要素、設計模式、架構說明
    >聚合器微服務設計模式這是一種最常用也最簡單的設計模式,目前學習的微服務系列都是選擇這種設計模式,如下圖所示:數據共享微服務設計模式代理微服務設計模式鏈式微服務設計模式Consul相關配置依賴Models層Models:領域模型層資料庫模型:資料庫根據它生產對應的表的欄位、關係等視圖模型 / 領域模型:提供前端使用到的視圖模型 / 領域模型Services:領域服務層(數據交互,包含業務邏輯)依賴倉儲層:構造函數注入時依賴增、刪、改、查方法,方法內只有調用倉儲層的方法
  • 軟體架構設計的6個步驟及工作內容
    如何有序、高效、全面做好軟體架構設計呢?作為一名軟體架構師,應該具備的基本素質是:掌握架構設計的基本步驟,且清晰每個步驟的工作內容。本文結合實際項目經驗,將對軟體架構設計的步驟及工作內容進行介紹。在整個軟體架構設計過程中,筆者結合自身項目經驗將架構設計步驟羅列為6個大步驟,依次是需求分析、領域建模、確定關鍵需求、概念架構設計、細化架構設計、架構驗證。在實際項目過程中,也是遵循這6個大步驟進行軟體架構設計的。軟體架構設計步驟如下圖所示:
  • 軟體項目實訓及課程設計指導——學習開展課程設計的預備知識和...
    3、掌握模型視圖控制器體系架構模式及具體應用 (1)什麼是模型視圖控制器(MVC)體系架構模式 MVC模式是軟體系統設計的經典體系架構模式——它將一個複雜的應用系統分解為模型(Model)、視圖(View)和控制器(
  • 軟體安全架構設計不得不考慮安全性方面
    隨著軟體技術的進步和安全理論的逐步發展,目前,軟體架構設計的安全性主要考慮安全威脅、安全機制、安全設計、訪問控制和安全通道等方面,以下分別進行介紹。1. 安全威脅安全威脅主要包括機密性威脅、可用性威脅、完整性威脅和真實性威脅。
  • 初中數學:《三視圖》單元課程設計
    一、單元設計理念投影與視圖這一章側重於培養學生以「數學方式」的理性思維,從多角度探尋解決問題方法的素養。為實現這一目的,在授課中重視結合實際生活中的例子討論問題,在直觀認識的基礎上歸納基本規律,培養學生空間想像能力。
  • 軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例 1、軟體系統概要設計中所涉及的主要設計內容和工作過程 (1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用
  • 軟體項目實訓及課程設計指導——系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例1、軟體系統概要設計中所涉及的主要設計內容和工作過程(1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用UML包視圖體現出軟體系統架構設計的最終結果
  • 軟體架構設計:軟體質量屬性、架構風格的案例
    在初始需求中定義的機器性能條件下,對於一個包含50個對象的設計模型,將其轉換為相應代碼框架時所消耗時間不超過5秒。f.能夠連續運行的時間不小於240水時,意外退出後能夠在1 0秒之內自動重啟。在對需求進行分析後,公司的架構師小張查閱了相關的資料,認為該集成開發環境應該採用管道一過濾器(Pipe-Filter)的架構風格,公司的資深架構師王工在仔細分析後,認為應該採用數據倉儲(Data Repository)的架構風格。公司經過評審,最終採用了王工的方案。
  • 架構設計的本質
    【關鍵詞】系統思維,系統分析,系統設計,架構元素,架構視圖,架構模型,業務模型,概念模型,系統模型,分析模型,設計模型,用例驅動,領域驅動,物件,功能,物件結構,功能交互,利益,架構工具,決策選擇,架構師,架構圖
  • 軟體架構的10個常見模式
    企業規模的軟體系統該如何設計呢?在開始寫代碼之前,我們需要選擇一個合適的架構,這個架構將決定軟體實施過程中的功能屬性和質量屬性。因此,了解軟體設計中的不同架構模式對我們的軟體設計會有較大的幫助。什麼是架構模式?根據維基百科:架構模式是針對特定軟體架構場景常見問題的通用、可重用解決方案。架構模式類似於軟體設計模式,但範圍更廣。
  • ABAP CDS-介紹(ABAP CDS視圖)
    幾個月前,當我開始了解學習ABAP CDS視圖時,我不得不搜索大量來自不同作者的博客和頁面,駁雜且費時費力。現在,我想為像我這樣開始學習ABAP CDS視圖的初學者發布一個博客系列,幫助他們入門。 Let's Start !!介紹數據模型是應用程式開發的基石。
  • 軟體項目實訓及課程設計指導——如何實現面向對象的系統架構設計
    ——順序、選擇和重複;並且面向過程的設計方法採用的是「自頂向下、逐步精化」的經典瀑布式設計方法,而由於瀑布式的設計方法是「自頂而下」順序進行的,這就要求系統的架構設計者在系統設計之初就需要對軟體系統中所應該要解決的各個方面的問題(也就是系統的需求)有全面的、周密的了解。
  • Kafka支持的分布式架構超越經典軟體設計的五個原因
    沒有公司會想念這艘現代軟體架構的船。當涉及到當今我們擁有的不同雲架構時,異步架構將成為傳統軟體設計的未來替代品之一。 下面重點介紹一些將成為大型系統未來的原因。1-費用毫無疑問,對於初創和中型公司而言,基於雲的解決方案比大型機軟體便宜。 那麼,像銀行這樣的100,000多個員工公司呢?
  • 軟體架構設計之六大原則—SOLID
    在設計上,我們應該遵循方法級別的單一性。例如,上帝創建了一個生物(Animal),一開始它是沒有思維的,除了吃(EAT)就是睡(SLEEP)。正是因為六大原則相互作用,相互約束指明設計方向,我們的軟體架構設計才能完美。當然完美是相對於滿足需求來說的哈,實際上開發過程,能做到平衡需求與遵循設計原則就是一個合格的軟體架構踐行者。最後一個問題,合成復用原則是在SOLID裡面的。
  • 在軟體項目開發過程中,都有哪些常見的軟體架構?
    企業規模的軟體系統該如何設計呢?在開始寫代碼之前,我們需要選擇一個合適的架構,這個架構將決定軟體實施過程中的功能屬性和質量屬性。因此,了解軟體設計中的不同架構模式對我們的軟體設計會有較大的幫助。根據維基百科:架構模式是針對特定軟體架構場景常見問題的通用、可重用解決方案。架構模式類似於軟體設計模式,但範圍更廣。本文將簡要解釋10種常見架構模式及其用法、優缺點。
  • SWE.2的軟體架構設計
    SWE.2的軟體架構設計 汽車電子硬體設計 發表於 2021-01-11 10:36:40 過程ID:SWE.2 過程名稱:軟體架構設計 過程目的:軟體架構設計過程目的是建立一個架構設計
  • 如何在軟體系統架構設計中應用面向切面的設計思想分離橫切關注點
    作者在此更多地是從軟體系統架構設計的角度介紹如何應用面向切面的主要思想完成系統的架構設計,而不再在代碼實現層次重複地介紹面向切面編程技術。7、面向切面的系統架構設計是對面向對象系統架構設計的進一步擴展和完善(1)面向對象的系統架構設計方法更擅長解決"縱向"和"核心和外圍"關係的問題面向對象的系統架構設計方法基於對象之間存在有一定的相互關係的指導思想,對軟體應用系統進行各個層次的"封裝"和"隔離",