版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件體系結(jié)構(gòu)
(電子教案32學(xué)時(shí))
蔣哲遠(yuǎn)
電子教案2/107課程描述軟件體系結(jié)構(gòu)直接影響著軟件的質(zhì)量和成本,如何獲得一個(gè)良好的體系結(jié)構(gòu)已成為軟件開(kāi)發(fā)中不可缺少的內(nèi)容?!盾浖w系結(jié)構(gòu)》已成為計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)(軟件工程方向)教學(xué)計(jì)劃中一門(mén)抽象性和實(shí)踐性很強(qiáng)的專(zhuān)業(yè)核心課程。該課程的開(kāi)設(shè),是培養(yǎng)學(xué)生對(duì)軟件設(shè)計(jì)和開(kāi)發(fā)的全局把握能力,加深學(xué)生對(duì)軟件本質(zhì)的認(rèn)識(shí),將軟件的質(zhì)量屬性在設(shè)計(jì)階段提前加以驗(yàn)證和評(píng)估,有助于開(kāi)發(fā)不僅能滿足用戶功能要求而且滿足用戶質(zhì)量需求的合格軟件?!盾浖w系結(jié)構(gòu)》電子教案3/107課程安排理論內(nèi)容:基本原理、方法和技術(shù)形式:講授(70%理論+30%案例)、自學(xué)、討論、演示實(shí)踐內(nèi)容:將課程中所學(xué)的重要基本理論和方法用程序和文檔的形式表達(dá)出來(lái)形式:分組(建議四人為一組)、分階段編程實(shí)現(xiàn)和文檔化《軟件體系結(jié)構(gòu)》電子教案4/107課程成績(jī)計(jì)算平時(shí)作業(yè)、課堂紀(jì)律、出勤率30%隨堂開(kāi)卷考試70%考查總成績(jī)=平時(shí)成績(jī)+卷面成績(jī)《軟件體系結(jié)構(gòu)》電子教案5/107推薦教材及主要參考書(shū)推薦教材:張友生編著.軟件體系結(jié)構(gòu)原理、方法與實(shí)踐(第2版).北京:清華大學(xué)出版社,2014《軟件體系結(jié)構(gòu)》電子教案6/107推薦教材及主要參考書(shū)主要參考書(shū):周蘇等編.軟件體系結(jié)構(gòu)與設(shè)計(jì).清華大學(xué)出版社,2013覃征等編.軟件體系結(jié)構(gòu)(第3版).清華大學(xué)出版社,2015MaryShaw,DavidGarlan.SoftwareArchitecture:PerspectivesonanEmergingDiscipline.PrenticeHall,Inc.,1996.(軟件體系結(jié)構(gòu):一門(mén)初露端倪學(xué)科的展望,科學(xué)出版社(影印版),2004.)LenBass,PaulClements,RickKazman.SoftwareArchitectureinPractice(2ndEdition).AddisonWesleyLongman,Inc.,2003.(林·巴斯,保羅·克萊門(mén)茨,瑞克·凱茲曼著,孫學(xué)濤等譯.軟件構(gòu)架實(shí)踐(第二版).清華大學(xué)出版社,2004年)《軟件體系結(jié)構(gòu)》電子教案7/107軟件體系結(jié)構(gòu)課程目錄第1章軟件體系結(jié)構(gòu)概述第2章軟件體系結(jié)構(gòu)建模第3章軟件體系結(jié)構(gòu)風(fēng)格第4章軟件體系結(jié)構(gòu)描述第5章軟件體系結(jié)設(shè)計(jì)第6章文檔化體系結(jié)構(gòu)第7章軟件體系結(jié)構(gòu)評(píng)估第8章軟件產(chǎn)品線體系結(jié)構(gòu)第9章案例分析與設(shè)計(jì)《軟件體系結(jié)構(gòu)》電子教案8/107第1章軟件體系結(jié)構(gòu)概述1.1從軟件危機(jī)談起1.2構(gòu)件與軟件重用1.3體系結(jié)構(gòu)的興起和發(fā)展1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案9/107第1章內(nèi)容摘要1.1從軟件危機(jī)談起
1.2構(gòu)件與軟件重用1.3體系結(jié)構(gòu)的興起和發(fā)展1.4過(guò)程體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案10/107什么是軟件軟件一般認(rèn)為由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集。數(shù)據(jù)結(jié)構(gòu):使程序能夠正確運(yùn)行的數(shù)據(jù)結(jié)構(gòu)。文檔:描述程序研制過(guò)程、方法及使用的文檔。1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案11/107軟件的特點(diǎn)抽象性:邏輯實(shí)體,可記錄,但看不到可復(fù)制性:與開(kāi)發(fā)成本相比,復(fù)制成本很低無(wú)折舊受硬件制約未完全擺脫手工工藝開(kāi)發(fā)費(fèi)用高1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案12/107
軟件=程序+數(shù)據(jù)+文檔
須意識(shí)到:“軟件”≠編程,它有自己的生命周期(lifecycle)。大型軟件系統(tǒng)的開(kāi)發(fā)與其它工程項(xiàng)目如建造橋梁、制造飛機(jī)、輪船等的開(kāi)發(fā)是同理的。
程序=算法+數(shù)據(jù)結(jié)構(gòu)(1960’s)程序=子程序+子程序(1970’s)對(duì)象=算法+數(shù)據(jù)結(jié)構(gòu)
程序=對(duì)象+對(duì)象(1980’s)程序=組件+連接件(1990’s)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案
程序=?13/107“軟件體系結(jié)構(gòu)”你早就知道Client/ServerThree-tierP2PDistributed……1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案14/107建筑體系結(jié)構(gòu)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案15/107建筑體系結(jié)構(gòu)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案16/107計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展
輸入設(shè)備存儲(chǔ)器運(yùn)算器控制器輸出設(shè)備馮.諾依曼結(jié)構(gòu)圖
體系結(jié)構(gòu)的研究:表明該領(lǐng)域逐漸走向成熟1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案17/107ISO七層網(wǎng)絡(luò)模型
1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案18/107構(gòu)建一個(gè)小狗屋可以由一個(gè)人制造的需求:最小模型簡(jiǎn)單的過(guò)程簡(jiǎn)單的工具1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案19/107由一個(gè)團(tuán)體建設(shè),并且需要更高的效率、更精確的時(shí)間限制。需求:
模型
良好定義的過(guò)程
功能強(qiáng)大的工具構(gòu)造一棟房屋1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案20/107構(gòu)建一個(gè)高層建筑1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案21/107早期的結(jié)構(gòu)過(guò)程
有限的理論知識(shí)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案22/107現(xiàn)代的結(jié)構(gòu)進(jìn)步
先進(jìn)的原材料
先進(jìn)的分析范圍萬(wàn)神殿(Pantheon)的五倍范圍奇阿普斯(Cheops)金字塔的3倍高度1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案23/107房屋建模(CAD)過(guò)程
對(duì)早期成就的模仿
從失敗中學(xué)習(xí)
對(duì)其他影響因素的綜合
試驗(yàn)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案24/1071.1從軟件危機(jī)談起軟件危機(jī)的含義計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程所遇到的一系列嚴(yán)重問(wèn)題困擾學(xué)術(shù)界和工業(yè)界用戶對(duì)軟件開(kāi)發(fā)缺乏信心軟件開(kāi)發(fā)的高投入和高風(fēng)險(xiǎn)《軟件體系結(jié)構(gòu)》電子教案25/1071.1從軟件危機(jī)談起軟件危機(jī)的表現(xiàn)軟件成本日益增長(zhǎng)開(kāi)發(fā)進(jìn)度難以控制軟件質(zhì)量差軟件維護(hù)困難《軟件體系結(jié)構(gòu)》電子教案26/1071.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%左右?!盾浖w系結(jié)構(gòu)》電子教案27/1071.1從軟件危機(jī)談起軟件危機(jī)的表現(xiàn)開(kāi)發(fā)進(jìn)度難以控制由于軟件是邏輯、智力產(chǎn)品,軟件的開(kāi)發(fā)需建立龐大的邏輯體系,這是與其他產(chǎn)品的生產(chǎn)不一樣的。在軟件開(kāi)發(fā)過(guò)程中,用戶需求變化等各種意想不到的情況層出不窮,令軟件開(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)重?!盾浖w系結(jié)構(gòu)》電子教案28/1071.1從軟件危機(jī)談起軟件危機(jī)的表現(xiàn)軟件質(zhì)量差軟件項(xiàng)目即使能按預(yù)定日期完成,結(jié)果卻不盡人意。1965年至1970年,美國(guó)范登堡基地發(fā)射火箭多次失敗,絕大部分故障是由應(yīng)用程序錯(cuò)誤造成的。在“軟件作坊”里,由于缺乏工程化思想的指導(dǎo),程序員幾乎總是習(xí)慣性地以自己的想法去代替用戶對(duì)軟件的需求,軟件設(shè)計(jì)帶有隨意性,很多功能只是程序員的“一廂情愿”而已,這是造成軟件不能令人滿意的重要因素?!盾浖w系結(jié)構(gòu)》電子教案29/1071.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%。《軟件體系結(jié)構(gòu)》電子教案30/1071.1從軟件危機(jī)談起軟件危機(jī)的原因
用戶需求不明確缺乏正確的理論指導(dǎo)軟件規(guī)模越來(lái)越大軟件復(fù)雜度越來(lái)越高《軟件體系結(jié)構(gòu)》電子教案31/1071.1從軟件危機(jī)談起軟件危機(jī)的原因
用戶需求不明確在軟件開(kāi)發(fā)完成之前,用戶不清楚軟件的具體需求;用戶對(duì)軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯(cuò)誤;在軟件開(kāi)發(fā)過(guò)程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;開(kāi)發(fā)人員對(duì)用戶需求的理解與用戶本來(lái)愿望有差異?!盾浖w系結(jié)構(gòu)》電子教案32/1071.1從軟件危機(jī)談起軟件危機(jī)的原因
缺乏正確的理論指導(dǎo)缺乏有力的方法學(xué)和工具方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開(kāi)發(fā)過(guò)程是復(fù)雜的邏輯思維過(guò)程,其產(chǎn)品極大程度地依賴于開(kāi)發(fā)人員高度的智力投入。由于過(guò)分地依靠程序設(shè)計(jì)人員在軟件開(kāi)發(fā)過(guò)程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個(gè)性化,也是發(fā)生軟件危機(jī)的一個(gè)重要原因。
《軟件體系結(jié)構(gòu)》電子教案33/1071.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ò)誤?!盾浖w系結(jié)構(gòu)》電子教案34/1071.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)[在人們的面前。
《軟件體系結(jié)構(gòu)》電子教案35/107軟件復(fù)雜性的度數(shù)更高的技術(shù)復(fù)雜性-嵌入式,實(shí)時(shí)的,分布式的,不可出錯(cuò)的-定制的,空前的,可復(fù)用的-高性能的低技術(shù)復(fù)雜度-大部分是4GL,或基于組件技術(shù)的-應(yīng)用反向工程-交互性能較高管理復(fù)雜度-大范圍-合同契約性-多數(shù)人控制的-“項(xiàng)目”較低的管理復(fù)雜度-小范圍-非正式的-簡(jiǎn)單的資金運(yùn)作-“產(chǎn)品”防御MIS系統(tǒng)防御武器系統(tǒng)信息交換CASE工具國(guó)際空中運(yùn)輸控制系統(tǒng)企業(yè)IS(IS應(yīng)用的家庭服務(wù))商業(yè)編譯器商業(yè)制表軟件IS應(yīng)用小型科學(xué)模擬大型組織/實(shí)體仿真模擬一個(gè)比較中等的項(xiàng)目-5-10人-10-15個(gè)月的開(kāi)發(fā)周期-3-5個(gè)外部界面-一些不可知的事情&風(fēng)險(xiǎn)嵌入式車(chē)用軟件1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案36/107軟件品質(zhì)中的影響因素技術(shù)混合復(fù)雜度是我們的敵人,是我們的目標(biāo),我們要消滅它。性能吞吐量容量可用性失敗安全出錯(cuò)容忍程度功能成本兼容性恢復(fù)能力20年之后的挑戰(zhàn)不是速度、成本和性能,而是復(fù)雜度的問(wèn)題了。BillRaduchel,Sun微系統(tǒng)公司策略執(zhí)行總裁1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案37/1071.1從軟件危機(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)該采用多維的工程管理模式。《軟件體系結(jié)構(gòu)》電子教案38/107軟件工程發(fā)展階段 軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:第一代軟件工程—
傳統(tǒng)的軟件工程20世紀(jì)60年代末到70年代為了克服“軟件危機(jī)”
(Softwarecrisis)提出“軟件工程”的名詞,將軟件開(kāi)發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案39/107第二代軟件工程—
對(duì)象工程20世紀(jì)80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開(kāi)發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。第三代軟件工程—構(gòu)件工程(軟件復(fù)用)20世紀(jì)90起年代,基于構(gòu)件(Component)的開(kāi)發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開(kāi)發(fā)可通過(guò)使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開(kāi)始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程?!盾浖w系結(jié)構(gòu)》電子教案1.1從軟件危機(jī)談起40/107軟件過(guò)程需求分析:定義程序必須做什么做什么?設(shè)計(jì):定義每部分將是什么以及它們將如何協(xié)調(diào)如何做?實(shí)現(xiàn)(編碼):編寫(xiě)代碼測(cè)試:以測(cè)試數(shù)據(jù)作為輸入來(lái)執(zhí)行應(yīng)用程序維護(hù):修補(bǔ)缺陷和增強(qiáng)功能動(dòng)手做檢驗(yàn)維護(hù)《軟件體系結(jié)構(gòu)》電子教案41/107軟件過(guò)程示例——個(gè)人理財(cái)需求分析:文本“…應(yīng)用將顯示用戶銀行賬戶的收支余額…”設(shè)計(jì):圖表和文本“…設(shè)計(jì)將包含類(lèi)CheckingAccount…”實(shí)現(xiàn):源代碼和目標(biāo)代碼測(cè)試:整理測(cè)試數(shù)據(jù),測(cè)試程序的執(zhí)行結(jié)果“…測(cè)試示例:存款$44.92/取款$32.00…”維護(hù):修改設(shè)計(jì)、代碼和文本,糾錯(cuò)、功能增強(qiáng)《軟件體系結(jié)構(gòu)》電子教案42/107軟件過(guò)程的風(fēng)格瀑布過(guò)程:一個(gè)基本的軟件過(guò)程,其中需求分析、設(shè)計(jì)、編碼、測(cè)試和維護(hù)都是按順序完成的,但是各個(gè)階段有一些重疊。維護(hù)《軟件體系結(jié)構(gòu)》電子教案43/107軟件需求分析軟件需求軟件設(shè)計(jì)軟件實(shí)現(xiàn)軟件設(shè)計(jì)《軟件體系結(jié)構(gòu)》電子教案1.1從軟件危機(jī)談起44/107軟件設(shè)計(jì)的含義表達(dá)的是應(yīng)該怎樣構(gòu)造應(yīng)用程序,描述所用到的各個(gè)部分,以及如何將它們組合起來(lái)。是一套文檔,通常是各種示意圖以及對(duì)這些圖的具體含義的解釋。在此基礎(chǔ)上程序員能設(shè)計(jì)出軟件應(yīng)用程序類(lèi)似于建筑物的藍(lán)圖從需求中產(chǎn)生,不包含代碼UML是設(shè)計(jì)文檔的一個(gè)非常有用的表示方法?!盾浖w系結(jié)構(gòu)》電子教案45/107軟件設(shè)計(jì)的目標(biāo)便于維護(hù)和升級(jí),因而應(yīng)該是模塊化的設(shè)計(jì)應(yīng)該是便于移植的(移植比重新設(shè)計(jì)花費(fèi)要小的多)設(shè)計(jì)應(yīng)該具有適用性設(shè)計(jì)過(guò)程應(yīng)該收到理性的控制IntellectualControl設(shè)計(jì)應(yīng)該表現(xiàn)出概念的完整性ConceptualIntegrity內(nèi)在結(jié)構(gòu)外在表現(xiàn)1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案46/107軟件設(shè)計(jì)中出現(xiàn)的問(wèn)題設(shè)計(jì)對(duì)于需求的變化缺乏配合過(guò)程控制對(duì)于維持設(shè)計(jì)的正確性缺乏保障軟件產(chǎn)品通常缺乏概念完整性
1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案47/107針對(duì)問(wèn)題提出的軟件設(shè)計(jì)思想強(qiáng)調(diào)信息隱藏的單元概念把系統(tǒng)的行為看作是具有關(guān)聯(lián)關(guān)系的部件間的行為作用應(yīng)用基于操作和數(shù)據(jù)封裝構(gòu)成的單元設(shè)計(jì)技術(shù)實(shí)現(xiàn)系統(tǒng)可組裝性應(yīng)用專(zhuān)門(mén)的機(jī)制可靠地處理并發(fā)控制和分布系統(tǒng)問(wèn)題降低這類(lèi)系統(tǒng)設(shè)計(jì)實(shí)施的復(fù)雜度提出基于模型的系統(tǒng)結(jié)構(gòu)和設(shè)計(jì)方法模式、框架、體系結(jié)構(gòu)風(fēng)格等明確提出軟件體系結(jié)構(gòu)的設(shè)計(jì)思想
關(guān)乎復(fù)雜系統(tǒng)設(shè)計(jì)成敗和代價(jià)的關(guān)鍵設(shè)計(jì)步驟
1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案48/107SA之重要最早指出SA的重要性的是大師EdsgerDijkstra(1930-2002)
“..thelargertheproject,themoreessentialthestructuring!”(1968)
1.1從軟件危機(jī)談起《軟件體系結(jié)構(gòu)》電子教案49/107實(shí)現(xiàn)框架需求分析體系結(jié)構(gòu)詳細(xì)設(shè)計(jì)設(shè)計(jì)原則工具:UML構(gòu)件+連接件可重用類(lèi)型
設(shè)計(jì)模式類(lèi)+類(lèi)間算法第二章第五章第四章第八章《軟件體系結(jié)構(gòu)》電子教案50/107第1章內(nèi)容摘要1.1從軟件危機(jī)談起1.2構(gòu)件與軟件重用1.3體系結(jié)構(gòu)的興起和發(fā)展1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案51/107軟件危機(jī)軟件工程工業(yè)化生產(chǎn)軟件重用軟件構(gòu)件Component重用的核心概念和基本單元1.2構(gòu)件與軟件重用《軟件體系結(jié)構(gòu)》電子教案52/107Microsoft的MFCBorland的VCLSun的Java類(lèi)庫(kù)C++的STL1968年NATO會(huì)議上Mcllroy首次提出軟件構(gòu)件的概念發(fā)表論文“Mass-ProducedSoftwareComponents”借鑒自傳統(tǒng)行業(yè)基于標(biāo)準(zhǔn)零組部件組裝的生產(chǎn)模式代碼件:可復(fù)用的程序代碼片斷子程序:程序語(yǔ)言、編譯器、用戶開(kāi)發(fā)的過(guò)程或函數(shù)模塊、程序包:將邏輯相關(guān)的實(shí)體組成一個(gè)集合類(lèi):開(kāi)發(fā)工具、用戶開(kāi)發(fā)的類(lèi)代碼模板:參數(shù)化數(shù)據(jù)類(lèi)型,對(duì)函數(shù)或類(lèi)的更高的抽象1.2構(gòu)件與軟件重用構(gòu)件概念的演化《軟件體系結(jié)構(gòu)》電子教案53/1071.2構(gòu)件與軟件重用構(gòu)件的定義構(gòu)件是指語(yǔ)義完整、語(yǔ)法正確和有可重用價(jià)值的單位軟件,是軟件重用過(guò)程中可以明確辨識(shí)的系統(tǒng);結(jié)構(gòu)上,它是語(yǔ)義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體。CMU/SEI的定義構(gòu)件:①是一個(gè)不透明的功能實(shí)現(xiàn);②能夠被第三方組裝;③符合一個(gè)構(gòu)件模型《軟件體系結(jié)構(gòu)》電子教案54/1071.2構(gòu)件與軟件重用構(gòu)件模型是對(duì)構(gòu)件本質(zhì)特征的抽象描述三個(gè)主要流派OMG(ObjectManagementGroup,對(duì)象管理集團(tuán))的CORBA(CommonObjectRequestBrokerArchitecture,通用對(duì)象請(qǐng)求代理結(jié)構(gòu))Sun的EJB(EnterpriseJavaBean)Microsoft的(DistributedComponentObjectModel,分布式構(gòu)件對(duì)象模型)《軟件體系結(jié)構(gòu)》電子教案55/1071.2構(gòu)件與軟件重用青鳥(niǎo)構(gòu)件模型()《軟件體系結(jié)構(gòu)》電子教案56/107構(gòu)件∷=〈構(gòu)件規(guī)約,構(gòu)件實(shí)現(xiàn)〉構(gòu)件規(guī)約∷=〈接口部分,結(jié)構(gòu)部分〉接口部分∷=〈對(duì)外提供的功能集合,對(duì)外請(qǐng)求的功能集合,服務(wù)集合〉服務(wù)∷=〈對(duì)外提供的功能集合,對(duì)外請(qǐng)求的功能集合〉結(jié)構(gòu)部分∷=〈原子構(gòu)件結(jié)構(gòu)〉|〈復(fù)合構(gòu)件結(jié)構(gòu)〉原子構(gòu)件結(jié)構(gòu)∷=〈構(gòu)件實(shí)現(xiàn)的引用〉復(fù)合構(gòu)件結(jié)構(gòu)∷=〈引用的構(gòu)件類(lèi)型,實(shí)例聲明,實(shí)例連接,映射〉
一種構(gòu)件模型的描述:1.2構(gòu)件與軟件重用《軟件體系結(jié)構(gòu)》電子教案57/107示圖構(gòu)件粒度對(duì)構(gòu)件重用價(jià)值的影響使用和復(fù)用的成本效益符合需求的程度更改的靈活性構(gòu)件的粒度子程序/操作程序/類(lèi)粗粒度的構(gòu)件應(yīng)用軟件包重用價(jià)值構(gòu)件的粒度1.2構(gòu)件與軟件重用《軟件體系結(jié)構(gòu)》電子教案58/1071.2構(gòu)件與軟件重用構(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)件?!盾浖w系結(jié)構(gòu)》電子教案59/1071.2構(gòu)件與軟件重用構(gòu)件管理
通過(guò)構(gòu)件庫(kù)管理系統(tǒng)(JBCM),其功能:構(gòu)件描述構(gòu)件分類(lèi)與組織人員及權(quán)限管理《軟件體系結(jié)構(gòu)》電子教案60/1071.2構(gòu)件與軟件重用構(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)件的完整描述?!盾浖w系結(jié)構(gòu)》電子教案61/1071.2構(gòu)件與軟件重用構(gòu)件管理構(gòu)件分類(lèi)與組織關(guān)鍵字分類(lèi)法刻面分類(lèi)法超文本組織方法
《軟件體系結(jié)構(gòu)》電子教案62/1071.2構(gòu)件與軟件重用構(gòu)件管理關(guān)鍵字分類(lèi)法
《軟件體系結(jié)構(gòu)》電子教案63/1071.2構(gòu)件與軟件重用構(gòu)件管理刻面分類(lèi)法(青鳥(niǎo)構(gòu)件庫(kù))使用環(huán)境應(yīng)用領(lǐng)域功能層次表示方法
《軟件體系結(jié)構(gòu)》電子教案64/1071.2構(gòu)件與軟件重用構(gòu)件管理超文本組織方法
《軟件體系結(jié)構(gòu)》電子教案65/1071.2構(gòu)件與軟件重用構(gòu)件管理人員及權(quán)限管理一般來(lái)講,構(gòu)件庫(kù)系統(tǒng)可包括五類(lèi)用戶,即注冊(cè)用戶、公共用戶、構(gòu)件提交者、一般系統(tǒng)管理員和超級(jí)系統(tǒng)管理員。
《軟件體系結(jié)構(gòu)》電子教案66/1071.2構(gòu)件與軟件重用構(gòu)件重用檢索與提取構(gòu)件理解與評(píng)價(jià)構(gòu)件修改構(gòu)件構(gòu)件組裝《軟件體系結(jié)構(gòu)》電子教案67/1071.2構(gòu)件與軟件重用構(gòu)件重用檢索與提取構(gòu)件基于關(guān)鍵字的檢索刻面檢索法超文本檢索法其他檢索方法《軟件體系結(jié)構(gòu)》電子教案68/1071.2構(gòu)件與軟件重用構(gòu)件重用理解與評(píng)價(jià)構(gòu)件構(gòu)件的功能與行為相關(guān)的領(lǐng)域知識(shí)可適應(yīng)性約束條件與例外情形可以預(yù)見(jiàn)的修改部分及修改方法《軟件體系結(jié)構(gòu)》電子教案69/1071.2構(gòu)件與軟件重用構(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ù)化?!盾浖w系結(jié)構(gòu)》電子教案70/1071.2構(gòu)件與軟件重用構(gòu)件重用構(gòu)件組裝基于功能的組裝技術(shù)基于數(shù)據(jù)的組裝技術(shù)面向?qū)ο蟮慕M裝技術(shù)《軟件體系結(jié)構(gòu)》電子教案71/1071.2構(gòu)件與軟件重用構(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)性修改后再掛接在上述功能分解框架中?!盾浖w系結(jié)構(gòu)》電子教案72/1071.2構(gòu)件與軟件重用構(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),但它所依賴的軟件設(shè)計(jì)方法不再是功能分解,而是面向數(shù)據(jù)的設(shè)計(jì)方法,例如Jackson系統(tǒng)開(kāi)發(fā)方法《軟件體系結(jié)構(gòu)》電子教案73/1071.2構(gòu)件與軟件重用構(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)的定義。《軟件體系結(jié)構(gòu)》電子教案74/107構(gòu)件庫(kù)的組織與結(jié)構(gòu):1.2構(gòu)件與軟件重用《軟件體系結(jié)構(gòu)》電子教案75/1071.2構(gòu)件與軟件重用軟件重用實(shí)例《軟件體系結(jié)構(gòu)》電子教案自學(xué)76/107第1章內(nèi)容摘要1.1從軟件危機(jī)談起1.2構(gòu)件與軟件重用1.3體系結(jié)構(gòu)的興起和發(fā)展1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案77/1071.3體系結(jié)構(gòu)的興起和發(fā)展背景資料隨著軟件系統(tǒng)規(guī)模越來(lái)越大、越來(lái)越復(fù)雜,整個(gè)系統(tǒng)的結(jié)構(gòu)和規(guī)格說(shuō)明顯得越來(lái)越重要。對(duì)于大規(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)變得明顯重要得多。對(duì)軟件體系結(jié)構(gòu)的系統(tǒng)、深入的研究將會(huì)成為提高軟件生產(chǎn)率和解決軟件維護(hù)問(wèn)題的新的最有希望的途徑?!盾浖w系結(jié)構(gòu)》電子教案78/1071.3體系結(jié)構(gòu)的興起和發(fā)展背景資料事實(shí)上,軟件總是有體系結(jié)構(gòu)的,不存在沒(méi)有體系結(jié)構(gòu)的軟件。軟件體系結(jié)構(gòu)雖脫胎于軟件工程,但其形成同時(shí)借鑒了計(jì)算機(jī)體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很多寶貴的思想和方法。軟件體系結(jié)構(gòu)研究現(xiàn)已完全獨(dú)立于軟件工程的研究,成為計(jì)算機(jī)科學(xué)的一個(gè)最新的研究方向和獨(dú)立學(xué)科分支?!盾浖w系結(jié)構(gòu)》電子教案79/107軟件體系結(jié)構(gòu)的定義
Perry&Wolf:軟件體系結(jié)構(gòu)(SA)是一個(gè)三元組:
SA={elements,form,rational}其中:元素(elements):構(gòu)成結(jié)構(gòu)的實(shí)體。分成三類(lèi):處理元素(processingelements),數(shù)據(jù)元素(dataelements),連接元素(connectingelements)。形式(form):一組專(zhuān)有的特性(properties)和關(guān)系(relationship)。其中特性用于限制軟件體系結(jié)構(gòu)元素的選擇,關(guān)系用于限制元素組合的拓?fù)浣Y(jié)構(gòu)。準(zhǔn)則(rational):元素組合的“生成”規(guī)則。1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案80/107軟件體系結(jié)構(gòu)的定義
Garlan&Shaw:軟件體系結(jié)構(gòu)(SA)是一個(gè)三元組:
SA={components,connectors,constrains}其中:構(gòu)件(component)可以是一組代碼,如程序的模塊;也可以是一個(gè)獨(dú)立的程序(如數(shù)據(jù)庫(kù)的SQL服務(wù)器)連接件(connector)是關(guān)系的抽象,用以表示構(gòu)件之間的相互作用。如過(guò)程調(diào)用、管道、遠(yuǎn)程過(guò)程調(diào)用等限制(constrain):用于對(duì)構(gòu)件和連接件的語(yǔ)義說(shuō)明1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案81/107軟件體系結(jié)構(gòu)的定義
Boehm:軟件體系結(jié)構(gòu)是一個(gè)五元組:
SA={components,connections,constraints,stakeholders'needs,rationale}軟件體系結(jié)構(gòu)的五要素為:構(gòu)件;連接件;約束;涉眾(風(fēng)險(xiǎn)承擔(dān)者)需求;能夠展示由構(gòu)件、連接件和約束所定義的系統(tǒng)在實(shí)現(xiàn)時(shí)如何滿足系統(tǒng)不同人員需求的原理。1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案82/107
軟件體系結(jié)構(gòu)的定義
IEEE610.12-1990軟件工程標(biāo)準(zhǔn)詞匯中的定義:
SA={component,connector,environment,principle};即軟件體系結(jié)構(gòu)是一個(gè)四元組,是以:
構(gòu)件,構(gòu)件之間的關(guān)系,構(gòu)件與環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織結(jié)構(gòu),以及指導(dǎo)上述內(nèi)容設(shè)計(jì)與演化的原理。1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案83/107結(jié)論:軟件體系結(jié)構(gòu)的要素,主要涉及:
*構(gòu)成成分(構(gòu)件、連接件);
*拓?fù)浣Y(jié)構(gòu)(構(gòu)件和連接件構(gòu)成);
*限制;
*設(shè)計(jì)原則與指導(dǎo)方針。根據(jù)上述各種體系結(jié)構(gòu)的定義,可以發(fā)現(xiàn):1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案84/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的定義推薦的定義 軟件體系結(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)》電子教案85/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的意義體系結(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ì)量和使用有極大的影響?!盾浖w系結(jié)構(gòu)》電子教案86/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的意義
體系結(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)》電子教案87/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的意義
軟件體系結(jié)構(gòu)是可傳遞和可重用的模型
軟件體系結(jié)構(gòu)級(jí)的重用意味著體系結(jié)構(gòu)的決策能在具有相似需求的多個(gè)系統(tǒng)中發(fā)生影響,這比代碼級(jí)的重用要有更大的好處《軟件體系結(jié)構(gòu)》電子教案88/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的發(fā)展史《軟件體系結(jié)構(gòu)》電子教案“無(wú)體系結(jié)構(gòu)”設(shè)計(jì)階段萌芽階段以匯編語(yǔ)言進(jìn)行小規(guī)模應(yīng)用程序開(kāi)發(fā)為特征出現(xiàn)了從不同側(cè)面描述系統(tǒng)的結(jié)構(gòu)模型,以UML為典型代表。出現(xiàn)了程序結(jié)構(gòu)設(shè)計(jì)主題,以控制流圖和數(shù)據(jù)流圖構(gòu)成軟件結(jié)構(gòu)為特征高級(jí)階段初期階段以描述系統(tǒng)的高層抽象結(jié)構(gòu)為中心,不關(guān)心具體的建模細(xì)節(jié),劃分了體系結(jié)構(gòu)模型與傳統(tǒng)軟件結(jié)構(gòu)的界限,該階段以Kruchten提出的“4+1”模型為標(biāo)志89/1071.3體系結(jié)構(gòu)的興起和發(fā)展軟件體系結(jié)構(gòu)的發(fā)展史1995年出版的IEEESoftware體系結(jié)構(gòu)專(zhuān)刊和1996年出版的專(zhuān)著《SoftwareArchitecture:PerspectivesonanEmergingDiscipline》,可以認(rèn)為是SA作為軟件工程一個(gè)研究方向正式提出的標(biāo)志。Perry和Wolf認(rèn)為:未來(lái)的年代是研究軟件體系結(jié)構(gòu)的時(shí)代。
《軟件體系結(jié)構(gòu)》電子教案90/107軟件體系結(jié)構(gòu)的發(fā)展史很多機(jī)構(gòu)關(guān)注軟件體系結(jié)構(gòu)研究IBM-SOA體系架構(gòu)OMG-CORBA規(guī)范Mirosoft-.Net平臺(tái)SUN-JAVA平臺(tái)國(guó)際標(biāo)準(zhǔn)化組織-開(kāi)放系統(tǒng)互連參考模型,NIST/ECMA參考模型…存在問(wèn)題沒(méi)有統(tǒng)一的體系結(jié)構(gòu)劃分標(biāo)準(zhǔn)和設(shè)計(jì)原則缺乏形式化方法對(duì)體系結(jié)構(gòu)進(jìn)行完整性和一致性分析缺乏有效的體系結(jié)構(gòu)設(shè)計(jì)工具…1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案91/1075各種術(shù)語(yǔ)和相關(guān)概念A(yù)rchitecture:英漢:建筑學(xué)、建筑樣式計(jì)算機(jī)詞典:一種規(guī)格說(shuō)明Pattern:英漢:紙樣、式樣、模型計(jì)算機(jī)詞典:在連續(xù)的試驗(yàn)和測(cè)試中,有重復(fù)性且有某種程度相似性的信息。Infrastructure英漢技術(shù):底層結(jié)構(gòu)、基礎(chǔ)結(jié)構(gòu)英漢科學(xué):基礎(chǔ)結(jié)構(gòu)、基礎(chǔ)設(shè)施例如:NII(國(guó)家信息基礎(chǔ)設(shè)施)1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案92/107ArchitecureStyles:1992年,AlexanderL.Wolf引進(jìn)了體系結(jié)構(gòu)風(fēng)格MaryShaw和DavidGarlan定義為根據(jù)結(jié)構(gòu)組織模式構(gòu)成的軟件系統(tǒng)族,表達(dá)了部件和他們之間的關(guān)系。ArchitecureStyles偏重于計(jì)算機(jī)概念Garlan和Shaw對(duì)通用體系結(jié)構(gòu)風(fēng)格進(jìn)行如下分類(lèi):數(shù)據(jù)流風(fēng)格:批處理序列、管道/過(guò)濾器等;調(diào)用/返回風(fēng)格:主程序/子程序、面向?qū)ο箫L(fēng)格、層次結(jié)等。獨(dú)立構(gòu)件風(fēng)格:進(jìn)程通訊、事件系統(tǒng)等;虛擬機(jī)風(fēng)格:解釋器、基于規(guī)則的系統(tǒng)等;倉(cāng)庫(kù)風(fēng)格:數(shù)據(jù)庫(kù)系統(tǒng)、超文本系統(tǒng)、黑板系統(tǒng)等。近年來(lái),出現(xiàn)了許多新的體系結(jié)構(gòu)風(fēng)格,例如客戶/服務(wù)器(Client/Server)結(jié)構(gòu)、瀏覽器/服務(wù)器(Browser/Server)結(jié)構(gòu)、正交(Orthogonal)結(jié)構(gòu)、專(zhuān)用領(lǐng)域(DomainSpecificStyles)、MVC、微核(Microkernel)、反射(Reflection)、代理(Proxy)等。1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案93/107DesignPattern它提供一個(gè)用于細(xì)化軟件系統(tǒng)的子系統(tǒng)或構(gòu)件,或他們之間關(guān)系的圖示。它描述通信構(gòu)件的公共再現(xiàn)結(jié)構(gòu),通信構(gòu)件可以解決特定語(yǔ)境中的一個(gè)一般設(shè)計(jì)問(wèn)題。建立在結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)之上,針對(duì)OOP設(shè)計(jì)的實(shí)踐和經(jīng)驗(yàn)而提出的,是處理特定問(wèn)題的高效和成熟的設(shè)計(jì)模板設(shè)計(jì)模式偏重于具體問(wèn)題設(shè)計(jì)模式分為三個(gè)類(lèi)型構(gòu)造型模式:工廠、原型模式etc.結(jié)構(gòu)型模式:適配器、門(mén)面、代理etc.行為型模式:解釋器、模版、狀態(tài)etc.SA受其啟發(fā),提出了面向模式的軟件體系結(jié)構(gòu)1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案94/107Framework:較Architecture更具體英漢:構(gòu)架、結(jié)構(gòu)或組織技術(shù)詞典:骨架、框架、構(gòu)架框架又稱為應(yīng)用框架,整體應(yīng)用性結(jié)構(gòu)的“固定”冷點(diǎn)FrozenSpots熱點(diǎn)HotSpotsFramework偏重于具體問(wèn)題,所以常稱為:應(yīng)用框架從設(shè)計(jì)模式角度來(lái)看,框架為大粒度的可復(fù)用的部件從體系結(jié)構(gòu)角度來(lái)看,框架是一個(gè)領(lǐng)域體系結(jié)構(gòu)1.3體系結(jié)構(gòu)的興起和發(fā)展《軟件體系結(jié)構(gòu)》電子教案95/107第1章內(nèi)容摘要1.1從軟件危機(jī)談起1.2構(gòu)件與軟件重用1.3體系結(jié)構(gòu)的興起和發(fā)展1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀
《軟件體系結(jié)構(gòu)》電子教案96/1071.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀目前,軟件體系結(jié)構(gòu)的研究活動(dòng)主要有:軟件體系結(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)品線體系結(jié)構(gòu)建立評(píng)價(jià)軟件體系結(jié)構(gòu)的方法《軟件體系結(jié)構(gòu)》電子教案97/107體系結(jié)構(gòu)描述語(yǔ)言與工具ADLArchitetureDescriptionLanguage為體系結(jié)構(gòu)提供概念性框架,也提供描述的具體語(yǔ)法,也提供解析、顯示、編譯、分析或者仿真體系結(jié)構(gòu)描述使用的工具工具建模設(shè)計(jì)符號(hào)為體系結(jié)構(gòu)建模1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案98/107軟件體系結(jié)構(gòu)風(fēng)格及風(fēng)格應(yīng)用軟件體系結(jié)構(gòu)風(fēng)格是指一組設(shè)計(jì)詞典、有關(guān)詞典如何運(yùn)用的限制條件、及詞典語(yǔ)義的假設(shè)。例如:C/S和B/S每個(gè)風(fēng)格的應(yīng)用僅適合于一定的目標(biāo),而不適用于其他目標(biāo)。例如1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案99/107產(chǎn)品線與標(biāo)準(zhǔn)軟件產(chǎn)品線是一個(gè)工程問(wèn)題,它由一組軟件密集型家族系統(tǒng)共享公共的、可管理的特征。軟件產(chǎn)品線體系結(jié)構(gòu)產(chǎn)品需求產(chǎn)品體系結(jié)構(gòu)產(chǎn)品線需求產(chǎn)品線體系結(jié)構(gòu)1.4軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀《軟件體系結(jié)構(gòu)》電子教案100/107體系結(jié)構(gòu)文檔化體系結(jié)構(gòu)文檔化的過(guò)程就是用一個(gè)或者多個(gè)視圖來(lái)描述一個(gè)系統(tǒng)結(jié)構(gòu)的過(guò)程。體系結(jié)構(gòu)文檔化目前還處于發(fā)展的階段,對(duì)于視圖的選擇,學(xué)術(shù)界爭(zhēng)論不休。DavidGarlan認(rèn)為體系結(jié)構(gòu)文檔化需要以下4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版合法正式的汽車(chē)租賃合同范本
- 2024洗煤廠租賃合同協(xié)議書(shū)模板
- 2025年度大型演唱會(huì)場(chǎng)地使用權(quán)及宣傳推廣合同3篇
- 2024技術(shù)支持服務(wù)協(xié)議合同范本
- 2024年生態(tài)環(huán)保項(xiàng)目設(shè)計(jì)與實(shí)施合同
- 2024版壓力容器水罐施工合同合同版B版
- 浙江省金華市2024年中考數(shù)學(xué)一模試題含答案
- 開(kāi)封文化藝術(shù)職業(yè)學(xué)院《創(chuàng)新與創(chuàng)業(yè)管理A》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇警官學(xué)院《現(xiàn)代舞基訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉安職業(yè)技術(shù)學(xué)院《機(jī)器人技術(shù)基礎(chǔ)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 《榜樣9》觀后感心得體會(huì)四
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 酒店一線員工績(jī)效考核指標(biāo)體系優(yōu)化研究
- 高中地理《外力作用與地表形態(tài)》優(yōu)質(zhì)課教案、教學(xué)設(shè)計(jì)
- 車(chē)間生產(chǎn)管理流程圖模板
- 河北省邢臺(tái)市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 市場(chǎng)部績(jī)效考核表
- 10000中國(guó)普通人名大全
- 學(xué)霸高中數(shù)學(xué)高中數(shù)學(xué)筆記全冊(cè)(最終)
- 熱棒的要點(diǎn)及要求
- 有史以來(lái)最完整的App運(yùn)營(yíng)推廣計(jì)劃方案分享
評(píng)論
0/150
提交評(píng)論