




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二次體系結構概述及調用返回體系結構演示文稿*第一頁,共四十頁。(優選)第二次體系結構概述及調用返回體系結構第二頁,共四十頁。*軟件體系結構概述提綱背景軟件體系結構的概念軟件體系結構的意義軟件體系結構和軟件質量屬性軟件體系結構風格第三頁,共四十頁。*1.1背景Edsger.Dijstra指出“軟件的規模越大,其整體構架就越重要”20世紀90年代,軟件體系結構逐漸被工業界和學術界廣泛接受,并且業內普遍認為:對于大規模復雜軟件系統而言,構架的設計比數據結構以及算法的設計更為重要第四頁,共四十頁。*1.2軟件體系結構的概念MaryShaw和DavidGarlan的定義:軟件體系結構用于描述系統的構成要素、構成要素之間的交互和組合模式以及在進行組合時的約束條件LenBass的定義:軟件體系結構是指程序或者系統的組成關系,這種組成關系包括軟件、軟件的外部可見屬性以及這些軟件之間的關系第五頁,共四十頁。*1.2.1軟件體系結構的概念(續)IEEE1471-2000中的定義:軟件體系結構是系統的基本組織結構,包括系統構成要素,這些要素相互之間以及與運行環境之間的關系,還包括系統設計及演化時應遵循的原則軟件體系結構包括三個基本要素:構件、連接件和約束第六頁,共四十頁。*1.3軟件體系結構的意義軟件體系結構是軟件相關人員之間進行交流的手段軟件體系結構是一種高層次的設計復用手段軟件體系結構是早期設計決策的體現,決定了最終軟件的質量第七頁,共四十頁。*1.4軟件體系結構與軟件質量屬性軟件體系結構的優劣依賴于各種因素,這些因素通常被稱為軟件質量屬性(qualities)質量屬性包括:性能,可伸縮性,可用性,可維護性,安全性,易用性,可重復性,可測試性以及可移植性等第八頁,共四十頁。*1.5軟件體系結構的風格軟件體系結構風格是對軟件體系結構的分類,每一種軟件體系結構風格都代表一類軟件的結構組織模式軟件體系結構風格是在實踐中被重復使用的構件設計的總結第九頁,共四十頁。*1.5.1軟件體系結構的風格(續)軟件體系結構風格包括:數據流風格,順序批處理風格,管道-過濾器風格,調用-返回風格,主程序-子程序風格,面向對象風格,分層的風格,獨立構件風格,進程通訊,事件系統,虛擬機風格,解釋器,基于規則的系統,以數據為中心的風格,數據庫,超文本以及黑板風格等。另外還有分布式的風格,比如云計算,P2P風格等第十頁,共四十頁。*2調用-返回風格提綱非結構化的編程簡介調用-返回風格軟件體系結構的概念主程序-子程序軟件體系結構面向對象軟件體系結構主程序-子程序與面向對象體系結構舉例第十一頁,共四十頁。*2.1非結構化的編程簡介非結構化的編程技術是歷史上最早的編程范型非結構化語言(比如匯編語言)編寫的程序通常包內含一系列有序的命令,每行有一個行號標記,便于程序跳轉第十二頁,共四十頁。*2.1.1非結構化編程的特點非結構化編程已經引入了循環,分支及子程序的概念非結構化編程中的子程序允許有多個入口和多個出口程序的執行順序可以被任意變換第十三頁,共四十頁。*2.1.2非結構化編程的舉例01main02movAX,045;03movBX,012;04addAX,BX;05jnz17;06…07jump012;08…第十四頁,共四十頁。*2.2調用-返回風格軟件體系結構調用-返回風格體系結構(CallandReturnArchitecture)采用分而治之的策略,其主要思想是將一個復雜的大系統分解為一些子系統,以便降低復雜度,并且增加可修改性這種系統的程序執行順序通常只由一個單線程控制第十五頁,共四十頁。*2.2.1調用-返回風格體系結構示意AMainBCDE12910456738程序運行的控制流示意第十六頁,共四十頁。*2.2.2調用-返回風格體系的概念每個軟件都設計為有一個唯一的程序執行入口和一個唯一的程序執行出口;程序執行結束后,則控制被返回給程序的調用構件;這些程序的構件被稱為子程序(Subroutine)從一個構件到另一個構件的控制傳遞被稱為程序調用(call)第十七頁,共四十頁。*2.2.3調用-返回風格體系的組織擁有整個軟件入口的構件叫做主程序(MainProgram),它控制子程序的執行順序可以被所有構件訪問的共享數據被稱為全局變量(Globalvarible)MainSub1Sub2Sub3GlobalDataSub4Sub5第十八頁,共四十頁。*2.2.4調用-返回風格體系的層次組織調用-返回風格體系結構可以被組織成任何形式。但層次結構的組織形式更清晰層次結構的設計被稱為共享數據的主程序-子程序軟件體系結構MainSub1Sub2Sub3Sub4Sub5Sub6Sub7Sub8DataSub10DataSub9Sub11第十九頁,共四十頁。*2.3主程序-子程序軟件體系結構主程序-子程序軟件體系結構在設計上使用層次化的劃分方法,該體系結構中使用由編程語言直接支持的單一控制線程相比于非結構化編程,主程序-子程序軟件體系結構能夠較好地支持系統的可改變性和可伸縮性等性能,其采用分而治之的策略第二十頁,共四十頁。*
自頂向下的設計方法主程序-子程序軟件體系結構通常采用自頂向下的設計方法,即從系統的功能角度出發,從高層開始,將整個功能逐步細化為子功能MainSub1Sub2Sub3Sub11Sub12Sub21Sub22Sub31Sub211Sub121Sub111第二十一頁,共四十頁。*
自頂向下的設計舉例一個藥品成本計算系統(MedicineCostComputation)要計算一種藥品的單位成本,要求輸入藥品的名稱(MedicineName),然后系統輸出該藥品的單位成本(MedicineCostperUnit)MedicineCostComputationMedicineNameMedicineCost系統的第一層數據流圖(DFD)第二十二頁,共四十頁。*
系統層次化數據流圖結構化設計從數據流圖開始,然后將數據流圖轉換為程序結構圖系統的第三層數據流圖(DFD)系統的第二層數據流圖(DFD)MedicineCostComputationEnterMedicineNameOutputMedicineCostGetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCost第二十三頁,共四十頁。*
系統結構圖設計數據流圖從數據輸入開始,對數據的各個處理過程以及最后的輸出進行描述,然后構建結構圖GetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCostMedicineCostComputationSystemCalculatemedineCost13245678第二十四頁,共四十頁。*2.3.2.3自頂向下結構化設計的問題功能演化困難現實中的系統功能不容易描述,比如服務請求式的系統難于找到頂層功能模塊功能化設計丟掉了數據與數據結構由功能設計得到的軟件產品產生的可復用代碼較少第二十五頁,共四十頁。*
結構化設計的優缺點優點邏輯設計與物理設計分離開發過程中形成一套規范化的文檔,便于將來修改和維護缺點開發周期長,開發過程復雜系統難于適應環境變化經驗表明,較小的程序(小于10萬行)適合于結構化開發第二十六頁,共四十頁。*2.4
面向對象的體系結構結構化編程中的數據可以被程序的任何語句訪問,當程序變大時,這種做法使得程序缺陷可能被傳到很遠,難于維護面向對象設計可以將數據和操作封裝起來,使數據的訪問受到限制。這種將數據和操作捆綁的方式被稱為對象第二十七頁,共四十頁。*
面向對象的體系結構面向對象的設計中,系統被看作為一些對象的集合,消息從一個對象發送到另一個對象,每個對象完成一定的功能Obj1Obj7Obj6Obj5Obj4Obj3Obj2CallCallCallCallCallCallCallCall面向對象的體系結構第二十八頁,共四十頁。*
面向對象的特點封裝性繼承性多態復用和可維護性對象是對現實世界的抽象并且可以管理自己系統功能通過對象服務表示共享數據區域被取消對象可以是分布式的第二十九頁,共四十頁。*2.4.3面向對象的繼承機制繼承的目的是代碼復用繼承提供了一個統一的接口,容易實現多態AnimalLandAnimalAquaticAnimalBirdfamilyMammalsElephantWhale第三十頁,共四十頁。*2.4.4面向對象的優點面向對象設計有如下優點:容易維護,沒有共享的數據可復用性好映射現實世界,便于理解容易對一個系統進行分解第三十一頁,共四十頁。*2.4.5面向對象的缺點面向對象設計有如下缺點:程序占用的內容大一個對象要和其它對象交互,必須知道其它對象的身份第三十二頁,共四十頁。*2.5主程序-子程序與面向對象的體系結構比較設計一個文檔更新系統,對符合一定格式的輸入文檔進行更新,系統的功能描述如下:政治問題,將文檔中的Japanese修改為Germany兩千年問題,將兩位日期修改為四位日期對商品按字典序排序第三十三頁,共四十頁。*文檔更新系統的數據變化原始文件 Printer$230Germany89-02-01 Refrigerator$380Japaness88-12-08 Refrigerator$360Taiwan89-05-12 Printer$330Japaness89-07-11政治修改后的文件 Printer$230Germany89-02-01 Refrigerator$380Germany88-12-08 Refrigerator$360Taiwan89-05-12 Printer$330Germany89-07-11第三十四頁,共四十頁。*文檔更新系統的數據變化經過兩千年問題修改的文件 Printer$230Germany1989-02-01 Refrigerator$380Germany1988-12-08 Refrigerator$360Taiwan1989-05-12 Printer$330Germany1989-07-11排序后的文件 Printer$230Germany1989-02-01 Printer$330Germany1989-07-11 Refrigerator$360Taiwan1989-05-12 Refrigerator$380Germany1988-12-08第三十五頁,共四十頁。*結構化程序設計文檔更新系統結構化程序中包含一個主程序和5個子程序結構化設計的程序包含數據與函數,程序中的全局變量沒有被封裝,由每個函數訪問與修改MainInputCorrectPoliticalErrorCorrectY2KErrorSortOutput第三十六頁,共四十頁。*面向對象設計文檔更新系統面向對象的設計將數據、政治問題,排序及輸出功能封裝在不同的類中,類之間的數據通過參數進行傳遞LegacyFileUpdateGUI《Interface》FileUpdateInterface+update():voidInput-file:ArrayList+update():voidPoliticalIssue-file:ArrayList+update():void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025軟考網絡管理員考試動向觀察試題
- 企業戰略中的智能化思維試題及答案
- 追求卓越的個人品牌建設計劃
- 2024年湖北省應急管理廳下屬事業單位真題
- 網絡監控最佳實踐與技巧試題及答案
- 2024年贛州職業技術學院招聘筆試真題
- 小班音樂欣賞活動的豐富性計劃
- 網絡流量分析仕途的試題及答案
- 計算機編程的未來趨勢分析試題及答案
- 吉林省長春市實驗繁榮學校2025屆七下數學期末學業質量監測模擬試題含解析
- DL∕T 2006-2019 干式空心電抗器匝間絕過電壓試驗設備技術規范
- 風對起飛和著陸影響及修正和風切變完整版課件
- 糧食平房倉設計規范課件
- 物質創造普遍秩序中文版
- 國家級高技能人才培訓基地建設項目申請書
- 高校在完善國防動員機制中的作用與實現路徑
- 化工原理習題(譚天恩)解答上
- 庫欣綜合征英文教學課件cushingsyndrome
- 聚酯合成的酯化與縮聚課件
- 交管12123駕駛證學法減分題庫與答案(通用版)
- EHS監測測量控制程序
評論
0/150
提交評論