軟體架構 從需求明確架構設計驅動力

2022-05-02 16:03:10 字數 1266 閱讀 4312

軟體通常是因需求才進行設計開發,由使用者方從解決業務問題的角度提出,均以專業的術語或事務性的語言描述。高質量、清晰準確的需求描述,可有效約束軟體系統的結構設計和功能定位。邊緣清晰、描述規範的要求,會在一定程度上降低軟體設計和開發的成本,提高軟體質量和開發效率。但是,需求的成長和變化,往往伴隨軟體的整個開發過程,這種現狀使得軟體設計的難度不斷增加,程式開發也從傳統的開發方法向敏捷程式設計轉化。

使用者基於一定的業務需要提出需求,通常不能直接指導軟體的開發,只有經過軟體設計者的分析提取,通過規範的技術語言描述,形成面向軟體開發者的需求規格說明,才能指導軟體的研製。抽取需求是軟體設計師必須完成的工作,傳統的需求抽取方法一般包括面談、問卷、觀察和業務文件研究等,這些方法簡單、成本低,對業務邏輯清晰、封閉性較好的需求比較適合,而對複雜且很難封閉的需求,採用傳統的抽取方法,則風險很大。

軟體行業處在不斷的發展變化之中,軟體需求分類發就是一例。當前業界影響最為廣泛的需求分類法將需求分為3個層次

需求分類法最大的好處是明確了不同層次需求之間的跟蹤關係——業務需求-->使用者需求-->行為需求(功能需求)——從而建立了需求分析的主要脈絡。但對架構師來說,需求分類發中的」約束條件「太過狹隘,沒有反應」架構設計必須面對來自業務環境、使用環境、構建環境、技術環境的4大類約束「這一現實情況

不懂不同需求如何影響架構,就難以進行理性的架構設計。

需求決定架構是已知的事實,但是需求如何決定架構呢?下圖給了乙個較為詳細的總結

在軟體中涉及到不同部分之間的相互配合,系統控制權在不同部分之間來回傳遞,從而形成了一條職責協作鏈,來完成非常複雜的功能

質量是完善架構設計的驅動力,(必須)基於當前的架構設計中間成功,進一步考慮具體質量要求,質量與功能共同影響架構設計

約束則以不同的具體方式來影響架構設計:

直接制約設計決策

轉化為功能需求約束

轉化為質量屬性需求的約束

關鍵需求決定架構,其餘需求驗證架構

功能需求做減法,在所有功能中挑選乙個」關鍵功能子集「,作為」架構設計驅動力「的第一部分

質量需求做減法,根據系統所在領域特點及系統規模等因素,確定架構重點屬性(因為質量屬性本就不可能全部完美實現)作為」架構設計驅動力「的第2部分

約束性需求做加法。需要充分考慮需求方及業務環境因素、使用者群及使用環境、開發方及構建環境因素、業界當前技術環境因素等」4類約束「,將至作為」架構設計驅動力「的第三部分。並分析約束影響、識別約束背後的衍生需求

參考:溫昱《一線架構師實踐指南》

軟體架構設計 架構師筆記,軟體架構設計

架構設計是分與合的藝術 通讀並總結了溫昱老師的 軟體架構設計 並有幸聽過李哲珠博士對架構設計的講解。對其讀後的自我領悟並提煉出核心內容分享出來,希望從思想高度上能提公升你對軟體架構設計的認知。架構設計 架構設計不等於框架設計,框架也可能有架構,所有的原子元件 被拆分的模組 都需要架構設計,所有元件可...

salesforce 架構設計 從架構設計到架構師

因為碎片化的時間多了,所以開始刷起某乎了,關注了架構相關的板塊,也順手回答了一些問題。發現有很多同道中人正在經歷著我前兩年經歷的階段,對於做架構沒有相對具象的一些理解,更沒有系統化的認識。所以把最近回答的一些內容整理一下,權當記錄,留給3年後的自己 按慣例,容許我裝x開頭 一 架構的定義 在軟體開發...

軟體架構設計

首先我們應該了解什麼是軟體架構設計?架構大體分為以下幾種 邏輯架構 模組劃分 介面定義 領域模型 開發架構 技術選型 檔案劃分 編譯關係 物理架構 硬體分布 軟體部署 方案優化 執行架構 技術選型 控制流劃分 同步關係 資料架構 技術選型 儲存格式 資料分布 程式設計師向架構師轉型的關鍵突破 學會系...