廣義功能
質量約束
業務級需求
業務目標
快、好、省
技術性約束
法規性約束
技術趨勢
競爭因素與競爭對手
遺留系統整合
標準性約束
分批實施
使用者級需求
使用者需求
執行期質量
使用者群特點
使用者水平
多國語言
開發級需求
行為需求
開發期質量
開發團隊技術水平
開發團隊磨合程度
開發團隊分布情況
開發團隊業務知識
管理:保密要求
管理:產品規劃
安裝
維護首先,需求是分層次的。
業務級需求:包含客戶或出資者要達到的業務目標、預期投資、工期要求,以及要符合哪些標準、對哪些遺留系統進行整合等約束條件。
使用者級需求:使用者使用系統來輔助完成哪些工作?對質量有何要求?使用者群及所處的使用環境方面有何特殊要求?
開發級需求:開發人員需要實現什麼?開發期間、維護期間有何質量考慮?開發團隊的哪些情況會反過來影響架構?
可以看出,需求的三個層次,是站在"不同層次的涉眾提出需求所站的立場不同"的角度,將需求劃分為三種型別。其次,需求還必須從不同方面進行考慮。例如,乙個網上書店系統的功能需求可能包括"瀏覽書目"、"下訂單"、"跟蹤訂單狀態"、"為書籍打分"等,質量屬性需求包括"互操作性"和"安全性"等,而"必須執行於linux平台之上"屬於約束性需求之列。實踐一再表明,忽視質量屬性和約束性需求,常常導致架構設計最終失敗。
於是,從"需求定義了直接目標還是間接限制"的角度,把需求劃分為3種型別,這就是需求的3個方面:
功能需求:更多體現各級直接目標要求。
質量屬性:執行期質量 + 開發期質量。
約束需求:業務環境因素 + 使用環境因素 + 構建環境因素 + 技術環境因素。
如何開展軟體架構之需求分析2
前面提到,在需求分析階段,架構師的兩個重要的工作步聚為 1 結構化需求 2 分析約束影響 以上兩個步聚都是為了解各需求之間的聯絡,發現隱藏需求而服務,相對的從業務需求到用 戶需求的分析,再到開發需求的分析,一般不太容易遺漏需求,而平時較少考慮的則是由於 約束產生的設計或功能或質量需求。a 業務環境 ...
如何開展軟體架構之需求分析3
前面提到在需求分析過程中,需要將需求結構化,然後依據該需求矩陣,通過推薦需求,分析約束來分析隱藏需求。現在我們來看乙個具體的例子 如下圖1所示 圖1 其上圖中,顏色相同且之間有聯線的,表示是兩者之間有相互的制約關係。比如,1 對於網際網路這麼乙個業務環境,必然會有很多的殭屍使用者,考慮資料庫容量有效...
如何開展軟體架構之需求分析3
前面提到在需求分析過程中,需要將需求結構化,然後依據該需求矩陣,通過推薦需求,分析約束來分析隱藏需求。現在我們來看乙個具體的例子 如下圖1所示 圖1其上圖中,顏色相同且之間有聯線的,表示是兩者之間有相互的制約關係。比如,1 對於網際網路這麼乙個業務環境,必然會有很多的殭屍使用者,考慮資料庫容量有效,...