《软件体系结构》 第一章 软件体系结构概论
? ? 開(kāi)始復(fù)習(xí)《軟件體系結(jié)構(gòu)》,雖然為了考試要背誦的內(nèi)容比較多,但是從軟件工程到軟件測(cè)試,我發(fā)現(xiàn)這樣的課程,總可以增強(qiáng)自己的理解能力,更重要的是對(duì)于“軟件工程”的認(rèn)識(shí)。天氣炎熱,能靜下心來(lái)復(fù)習(xí)也是一件美好的事情。小毛蟲(chóng),加油嘍。
一、軟件危機(jī) software crisis
???????軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)(development)和維護(hù)(maintenance)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題。
1.軟件危機(jī)的表現(xiàn)(4個(gè))
????1)???????軟件成本日益增長(zhǎng)
????2)???????開(kāi)發(fā)進(jìn)度難以控制
????3)???????軟件質(zhì)量差
????4)???????軟件維護(hù)困難
2.軟件危機(jī)的成因(4)
????1)???????用戶需求不明確
????2)???????缺乏正確的理論指導(dǎo)
????3)???????軟件規(guī)模越來(lái)越大
????4)???????軟件復(fù)雜度越來(lái)越高
3、如何克服軟件危機(jī)
?????? 人們面臨的不僅是技術(shù)問(wèn)題,更重要的是管理問(wèn)題。應(yīng)用現(xiàn)代工程的概念、原理、技術(shù)、方法進(jìn)行計(jì)算機(jī)軟件的開(kāi)發(fā)、管理和維護(hù)。
?????? 軟件工程是用工程、科學(xué)、數(shù)學(xué)的原則與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)以及管理方法。三要素:方法、工程、過(guò)程。
二、構(gòu)件與軟件重用
1.要提高軟件的開(kāi)發(fā)效率,提高軟件的開(kāi)發(fā)質(zhì)量,必須采用工程化的開(kāi)發(fā)方法與工業(yè)化的生產(chǎn)技術(shù)。包括技術(shù)和管理兩方面的問(wèn)題。技術(shù)上:基于重用的軟件生產(chǎn)技術(shù);管理上:采用多維的工程管理模式。
2.要真正解決軟件危機(jī),實(shí)現(xiàn)軟件工業(yè)化生產(chǎn)是唯一可行的途徑,其中構(gòu)件是核心和基礎(chǔ),重用是必須手段。
3.軟件重用
定義:
????軟件重用是指在兩次或多次不同的軟件開(kāi)發(fā)過(guò)程中重復(fù)使用相同或相近軟件元素的過(guò)程。
??? 軟件元素包括程序代碼、測(cè)試用例、設(shè)計(jì)文檔、設(shè)計(jì)過(guò)程、需求分析文檔甚至領(lǐng)域知識(shí)。通常,把這種可重用的元素稱作軟構(gòu)件(software component),簡(jiǎn)稱構(gòu)件。可重用的軟件元素越大,我們就說(shuō)重用的力度越
意義:
?????? ?★提高軟件生產(chǎn)率,降低開(kāi)發(fā)成本;
??? ????★ 有助于改善質(zhì)量;
??????? ★ 提高軟件的靈活性和標(biāo)準(zhǔn)化程度
4.構(gòu)件
定義:
????語(yǔ)義完整、語(yǔ)法正確和有可重用價(jià)值的單位軟件,是軟件重用過(guò)程中可以明確辨識(shí)的系統(tǒng);結(jié)構(gòu)上,它是語(yǔ)義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體。簡(jiǎn)單的說(shuō),構(gòu)件是具有一定的功能,能夠獨(dú)立工作或能同其它構(gòu)件裝配起來(lái)協(xié)調(diào)工作的程序體,構(gòu)件的使用同它的開(kāi)發(fā)、生產(chǎn)無(wú)關(guān)。
????構(gòu)件將抽象的程度提到一個(gè)更高的層次,是對(duì)一組類的組合進(jìn)行封裝,并代表完成一個(gè)或多個(gè)功能的特定服務(wù),也為用戶提供了多個(gè)接口。整個(gè)構(gòu)件隱藏了具體的實(shí)現(xiàn),只用接口對(duì)外提供服務(wù)。
5.構(gòu)件模型model
定義:
????構(gòu)件模型是對(duì)構(gòu)件本質(zhì)特征的抽象描述。
三大流派:
????(1)OMG(ObjectManagement Group,對(duì)象管理集團(tuán))的CORBA(Common Object Request BrokerArchitecture,通用對(duì)象請(qǐng)求代理結(jié)構(gòu))
????(2)Sun的EJB(Enterprise Java Bean)
????(3)Microsoft的DCOM(DistributedComponent Object Model,分布式構(gòu)件對(duì)象模型)
國(guó)內(nèi):青鳥(niǎo)構(gòu)件模型
?
6.構(gòu)件的獲取途徑
????1)???????從現(xiàn)有構(gòu)件中獲得符合要求的構(gòu)件,直接使用或作適應(yīng)性修改,得到可重用的構(gòu)件;
????2)???????通過(guò)遺留工程,將具有潛在重用價(jià)值的構(gòu)件提取出來(lái),得到可重用的構(gòu)件;
????3)?????? 從市場(chǎng)上購(gòu)買(mǎi)現(xiàn)成的商業(yè)構(gòu)件,即COTS(Commercial Off-The-Shell)構(gòu)件;
????4)???????開(kāi)發(fā)新的符合要求的構(gòu)件。
7.構(gòu)件的分類方法
????1)???????關(guān)鍵字分類法 keyword classification
????2)???????刻面分類法 ??faceted classification
????3)???????超文本組織方法 hypertext classification
8.構(gòu)件重用步驟
????1)???????檢索與提取構(gòu)件
????2)???????理解與評(píng)價(jià)構(gòu)件
????3)???????修改構(gòu)件
????4)???????構(gòu)件組裝
9.構(gòu)件組裝技術(shù)
????1)???????基于功能的組裝技術(shù):采用子程序調(diào)用和參數(shù)傳遞的方式將構(gòu)件組裝起來(lái);
????2)???????基于數(shù)據(jù)的組裝技術(shù):也要求庫(kù)中構(gòu)件以子程序形式出現(xiàn),但它所依賴的軟件設(shè)計(jì)方法不再是功能分解,而是面向數(shù)據(jù)的設(shè)計(jì)方法;
????3)???????面向?qū)ο蟮慕M裝技術(shù):構(gòu)造法、子類法。
三、軟件體系結(jié)構(gòu)的發(fā)展
????事實(shí)上,軟件總是有體系結(jié)構(gòu)的,不存在沒(méi)有體系結(jié)構(gòu)的軟件。
1.軟件體系結(jié)構(gòu)的定義
????軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成。
2.軟件體系結(jié)構(gòu)的意義(需要詳細(xì)闡述)
????1)???????體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段
????2)???????體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn)
??????????????軟件體系結(jié)構(gòu)明確了對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件
??????????????軟件體系結(jié)構(gòu)決定了開(kāi)發(fā)和維護(hù)組織的組織結(jié)構(gòu)
??????????????軟件體系結(jié)構(gòu)制約著系統(tǒng)的質(zhì)量屬性
??????????????通過(guò)研究軟件體系結(jié)構(gòu)可能預(yù)測(cè)軟件的質(zhì)量
??????????????軟件體系結(jié)構(gòu)使推理和控制更改更簡(jiǎn)單
??????????????軟件體系結(jié)構(gòu)有助于循序漸進(jìn)的原型設(shè)計(jì)
??????????????軟件體系結(jié)構(gòu)可以作為培訓(xùn)的基礎(chǔ)
????3)???????軟件體系結(jié)構(gòu)是可傳遞和可重用的模型
3.軟件體系結(jié)構(gòu)的發(fā)展史(四個(gè)階段)
????a)????????無(wú)體系結(jié)構(gòu)設(shè)計(jì)階段:以匯編語(yǔ)言進(jìn)行小規(guī)模應(yīng)用程序開(kāi)發(fā)為特征
????b)???????萌芽階段:出現(xiàn)了程序結(jié)構(gòu)設(shè)計(jì)主題,以控制流圖和數(shù)據(jù)流圖構(gòu)成軟件結(jié)構(gòu)為特征
????c)????????初期階段:出現(xiàn)了從不同側(cè)面描述系統(tǒng)的結(jié)構(gòu)模型,以UML為典型代表
????d)???????高級(jí)階段:以描述系統(tǒng)的高層抽象結(jié)構(gòu)為中心,不關(guān)心具體的建模細(xì)節(jié),劃分了體系結(jié)構(gòu)模型與傳統(tǒng)軟件結(jié)構(gòu)的界限,該階段以Kruchten提出的“4+1”模型為標(biāo)志
4.軟件體系結(jié)構(gòu)的評(píng)價(jià)方法
????(1)體系結(jié)構(gòu)權(quán)衡分析方法(ATAM方法)architecture tradeoff analysis method
????(2)軟件體系結(jié)構(gòu)分析方法(SAAM方法)software architecture analysis method
????(3)中間設(shè)計(jì)的積極評(píng)審(ARID方法)active reviews for intermediate design
?
?
?
總結(jié)
以上是生活随笔為你收集整理的《软件体系结构》 第一章 软件体系结构概论的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Visual.Assist.X.V10.
- 下一篇: Web项目练习总结(错误校正篇)