基於架構的軟體設計(architecture-based software design,absd)方法強調由商業、質量和功能需求的組合驅動軟體架構設計。absd是乙個自頂向下,遞迴細化的軟體開發方法,它以軟體系統功能的分解為基礎,通過選擇架構風格實現質量和商業需求,並強調在架構設計過程中使用軟體架構模板。採用absd方法,並不意味著需求抽取和分析活動可以終止,而是應該與設計活動並行。設計活動可以從專案總體功能框架明確後就開始,因此該方法特別適用於開發一些不能預先決定所有需求的軟體系統,如軟體產品線系統或長生命週期系統等,也可為需求不能在短時間內明確的軟體專案提供指導。absd方法有三個基礎:
第乙個基礎是功能分解,在功能分解中使用已有的基於模組的內聚和耦合技術。
第二個基礎是通過選擇體系結構風格來實現質量和商業需求。
第三個基礎是軟體模板的使用。
採用absd方法進行軟體開發時,需要經歷架構需求、架構設計、架構文件化、架構複審、架構實現和架構演化六個階段。
1. 架構需求階段需要明確使用者對目標軟體系統在功能、行為、效能、設計約束等方面的期望。其主要活動包括需求獲取、標識構件和架構評審。
(1)需求獲取活動需要定義開發人員必須實現的軟體功能,使得使用者能夠完成他們的任務,從而滿足功能需求。與此同時,還要獲得軟體質量屬性,滿足一些非功能性需求
(2)標識構件活動首先需要獲得系統的基本結構,然後對基本結構進行分組,最後將基本結構進行打包成構件。
(3)架構需求評審活動組織乙個由系統涉眾(使用者、系統分析師、架構師、設計實現人員等)組成的小組,對架構需求及相關構件進行審查。審查的主要內容包括所獲取的需求是否真實反映了使用者需求,構件合併是否合理等。
2. 架構設計階段是乙個迭代過程,利用架構需求生成並調整架構決策。主要活動包括提出架構模型、將已標識的構件對映到架構中、分析構件之間的相互作用、產生系統架構和架構設計評審。
3. 架構文件化的主要活動是對架構設計進行分析與整理,生成架構規格說明書和測試架構需求的質量設計說明書。
4. 在乙個主版本的軟體架構分析之後,需要安排一次由外部人員(客戶代表和領域專家)參加的架構複審。架構複審需要評價架構是否能夠滿足需求,質量屬性需求是否在架構中得以體現、層次是否清晰、構件劃分是否合理等。從而標識潛在的風險,及早發現架構設計中的缺陷和錯誤。
5. 架構實現主要是對架構進行實現的過程,主要活動包括架構分析與設計、構件實現、構件組裝和系統測試。
6. 架構演化階段主要解決使用者在系統開發過程中發生的需求變更問題。主要活動包括架構演化計畫、構件變動、更新構件的相互作用、構件的組裝與測試和技術評審。
在軟體開發的過程中可能遇到的問題包括:在架構需求獲取過程中如何對捕獲的架構需求進行篩選和優先順序排序;在架構複審過程中如何解決評審人員的意見不一致問題;在架構實現過程中如何根據專案組實際情況選擇開發語言與開發平台;在架構演化過程中如何篩選並處理使用者的需求變更,等等。
基於體系結構的軟體開發 ABSD
一 開發模型 傳統的軟體開發過程可以劃分為 問題定義 需求分析 軟體設計 軟體實現 軟體測試等過程。如果採用傳統的開發過程,軟體體系結構的建立應位於需求分析之後,概要設計之前。基於體系結構的軟體開發模型 absdm 把整個軟體過程劃分為為 體系結構需求 設計 文件化 複審 實現 演化等六個子過程。1...
軟體設計的真諦
假設我們身邊的一切都是用製造材料加以描述的 空調 不是 空調 而是 由金屬和塑料做成的物體 書 不是 書 而是 由纖維和墨做成的物體 溝通時我們也不用 空調 和 書 這樣的詞彙,而是 金屬和塑料做成的物體 和 纖維和墨做成的物體 可以想象大腦在面對這些資訊時會讓我們覺得多麼的痛苦,顯然這樣的事情在現...
軟體設計的思考
trade off 資源限制 人力 空間 時間 最近有幸參與到新的專案設計開發中,結合工程實踐中的經驗與教訓發掘可從資源調配的角度來思考架構設計問題。工程中的軟體設計是什麼?即在 資源有限的條件下,控制成本並作出 資源整合效率最大化的配置的設計。那麼結合計算機系統可從以下幾個關鍵點考慮 1.人力資源...