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