策略對實踐提供總體上的指導,對於有難度的工程(比如軟體工程),或者有競爭性目
標(軟體中時間、質量、範圍、成本之間存在競爭)而言,策略往往是制勝的關鍵。一定要
注意,策略來自於問題,沒有問題的策略是無目之本。下面,我們針對成功架構設計的四個
要素,以此衍生出四個問題,作為討論相應的策略的基礎。這樣的思考過程也可以成為我們
研究其它架構問題的思考範例。我們先把關鍵點歸納成下面的表。
編號 關鍵點 問題 危害 策略 策略要點
1 是否遺漏了至關重要的非功能性需求
對需求的理解不系統、不全面、對非功能需求不夠重視。造成返工,專案失敗全面認識需求彌補非功能需求的缺失
2 是否適應數量巨大且頻繁變化的需求對於時間和質量的矛盾,辦法不足,處理草率。耗時不少,質量不高關鍵需求決定架構把架構理解成概要設計,過於粗糙,不能適應實踐要求
3 能否從容設計架構的不同方面架構設計方案覆蓋範圍嚴重不足,許多關鍵決定被延遲,或者由實現人員倉
促決定。開發混亂,質量不高多檢視探尋架構架構師開展系統化團隊開發的基礎,應該對不同的涉眾提供指導和限制
4 能否及早驗證架構方案並做出了調整假設架構的方案是可行的,直到後期才發現問題,造成大規模的返工。
造成返工,專案失敗盡早驗證架構架構設計方案應該解決重大技術風險,並盡早驗證架構
根據這張表,我們來討論一下針對每個關鍵點的相應策略:
1)全面認識需求
既然軟體架構強調的是整體,而整體的設計決策必須基於對需求的全面認識,所以全面
認識需求,是軟體架構的第一項需求。
但是全面認識需求並不等於「眉毛鬍子一把抓」,而是需要對需求進行梳理清楚,在梳
理的過程中把需求理解清楚。全面認識需求,就需要從不同級別來考察需求,這三個級別分
別為:組織級、使用者級、開發級。還需要對每個級別考慮不同型別的功能需求、質量屬性、
約束,如下圖所示。
一方面來說,需求是分層次的,對使用者高層而言是幫助他們達到業務目標,終端使用者而
言,是輔助他們完成日常工作,對開發者而言,有著更多使用者沒有覺察到的「需求」需要實
現。
軟體架構設計策略
制定軟體架構設計策略 1 全面認識需求。下面的這個圖可以用作全面需求分析圖。功能需求 質量屬性 約束 組織級軟體系統實現的功能 成本,上線時間,業務限制 使用者級軟體系統實現的功能 易用性,效能,持續可用性,魯棒性 使用者的計算機水平有限 開發級軟體系統實現的功能 可擴充套件性,可重用性,可移植性,...
軟體架構設計策略
制定軟體架構設計策略 1 全面認識需求。下面的這個圖可以用作全面需求分析圖。功能需求 質量屬性 約束 組織級軟體系統實現的功能 成本,上線時間,業務限制 使用者級軟體系統實現的功能 易用性,效能,持續可用性,魯棒性 使用者的計算機水平有限 開發級軟體系統實現的功能 可擴充套件性,可重用性,可移植性,...
軟體架構設計的策略
知道了軟體架構的關鍵,面對有一定複雜與難度 或有競爭性目標的龐大需要的軟體系統,沒有乙個好的設計策略,完全依靠設計師的經驗與能力,往往會讓設計師顧此失彼,無法保證軟體系統的成功。上面講到,軟體架構工程師沒有時間也沒有必要對所有需求進行深入分析 而功能或用例確定了軟體架構的大的方向 幾個關鍵的非功能需...