




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 “Good Heavens!For more than forty years I have been speaking prose without knowing it” “社會也許沒有承認一個有非凡思想的人,但 一定會承認非凡的思想” “軟件開發(fā)人員在系統(tǒng)組織方面通常會采用特 定的模式,但就大多數(shù)而言,他們對體系結(jié)構(gòu) 的分析和判斷在很大程度上都是出于自發(fā)而且 并不規(guī)范” Software Architecture BY 王備戰(zhàn)王備戰(zhàn)M)O) 海韻園行政樓海韻園行政樓A座座207 Contents 主要內(nèi)容 軟件體系結(jié)構(gòu)的由來、發(fā)展、模
2、型、一般設(shè)計 原理 軟件體系結(jié)構(gòu)的描述方法 常用的結(jié)構(gòu)模式(設(shè)計模式、軟件體系結(jié)構(gòu)模式) 參考資料 Patterns of Enterprise Application Architecture Software Architecture (美)Mary Shaw,David Garlan編著,科學(xué)出版社 軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用 萬建成 盧雷編著 科學(xué) 出版社 軟件架構(gòu)實踐 (美)Len Bass,Paul Clements, Rick Kazman著,清華大學(xué)出版社 設(shè)計模式 (美國)Erich Gamma,Richard Helm,Ralph Johnson,John Vlissi
3、des著,機械工 業(yè)出版社 軟件體系結(jié)構(gòu)及實例分析 余雪麗主編 科學(xué)出版社 Other Documents From Internet 教學(xué)與考核方式 教學(xué)方式 講授 上機 (IBM RSA/JDK6.0) 閱讀 考核方式 筆試 70% 作業(yè) 10% 平時 10% 上機 10% Presentation By yourself Resource URL 前言 Software Architecture -Perspective on an Emerging Discipline 軟件體系結(jié)構(gòu) -一門出露端倪的學(xué)科 “軟件體系結(jié)構(gòu)”你早就知道 Client/Server Browser/Serv
4、er Three-tier/Muti Tiers P2P Distributed SSH “建筑體系結(jié)構(gòu)” “建筑體系結(jié)構(gòu)”(續(xù)) 計算機系統(tǒng)結(jié)構(gòu)的發(fā)展計算機系統(tǒng)結(jié)構(gòu)的發(fā)展 輸入設(shè)備輸入設(shè)備 存儲器存儲器 運算器運算器 控制器控制器 輸出設(shè)備輸出設(shè)備 數(shù)據(jù)數(shù)據(jù) 控制信息流控制信息流 馮馮. .諾依曼結(jié)構(gòu)圖諾依曼結(jié)構(gòu)圖 體系結(jié)構(gòu)的研究:體系結(jié)構(gòu)的研究: 表明該領(lǐng)域逐漸表明該領(lǐng)域逐漸 走向成熟走向成熟 可以由一個人制造 的需求: 最小模型 簡單的過程 簡單的工具 構(gòu)造一棟房屋 由一個團體建設(shè),并且需要更 高的效率、更精確的時間限制 。 需求: 模型 良好定義的過程 功能強大的工具 早期的結(jié)構(gòu) 過程
5、 - 有限的理論知識 現(xiàn)代的結(jié)構(gòu) 進步 - 先進的原材料 - 先進的分析 房屋建模 過程 - 對早期成就的模仿 - 從失敗中學(xué)習(xí) - 對其他影響因素的綜合 - 試驗 任何時候您要拋棄已經(jīng)具有的習(xí)慣時,特別是大的項目中,您最好 要用多十倍的努力、多十倍的調(diào)查。 - LeMessuier 程序=? 程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)(1960s ) 程序 = 子程序 + 子程序(1970s ) 對象 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 程序 = 對象 + 對象(1980s) 程序 = 組件 + 連接件(1990s) 軟件=? SA之重要 n最早指出SA的重要性的 是大師Edsger Dijkstra(1930-20
6、02) “.the larger the project, the more essential the structuring!”(1968) 軟件復(fù)雜性的度數(shù) 更高的技術(shù)復(fù)雜性 - 嵌入式,實時的,分布式的,不可出錯的 - 定制的, 空前的,可復(fù)用的 - 高性能的 低技術(shù)復(fù)雜度 - 大部分是4GL, 或基于組件技術(shù)的 - 應(yīng)用反向工程 - 交互性能 較高管理復(fù)雜度 - 大范圍 - 合同契約性 - 多數(shù)人控制的 - “項目” 較低的管理復(fù)雜度 - 小范圍 - 非正式的 - 簡單的資金運作 - “產(chǎn)品” 防御 MIS系統(tǒng) 防御 武器系統(tǒng) 信息 交換 CASE工具 國際空中運輸 控制系統(tǒng) 企業(yè)I
7、S (IS應(yīng)用的家庭服務(wù)) 商業(yè) 編譯器 商業(yè)制表軟件 IS應(yīng)用 小型科學(xué)模擬 大型組織/實體仿真模擬 一個比較中等的項目 - 5-10 人 - 10-15 個月的開發(fā)周期 - 3-5 個外部界面 - 一些不可知的事情 & 風(fēng)險 嵌入式 車用軟件 注:什么是4GL? 軟件中的影響因素 技術(shù)混合 復(fù)雜度是我們的敵人,是我們的目標,我們要消滅它。 Jan Baan 性能吞吐量 容量 可用性 失敗安全 出錯容忍程度 功能 成本兼容性 恢復(fù)能力 20年之后的挑戰(zhàn)不是速度、成本和性能,而是復(fù)雜度的問題了。 Bill Raduchel, Sun微系統(tǒng)公司策略執(zhí)行總裁 工程化的步伐/20120305 手工(
8、Craft)商業(yè)(Commerical)工程(Professional Engineering) 行家里手和業(yè)余天才熟練的工匠 受過系統(tǒng)教育的專業(yè)人 員 直覺與強力既定程序分析與理論 偶然的進步注重實效地優(yōu)化 以科學(xué)為指導(dǎo)地升級換 代 不經(jīng)意的推廣言傳身教專業(yè)教育課程 奢侈地使用原料注重成本與原料利用原料多次利用 生產(chǎn)是為了使用而不是 出售 為銷售而生產(chǎn)市場份額 規(guī)范化循環(huán) 專門的解決方法專門的解決方法 土方法土方法 規(guī)范化規(guī)范化 模型與理論模型與理論 新的問題新的問題 實踐提高實踐提高 前言 軟件體系結(jié)構(gòu)的概念 今天,軟件產(chǎn)品越來越復(fù)雜,相互之間的依賴性 更強,分工也愈加細化。 相同的情況也
9、出現(xiàn)在軟件設(shè)計領(lǐng)域,例如“三層 架構(gòu)”、MVC、Pipeline、甚至某些商標 J2EE、.Net 隨著軟件系統(tǒng)越來越復(fù)雜和龐大,對數(shù)據(jù)結(jié)構(gòu)和 算法的選擇在許多情況下成為較次要的部分,而 對整個系統(tǒng)的設(shè)計和描述變得越來越重要。 人們編寫軟件的方式和使用的開發(fā)語言及工具有 一個顯著的發(fā)展特點,即他們的抽象程度有規(guī)律 的提高。 前言 軟件體系結(jié)構(gòu)的概念 50年代,人們使用機器指令、打空卡片編程,程 序如天書。1952年,MIT使用了符號地址,開始 使用匯編,這是一次抽象。 50年代后期,編程中使用了表達式、循環(huán)、分支、 邏輯運算,開發(fā)者可以在更高級別的抽象上工作 了。 1954年,IBM開發(fā)了Fo
10、rtran,并用Fortran開 發(fā)了監(jiān)控程序(操作系統(tǒng)的原型),實現(xiàn)了對硬 件的軟件抽象。 前言 軟件體系結(jié)構(gòu)的概念 比Fortran更高級的語言開始提供對自定義數(shù)據(jù) 類型和模塊化的支持。60年代后,Algol、 Pascal、C。 1968年,IBM的IMS系統(tǒng)出現(xiàn)。這一時期的軟件 開發(fā),集中在對算法和數(shù)據(jù)結(jié)構(gòu)的探討上, Pascal的發(fā)明人提出了:程序算法數(shù)據(jù)結(jié)構(gòu), 軟件的結(jié)構(gòu)與抽象集中在數(shù)據(jù)結(jié)構(gòu)上。 漸漸的,人們開始希望把算法與數(shù)據(jù)結(jié)構(gòu)結(jié)合起 來,ADT被提了出來。1968年,Simula67出現(xiàn) 了,是第一個面向?qū)ο笳Z言。 前言 軟件體系結(jié)構(gòu)的概念 1970年,貝爾實驗室開發(fā)了Uni
11、x,同年IBM的E.F.Codd提 出了關(guān)系數(shù)據(jù)庫理論。接下來的30年,是OS和DB的大發(fā)展 時期。 1978年,CODASYL發(fā)表了有關(guān)分布式數(shù)據(jù)庫的報告 (SQL)。 1980年,為配合IBM PC,MS承擔(dān)了OS的任務(wù),PC- DOS ,進而發(fā)展為MSDOS。 1983年,美國國防部完成了ARPANET,后來發(fā)展成為 Internet,TCP/IP成為大多數(shù)分布式構(gòu)件通訊的基礎(chǔ)。 1985年,MS開發(fā)了Widows 3.1、3.2,1995年推出了獨 立的OS Windows95并對以前的開發(fā)工具進行了大規(guī)模的 更新,先后推出了VB、VC、MFC,使Windows應(yīng)用程序 的結(jié)構(gòu)標準化,
12、成為新一代的開發(fā)應(yīng)用軟件的工具。 前言 軟件體系結(jié)構(gòu)的概念 90年代,人們逐漸認識軟件體系結(jié)構(gòu)的重要性, 軟件工程師在描述和理解軟件系統(tǒng)時逐漸談到軟 件的體系結(jié)構(gòu),但這些交流是非正式的,有明顯 的局部性: 體系結(jié)構(gòu)的設(shè)計很難被充分理解,也很難進行正式的 分析和設(shè)計 有關(guān)體系結(jié)構(gòu)的決定通常取決于個人的決定,而不是 基于一組成熟的工程化原理和規(guī)則 在系統(tǒng)演進時,體系結(jié)構(gòu)的設(shè)計難于保證和驗證 可用于體系結(jié)構(gòu)設(shè)計的工具非常少 前言 軟件體系結(jié)構(gòu)的概念 90年代后期,ADLs(Architecture Description Languages)工具被提出來了。 該語言致力于提高體系 結(jié)構(gòu)的可讀性、可重
13、用性和可分析性,用來在系統(tǒng)實現(xiàn)之 前對體系結(jié)構(gòu)進行定義和建模。ADL是一種相對較新的技 術(shù),目前尚無成功的商業(yè)案例,部分原因在于本身的不完 備性,部分原因在于尚無迫切的工業(yè)需求。 ADL發(fā)展緩慢,但它的一個替代工具,OMG(Object Management Group)組織的UML發(fā)展飛速。今天的 UML已經(jīng)逐漸開始了統(tǒng)一的過程,但還未能統(tǒng)一天下, 不過UML已經(jīng)非常出色了。不僅可以用于對象的建模, 也可以用于非對象的建模。 前言 軟件體系結(jié)構(gòu)的概念 之所以有軟件體系結(jié)構(gòu)的提出與發(fā)展,主要原因 在于軟件開發(fā)自身的變化: 第一個原因:1968年數(shù)據(jù)庫出現(xiàn)后,軟件的規(guī)模越來 越大:對硬件編程、對操作系統(tǒng)編程、對數(shù)據(jù)庫編程、 對AS編程、CBD編程、Java、J2EE、.Net。 第二個原因:對分布式的需求。越來越多的應(yīng)用運行 在Internet上,負載的加大使得并行的Server非常多, 安全的考慮使得我們不能將雞蛋放在一個籃子里,更 加專業(yè)昂貴的開發(fā)隊伍成為需要。(MainFrame、 C/S、
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新型高效電池項目發(fā)展計劃
- 裝表接電工考試模擬題含參考答案
- 個人理財業(yè)務(wù)模擬考試題含參考答案
- 1水到哪里去了 教學(xué)設(shè)計-2024-2025學(xué)年科學(xué)三年級上冊教科版
- 《第2節(jié) 元件及漸變動畫》教學(xué)設(shè)計 -2023-2024學(xué)年北師大版初中信息技術(shù)八年級下冊
- 第五單元寫話:商量(教學(xué)設(shè)計)-2024-2025學(xué)年二年級語文上冊單元作文能力提升(統(tǒng)編版)
- 2024北京糧香四溢科技有限責(zé)任公司公開招聘3人筆試參考題庫附帶答案詳解
- 第六章 幾何圖形初步教學(xué)設(shè)計-2024-2025學(xué)年人教版數(shù)學(xué)七年級上冊
- 江蘇省蘇南八校2023-2024學(xué)年高二上學(xué)期12月聯(lián)考地理試題(解析版)
- 2《我學(xué)習(xí)我快樂》教學(xué)設(shè)計-2024-2025學(xué)年道德與法治三年級上冊統(tǒng)編版
- 表面粗糙度等級對照表模板.doc
- 天然氣門站操作規(guī)程
- 東莞虎門架空線路拆除施工方案
- 尿液結(jié)晶教學(xué)課件
- 繪本《你很特別》
- 茶葉揉捻機總體設(shè)計方案的擬定
- 律師事務(wù)所主任在司法行政工作會議上的發(fā)言稿
- 初中三角函數(shù)計算題100道
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院財務(wù)管理
- 2022年新目標英語七年級期末考試質(zhì)量分析
- 北師大版五年級數(shù)學(xué)下冊導(dǎo)學(xué)案全冊
評論
0/150
提交評論