版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件體系結(jié)構(gòu)清華大學(xué)出版社關(guān)于教材
出版社:清華大學(xué)出版社
作者:張友生課程內(nèi)容
軟件體系結(jié)構(gòu)概論
軟件體系結(jié)構(gòu)建模
軟件體系結(jié)構(gòu)風(fēng)格
軟件體系結(jié)構(gòu)描述
動(dòng)態(tài)軟件體系結(jié)構(gòu)
Web服務(wù)體系結(jié)構(gòu)
基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)
軟件體系結(jié)構(gòu)的分析與測(cè)試
軟件體系結(jié)構(gòu)評(píng)估
軟件產(chǎn)品線(xiàn)體系結(jié)構(gòu)
軟件危機(jī)的表現(xiàn)
◎軟件成本日益增長(zhǎng)◎開(kāi)發(fā)進(jìn)度難以控制◎軟件質(zhì)量差◎軟件維護(hù)困難第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的表現(xiàn)
◎軟件成本日益增長(zhǎng)
20世紀(jì)50年代,軟件成本在整個(gè)計(jì)算機(jī)系統(tǒng)成本中所占的比例為10%-20%。到20世紀(jì)60年代中期,軟件成本在計(jì)算機(jī)系統(tǒng)中所占的比例已經(jīng)增長(zhǎng)到50%左右。而且,該數(shù)字還在不斷地遞增,下面是一組來(lái)自美國(guó)空軍計(jì)算機(jī)系統(tǒng)的數(shù)據(jù):1955年,軟件費(fèi)用約占總費(fèi)用的18%,1970年達(dá)到60%,1975年達(dá)到72%,1980年達(dá)到80%,1985年達(dá)到85%左右。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的表現(xiàn)
◎開(kāi)發(fā)進(jìn)度難以控制
由于軟件是邏輯、智力產(chǎn)品,軟件的開(kāi)發(fā)需建立龐大的邏輯體系,這是與其他產(chǎn)品的生產(chǎn)不一樣的。在軟件開(kāi)發(fā)過(guò)程中,用戶(hù)需求變化等各種意想不到的情況層出不窮,令軟件開(kāi)發(fā)過(guò)程很難保證按預(yù)定的計(jì)劃實(shí)現(xiàn),給項(xiàng)目計(jì)劃和論證工作帶來(lái)了很大的困難。盲目增加軟件開(kāi)發(fā)人員并不能成比例地提高軟件開(kāi)發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、通信、培訓(xùn)和管理等方面的問(wèn)題將更為嚴(yán)重。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的表現(xiàn)
◎軟件質(zhì)量差
軟件項(xiàng)目即使能按預(yù)定日期完成,結(jié)果卻不盡人意。1965年至1970年,美國(guó)范登堡基地發(fā)射火箭多次失敗,絕大部分故障是由應(yīng)用程序錯(cuò)誤造成的。在“軟件作坊”里,由于缺乏工程化思想的指導(dǎo),程序員幾乎總是習(xí)慣性地以自己的想法去代替用戶(hù)對(duì)軟件的需求,軟件設(shè)計(jì)帶有隨意性,很多功能只是程序員的“一廂情愿”而已,這是造成軟件不能令人滿(mǎn)意的重要因素。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的表現(xiàn)
◎軟件維護(hù)困難由于在軟件設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,沒(méi)有嚴(yán)格遵循軟件開(kāi)發(fā)標(biāo)準(zhǔn),各種隨意性很大,沒(méi)有完整的真實(shí)反映系統(tǒng)狀況的記錄文檔,給軟件維護(hù)造成了巨大的困難。特別是在軟件使用過(guò)程中,原來(lái)的開(kāi)發(fā)人員可能因各種原因已經(jīng)離開(kāi)原來(lái)的開(kāi)發(fā)組織,使得軟件幾乎不可維護(hù)。有資料表明,工業(yè)界為維護(hù)軟件支付的費(fèi)用占全部硬件和軟件費(fèi)用的40%-75%。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的原因
◎用戶(hù)需求不明確◎缺乏正確的理論指導(dǎo)◎軟件規(guī)模越來(lái)越大◎軟件復(fù)雜度越來(lái)越高第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
◎用戶(hù)需求不明確
在軟件開(kāi)發(fā)完成之前,用戶(hù)不清楚軟件的具體需求;用戶(hù)對(duì)軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯(cuò)誤;
在軟件開(kāi)發(fā)過(guò)程中,用戶(hù)還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;開(kāi)發(fā)人員對(duì)用戶(hù)需求的理解與用戶(hù)本來(lái)愿望有差異。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的原因
◎缺乏正確的理論指導(dǎo)缺乏有力的方法學(xué)和工具方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開(kāi)發(fā)過(guò)程是復(fù)雜的邏輯思維過(guò)程,其產(chǎn)品極大程度地依賴(lài)于開(kāi)發(fā)人員高度的智力投入。由于過(guò)分地依靠程序設(shè)計(jì)人員在軟件開(kāi)發(fā)過(guò)程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個(gè)性化,也是發(fā)生軟件危機(jī)的一個(gè)重要原因。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的原因
◎軟件規(guī)模越來(lái)越大隨著軟件應(yīng)用范圍的增廣,軟件規(guī)模愈來(lái)愈大。大型軟件項(xiàng)目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開(kāi)發(fā)大型軟件系統(tǒng)的經(jīng)驗(yàn),而多數(shù)軟件開(kāi)發(fā)人員又缺乏管理方面的經(jīng)驗(yàn)。各類(lèi)人員的信息交流不及時(shí)、不準(zhǔn)確、有時(shí)還會(huì)產(chǎn)生誤解。軟件項(xiàng)目開(kāi)發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件的全部關(guān)系和各個(gè)分支,因此容易產(chǎn)生疏漏和錯(cuò)誤。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的原因
◎軟件復(fù)雜度越來(lái)越高
軟件不僅僅是在規(guī)模上快速地發(fā)展擴(kuò)大,而且其復(fù)雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類(lèi)智力的局限性,導(dǎo)致人們無(wú)力處理“復(fù)雜問(wèn)題”。所謂“復(fù)雜問(wèn)題”的概念是相對(duì)的,一旦人們采用先進(jìn)的組織形式、開(kāi)發(fā)方法和工具提高了軟件開(kāi)發(fā)效率和能力,新的、更大的、更復(fù)雜的問(wèn)題又?jǐn)[在人們的面前。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
軟件危機(jī)的原因
如何克服軟件危機(jī)
人們面臨的不光是技術(shù)問(wèn)題,更重要的是管理問(wèn)題。管理不善必然導(dǎo)致失敗。要提高軟件開(kāi)發(fā)效率,提高軟件產(chǎn)品質(zhì)量,必須采用工程化的開(kāi)發(fā)方法與工業(yè)化的生產(chǎn)技術(shù)。在技術(shù)上,應(yīng)該采用基于重用的軟件生產(chǎn)技術(shù);在管理上,應(yīng)該采用多維的工程管理模式。第1章軟件體系結(jié)構(gòu)概論1.1從軟件危機(jī)談起
構(gòu)件模型及實(shí)現(xiàn)
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件的定義構(gòu)件是指語(yǔ)義完整、語(yǔ)法正確和有可重用價(jià)值的單位軟件,是軟件重用過(guò)程中可以明確辨識(shí)的系統(tǒng);結(jié)構(gòu)上,它是語(yǔ)義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體。
構(gòu)件模型及實(shí)現(xiàn)第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件模型的三個(gè)主要流派
OMG(ObjectManagementGroup,對(duì)象管理集團(tuán))的CORBA(CommonObjectRequestBrokerArchitecture,通用對(duì)象請(qǐng)求代理結(jié)構(gòu))Sun的EJB(EnterpriseJavaBean)Microsoft的DCOM(DistributedComponentObjectModel,分布式構(gòu)件對(duì)象模型)。
構(gòu)件模型及實(shí)現(xiàn)
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎青鳥(niǎo)構(gòu)件模型
構(gòu)件獲取第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用從現(xiàn)有構(gòu)件中獲得符合要求的構(gòu)件,直接使用或作適應(yīng)性修改,得到可重用的構(gòu)件;通過(guò)遺留工程,將具有潛在重用價(jià)值的構(gòu)件提取出來(lái),得到可重用的構(gòu)件;從市場(chǎng)上購(gòu)買(mǎi)現(xiàn)成的商業(yè)構(gòu)件,即COTS(CommercialOff-The-Shell)構(gòu)件;開(kāi)發(fā)新的符合要求的構(gòu)件。
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件描述◎構(gòu)件分類(lèi)與組織◎人員及權(quán)限管理
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件描述構(gòu)件模型是對(duì)構(gòu)件本質(zhì)的抽象描述,主要是為構(gòu)件的制作與構(gòu)件的重用提供依據(jù);從管理角度出發(fā),也需要對(duì)構(gòu)件進(jìn)行描述,例如:實(shí)現(xiàn)方式、實(shí)現(xiàn)體、注釋、生產(chǎn)者、生產(chǎn)日期、大小、價(jià)格、版本和關(guān)聯(lián)構(gòu)件等信息,它們與構(gòu)件模型共同組成了對(duì)構(gòu)件的完整描述。
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件分類(lèi)與組織
關(guān)鍵字分類(lèi)法
刻面分類(lèi)法
超文本組織方法
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎關(guān)鍵字分類(lèi)法
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎刻面分類(lèi)法
使用環(huán)境
應(yīng)用領(lǐng)域
功能
層次
表示方法
構(gòu)件管理
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎超文本組織法
構(gòu)件管理第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎人員及權(quán)限管理一般來(lái)講,構(gòu)件庫(kù)系統(tǒng)可包括五類(lèi)用戶(hù),即注冊(cè)用戶(hù)、公共用戶(hù)、構(gòu)件提交者、一般系統(tǒng)管理員和超級(jí)系統(tǒng)管理員。
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎檢索與提取構(gòu)件◎理解與評(píng)價(jià)構(gòu)件◎修改構(gòu)件◎構(gòu)件組裝
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎檢索與提取構(gòu)件
基于關(guān)鍵字的檢索
刻面檢索法
超文本檢索法
其他檢索方法
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎理解與評(píng)價(jià)構(gòu)件
構(gòu)件的功能與行為
相關(guān)的領(lǐng)域知識(shí)
可適應(yīng)性約束條件與例外情形
可以預(yù)見(jiàn)的修改部分及修改方法
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎修改構(gòu)件理想的情形是對(duì)庫(kù)中的構(gòu)件不作修改而直接用于新的軟件項(xiàng)目。但是,在大多數(shù)情況下,必須對(duì)構(gòu)件進(jìn)行或多或少的修改,以適應(yīng)新的需求。為了減少構(gòu)件修改的工作量,要求開(kāi)發(fā)人員盡量使構(gòu)件的功能、行為和接口設(shè)計(jì)更為抽象化、通用化和參數(shù)化。
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件組裝
基于功能的組裝技術(shù)
基于數(shù)據(jù)的組裝技術(shù)
面向?qū)ο蟮慕M裝技術(shù)
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件組裝
基于功能的組裝技術(shù)
基于功能的組裝技術(shù)采用子程序調(diào)用和參數(shù)傳遞的方式將構(gòu)件組裝起來(lái)。它要求庫(kù)中的構(gòu)件以子程序/過(guò)程/函數(shù)的形式出現(xiàn),并且接口說(shuō)明必須清晰。當(dāng)使用這種組裝技術(shù)進(jìn)行軟件開(kāi)發(fā)時(shí),開(kāi)發(fā)人員首先應(yīng)對(duì)目標(biāo)軟件系統(tǒng)進(jìn)行功能分解,將系統(tǒng)分解為強(qiáng)內(nèi)聚、松耦合的功能模塊。然后根據(jù)各模塊的功能需求提取構(gòu)件,對(duì)它進(jìn)行適應(yīng)性修改后再掛接在上述功能分解框架中。
構(gòu)件重用第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件組裝
基于數(shù)據(jù)的組裝技術(shù)
首先根據(jù)當(dāng)前軟件問(wèn)題的核心數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)出一個(gè)框架,然后根據(jù)框架中各結(jié)點(diǎn)的需求提取構(gòu)件并進(jìn)行適應(yīng)性修改,再將構(gòu)件逐個(gè)分配至框架中的適當(dāng)位置。此后,構(gòu)件的組裝方式仍然是傳統(tǒng)的子程序調(diào)用與參數(shù)傳遞。這種組裝技術(shù)也要求庫(kù)中構(gòu)件以子程序形式出現(xiàn),但它所依賴(lài)的軟件設(shè)計(jì)方法不再是功能分解,而是面向數(shù)據(jù)的設(shè)計(jì)方法,例如Jackson系統(tǒng)開(kāi)發(fā)方法。
構(gòu)件重用
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用◎構(gòu)件組裝
面向?qū)ο蟮慕M裝技術(shù)
·構(gòu)造法在子類(lèi)中引進(jìn)基類(lèi)的對(duì)象作為子類(lèi)的成員變量,然后在子類(lèi)中通過(guò)成員變量重用基類(lèi)的屬性和方法。
·子類(lèi)法將新子類(lèi)直接說(shuō)明為庫(kù)中基類(lèi)的子類(lèi),通過(guò)繼承和修改基類(lèi)的屬性與行為完成新子類(lèi)的定義。
軟件重用實(shí)例
第1章軟件體系結(jié)構(gòu)概論1.2構(gòu)件與軟件重用自學(xué)
背景資料
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎隨著軟件系統(tǒng)規(guī)模越來(lái)越大、越來(lái)越復(fù)雜,整個(gè)系統(tǒng)的結(jié)構(gòu)和規(guī)格說(shuō)明顯得越來(lái)越重要。
◎?qū)τ诖笠?guī)模的復(fù)雜軟件系統(tǒng)來(lái)說(shuō),對(duì)總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和規(guī)格說(shuō)明比起對(duì)計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得明顯重要得多。◎?qū)浖w系結(jié)構(gòu)的系統(tǒng)、深入的研究將會(huì)成為提高軟件生產(chǎn)率和解決軟件維護(hù)問(wèn)題的新的最有希望的途徑。
背景資料
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎事實(shí)上,軟件總是有體系結(jié)構(gòu)的,不存在沒(méi)有體系結(jié)構(gòu)的軟件?!蜍浖w系結(jié)構(gòu)雖脫胎于軟件工程,但其形成同時(shí)借鑒了計(jì)算機(jī)體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很多寶貴的思想和方法,最近幾年軟件體系結(jié)構(gòu)研究已完全獨(dú)立于軟件工程的研究,成為計(jì)算機(jī)科學(xué)的一個(gè)最新的研究方向和獨(dú)立學(xué)科分支。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎DewaynePerry和A1exanderWo1f
軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。
處理構(gòu)件負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組合連接起來(lái)。
這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方法在其他的定義和方法中基本上得到保持。第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎MaryShaw和DavidGarlan
軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過(guò)程中的一個(gè)層次,這一層次超越計(jì)算過(guò)程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。體系結(jié)構(gòu)問(wèn)題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計(jì)元素分配特定功能,設(shè)計(jì)元素的組織,規(guī)模和性能,在各設(shè)計(jì)方案間進(jìn)行選擇等。軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和描述方面的一些問(wèn)題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計(jì)構(gòu)件功能定義,物理分布與合成,設(shè)計(jì)方案的選擇、評(píng)估與實(shí)現(xiàn)等。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎Kruchten
軟件體系結(jié)構(gòu)有四個(gè)角度,它們從不同方面對(duì)系統(tǒng)進(jìn)行描述:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述了一個(gè)系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu);代碼角度描述了各種代碼和庫(kù)函數(shù)在開(kāi)發(fā)環(huán)境中的組織。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎HayesRoth
軟件體系結(jié)構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行為來(lái)描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎DavidGarlan和DewnePerry
軟件體系結(jié)構(gòu)是一個(gè)程序/系統(tǒng)各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進(jìn)行設(shè)計(jì)的原則和隨時(shí)間演化的指導(dǎo)方針。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎BarryBoehm
軟件體系結(jié)構(gòu)包括一個(gè)軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合;一個(gè)系統(tǒng)需求說(shuō)明的集合;一個(gè)基本原理用以說(shuō)明這一構(gòu)件,互聯(lián)和約束能夠滿(mǎn)足系統(tǒng)需求。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎Bass,Ctements和Kazman
軟件體系結(jié)構(gòu)包括一個(gè)或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見(jiàn)特性及其相互關(guān)系。其中,“軟件外部的可見(jiàn)特性”是指軟件構(gòu)件提供的服務(wù)、性能、特性、錯(cuò)誤處理、共享資源使用等。
軟件體系結(jié)構(gòu)的定義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎我們的定義軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成。軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。
軟件體系結(jié)構(gòu)的定義
軟件體系結(jié)構(gòu)的意義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段軟件體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關(guān)人員(即使不是全部)能把它作為建立一個(gè)互相理解的基礎(chǔ),形成統(tǒng)一認(rèn)識(shí),互相交流。體系結(jié)構(gòu)提供了一種共同語(yǔ)言來(lái)表達(dá)各種關(guān)注和協(xié)商,進(jìn)而對(duì)大型復(fù)雜系統(tǒng)能進(jìn)行理智的管理。這對(duì)項(xiàng)目最終的質(zhì)量和使用有極大的影響。第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn)(1)軟件體系結(jié)構(gòu)明確了對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件(2)軟件體系結(jié)構(gòu)決定了開(kāi)發(fā)和維護(hù)組織的組織結(jié)構(gòu)(3)軟件體系結(jié)構(gòu)制約著系統(tǒng)的質(zhì)量屬性(4)通過(guò)研究軟件體系結(jié)構(gòu)可能預(yù)測(cè)軟件的質(zhì)量(5)軟件體系結(jié)構(gòu)使推理和控制更改更簡(jiǎn)單(6)軟件體系結(jié)構(gòu)有助于循序漸進(jìn)的原型設(shè)計(jì)(7)軟件體系結(jié)構(gòu)可以作為培訓(xùn)的基礎(chǔ)
軟件體系結(jié)構(gòu)的意義
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展◎軟件體系結(jié)構(gòu)是可傳遞和可重用的模型軟件體系結(jié)構(gòu)級(jí)的重用意味著體系結(jié)構(gòu)的決策能在具有相似需求的多個(gè)系統(tǒng)中發(fā)生影響,這比代碼級(jí)的重用要有更大的好處。
軟件體系結(jié)構(gòu)的意義
軟件體系結(jié)構(gòu)的發(fā)展史
第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展“無(wú)體系結(jié)構(gòu)”設(shè)計(jì)階段萌芽階段以匯編語(yǔ)言進(jìn)行小規(guī)模應(yīng)用程序開(kāi)發(fā)為特征以描述系統(tǒng)的高層抽象結(jié)構(gòu)為中心,不關(guān)心具體的建模細(xì)節(jié),劃分了體系結(jié)構(gòu)模型與傳統(tǒng)軟件結(jié)構(gòu)的界限,該階段以Kruchten提出的“4+1”模型為標(biāo)志出現(xiàn)了從不同側(cè)面描述系統(tǒng)的結(jié)構(gòu)模型,以UML為典型代表。出現(xiàn)了程序結(jié)構(gòu)設(shè)計(jì)主題,以控制流圖和數(shù)據(jù)流圖構(gòu)成軟件結(jié)構(gòu)為特征高級(jí)階段初期階段第1章軟件體系結(jié)構(gòu)概論1.3體系結(jié)構(gòu)的興起和發(fā)展Perry和Wolf認(rèn)為未來(lái)的年代是研究軟件體系結(jié)構(gòu)的時(shí)代
軟件體系結(jié)構(gòu)的發(fā)展史
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎軟件體系結(jié)構(gòu)描述語(yǔ)言◎體系結(jié)構(gòu)描述構(gòu)造與表示◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證◎體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用◎基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)方法◎特定領(lǐng)域的體系結(jié)構(gòu)框架◎軟件體系結(jié)構(gòu)支持工具◎軟件產(chǎn)品線(xiàn)體系結(jié)構(gòu)◎建立評(píng)價(jià)軟件體系結(jié)構(gòu)的方法第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎軟件體系結(jié)構(gòu)描述語(yǔ)言
ADL提供了具體的語(yǔ)法與刻畫(huà)體系結(jié)構(gòu)的概念框架。ADL使得系統(tǒng)開(kāi)發(fā)者能夠很好地描述他們?cè)O(shè)計(jì)的體系結(jié)構(gòu),以便與他人交流,能夠用提供的工具對(duì)許多實(shí)例進(jìn)行分析。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)描述構(gòu)造與表示(1)
按照一定的描述方法,用體系結(jié)構(gòu)描述語(yǔ)言對(duì)體系結(jié)構(gòu)進(jìn)行說(shuō)明的結(jié)果則稱(chēng)為體系結(jié)構(gòu)的表示,而將描述體系結(jié)構(gòu)的過(guò)程稱(chēng)為體系結(jié)構(gòu)構(gòu)造
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)描述構(gòu)造與表示(2)(1)Kruchten提出的“4+1”模型。(2)Booch從UML的角度給出了一種由設(shè)計(jì)視圖、過(guò)程視圖、實(shí)現(xiàn)視圖和部署視圖,再加上一個(gè)用例視圖構(gòu)成的體系結(jié)構(gòu)描述模型。(3)IEEE于1995年成立了體系結(jié)構(gòu)工作組,起草了體系結(jié)構(gòu)描述框架標(biāo)準(zhǔn)IEEEP1471。(4)Rational從資產(chǎn)重用的角度提出了體系結(jié)構(gòu)描述的規(guī)格說(shuō)明框架。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(1)體系結(jié)構(gòu)分析的內(nèi)容可分為結(jié)構(gòu)分析、功能分析和非功能分析。非功能分析:定量分析方法、推斷分析方法。
Kazman等人提出了一種非功能分析的體系結(jié)構(gòu)分析方法SAAM,并運(yùn)用場(chǎng)景技術(shù),提出了基于場(chǎng)景的體系結(jié)構(gòu)分析方法,而B(niǎo)arbacci等人提出了多質(zhì)量屬性情況下的體系結(jié)構(gòu)質(zhì)量模型、分析與權(quán)衡方法ATAM。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(2)生成一個(gè)滿(mǎn)足軟件需求的體系結(jié)構(gòu)的過(guò)程即為體系結(jié)構(gòu)設(shè)計(jì)。體系結(jié)構(gòu)設(shè)計(jì)過(guò)程的本質(zhì)在于:將系統(tǒng)分解成相應(yīng)的組成成分(如構(gòu)件、連接件),并將這些成分重新組裝成一個(gè)系統(tǒng)。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(3)體系結(jié)構(gòu)設(shè)計(jì)有兩大類(lèi)方法:過(guò)程驅(qū)動(dòng)方法和問(wèn)題列表驅(qū)動(dòng)方法?;谶^(guò)程驅(qū)動(dòng)的體系結(jié)構(gòu)設(shè)計(jì)方法適用范圍廣,易于裁減,具備動(dòng)態(tài)特點(diǎn),通用性與實(shí)踐性強(qiáng)。問(wèn)題列表驅(qū)動(dòng)法的基本思想是枚舉設(shè)計(jì)空間,并考慮設(shè)計(jì)維的相關(guān)性,以此來(lái)選擇體系結(jié)構(gòu)的風(fēng)格。該方法適用于特定領(lǐng)域,是靜態(tài)的,并可以實(shí)現(xiàn)量化體系結(jié)構(gòu)設(shè)計(jì)空間。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(4)體系結(jié)構(gòu)設(shè)計(jì)研究的重點(diǎn)內(nèi)容之一就是體系結(jié)構(gòu)風(fēng)格或模式,體系結(jié)構(gòu)模式在本質(zhì)上反映了一些特定的元素、按照特定的方式組成一個(gè)特定的結(jié)構(gòu),該結(jié)構(gòu)應(yīng)有利于上下文環(huán)境下的特定問(wèn)題的解決。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(5)體系結(jié)構(gòu)模式分為兩個(gè)大類(lèi):固定術(shù)語(yǔ)和參考模型。已知的固定術(shù)語(yǔ)類(lèi)的體系結(jié)構(gòu)模型包括管道過(guò)濾器、客戶(hù)/服務(wù)器、面向?qū)ο?、黑板、分層、?duì)等模式、狀態(tài)轉(zhuǎn)換、一些派生的固定術(shù)語(yǔ)類(lèi)的體系結(jié)構(gòu)模式,包括GenVoca,C2和REST等;而參考模型則相對(duì)較多,常常與特定領(lǐng)域相關(guān)。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證(6)
體系結(jié)構(gòu)測(cè)試著重于仿真系統(tǒng)模型,解決體系結(jié)構(gòu)層的主要問(wèn)題。由于測(cè)試的抽象層次不同,體系結(jié)構(gòu)測(cè)試策略可以分為單元/子系統(tǒng)/集成/驗(yàn)收測(cè)試等階段的測(cè)試策略。在體系結(jié)構(gòu)集成測(cè)試階段,Debra等人提出了一組針對(duì)體系結(jié)構(gòu)的測(cè)試覆蓋標(biāo)準(zhǔn),PaolaInveradi提出了一種基于CHAM的體系結(jié)構(gòu)語(yǔ)義驗(yàn)證技術(shù)。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用(1)體系結(jié)構(gòu)發(fā)現(xiàn)解決如何從已經(jīng)存在的系統(tǒng)中提取軟件的體系結(jié)構(gòu),屬于逆向工程范疇。
Waters等人提出了一種迭代式體系結(jié)構(gòu)發(fā)現(xiàn)過(guò)程,即由不同的人員對(duì)系統(tǒng)進(jìn)行描述,然后對(duì)這些描述進(jìn)行分類(lèi)并融合,發(fā)現(xiàn)并解除沖突,將體系結(jié)構(gòu)新屬性加入到已有的體系結(jié)構(gòu)模型中,并重復(fù)該過(guò)程直至體系結(jié)構(gòu)描述充分。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用(2)
由于系統(tǒng)需求、技術(shù)、環(huán)境、分布等因素的變化而最終導(dǎo)致軟件體系結(jié)構(gòu)的變動(dòng),稱(chēng)之為軟件體系結(jié)構(gòu)演化。軟件系統(tǒng)在運(yùn)行時(shí)刻的體系結(jié)構(gòu)變化稱(chēng)為體系結(jié)構(gòu)的動(dòng)態(tài)性,而將體系結(jié)構(gòu)的靜態(tài)修改稱(chēng)為體系結(jié)構(gòu)擴(kuò)展。體系結(jié)構(gòu)擴(kuò)展與體系結(jié)構(gòu)動(dòng)態(tài)性都是體系結(jié)構(gòu)適應(yīng)性和演化性的研究范疇。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用(3)
體系結(jié)構(gòu)重用屬于設(shè)計(jì)重用,比代碼重用更抽象。由于軟件體系結(jié)構(gòu)是系統(tǒng)的高層抽象,反映了系統(tǒng)的主要組成元素及其交互關(guān)系,因而較算法更穩(wěn)定,更適合于重用。體系結(jié)構(gòu)模式就是體系結(jié)構(gòu)重用研究的一個(gè)成果,而體系結(jié)構(gòu)參考模型則是特定域軟件體系結(jié)構(gòu)的重用的成熟的象征。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)方法(1)
在引入了體系結(jié)構(gòu)的軟件開(kāi)發(fā)之后,應(yīng)用系統(tǒng)的構(gòu)造過(guò)程變?yōu)椤皢?wèn)題定義—>軟件需求—>軟件體系結(jié)構(gòu)—>軟件設(shè)計(jì)—>軟件實(shí)現(xiàn)”,可以認(rèn)為軟件體系結(jié)構(gòu)架起了軟件需求與軟件設(shè)計(jì)之間的一座橋梁。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)方法(2)軟件開(kāi)發(fā)模型是跨越整個(gè)軟件生存周期的系統(tǒng)開(kāi)發(fā)、運(yùn)行、維護(hù)所實(shí)施的全部工作和任務(wù)的結(jié)構(gòu)框架,給出了軟件開(kāi)發(fā)活動(dòng)各階段之間的關(guān)系。目前,常見(jiàn)的軟件開(kāi)發(fā)模型大致可分為三種類(lèi)型:(1)以軟件需求完全確定為前提的瀑布模型。(2)在軟件開(kāi)發(fā)初始階段只能提供基本需求時(shí)采用的漸進(jìn)式開(kāi)發(fā)模型,如螺旋模型等。(3)以形式化開(kāi)發(fā)方法為基礎(chǔ)的變換模型。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)方法(3)所有開(kāi)發(fā)方法都是要解決需求與實(shí)現(xiàn)之間的差距。但是,這三種類(lèi)型的軟件開(kāi)發(fā)模型都存在這樣或那樣的缺陷,不能很好地支持基于軟件體系結(jié)構(gòu)的開(kāi)發(fā)過(guò)程。在基于構(gòu)件和基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)逐漸成為主流情況下,已經(jīng)出現(xiàn)了基于構(gòu)件的軟件工程。但是,對(duì)體系結(jié)構(gòu)的描述、表示、設(shè)計(jì)和分析以及驗(yàn)證等內(nèi)容的研究還相對(duì)不足,隨著需求復(fù)雜化及其演化,切實(shí)可行的體系結(jié)構(gòu)設(shè)計(jì)規(guī)則與方法將更為重要。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀◎特定領(lǐng)域的體系結(jié)構(gòu)框架
特定領(lǐng)域的體系結(jié)構(gòu)是將體系結(jié)構(gòu)理論應(yīng)用到具體領(lǐng)域的過(guò)程,常見(jiàn)的DSSA有:CASE體系結(jié)構(gòu)、CAD軟件的參考模型、信息系統(tǒng)的參考體系結(jié)構(gòu)、網(wǎng)絡(luò)體系結(jié)構(gòu)DSSA、機(jī)場(chǎng)信息系統(tǒng)的體系結(jié)構(gòu)和信息處理DSSA等。國(guó)內(nèi)學(xué)者提出的DSSA有:北京郵電大學(xué)周瑩新博士提出的電信軟件的體系結(jié)構(gòu),北京航空航天大學(xué)金茂忠教授等人提出的測(cè)試環(huán)境的體系結(jié)構(gòu)等。
軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
第1章軟件體系結(jié)構(gòu)概論1.4體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版廣東省土地估價(jià)師協(xié)會(huì)土地估價(jià)師職業(yè)資格認(rèn)證合同3篇
- 科技孵化器在創(chuàng)新創(chuàng)業(yè)中的支持與服務(wù)
- 2024藥店倉(cāng)儲(chǔ)物流人員勞動(dòng)合同范本:藥店倉(cāng)儲(chǔ)合同3篇
- 二零二五年度高標(biāo)準(zhǔn)大棚建設(shè)與配套設(shè)施合同3篇
- 二零二五年度大連離婚協(xié)議書(shū)專(zhuān)業(yè)起草與備案合同4篇
- 個(gè)性化電商倉(cāng)儲(chǔ)物流自動(dòng)化升級(jí)合同(2024版)3篇
- 2025年度汽車(chē)安全帶保養(yǎng)與更換服務(wù)合同4篇
- 2025年度拆遷房買(mǎi)賣(mài)合同書(shū)(含環(huán)保節(jié)能要求)4篇
- 二零二五年度打樁施工合同履約保證金協(xié)議3篇
- 2025年度汽車(chē)報(bào)廢回收處理合同示范4篇
- 2024-2030年中國(guó)海泡石產(chǎn)業(yè)運(yùn)行形勢(shì)及投資規(guī)模研究報(bào)告
- 動(dòng)物醫(yī)學(xué)類(lèi)專(zhuān)業(yè)生涯發(fā)展展示
- 2024年同等學(xué)力申碩英語(yǔ)考試真題
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 非遺文化走進(jìn)數(shù)字展廳+大數(shù)據(jù)與互聯(lián)網(wǎng)系創(chuàng)業(yè)計(jì)劃書(shū)
- 科普知識(shí)進(jìn)社區(qū)活動(dòng)總結(jié)與反思
- 現(xiàn)金日記賬模板(帶公式)
- 消化內(nèi)科專(zhuān)科監(jiān)測(cè)指標(biāo)匯總分析
- 混凝土結(jié)構(gòu)工程施工質(zhì)量驗(yàn)收規(guī)范
- 肝性腦病患者的護(hù)理措施課件
- 大跨度斜拉橋上部結(jié)構(gòu)施工技術(shù)(圖文并茂)
評(píng)論
0/150
提交評(píng)論