《软件体系结构》 第一章 软件体系结构概论
? ? 開始復習《軟件體系結構》,雖然為了考試要背誦的內容比較多,但是從軟件工程到軟件測試,我發現這樣的課程,總可以增強自己的理解能力,更重要的是對于“軟件工程”的認識。天氣炎熱,能靜下心來復習也是一件美好的事情。小毛蟲,加油嘍。
一、軟件危機 software crisis
???????軟件危機是指在計算機軟件的開發(development)和維護(maintenance)過程中遇到的一系列嚴重問題。
1.軟件危機的表現(4個)
????1)???????軟件成本日益增長
????2)???????開發進度難以控制
????3)???????軟件質量差
????4)???????軟件維護困難
2.軟件危機的成因(4)
????1)???????用戶需求不明確
????2)???????缺乏正確的理論指導
????3)???????軟件規模越來越大
????4)???????軟件復雜度越來越高
3、如何克服軟件危機
?????? 人們面臨的不僅是技術問題,更重要的是管理問題。應用現代工程的概念、原理、技術、方法進行計算機軟件的開發、管理和維護。
?????? 軟件工程是用工程、科學、數學的原則與方法研制、維護計算機軟件的有關技術以及管理方法。三要素:方法、工程、過程。
二、構件與軟件重用
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.構件的獲取途徑
????1)???????從現有構件中獲得符合要求的構件,直接使用或作適應性修改,得到可重用的構件;
????2)???????通過遺留工程,將具有潛在重用價值的構件提取出來,得到可重用的構件;
????3)?????? 從市場上購買現成的商業構件,即COTS(Commercial Off-The-Shell)構件;
????4)???????開發新的符合要求的構件。
7.構件的分類方法
????1)???????關鍵字分類法 keyword classification
????2)???????刻面分類法 ??faceted classification
????3)???????超文本組織方法 hypertext classification
8.構件重用步驟
????1)???????檢索與提取構件
????2)???????理解與評價構件
????3)???????修改構件
????4)???????構件組裝
9.構件組裝技術
????1)???????基于功能的組裝技術:采用子程序調用和參數傳遞的方式將構件組裝起來;
????2)???????基于數據的組裝技術:也要求庫中構件以子程序形式出現,但它所依賴的軟件設計方法不再是功能分解,而是面向數據的設計方法;
????3)???????面向對象的組裝技術:構造法、子類法。
三、軟件體系結構的發展
????事實上,軟件總是有體系結構的,不存在沒有體系結構的軟件。
1.軟件體系結構的定義
????軟件體系結構為軟件系統提供了一個結構、行為和屬性的高級抽象,由構成系統的元素的描述、這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。
2.軟件體系結構的意義(需要詳細闡述)
????1)???????體系結構是風險承擔者進行交流的手段
????2)???????體系結構是早期設計決策的體現
??????????????軟件體系結構明確了對系統實現的約束條件
??????????????軟件體系結構決定了開發和維護組織的組織結構
??????????????軟件體系結構制約著系統的質量屬性
??????????????通過研究軟件體系結構可能預測軟件的質量
??????????????軟件體系結構使推理和控制更改更簡單
??????????????軟件體系結構有助于循序漸進的原型設計
??????????????軟件體系結構可以作為培訓的基礎
????3)???????軟件體系結構是可傳遞和可重用的模型
3.軟件體系結構的發展史(四個階段)
????a)????????無體系結構設計階段:以匯編語言進行小規模應用程序開發為特征
????b)???????萌芽階段:出現了程序結構設計主題,以控制流圖和數據流圖構成軟件結構為特征
????c)????????初期階段:出現了從不同側面描述系統的結構模型,以UML為典型代表
????d)???????高級階段:以描述系統的高層抽象結構為中心,不關心具體的建模細節,劃分了體系結構模型與傳統軟件結構的界限,該階段以Kruchten提出的“4+1”模型為標志
4.軟件體系結構的評價方法
????(1)體系結構權衡分析方法(ATAM方法)architecture tradeoff analysis method
????(2)軟件體系結構分析方法(SAAM方法)software architecture analysis method
????(3)中間設計的積極評審(ARID方法)active reviews for intermediate design
?
?
?
總結
以上是生活随笔為你收集整理的《软件体系结构》 第一章 软件体系结构概论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual.Assist.X.V10.
- 下一篇: Web项目练习总结(错误校正篇)