1、軟件危機 software crisis分佈式
軟件危機是指在計算機軟件的開發(development)和維護(maintenance)過程當中遇到的一系列嚴重問題。測試
1.軟件危機的表現spa
軟件成本日益增加設計
開發進度難以控制代理
軟件質量差component
軟件維護困難對象
2.軟件危機的成因接口
用戶需求不明確ci
缺少正確的理論指導開發
軟件規模愈來愈大
軟件複雜度愈來愈高
三、如何克服軟件危機
人們面臨的不只是技術問題,更重要的是管理問題。應用現代工程的概念、原理、技術、方法進行計算機軟件的開發、管理和維護。
軟件工程是用工程、科學、數學的原則與方法研製、維護計算機軟件的有關技術以及管理方法。三要素:方法、工程、過程。
2、構件與軟件重用
1.要提升軟件的開發效率,提升軟件的開發質量,必須採用工程化的開發方法與工業化的生產技術。包括技術和管理兩方面的問題。技術上:基於重用的軟件生產技術;管理上:採用多維的工程管理模式。
2.要真正解決軟件危機,實現軟件工業化生產是惟一可行的途徑,其中構件是核心和基礎,重用是必須手段。
3.軟件重用定義:軟件重用是指在兩次或屢次不一樣的軟件開發過程當中重複使用相同或相近軟件元素的過程。
軟件元素包括程序代碼、測試用例、設計文檔、設計過程、需求分析文檔甚至領域知識。一般,把這種可重用的元素稱做軟構件(software component),簡稱構件。可重用的軟件元素越大,咱們就說重用的力度越
意義:
提升軟件生產率,下降開發成本;
有助於改善質量;
提升軟件的靈活性和標準化程度
4.構件定義:語義完整、語法正確和有可重用價值的單位軟件,是軟件重用過程當中能夠明確辨識的系統;結構上,它是語義描述、通信接口和實現代碼的複合體。簡單的說,構件是具備必定的功能,可以獨立工做或能同其它構件裝配起來協調工做的程序體,構件的使用同它的開發、生產無關。
構件將抽象的程度提到一個更高的層次,是對一組類的組合進行封裝,並表明完成一個或多個功能的特定服務,也爲用戶提供了多個接口。整個構件隱藏了具體的實現,只用接口對外提供服務。
5.構件模型model定義:構件模型是對構件本質特徵的抽象描述。
三大流派:
(1)OMG(ObjectManagement Group,對象管理集團)的CORBA(Common Object Request BrokerArchitecture,通用對象請求代理結構)
(2)Sun的EJB(Enterprise Java Bean)
(3)Microsoft的DCOM(DistributedComponent Object Model,分佈式構件對象模型)
國內:青鳥構件模型
6.構件的獲取途徑
從現有構件中得到符合要求的構件,直接使用或做適應性修改,獲得可重用的構件;
經過遺留工程,將具備潛在重用價值的構件提取出來,獲得可重用的構件;
從市場上購買現成的商業構件,即COTS(Commercial Off-The-Shell)構件;
開發新的符合要求的構件。
7.構件的分類方法
關鍵字分類法 keyword classification
刻面分類法faceted classification
超文本組織方法 hypertext classification
8.構件重用步驟
檢索與提取構件
理解與評價構件
修改構件
構件組裝
9.構件組裝技術
基於功能的組裝技術:採用子程序調用和參數傳遞的方式將構件組裝起來;
基於數據的組裝技術:也要求庫中構件以子程序形式出現,但它所依賴的軟件設計方法再也不是功能分解,而是面向數據的設計方法;
面向對象的組裝技術:構造法、子類法。
3、軟件體系結構的發展
事實上,軟件老是有體系結構的,不存在沒有體系結構的軟件。
1.軟件體系結構的定義
軟件體系結構爲軟件系統提供了一個結構、行爲和屬性的高級抽象,由構成系統的元素的描述、這些元素的相互做用、指導元素集成的模式以及這些模式的約束組成。
2.軟件體系結構的意義
體系結構是風險承擔者進行交流的手段
體系結構是早期設計決策的體現
軟件體系結構明確了對系統實現的約束條件
軟件體系結構決定了開發和維護組織的組織結構
軟件體系結構制約着系統的質量屬性
經過研究軟件體系結構可能預測軟件的質量
軟件體系結構使推理和控制更改更簡單
軟件體系結構有助於按部就班的原型設計
軟件體系結構能夠做爲培訓的基礎
軟件體系結構是可傳遞和可重用的模型
3.軟件體系結構的發展史
無體系結構設計階段:以彙編語言進行小規模應用程序開發爲特徵
萌芽階段:出現了程序結構設計主題,以控制流圖和數據流圖構成軟件結構爲特徵
初期階段:出現了從不一樣側面描述系統的結構模型,以UML爲典型表明
高級階段:以描述系統的高層抽象結構爲中心,不關心具體的建模細節,劃分了體系結構模型與傳統軟件結構的界限,該階段以Kruchten提出的「4+1」模型爲標誌
4.軟件體系結構的評價方法
體系結構權衡分析方法(ATAM方法)architecture tradeoff analysis method
軟件體系結構分析方法(SAAM方法)software architecture analysis method
中間設計的積極評審(ARID方法)active reviews for intermediate design