軟件系統的架構設計

     軟件系統架構(Software Architecture)是關於軟件系統的結構、行爲、屬性、組成要素及其之間交互關係的高級抽象。任何軟件開發項目,都會經歷需求獲取、系統分析、系統設計、編碼研發、系統運維等常規階段,軟件系統架構設計就位於系統分析和系統設計之間。作好軟件系統架構,能夠爲軟件系統提供穩定可靠的體系結構支撐平臺,還能夠支持最大粒度的軟件複用,下降開發運維成本。如何作好軟件系統的架構設計呢?筆者就這一問題作以下探討分析。算法

軟件系統架構設計方法步驟數據庫

  基於體系架構的軟件設計模型把軟件過程劃分爲體系架構需求、設計、文檔化、複審、實現和演化6個子過程,現逐一簡要概述以下。設計模式

  體系架構需求。即將用戶對軟件系統功能、性能、界面、設計約束等方面的指望(即「需求」)進行獲取、分析、加工,並將每個需求項目抽象定義爲構件(類的集合)。網絡

  體系架構設計。即採用迭代的方法首先選擇一個合適的軟件體系架構風格(如C/S、B/S、N層、管道過濾器風格、C2風格等)做爲架構模型,而後將需求階段標識的構件映射到模型中,分析構件間的相互做用關係,最後造成量身訂作的軟件體系架構。數據結構

  體系架構文檔化。即生成用戶和研發人員可以閱讀的體系架構規格說明書和體系架構設計說明書。架構

  體系架構複審。即及早發現體系架構設計中存在的缺陷和錯誤,及時予以標記和排除。運維

  體系架構實現。即設計人員開發出系統構件,按照體系架構設計規格說明書進行構件的關聯、合成、組裝和測試。分佈式

  體系架構演化。若是用戶需求發生了變化,則需相應地修改完善優化、調整軟件體系結構,以適應新的變化了的軟件需求。模塊化

  以上6個子過程是軟件系統架構設計的通用方法步驟。但因爲軟件需求、現實狀況的變化是難以預測的,這6個子過程每每是螺旋式向前推動。性能

軟件系統架構設計經常使用模式

  目前軟件領域普遍使用的軟件系統架構模式,主要有層次化架構設計、企業集成架構設計、嵌入式架構設計和麪向服務的架構設計模式。

  層次化架構設計模式。分層設計是一種最爲常見的架構設計方案,能有效地使系統結構清晰、設計簡化。MVC模式是當今最爲流行的多層設計模式。該模式把一個應用的輸入、處理、輸出流程進行分離並抽象爲控制器(Controller)、模型(Model)、視圖(View)三個模塊,實現了業務邏輯層、數據庫訪問層和用戶界面層之間在彼此分離的同時仍保持鬆散的耦合關係,增長了靈活性和可擴展性。咱們常見的C/S架構、B/S架構、N層架構都是層次化架構設計的表現形式。

  企業集成架構設計模式。該模式不只爲企業在異構分佈式環境下(操做系統、網絡、數據庫)的業務應用提供了一致的信息訪問和交互手段,並且爲各種業務應用提供了有效的通訊、信息集成、應用集成、維護開發、運行管理等服務。目前最著名的企業集成架構設計包括:CORBA、COM+、J2EE、WebService等。

  嵌入式架構設計模式。該模式具有良好的可配置性、可管理性、可擴展性、時效性等性能指標。目前業界主流的嵌入式操做系統都是特定領域專用的,其中包括:WinCE、Linux、ECOS、EPOC、LynxOS、VxWorks等。

  面向服務的架構設計模式。該模式將業務應用按照必定的粒度和原則劃分紅爲統一標準和統一格式的服務,使企業能夠按照模塊化的方式添加新服務或更新現有服務,有助於打破信息孤島,促進企業系統集成、資源共享。該模式包括服務註冊表模式和企業服務總線模式兩類。

軟件系統架構設計實踐

  軟件系統架構設計是一項很是複雜的工做任務。如何才能作好軟件系統架構設計呢?筆者認爲須要作好如下幾項工做:

  樹立軟件系統架構的意識。設計人員不能侷限在算法和數據結構上,而是要樹立和不斷強化軟件系統總體架構的意識,學會運用多層架構的視角和觀念去分析設計軟件。在多層架構的實踐上,經過MVC模式實現軟件多層結構,層和層之間要作到職責清晰、互相獨立、耦合關係鬆散;在模塊設計原則上,要儘可能體現「高內聚、低耦合」的思想。

  高度重視軟件設計模式。軟件設計模式是設計人員在長期開發實踐中總結出來的,其餘設計人員可藉助這些模式加快軟件設計進程,下降開發風險。因此,設計人員應高度重視設計模式思想,切勿滯留在編碼的層面,應不斷總結經驗,積極嘗試運用軟件設計模式的思想去提出問題、分析問題、解決問題,提升自身開發軟件的水平。

  造成自身的軟件架構風格。軟件系統架構設計的核心目標是實現體系架構級別的軟件複用。這就須要設計人員一方面不斷學習鑽研不一樣應用領域中軟件架構的慣用模式、思惟、風格;另外一方面要借鑑吸取先進理念,積極探索實踐,最終造成自身獨特的軟件架構風格。

  充分了解用戶需求,作好全局架構設計。要作好軟件系統的架構設計,不能急於求成,首先,要全面準確地收集到用戶需求,對整個系統功能造成清晰完整的認識;其次,針對整個軟件系統作好全局架構設計工做,從而避免因考慮不周或片面理解帶來的失誤。

相關文章
相關標籤/搜索