Chapter 1 軟件體系結構概論
1. 軟件危機的表現:
軟件成本日益增長、開發進度難以控制、軟件質量差、軟件維護困難。
2. 軟件危機的成因:
用戶需求不明確、缺乏正確的理論指導、軟件規模越來越大、軟件複雜度越來越高。
3. 如何克服軟件危機?
●人們面臨的不光是技術問題,更重要的是管理問題。管理不善必然導致失敗。
●軟件工程在軟件開發方法、工具、管理等方面的應用緩解了軟件危機造成的被動局面。
●軟件工程包括了三個要素:方法、工具、過程。
4. 構件與重用
●要提高軟件開發效率,提高軟件產品質量,必須採用工程化的開發方法與工業化的生產技術。
●在技術上,應該採用基於重用的軟件生產技術;在管理上,應該採用多維的工程管理模式。
●要真正解決軟件危機,實現軟件的工業化生產是唯一可行的途徑。
●成功的工業的發展模式均是符合標準的零部件/構件生產以及基於標準構件的產品生產,其中,構件是核心和基礎,重用是必需的手段。實踐表明,這種模式是產業工程化、工業化的成功之路,也將是軟件產業發展的必經之路。
●軟件重用是指在兩次或多次不同的軟件開發過程中重複使用相同或相近軟件元素的過程。
●軟件重用的好處:減少軟件開發活動中大量的重複性活動,這樣就能提高軟件生產率,降低開發成本,縮短開發週期。有助於改善軟件質量,軟件的靈活性和標準化程度也能得到提高。
5. 構件模型及實現
●構件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程中可以明確辨識的系統;結構上,它是語義描述、通信接口和實現代碼的複合體。簡單地說,構件是具有一定的功能,能夠獨立工作或能同其他構件裝配起來協調工作的程序體,構件的使用同它的開發、生產無關。整個構件隱藏了具體的實現,只用接口對外提供服務。
●構件模型是對構件本質特徵的抽象描述。
●三個主要流派:OMG的CORBA、Sun的EJB、Microsoft的DCOM
●北大楊芙清院士等人提出的“青鳥構件模型”。
6. 構件獲取的途徑:
(1)從現有構件中獲得符合要求的構件,直接使用或作適應性修改。
(2)通過遺留工程,將具有潛在重用價值的構件提取出來。
(3)從市場上購買現成的商業構件,即COTS(commercial off-the-shell)構件。
(4)開發新的符合要求的構件。
●領域工程可劃分爲:領域分析、領域設計、領域實現。
7. 構件分類方法:
關鍵字分類法、刻面分類法、超文本組織方法。
8. 構件重用:
檢索與提取構件、理解與評價構件、修改構件、組裝構件
●構件組裝:基於功能、基於數據、面向對象
●面向對象的組裝技術:
構造法——在子類中引進基類的對象作爲子類的成員變量,然後在子類通過成員變量重用基類的屬性和方法。
子類法——子類法將新子類直接說明爲庫中基類的子類,通過繼承和修改基類的屬性與行爲完成新子類的定義。
9. 軟件總是具有體系結構,不存在沒有體系結構的軟件。
10. 軟件體系結構的定義:
軟件體系結構爲軟件系統提供了一個結構、行爲和屬性的高級抽象,由構成系統的元素的描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。軟件體系結構不僅指定了系統的組織結構和拓撲結構,並且顯示系統需求和構成系統的元素之間的對應關係,提供了一些設計決策的基本原理。
11. 軟件體系結構的意義:
(1)體系結構是風險承擔者進行交流的手段。
(2)體系結構是早期設計決策的體現。
●明確了對系統實現的約束條件。
●決定了開發和維護組織的組織結構。
●制約着系統的質量屬性。
●通過研究體系結構可能預測軟件的質量。
●使推理和控制更改更簡單。
●有助於循序漸進的原型設計。
●作爲培訓的基礎。
(3)軟件體系結構是可傳遞和可重用的模型。
12. 軟件體系結構的發展史:
●“無體系結構”設計階段——彙編語言
●萌芽階段——控制流圖和數據流圖
●初期階段——UML
●高級階段——高層抽象結構爲中心,“4+1”模型爲標誌
13. 常用的軟件體系結構評估方法:
●體系結構權衡分析方法(ATAM)
●軟件體系結構分析方法(SAAM)
● 中間設計的積極評審(ARID)