軟體架構設計的6個步驟及工作內容

2021-01-07 皮皮雜談

如何有序、高效、全面做好軟體架構設計呢?作為一名軟體架構師,應該具備的基本素質是:掌握架構設計的基本步驟,且清晰每個步驟的工作內容。本文結合實際項目經驗,將對軟體架構設計的步驟及工作內容進行介紹。

在整個軟體架構設計過程中,筆者結合自身項目經驗將架構設計步驟羅列為6個大步驟,依次是需求分析、領域建模、確定關鍵需求、概念架構設計、細化架構設計、架構驗證。在實際項目過程中,也是遵循這6個大步驟進行軟體架構設計的。軟體架構設計步驟如下圖所示:

架構設計的6個步驟

那麼,每一個步驟具體工作內容包含哪些呢?

(1)需求分析

我們知道,需求分析的目標是找出功能、質量和約束這三個方面的要求。首要工作是溝通以獲取需求,然後是確定非功能性需求、確定系統目標、建立用例模型等,最終以需求說明書的形式作為產出物。

(2)領域建模

領域建模的目標是構建業務領域模型,業務決定功能,功能決定模型。領域建模主要工作是與業務領域專家一起,整理和掌握軟體功能和非功能要求的業務數據、業務流程等。

(3)確定關鍵需求

具體而言,確定關鍵需求工作包括:為了確定關鍵功能而進行的功能需求和約束需求的研究;為了確定關鍵質量而進行的質量需求和約束需求研究。

(4)概念架構設計

具體包含五項工作:決定如何劃分頂級子系統、架構風格選型、開發技術選型、二次開發技術選型、集成技術選項。

(5)細化架構設計

從邏輯架構、開發架構、運行架構、物理架構、數據架構五個方面出發,對模塊劃分、接口定義、領域模型、技術選型、控制流程、硬體分布、軟體部署、存儲格式等內容進行詳細設計。

(6)架構驗證

對後續工作產生重大影響且造成返工代價很高的任何工作,都應該安排原型測試和評審工作。同時,進行必要的軟體技術選型驗證工作。

