架構設計-架構需求分析


一、架構設計的需求分析從哪來
需求分析的前期工作是願景描述及願景分析, 即願景分析就是需求的前期調研.
從軟件過程來看,需求分析是一個承上啟下的階段–“上承”願景,“下接”設計。需求分析的工作內容包含如下三方面:
 
需求捕獲: 理解溝通
需求分析:做什么,有哪些問題
 
系統分析:原因是什么, 怎么做
三者不是獨立無關的階段,而是相互伴隨、交叉進行的。
 
需求捕獲: 從各個方面收集需求, 並理解需求.典型的需求捕獲是使用“需求采集卡”:需求描述、需求提出者、需求記錄者、需求類型等。需求分析:需求捕獲得到的是“原始需求”,而需求分析則對各方面收集到的需求進行分析、整理、歸納、論證形成明確的需求。比如, 產品經理說,現在系統不穩定, 需要重構架構保證系統穩定.  這只是一個願景, 我們需要把這個需求形成一個明確的需求: 可行性99.99%, 要完成這個指標,需要做哪些工作.
 
二、需求分類:需求結構化

 

 

收集需求是多而雜, 我們需要理解並整理, 通過二維需求觀,將“需求=列表”的傳統觀念,一下子拓寬了維度。有了視野和思維上的提升。
 二維需求觀:
首先,需求是分層次的:
1、有組織級的需求
2、用戶級的需求
3、開發級的需求。
 
其次,需求還必須從不同方面考慮。 需求可分類為三類:
1)功能需求:更多體現各級直接目標要求,系統具體要做什么. 有哪些功能點.
2)質量需求:運行期質量 + 設計質量+用戶質量+系統質量.
3)約束需求:業務環境因素 + 使用環境因素 + 構建環境因素 + 技術環境因素.

 

 ADMEMS矩陣,可作為需求梳理和需求評審的工具:

 

 

三、從需求向設計轉化的關鍵


不同需求(及功能、質量、約束)影響架構的不同原理,是從需求向設計轉化的密碼。 

 

功能需求、質量屬性、以及約束共同決定了架構,對這三類需求的把握是否到位、設計決策是否合理,可以說是架構設計成敗的關鍵所在。
功能:體現的是職責協作鏈.系統有哪些功能點, 這些功能點之間如何協作.
質量:是完善架構的驅動力
約束:說明了設計並不自由
質量屬性和約束,同屬非功能需求,都是重要的“架構決定因素”。質量屬性是軟件系統的整體質量品質——所謂整體品質,就是它往往和大多數功能都有關,而不是僅僅表現在某個功能“內部”。
至於約束性需求,它們要么是架構設計中必須遵循的限制,要么經過約束分析、轉化為質量屬性需求或者功能需求。但是,約束分析沒有受到架構師的普遍重視,於是約束背后的“衍生需求”變成了“遺漏需求”,造成了架構設計的偏離甚至失敗。

 

四、需求優先排序
架構設計的本質目的是為了解決業務,架構設計也並不是面面俱到,而是識別問題有針對性的解決, 所以要先了解系統最需要解決的是什么。
例如系統的復雜度來源於業務邏輯復雜,功能耦合度嚴重,架構師設計TPS達到50000/s的高性能架構沒有意義。
出現問題主要為了滿足“高可用”“高性能”“可擴展”三個方面,就算老板拍腦袋要求同時滿足三高,也要分優先級。
比如線上運行的系統可能存在的問題:
運行效率低下,升級復雜,容易出錯。
開發效率低下。
小問題不斷,不好定位。
二真缺解決做法:
列出主要的復雜度問題
根據業務、技術、團隊等情況進行排序
優先解決最主要的復雜度問題.
我這兒整理了比較全面的JAVA相關的面試資料,

需要領取面試資料的同學,請加群:473984645


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM