《軟件架構理論與實踐》 —1 軟件架構概述
上 篇
基礎理論篇
基礎理論篇涵蓋了第1~6章的內容,重點介紹軟件架構的基本理論和方法,內容包括軟件架構的發展歷史、軟件架構的概念和建模方法、軟件架構風格和模式、軟件架構描述語言,以及軟件架構與敏捷開發之間的關系等。其中:
第1章 軟件架構概述:簡述了軟件架構的意義以及軟件架構發展歷史。
第2章 軟件架構的概念:概述了軟件架構的主要定義派別以及它們之間的不同。
第3章 軟件架構模型:介紹了軟件架構建模的幾種主流方法,如可視化建模、形式化建模等。
第4章 軟件架構的風格與模式:詳細討論了多種主流的軟件架構風格和模式,如管道–過濾器風格、黑板系統風格、正交架構風格等。
第5章 軟件架構描述語言:概述了一些主流軟件架構描述語言,如ACME、Wright等。
第6章 軟件架構與敏捷開發:簡單討論了軟件架構與敏捷開發的關系。
第1章 軟件架構概述
最初,軟件架構(Software Architecture,又稱軟件體系結構)是用來刻畫軟件系統整體抽象結構的一種手段,軟件架構設計是軟件開發過程中的一個重要環節,但隨著研究的深入和應用的推廣,軟件架構逐漸成為軟件工程學科的重要分支方向,在基礎理論、技術方法和工程實踐等方面形成了自己獨特的理念和完整的體系。作為軟件架構的背景知識,本章簡要介紹軟件架構產生的背景、主要思想、特征和發展軌跡。
1.1 軟件架構產生的背景
眾所周知,20世紀60年代中期開始爆發大規模的軟件危機,軟件危機的突出表現就是軟件生產不僅效率低,而且質量差。究其原因,主要是因為軟件開發的理論方法不夠系統、技術手段相對滯后,主要的軟件生產都是手工作坊式的。為了解決軟件危機,北大西洋公約組織(NATO)分別于1968年和1969年連續召開兩次著名的軟件會議,后人稱之為NATO會議。NATO會議提出了軟件工程的概念,發展了軟件工程的理論和方法,形成了軟件工程專業的教育、培養和訓練體系,為軟件產業的發展指明了方向。
但是隨著軟件規模的進一步擴大和軟件復雜性的不斷提高,新一輪的軟件危機再次出現。1995年,Standish Group研究機構以美國境內8000個軟件工程項目作為調查樣本進行調查,其結果顯示,有84%的軟件項目無法按時按需完成,超過30%的項目夭折,工程項目耗費平均超出預算189%。軟件工程遇到了前所未有的困難[1]。
通過避免軟件開發中重復勞動的方式提升軟件開發效率、保障軟件質量,軟件重用與組件化成為解決此次危機的行之有效的方案。隨著組件化軟件開發方式的發展,如何在設計階段對軟件系統進行抽象,獲取系統藍圖以支持系統開發中的決策成為迫切而現實的問題。分析問題的根源和產生的原因,以下現象應該獲得關注:
1)軟件復雜、易變,其行為特性難以預見,軟件開發過程中需求和設計之間缺乏有效的轉換,導致軟件開發過程困難和不可控。
2)隨著軟件系統規模越來越大、越來越復雜,整個系統的結構和規格說明顯得越來越重要。
3)對于大規模的復雜軟件系統,相較于對計算算法和數據結構的選擇,總體的系統結構設計和規格說明已經變得明顯重要得多。
4)對軟件系統結構的深入研究將會成為提高軟件生產率和解決軟件維護問題的最有希望的新途徑。
在這種情況下,軟件架構應運而生。
20世紀90年代,研究人員展開了關于軟件架構的基礎研究,主要集中于架構風格(模式)、架構描述語言、架構文檔和形式化方法。眾多研究機構在促進軟件架構成為一門學科的過程中發揮了舉足輕重的作用。例如,卡內基–梅隆大學的Mary Shaw和David Garlan的專著推廣了軟件架構的概念,即組件、連接件和風格的集合。加州大學歐文分校針對架構風格、架構描述語言和動態架構也開展了深入的研究。
軟件架構在高層次上對軟件進行描述,便于軟件開發過程中各個視角(如用戶、業務和系統)的統一,能夠及早發現開發中的問題并支持各種解決方案的評估和預測[2]。
軟件架構的意義貫穿軟件生命周期的各個階段:需求分析階段需要使用軟件架構的理念對規約進行完善,繼而支持由需求模型向架構模型的轉化;通過驗證的架構設計借助形式化或多角度具象描述,成為進一步細化設計的基礎;在程序的開發和維護階段,架構能夠幫助開發和維護人員理解軟件、盡早地發現和修復問題。因此良好的架構是軟件得以順利實現過程中至關重要的因素。
軟件開發 敏捷開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。