




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)Software Architecture教師:王凱東副教授,碩士導(dǎo)師(歡迎同學(xué)報(bào)考或報(bào)送研究生)Emailore Material(教材及參考書)軟件體系結(jié)構(gòu)(第二版),張友生,北京:清華大學(xué)出版社,軟件體系結(jié)構(gòu)(第二版),張友生,北京:清華大學(xué)出版社,2006.軟件體系結(jié)構(gòu)原理、方法與實(shí)踐,張友生,北京:清華大學(xué)出軟件體系結(jié)構(gòu)原理、方法與實(shí)踐,張友生,北京:清華大學(xué)出版社,版社,2009.Mary Shaw, David Garlan 著軟件體系結(jié)構(gòu),北京著軟件體系結(jié)構(gòu),北京 : 清華大學(xué)清華大學(xué)出版社,出版社,2007.Core Mate
2、rial(教材及參考書)Bass L, Clements P, Kazman R, Software Architecture in Practice, 2nd Edition, Addison Wesley, 2003.(軟件構(gòu)架實(shí)踐,第二版,清華大學(xué)出版社軟件構(gòu)架實(shí)踐,第二版,清華大學(xué)出版社)Shaw M, Garlan D, Software Architecture Perspectives on an emerging discipline, Prentice Hall, 1996.(軟件體系結(jié)構(gòu)(軟件體系結(jié)構(gòu)一門初露端倪學(xué)科的展望,清華大學(xué)出版社)一門初露端倪學(xué)科的展望,清華大學(xué)出
3、版社)Stephen T.Albin, The Art of Software Architecture Design Methods and Techniques,2003. (軟件體系結(jié)構(gòu)的藝術(shù),機(jī)械工業(yè)出版社)(軟件體系結(jié)構(gòu)的藝術(shù),機(jī)械工業(yè)出版社)Eckel, B, Thinking in Patterns, MindView, http:/ 平時(shí)平時(shí)+ +作業(yè)作業(yè) 10%20% % 考試考試 90%80% TA 輔導(dǎo)時(shí)間輔導(dǎo)時(shí)間 :每周五第:每周五第5、6、7、8節(jié)課,節(jié)課,在在B603 605附近教師休息室。每周四下午附近教師休息室。每周四下午5、6信遠(yuǎn)樓信遠(yuǎn)樓I-209教師休息室。
4、教師休息室。課 程 內(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)的軟件開發(fā) 軟件體系結(jié)構(gòu)的分析與測(cè)試 軟件體系結(jié)構(gòu)評(píng)估 軟件產(chǎn)品線體系結(jié)構(gòu) 產(chǎn)生背景產(chǎn)生背景 -軟件的產(chǎn)生和發(fā)展的歷史軟件的產(chǎn)生和發(fā)展的歷史第一臺(tái)計(jì)算機(jī)誕生第一臺(tái)計(jì)算機(jī)誕生機(jī)器指令編程機(jī)器指令編程(0和和1組成)組成)回到過去!回到過去!計(jì)算機(jī)語言的產(chǎn)生計(jì)算機(jī)語言的產(chǎn)生1952年年MIT開始使用開始使用匯編語言匯編語言1954年年IBM公司開發(fā)了公司開發(fā)了Fortran語言語言1960年,計(jì)算機(jī)權(quán)威刊物年,計(jì)算機(jī)權(quán)威刊物CACM上發(fā)表了上發(fā)表了“
5、關(guān)于算法關(guān)于算法語言語言Algol60的報(bào)告的報(bào)告”1971,瑞士的,瑞士的Njklaus Wirth 在在 Algol的基的基礎(chǔ)上開始開發(fā)礎(chǔ)上開始開發(fā)Pascal語言語言同年,美國的貝爾實(shí)驗(yàn)同年,美國的貝爾實(shí)驗(yàn)室的室的Dennis Ritche開發(fā)出開發(fā)出 C 語言語言各種面向?qū)ο蟮母呒?jí)語言各種面向?qū)ο蟮母呒?jí)語言各種高級(jí)語言的誕生各種高級(jí)語言的誕生使得人們有可能編制出使得人們有可能編制出越來越復(fù)雜的軟件系統(tǒng)越來越復(fù)雜的軟件系統(tǒng)軟件危機(jī)軟件危機(jī) 軟件的規(guī)模越來越龐大軟件的規(guī)模越來越龐大 復(fù)雜度越來越高復(fù)雜度越來越高 交付時(shí)間相對(duì)短交付時(shí)間相對(duì)短產(chǎn)生軟件危機(jī)產(chǎn)生軟件危機(jī)軟件危機(jī)軟件危機(jī) 美國美國
6、IBM公司在公司在1963年至年至1966年開發(fā)的年開發(fā)的IBM360機(jī)的操作系統(tǒng)。機(jī)的操作系統(tǒng)。這一項(xiàng)目花了這一項(xiàng)目花了5000人一年的工作量,最多時(shí)有人一年的工作量,最多時(shí)有1000人投入開發(fā)工人投入開發(fā)工作,寫出了近作,寫出了近100萬行源程序。萬行源程序。.據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的個(gè)程序錯(cuò)誤而修正的結(jié)果。結(jié)果。.這個(gè)項(xiàng)目的負(fù)責(zé)人這個(gè)項(xiàng)目的負(fù)責(zé)人F. D. BrooksF. D. Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時(shí)說:時(shí)
7、說:“.正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。.程序設(shè)計(jì)工作正像這樣一個(gè)泥程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,潭,.一批批程序員被迫在泥潭中拼命掙扎,一批批程序員被迫在泥潭中拼命掙扎,.誰也沒有料到問題誰也沒有料到問題竟會(huì)陷入這樣的困境竟會(huì)陷入這樣的困境.”。IBM360IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項(xiàng)目操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項(xiàng)目的典型事例為人們所記取。的典型事例為人們所記取。軟件危機(jī)軟件危機(jī) 軟件危機(jī)的表現(xiàn):軟件危機(jī)的表現(xiàn): 軟件成本日益增長(zhǎng)軟件
8、成本日益增長(zhǎng) 開發(fā)進(jìn)度難以控制開發(fā)進(jìn)度難以控制 軟件質(zhì)量差軟件質(zhì)量差 軟件維護(hù)困難軟件維護(hù)困難軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn) 軟件成本日益增長(zhǎng)軟件成本日益增長(zhǎng) 2020世紀(jì)世紀(jì)5050年代,軟件成本在整個(gè)計(jì)算機(jī)系統(tǒng)成本中所占年代,軟件成本在整個(gè)計(jì)算機(jī)系統(tǒng)成本中所占的比例為的比例為10%-20%10%-20%。到。到2020世紀(jì)世紀(jì)6060年代中期,軟件成本在年代中期,軟件成本在計(jì)算機(jī)系統(tǒng)中所占的比例已經(jīng)增長(zhǎng)到計(jì)算機(jī)系統(tǒng)中所占的比例已經(jīng)增長(zhǎng)到50%50%左右。左右。 而且,該數(shù)字還在不斷的遞增,下面是一組來自而且,該數(shù)字還在不斷的遞增,下面是一組來自美國
9、空軍計(jì)算機(jī)系統(tǒng)的數(shù)據(jù):美國空軍計(jì)算機(jī)系統(tǒng)的數(shù)據(jù):19551955年,軟件費(fèi)用約占總年,軟件費(fèi)用約占總費(fèi)用的費(fèi)用的18%18%,19701970年達(dá)到年達(dá)到60%60%,19751975年達(dá)到年達(dá)到72%72%,19801980年年達(dá)到達(dá)到80%80%,19851985年達(dá)到年達(dá)到85%85%左右。左右。軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn)開發(fā)進(jìn)度難以控制開發(fā)進(jìn)度難以控制 在軟件開發(fā)過程中,用戶需求變化等各種意想不到的情在軟件開發(fā)過程中,用戶需求變化等各種意想不到的情況層出不窮,令軟件開發(fā)過程很難保證按預(yù)定的計(jì)劃實(shí)況層出不窮,令軟件開發(fā)過程很難保證按預(yù)定的計(jì)劃實(shí)現(xiàn),給項(xiàng)目計(jì)劃和論證工作帶來了很大
10、的困難?,F(xiàn),給項(xiàng)目計(jì)劃和論證工作帶來了很大的困難。 盲目增加軟件開發(fā)人員并不能成比例的提高軟件開發(fā)能盲目增加軟件開發(fā)人員并不能成比例的提高軟件開發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、通信、培訓(xùn)和管理等方面的問題將更為嚴(yán)重。通信、培訓(xùn)和管理等方面的問題將更為嚴(yán)重。軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn)軟件質(zhì)量差軟件質(zhì)量差 由于缺乏工程化思想的指導(dǎo),程序員幾乎總是習(xí)慣由于缺乏工程化思想的指導(dǎo),程序員幾乎總是習(xí)慣性的以自己的想法去代替用戶對(duì)軟件的需求,軟件設(shè)性的以自己的想法去代替用戶對(duì)軟件的需求,軟件設(shè)計(jì)帶有隨意性,很多功能只是程序員的一廂
11、情愿而已,計(jì)帶有隨意性,很多功能只是程序員的一廂情愿而已,這是造成軟件令人不滿意的重要因素。這是造成軟件令人不滿意的重要因素。 軟件項(xiàng)目即使能按預(yù)定日期完成,結(jié)果卻不盡人軟件項(xiàng)目即使能按預(yù)定日期完成,結(jié)果卻不盡人意。意。1965年至年至1970年,美國范登堡基地發(fā)射火箭多年,美國范登堡基地發(fā)射火箭多次失敗,絕大部分故障是由應(yīng)用程序錯(cuò)誤造成的。次失敗,絕大部分故障是由應(yīng)用程序錯(cuò)誤造成的。軟件危機(jī)的主要表現(xiàn)軟件危機(jī)的主要表現(xiàn)軟件維護(hù)困難軟件維護(hù)困難 由于在軟件設(shè)計(jì)和開發(fā)過程中,沒有嚴(yán)格遵循軟件開發(fā)由于在軟件設(shè)計(jì)和開發(fā)過程中,沒有嚴(yán)格遵循軟件開發(fā)標(biāo)準(zhǔn),各種隨意性很大,沒有完整的真實(shí)反映系統(tǒng)狀況標(biāo)準(zhǔn),
12、各種隨意性很大,沒有完整的真實(shí)反映系統(tǒng)狀況的記錄文檔,給軟件維護(hù)造成了巨大的困難。的記錄文檔,給軟件維護(hù)造成了巨大的困難。 特別是在軟件使用過程中,原來的開發(fā)人員可能因各種特別是在軟件使用過程中,原來的開發(fā)人員可能因各種原因已經(jīng)離開原來的開發(fā)組織,使得軟件幾乎不可維護(hù)。原因已經(jīng)離開原來的開發(fā)組織,使得軟件幾乎不可維護(hù)。 有資料表明,工業(yè)界為維護(hù)軟件支付的費(fèi)用占全部硬件有資料表明,工業(yè)界為維護(hù)軟件支付的費(fèi)用占全部硬件和軟件費(fèi)用的和軟件費(fèi)用的40-75%40-75%人員構(gòu)成人員構(gòu)成: 微軟產(chǎn)品組實(shí)例微軟產(chǎn)品組實(shí)例 Windows 2000 Team 開發(fā)人員900 測(cè)試人員1800 程序經(jīng)理450
13、 文檔人員100 本地化人員110 內(nèi)部IT50 市場(chǎng)人員100 培訓(xùn)人員115 技術(shù)支持人員 600 技術(shù)傳播人員 1120 合計(jì)5345 軟件危機(jī)軟件危機(jī)軟件危機(jī)的原因 ? 用戶需求不明確 缺乏正確的理論指導(dǎo) 軟件規(guī)模越來越大 軟件復(fù)雜度越來越高軟件危機(jī)的原因軟件危機(jī)的原因 用戶需求不明確 在軟件開發(fā)完成之前,用戶不清楚軟件的具體需求; 用戶對(duì)軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯(cuò)誤; 在軟件開發(fā)過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求; 開發(fā)人員對(duì)用戶需求的理解與用戶本來愿望有差異。 軟件危機(jī)的原因軟件危機(jī)的原因 缺乏正確的理論指導(dǎo) 缺乏有力的方法學(xué)和工具
14、方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復(fù)雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設(shè)計(jì)人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個(gè)性化,也是發(fā)生軟件危機(jī)的一個(gè)重要原因。 軟件危機(jī)的原因軟件危機(jī)的原因 軟件規(guī)模越來越大 隨著軟件應(yīng)用范圍的增廣,軟件規(guī)模愈來愈大。大型軟件項(xiàng)目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗(yàn),而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗(yàn)。各類人員的信息交流不及時(shí)、不準(zhǔn)確、有時(shí)還會(huì)產(chǎn)生誤解。 軟件項(xiàng)目開發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件的全部關(guān)系和各個(gè)分支,因此容易產(chǎn)生疏漏和錯(cuò)誤。
15、 軟件危機(jī)的原因軟件危機(jī)的原因 軟件復(fù)雜度越來越高 軟件不僅僅是在規(guī)模上快速地發(fā)展擴(kuò)大,而且其復(fù)雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處理“復(fù)雜問題”。 所謂“復(fù)雜問題”的概念是相對(duì)的,一旦人們采用先進(jìn)的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復(fù)雜的問題又?jǐn)[在人們的面前。 軟件危機(jī)軟件危機(jī)如何克服軟件危機(jī)?What is Software Engineering?Software engineering is the activities and tasks that creates a software product. There ar
16、e five main areas, these are: Analysis Design Development (To most engineers, this is the most important) Testing Maintenance軟件工程(教材定義) 軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法來研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)和管理方法來研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)和管理方法。法。軟件工程包括三個(gè)要素:軟件工程包括三個(gè)要素: 軟件工程方法軟件工程方法 軟件工程工具軟件工程工具 軟件工程的過程軟件工程的過程軟件工程軟件工程 軟件開發(fā)模型:軟
17、件開發(fā)模型: 瀑布模型瀑布模型 演化模型演化模型 螺旋模型螺旋模型 增量模型增量模型 噴泉模型噴泉模型 智能模型智能模型軟件體系結(jié)構(gòu)的產(chǎn)生和發(fā)展軟件體系結(jié)構(gòu)的產(chǎn)生和發(fā)展軟件體系結(jié)構(gòu)的產(chǎn)生和發(fā)展軟件體系結(jié)構(gòu)的產(chǎn)生和發(fā)展 起初,人們把軟件設(shè)計(jì)重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)和算法上。起初,人們把軟件設(shè)計(jì)重點(diǎn)放在數(shù)據(jù)結(jié)構(gòu)和算法上。 隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,整個(gè)系統(tǒng)隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,整個(gè)系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。 對(duì)于大規(guī)模的復(fù)雜軟件系統(tǒng)來說,對(duì)總體的系統(tǒng)結(jié)對(duì)于大規(guī)模的復(fù)雜軟件系統(tǒng)來說,對(duì)總體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和規(guī)格說明比起對(duì)計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)
18、的選構(gòu)設(shè)計(jì)和規(guī)格說明比起對(duì)計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得明顯重要的多。擇已經(jīng)變得明顯重要的多。 對(duì)軟件體系結(jié)構(gòu)的系統(tǒng)地、深入地研究將會(huì)成為提高對(duì)軟件體系結(jié)構(gòu)的系統(tǒng)地、深入地研究將會(huì)成為提高軟件生產(chǎn)率和解決軟件維護(hù)問題的新的最有希望的途軟件生產(chǎn)率和解決軟件維護(hù)問題的新的最有希望的途徑。徑。軟件體系結(jié)構(gòu)的產(chǎn)生、興起和發(fā)展軟件體系結(jié)構(gòu)的產(chǎn)生、興起和發(fā)展 事實(shí)上,軟件總是有體系結(jié)構(gòu)的,不存在沒有事實(shí)上,軟件總是有體系結(jié)構(gòu)的,不存在沒有體系結(jié)構(gòu)的軟件。體系結(jié)構(gòu)的軟件。 軟件體系結(jié)構(gòu)雖脫胎于軟件工程,但其形成同軟件體系結(jié)構(gòu)雖脫胎于軟件工程,但其形成同時(shí)借鑒了計(jì)算機(jī)體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很時(shí)借鑒了計(jì)算
19、機(jī)體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很多寶貴的思想和方法,最近幾年軟件體系結(jié)構(gòu)多寶貴的思想和方法,最近幾年軟件體系結(jié)構(gòu)研究已完全獨(dú)立于軟件工程的研究,成為計(jì)算研究已完全獨(dú)立于軟件工程的研究,成為計(jì)算機(jī)科學(xué)的一個(gè)最新的研究方向和獨(dú)立學(xué)科分支。機(jī)科學(xué)的一個(gè)最新的研究方向和獨(dú)立學(xué)科分支。What is Software Architecture對(duì)房子進(jìn)行建模What is Software Architecture 目前關(guān)于軟件體系結(jié)構(gòu)的定義有六十多種,目前關(guān)于軟件體系結(jié)構(gòu)的定義有六十多種,有的定義從構(gòu)造的角度來審視軟件體系結(jié)構(gòu),有有的定義從構(gòu)造的角度來審視軟件體系結(jié)構(gòu),有的側(cè)重于從體系結(jié)構(gòu)風(fēng)格、模式和規(guī)則角
20、度來考的側(cè)重于從體系結(jié)構(gòu)風(fēng)格、模式和規(guī)則角度來考慮。慮。軟件體系結(jié)構(gòu)的定義 Dewayne Perry和和A1exander Wo1f 軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(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)件負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組合連接起來信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組合連接起來。 這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方
21、法在其他的定義和方法中基本上得到保持。這一方法在其他的定義和方法中基本上得到保持。 軟件體系結(jié)構(gòu)的定義 Mary Shaw和和David Garlan 軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過程中的一個(gè)層次,這一層次超越軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過程中的一個(gè)層次,這一層次超越計(jì)算過程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。計(jì)算過程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。 體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計(jì)元素分配特定功能,設(shè)計(jì)元素的組織,規(guī)模數(shù)據(jù)存取,給設(shè)計(jì)元素分配特定功能,設(shè)計(jì)元素的組織,規(guī)模和性能,在各設(shè)計(jì)方案間進(jìn)行選擇等。和性能,在各設(shè)計(jì)方案間進(jìn)
22、行選擇等。 軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和描述方面的一些問題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于計(jì)和描述方面的一些問題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計(jì)構(gòu)件功能定義,物理分布通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計(jì)構(gòu)件功能定義,物理分布與合成,設(shè)計(jì)方案的選擇、評(píng)估與實(shí)現(xiàn)等。與合成,設(shè)計(jì)方案的選擇、評(píng)估與實(shí)現(xiàn)等。軟件體系結(jié)構(gòu)的定義 Kruchten 軟件體系結(jié)構(gòu)有四個(gè)角度,它們從不同方面對(duì)系統(tǒng)進(jìn)行描述軟件體系結(jié)構(gòu)有四個(gè)角度,它們從不同方面對(duì)系統(tǒng)進(jìn)行描述:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊
23、角度:概念角度描述系統(tǒng)的主要構(gòu)件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述了一個(gè)系統(tǒng)的動(dòng)態(tài)結(jié)包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述了一個(gè)系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu);代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。構(gòu);代碼角度描述了各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。 Hayes Roth 軟件體系結(jié)構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行為軟件體系結(jié)構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。來描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。 軟件體系結(jié)構(gòu)的定義 David Garlan 和和 Dewne Perry 軟件體系結(jié)構(gòu)是一個(gè)程序系
24、統(tǒng)各構(gòu)件的結(jié)構(gòu)、它們之間的軟件體系結(jié)構(gòu)是一個(gè)程序系統(tǒng)各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進(jìn)行設(shè)計(jì)的原則和隨時(shí)間演化的指導(dǎo)方針。相互關(guān)系以及進(jìn)行設(shè)計(jì)的原則和隨時(shí)間演化的指導(dǎo)方針。 Barry Boehm 軟件體系結(jié)構(gòu)包括一個(gè)軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集軟件體系結(jié)構(gòu)包括一個(gè)軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合;一個(gè)系統(tǒng)需求說明的集合;一個(gè)基本原理用以說明這一構(gòu)合;一個(gè)系統(tǒng)需求說明的集合;一個(gè)基本原理用以說明這一構(gòu)件,互聯(lián)和約束能夠滿足系統(tǒng)需求。件,互聯(lián)和約束能夠滿足系統(tǒng)需求。 ?軟件體系結(jié)構(gòu)的定義 Bass,Ctements 和和 Kazman 軟件體系結(jié)構(gòu)包括一個(gè)或一組軟件構(gòu)件、軟件構(gòu)件的外部軟件
25、體系結(jié)構(gòu)包括一個(gè)或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見特性及其相互關(guān)系。其中,的可見特性及其相互關(guān)系。其中,“軟件外部的可見特性軟件外部的可見特性”是是指軟件構(gòu)件提供的服務(wù)、性能、特性、錯(cuò)誤處理、共享資源使指軟件構(gòu)件提供的服務(wù)、性能、特性、錯(cuò)誤處理、共享資源使用等。用等。 軟件體系結(jié)構(gòu)的定義 我們的定義我們的定義 軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、這些元屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素的描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成。約束
26、組成。 軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。軟件體系結(jié)構(gòu)的意義 體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段 軟件體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象。軟件體系結(jié)構(gòu)代表了系統(tǒng)的公共的高層次的抽象。這樣,系統(tǒng)的大部分有關(guān)人員(即使不是全部)能把這樣,系統(tǒng)的大部分有關(guān)人員(即使不是全部)能把它作為建立一個(gè)互相理解的基礎(chǔ),形成統(tǒng)一認(rèn)識(shí),互它作為建立一個(gè)互相理
27、解的基礎(chǔ),形成統(tǒng)一認(rèn)識(shí),互相交流。相交流。 體系結(jié)構(gòu)提供了一種共同語言來表達(dá)各種關(guān)注和協(xié)體系結(jié)構(gòu)提供了一種共同語言來表達(dá)各種關(guān)注和協(xié)商,進(jìn)而對(duì)大型復(fù)雜系統(tǒng)能進(jìn)行理智的管理。這對(duì)項(xiàng)商,進(jìn)而對(duì)大型復(fù)雜系統(tǒng)能進(jìn)行理智的管理。這對(duì)項(xiàng)目最終的質(zhì)量和使用有極大的影響目最終的質(zhì)量和使用有極大的影響。 軟件體系結(jié)構(gòu)的意義 體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn)體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn) (1)軟件體系結(jié)構(gòu)明確了對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件)軟件體系結(jié)構(gòu)明確了對(duì)系統(tǒng)實(shí)現(xiàn)的約束條件(2)軟件體系結(jié)構(gòu)決定了開發(fā)和維護(hù)組織的組織結(jié)構(gòu))軟件體系結(jié)構(gòu)決定了開發(fā)和維護(hù)組織的組織結(jié)構(gòu)(3)軟件體系結(jié)構(gòu)制約著系統(tǒng)的)軟件體系結(jié)構(gòu)制約著系統(tǒng)的質(zhì)
28、量質(zhì)量屬性屬性(4)通過研究軟件體系結(jié)構(gòu)可能預(yù)測(cè)軟件的質(zhì)量)通過研究軟件體系結(jié)構(gòu)可能預(yù)測(cè)軟件的質(zhì)量(5)軟件體系結(jié)構(gòu)使推理和控制更改更簡(jiǎn)單)軟件體系結(jié)構(gòu)使推理和控制更改更簡(jiǎn)單(6)軟件體系結(jié)構(gòu)有助于循序漸進(jìn)的原型設(shè)計(jì))軟件體系結(jié)構(gòu)有助于循序漸進(jìn)的原型設(shè)計(jì)(7)軟件體系結(jié)構(gòu)可以作為培訓(xùn)的基礎(chǔ))軟件體系結(jié)構(gòu)可以作為培訓(xùn)的基礎(chǔ)軟件體系結(jié)構(gòu)的意義 軟件體系結(jié)構(gòu)是可傳遞和可重用的模型軟件體系結(jié)構(gòu)是可傳遞和可重用的模型 軟件體系結(jié)構(gòu)級(jí)的重用意味著體系結(jié)構(gòu)的決策能在軟件體系結(jié)構(gòu)級(jí)的重用意味著體系結(jié)構(gòu)的決策能在具有相似需求的多個(gè)系統(tǒng)中發(fā)生影響,這比代碼級(jí)的具有相似需求的多個(gè)系統(tǒng)中發(fā)生影響,這比代碼級(jí)的重用要有
29、更大的好處。重用要有更大的好處。 通過體系結(jié)構(gòu)的抽象可以使設(shè)計(jì)者能夠?qū)σ恍┙?jīng)過通過體系結(jié)構(gòu)的抽象可以使設(shè)計(jì)者能夠?qū)σ恍┙?jīng)過實(shí)踐證明是非常有效的體系結(jié)構(gòu)構(gòu)件進(jìn)行重用,從而實(shí)踐證明是非常有效的體系結(jié)構(gòu)構(gòu)件進(jìn)行重用,從而提高設(shè)計(jì)效率和可靠性,大大降低設(shè)計(jì)的復(fù)雜性。提高設(shè)計(jì)效率和可靠性,大大降低設(shè)計(jì)的復(fù)雜性。 軟件體系結(jié)構(gòu)的發(fā)展史 Perry和和Wolf認(rèn)為認(rèn)為未來的年代是研究軟件體系結(jié)構(gòu)的時(shí)代未來的年代是研究軟件體系結(jié)構(gòu)的時(shí)代 軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀 軟件體系結(jié)構(gòu)描述語言軟件體系結(jié)構(gòu)描述語言 體系結(jié)構(gòu)描述構(gòu)造與表示體系結(jié)構(gòu)描述構(gòu)造與表示 體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證體系結(jié)構(gòu)分析、設(shè)計(jì)與驗(yàn)證 體系結(jié)構(gòu)發(fā)現(xiàn)
30、、演化與重用體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用 基于體系結(jié)構(gòu)的軟件開發(fā)方法基于體系結(jié)構(gòu)的軟件開發(fā)方法 特定領(lǐng)域的體系結(jié)構(gòu)框架特定領(lǐng)域的體系結(jié)構(gòu)框架 軟件體系結(jié)構(gòu)支持工具軟件體系結(jié)構(gòu)支持工具 軟件產(chǎn)品線體系結(jié)構(gòu)軟件產(chǎn)品線體系結(jié)構(gòu) 建立評(píng)價(jià)軟件體系結(jié)構(gòu)的方法建立評(píng)價(jià)軟件體系結(jié)構(gòu)的方法構(gòu)件與軟件重用 構(gòu)件模型及實(shí)現(xiàn)構(gòu)件模型及實(shí)現(xiàn) 軟件重用是指兩次或多次不同軟件開發(fā)過程中重復(fù)使用相同軟件重用是指兩次或多次不同軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程。軟件元素包括程序代碼、測(cè)試用例、或相近軟件元素的過程。軟件元素包括程序代碼、測(cè)試用例、設(shè)計(jì)文檔、設(shè)計(jì)過程、需求分析文檔和領(lǐng)域分析知識(shí)。設(shè)計(jì)文檔、設(shè)計(jì)過程、需求
31、分析文檔和領(lǐng)域分析知識(shí)。 把可重用的軟件元素稱為軟件構(gòu)件,簡(jiǎn)稱構(gòu)件??芍赜玫能洶芽芍赜玫能浖胤Q為軟件構(gòu)件,簡(jiǎn)稱構(gòu)件??芍赜玫能浖卦酱?,重用的顆粒度越大。件元素越大,重用的顆粒度越大。 構(gòu)件的定義構(gòu)件的定義 構(gòu)件是指語義完整、語法正確和有可重用價(jià)值的單位軟件,構(gòu)件是指語義完整、語法正確和有可重用價(jià)值的單位軟件,是軟件重用過程中可以明確辨識(shí)的系統(tǒng);結(jié)構(gòu)上,它是是軟件重用過程中可以明確辨識(shí)的系統(tǒng);結(jié)構(gòu)上,它是語義描語義描述述、通訊接口通訊接口和和實(shí)現(xiàn)代碼實(shí)現(xiàn)代碼的復(fù)合體。構(gòu)件的使用同它的開發(fā)、的復(fù)合體。構(gòu)件的使用同它的開發(fā)、生產(chǎn)無關(guān)。生產(chǎn)無關(guān)。構(gòu)件與軟件重用 構(gòu)件模型及實(shí)現(xiàn)構(gòu)件模型及實(shí)現(xiàn) 參
32、考模型,描述模型,實(shí)現(xiàn)模型參考模型,描述模型,實(shí)現(xiàn)模型 構(gòu)件模型的三個(gè)主要流派構(gòu)件模型的三個(gè)主要流派 OMG(Object Management Group,對(duì)象管理集團(tuán))的,對(duì)象管理集團(tuán))的CORBA(Common Object Request Broker Architecture,通用對(duì)象請(qǐng)求代理結(jié)構(gòu))通用對(duì)象請(qǐng)求代理結(jié)構(gòu)) Sun的的EJB(Enterprise Java Bean) Microsoft的的DCOM(Distributed Component Object Model,分布式構(gòu)件對(duì)象模型)。,分布式構(gòu)件對(duì)象模型)。 構(gòu)件與軟件重用構(gòu)件獲取構(gòu)件獲取 (重用)(重用) 領(lǐng)域
33、領(lǐng)域具有內(nèi)聚性和穩(wěn)定性特征,具有可重用性。具有內(nèi)聚性和穩(wěn)定性特征,具有可重用性。 從現(xiàn)有構(gòu)件中獲得符合要求的構(gòu)件,直接使用或作適應(yīng)性修從現(xiàn)有構(gòu)件中獲得符合要求的構(gòu)件,直接使用或作適應(yīng)性修改,得到可重用的構(gòu)件;改,得到可重用的構(gòu)件; 通過遺留工程,將具有潛在重用價(jià)值的構(gòu)件提取出來,得到通過遺留工程,將具有潛在重用價(jià)值的構(gòu)件提取出來,得到可重用的構(gòu)件;可重用的構(gòu)件; 從市場(chǎng)上購買現(xiàn)成的商業(yè)構(gòu)件,即從市場(chǎng)上購買現(xiàn)成的商業(yè)構(gòu)件,即COTS(Commercial Off-The-Shell)構(gòu)件;)構(gòu)件; 開發(fā)新的符合要求的構(gòu)件。開發(fā)新的符合要求的構(gòu)件。構(gòu)件與軟件重用構(gòu)件管理構(gòu)件管理 構(gòu)件描述構(gòu)件描述
34、構(gòu)件分類與組織構(gòu)件分類與組織 人員及權(quán)限管理人員及權(quán)限管理構(gòu)件與軟件重用構(gòu)件管理構(gòu)件管理 構(gòu)件描述構(gòu)件描述 構(gòu)件模型是對(duì)構(gòu)件本質(zhì)的抽象描述,主要是為構(gòu)件的制作與構(gòu)件模型是對(duì)構(gòu)件本質(zhì)的抽象描述,主要是為構(gòu)件的制作與構(gòu)件的重用提供依據(jù);構(gòu)件的重用提供依據(jù); 從管理角度出發(fā),也需要對(duì)構(gòu)件進(jìn)行描述,例如:實(shí)現(xiàn)方式、從管理角度出發(fā),也需要對(duì)構(gòu)件進(jìn)行描述,例如:實(shí)現(xiàn)方式、實(shí)現(xiàn)體、注釋、生產(chǎn)者、生產(chǎn)日期、大小、價(jià)格、版本和關(guān)聯(lián)實(shí)現(xiàn)體、注釋、生產(chǎn)者、生產(chǎn)日期、大小、價(jià)格、版本和關(guān)聯(lián)構(gòu)件等信息,它們與構(gòu)件模型共同組成了對(duì)構(gòu)件的完整描述。構(gòu)件等信息,它們與構(gòu)件模型共同組成了對(duì)構(gòu)件的完整描述。構(gòu)件與軟件重用構(gòu)件管理
35、構(gòu)件管理 構(gòu)件分類與組織構(gòu)件分類與組織 關(guān)鍵字分類法關(guān)鍵字分類法 刻面分類法刻面分類法 超文本組織方法超文本組織方法 構(gòu)件與軟件重用 關(guān)鍵字分類法關(guān)鍵字分類法圖形用戶界面鍵盤事件處理拖放處理數(shù)據(jù)錄入對(duì)話框信息對(duì)話框文字窗口圖形窗口對(duì)話框菜單事件處理窗口點(diǎn)擊處理彈出式菜單主菜單構(gòu)件與軟件重用 刻面分類法刻面分類法 思想來源于圖書館學(xué)思想來源于圖書館學(xué)舉例:舉例: 使用環(huán)境使用環(huán)境 應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域 功能功能 層次層次 表示方法表示方法構(gòu)件與軟件重用 超文本組織方法超文本組織方法 構(gòu)件與軟件重用構(gòu)件管理構(gòu)件管理 人員及權(quán)限管理人員及權(quán)限管理 一般來講,構(gòu)件庫系統(tǒng)可包括五類用戶,即注冊(cè)用戶、公共一般
36、來講,構(gòu)件庫系統(tǒng)可包括五類用戶,即注冊(cè)用戶、公共用戶、構(gòu)件提交者、一般系統(tǒng)管理員和超級(jí)系統(tǒng)管理員。用戶、構(gòu)件提交者、一般系統(tǒng)管理員和超級(jí)系統(tǒng)管理員。 不同的職責(zé),不同的權(quán)限,互相協(xié)作,共同維護(hù)構(gòu)件庫正不同的職責(zé),不同的權(quán)限,互相協(xié)作,共同維護(hù)構(gòu)件庫正常運(yùn)作。常運(yùn)作。 構(gòu)件與軟件重用構(gòu)件重用構(gòu)件重用 檢索與提取構(gòu)件檢索與提取構(gòu)件 理解與評(píng)價(jià)構(gòu)件理解與評(píng)價(jià)構(gòu)件 修改構(gòu)件修改構(gòu)件 構(gòu)件組裝構(gòu)件組裝構(gòu)件與軟件重用構(gòu)件重用構(gòu)件重用 檢索與提取構(gòu)件檢索與提取構(gòu)件 基于關(guān)鍵字的檢索基于關(guān)鍵字的檢索 刻面檢索法刻面檢索法 超文本檢索法超文本檢索法 其他檢索方法其他檢索方法構(gòu)件與軟件重用構(gòu)件重用構(gòu)件重用 理解與
37、評(píng)價(jià)構(gòu)件理解與評(píng)價(jià)構(gòu)件 構(gòu)件的功能與行為 相關(guān)的領(lǐng)域知識(shí) 可適應(yīng)性約束條件與例外情形 可以預(yù)見的修改部分及修改方法構(gòu)件與軟件重用構(gòu)件重用構(gòu)件重用 修改構(gòu)件修改構(gòu)件 理想的情形是對(duì)庫中的構(gòu)件不作修改而直接用于新的軟件項(xiàng)理想的情形是對(duì)庫中的構(gòu)件不作修改而直接用于新的軟件項(xiàng)目。目。 但是,在大多數(shù)情況下,必須對(duì)構(gòu)件進(jìn)行或多或少的修改,但是,在大多數(shù)情況下,必須對(duì)構(gòu)件進(jìn)行或多或少的修改,以適應(yīng)新的需求。以適應(yīng)新的需求。 為了減少構(gòu)件修改的工作量,要求開發(fā)人員盡量使構(gòu)件的功為了減少構(gòu)件修改的工作量,要求開發(fā)人員盡量使構(gòu)件的功能、行為和接口設(shè)計(jì)更為抽象化、通用化和參數(shù)化。能、行為和接口設(shè)計(jì)更為抽象化、通用化和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境貿(mào)易抵押擔(dān)保協(xié)議合同
- 二零二五年度瀝青材料國際市場(chǎng)開拓與品牌建設(shè)合同
- 二零二五年度河北省租賃合同范本:辦公空間租賃
- 2025年度超市商品陳列安全規(guī)范與應(yīng)急預(yù)案合同
- 二零二五年度金融科技創(chuàng)新保證反擔(dān)保合同
- 二零二五年度事業(yè)單位崗位聘用合同書(含員工心理健康關(guān)愛計(jì)劃)
- 二零二五年度離婚財(cái)產(chǎn)分割與子女教育保障合同
- 二零二五年度文化娛樂項(xiàng)目解除合同書
- 二零二五年度家居建材銷售折扣及安裝服務(wù)合同
- 二零二五年度農(nóng)業(yè)保險(xiǎn)合同糾紛調(diào)解協(xié)議
- 2025年湖南大眾傳媒職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫學(xué)生專用
- 開學(xué)安全第一課主題班會(huì)課件
- 一年級(jí)珍惜糧食主題班會(huì)學(xué)習(xí)教案
- 2025年南京旅游職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫含答案解析
- 【2025年衛(wèi)生健康宣傳日】世界防治結(jié)核病日
- 新版《醫(yī)療器械經(jīng)營質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年高縣縣屬國企業(yè)公開招聘工作人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年人教版數(shù)學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 海岸動(dòng)力學(xué)英文課件Coastal Hydrodynamics-復(fù)習(xí)
- 第7課 課題二《清潔工具與生活·創(chuàng)意清潔工具設(shè)計(jì)》(說課稿)-2023-2024學(xué)年四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)浙教版
- 碳足跡研究-洞察分析
評(píng)論
0/150
提交評(píng)論