1. 軟件危機的表現:
(1)軟件成本日益增長
(2)開發進度難以控制
(3)軟件質量差
(4)軟件維護困難
2. 軟件危機的原因:
(1)用戶需求不明確
(2)缺乏正確的理論指導
(3)軟件規模越來越大
(4)軟件復雜度越來越高
3. 17世紀20年代,具有豐富建造單層炮艦但缺乏雙層艦建造經驗的設計師亨瑞克.赫勃茲遜耗盡了畢生精力建造了一艘雙層艦,但是下海之后很快沉入水底。
閱讀體會:合理的、切實可行的體系結構是保證應用系統運行的首要條件。構建任何一個應用系統之前,應對所用的體系結構進行評價,以便減少開發無先例的全新系統所承擔的風險。
4. 軟件體系結構:
(1)軟件體系結構包括一個軟件和系統構件,互聯及約束的集合;一個系統需求說明的集合;一個基本原理用以說明這一構件,互聯和約束能夠滿足系統需求。
(2)軟件體系結構包括一個或一組軟件構件、軟件構件的外部的可見特性及其相互關系。其中,“軟件外部的可見特性”是指軟件構件提供的服務、性能、特性、錯誤處理、共享資源使用等。
【這個強調的是構件、服務和共享資源的使用、構件之間的關系。體系結構定義了元素以及它們如何交互。】
5. 每個系統都有一個體系結構
每個系統都是由元素和元素之間的關系組成。最簡單的例子,一個系統就是由一個元素和它自身的關系組成。
6. 構架是系統的總體結構。(錯)
它暗含了意思是系統只有一個結構。而結構的多樣性位于構架概念的核心。
7. 構架是組件和連接器。(不完全)
因為連接器是指系統運行時為傳送控制和數據信息而采用的機制。因此這種說法強調了運行時的構架。
8. 構件:
(1)構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的系統.
【語義完整:能實現相關功能 ? ? ? 語法正確:可運行】
(2)結構上,構件是語義描述、通訊接口和實現代碼的復合體。
【語義描述:相關功能描述 ? ? ?通訊接口:可獨立使用,并和其他交互】
9. 軟件體系結構的意義:
(1)體系結構是風險承擔者進行交流的手段
【體系結構提供了一種共同語言來表達各種關注和協商。系統的大部分有關人員能把它作為建立一個互相理解的基礎,形成統一認識,互相交流】
(2)體系結構是早期設計決策的體現
【明確了對系統實現的約束條件,決定了開發和維護組織的組織結構,制約著系統的質量屬性】
(3)軟件體系結構是可傳遞和可重用的模型
【基于構件的軟件開發】
10. 軟件體系結構在軟件開發各階段中的作用
(1)項目規劃階段
【運行環境、工具和構件是否滿足要求、是否有現有系統】
(2)需求分析階段
【溝通交流,找到合理的平衡方案】
(3)項目設計階段
【參考風格,設計體系結構模型,修改,求精,文檔化】
(4)項目實施階段
(5)測試與系統評估階段
【可用性和可靠性】
(6)維護與升級階段
11. 思考題
(1)為什么軟件體系結構應遵循統一的標準?
(2)軟件體系結構在軟件開發的各個階段起什么作用?
(3)為什么說軟件體系結構是系統分析和設計的高層復用?