相關焦點

  • 6個步驟 讓你成為FPGA設計高手
    打開APP 6個步驟 讓你成為FPGA設計高手 工程師3 發表於 2018-04-19 09:05:02   掌握FPGA可以找到一份很好的工作
  • SWE.2的軟體架構設計
    )定義了軟體要素的動態行為和資源消耗目標; 5)在軟體需求和軟體架構設計之間建立一致性和雙向可追溯性;及 6)對軟體架構設計達成一致並與所有受影響的各方進行溝通。在適當的層次級別上確定並記錄軟體架構設計的所有相關要素的資源消耗目標。[outcome4] 注4:資源消耗通常是由內存(ROM、RAM、外部/內部EEPROM或數據快閃記憶體)、CPU負載等資源決定的。 SWE.2.BP6:評估可供選擇的軟體架構。為架構定義評估標準。根據定義的標準評估備選的軟體架構。記錄所選軟體架構的基本原理。
  • 軟體開發流程的6個步驟是什麼?怎樣繪製軟體開發流程圖?
    軟體開發流程圖的8個步驟是什麼?怎樣繪製流程圖?大家可能見過各種各樣的軟體,這個軟體有哪些功能,哪個軟體什麼地方比較好用。這些都是我們的用戶體驗,那麼大家知道軟體開發流程的步驟有什麼,又該怎樣在電腦上繪製軟體開發流程圖嗎?今天小編給大家分享一下。
  • 軟體成本評估的6個步驟
    在軟體工作量的評估中,還包含了五個小步驟,也就是收集歷史工作量數據、分析歷史工作量數據、建立工作量評估模型、評估工作量、工作量模型的標定和更新。通過這些步驟可以積累更多關於軟體組織開發工作量和維護工作量的數據,在此基礎之上,建立相應的工作量評估模型,從而為後續的工作量評估任務提供支持方法。
  • 軟體架構設計:軟體質量屬性、架構風格的案例
    在初始需求中定義的機器性能條件下,對於一個包含50個對象的設計模型,將其轉換為相應代碼框架時所消耗時間不超過5秒。f.能夠連續運行的時間不小於240水時,意外退出後能夠在1 0秒之內自動重啟。在對需求進行分析後,公司的架構師小張查閱了相關的資料,認為該集成開發環境應該採用管道一過濾器(Pipe-Filter)的架構風格,公司的資深架構師王工在仔細分析後,認為應該採用數據倉儲(Data Repository)的架構風格。公司經過評審,最終採用了王工的方案。
  • 面向服務架構(SOA)的汽車軟體分析和設計
    面向服務架構的汽車軟體分析與設計1面向服務架構的開發過程從整體上可以概括為6個步驟,分別是:面向服務分析、面向服務設計、服務開發、服務測試、服務部署和服務權限管理,如圖3所示。其中,分析和設計面向服務的架構是開發SOA軟體的開端,也是判斷系統是否基於SOA架構的最重要且核心的環節。
  • 今日技術分享:面向服務架構的汽車軟體分析和設計
    2ー 面向服務架構的汽車軟體分析與設計 面向服務架構的開發過程從整體上可以概括為6個步驟,分別是:面向服務分析、面向服務設計、服務開發、服務測試、服務部署和服務權限管理,如圖3所示。
  • 軟體架構的10個常見模式
    企業規模的軟體系統該如何設計呢?在開始寫代碼之前,我們需要選擇一個合適的架構,這個架構將決定軟體實施過程中的功能屬性和質量屬性。因此,了解軟體設計中的不同架構模式對我們的軟體設計會有較大的幫助。什麼是架構模式?根據維基百科:架構模式是針對特定軟體架構場景常見問題的通用、可重用解決方案。架構模式類似於軟體設計模式,但範圍更廣。
  • 成功的軟體開發項目的八個步驟
    切記:所需的人才,必須透徹了解創建軟體的細節,並擁有豐富的開發經驗。您應該僱傭幾個人?需要按照項目的複雜性和規模來決定人員的數量。要確認你的團隊中有:解決方案架構師,專業於適當技術堆棧的軟體工程師,DevOps,測試工程師和質量保證工程師以及UI / UX設計師。
  • 軟體架構設計之六大原則—SOLID
    簡單來說就是持有最少的關鍵對象即可,人們常說認識6個人就可以認識全世界是一樣道理的。在設計模式中,委派模式設計就很好體現該原則。這裡提示一個工作中的場景:TL對於工作任務的分配場景。開發者這需要關注的是任務本身,而TL則重點關注的是分派的過程,這裡TL是需要對團隊成員是了解的,對任務是了解的,才能將任務分派到特定的人;而,開發者只需要關注的是任務本身。
  • 軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例 1、軟體系統概要設計中所涉及的主要設計內容和工作過程 (1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用
  • 軟體項目實訓及課程設計指導——系統設計中的系統架構設計示例
    軟體項目實訓及課程設計指導——軟體系統設計中的系統架構設計示例1、軟體系統概要設計中所涉及的主要設計內容和工作過程(1)在軟體應用系統項目的系統概要設計工作中,首先是要完成軟體系統的總體架構設計及系統的分層設計,然後再利用UML包視圖體現出軟體系統架構設計的最終結果
  • 10個常見的軟體架構模式
    想知道如何設計大型企業級的系統嗎?在開始主要的代碼開發之前,我們必須選擇一種合適的體系架構,它將為我們提供所需的功能和質量屬性。因此,在將它們應用到我們的設計之前,應該先了解不同的體系結構。根據維基百科:架構模式是在給定上下文中解決軟體架構中常見問題的通用、可重用的解決方案。
  • 阿里技術官出品:Java架構設計之完美看完秒進大廠
    軟體設計同樣如此。思想的確立,技巧的把握,將在很大程度上決定軟體架構的合理性。內容涵蓋了設計模式、重構、測試驅動開發、極限編程、軟體體系架構設計等重要的設計方法與技巧。這些內容是軟體設計中最重要的「流行元素」,是程式設計師向設計師「涅磐」的基石,是從小工到專家修煉法門。
  • 架構設計的本質
    本文嘗試從更高視角重新審視架構設計的工作,把架構設計的上升到系統設計的立體空間去探索,最終勾勒出系統設計的全域知識體系。思維分析1.其實我們還可以舉個小一點的案例,比如一個有趣的需求「賺錢」,引申出來就是做一個能盈利商業項目架構,有興趣的同學可以根據這個思維模式一步一步勾畫出整個流程出來,相信這也是一個不錯的方法,也許還真能解決些許困惑。下面演示的就是登月過程宏觀層面落地的步驟。
  • 軟體安全架構設計不得不考慮安全性方面
    隨著軟體技術的進步和安全理論的逐步發展,目前,軟體架構設計的安全性主要考慮安全威脅、安全機制、安全設計、訪問控制和安全通道等方面,以下分別進行介紹。1. 安全威脅安全威脅主要包括機密性威脅、可用性威脅、完整性威脅和真實性威脅。
  • 股票交易軟體開發架構分析
    交易軟體開發系統的架構設計是利用特定的邏輯關係對軟體內容的定義,具體的軟體設計工作就是對軟體內容的定義,而特定的邏輯關係就是交易軟體開發的基礎架構。交易軟體系統設計的基礎架構不僅能夠決定交易軟體開發系統的運行方式和流程,而且還會對軟體的未來維護和擴展產生影響。
  • 鋪平你的架構師之路!十年技術專家敬獻Java架構完美設計筆記
    從縱向架構上看,架構涉及由客戶端發送請求到伺服器處理,再從伺服器返回給客戶端的各個主要步驟的具體處理細節;從橫向架構上看,架構又關聯到實現這種客戶端——伺服器端的架構模式。而如果要成為一名優秀的架構師,你必須攻克這三個難關:(1)需要掌握各種技術的優缺點與特性,才能知道如何使用。
  • 基於Android的工作計劃管理系統設計任務書
    畢業設計課題及任務課題簡介 雖然現在手機上已經有安排時間提醒的軟體,但本課題做的是完整的工作計劃安排軟體。分為客戶端和服務端兩個部分。(1)客戶端:主要有事件提醒、工作計劃安排(個人,集體)和其他的輔助功能。(2)伺服器端:主要有用戶管理(普通用戶,管理員),工作計劃安排(主要是集體工作計劃安排),系統設置等。
  • 軟體項目實訓及課程設計指導——如何實現面向對象的系統架構設計
    軟體項目實訓及課程設計指導——如何實現面向對象的系統架構設計1、什麼是面向對象的軟體應用系統的架構設計從軟體應用系統的架構設計師的角度來看,所謂的軟體應用系統的系統架構就是一套構建軟體應用系統的整體結構的各種設計準則