第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿_第1頁
第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿_第2頁
第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿_第3頁
第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿_第4頁
第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)演示文稿*目前一頁\總數(shù)四十頁\編于十六點(優(yōu)選)第二次體系結(jié)構(gòu)概述及調(diào)用返回體系結(jié)構(gòu)目前二頁\總數(shù)四十頁\編于十六點*軟件體系結(jié)構(gòu)概述提綱背景軟件體系結(jié)構(gòu)的概念軟件體系結(jié)構(gòu)的意義軟件體系結(jié)構(gòu)和軟件質(zhì)量屬性軟件體系結(jié)構(gòu)風(fēng)格目前三頁\總數(shù)四十頁\編于十六點*1.1背景Edsger.Dijstra指出“軟件的規(guī)模越大,其整體構(gòu)架就越重要”20世紀90年代,軟件體系結(jié)構(gòu)逐漸被工業(yè)界和學(xué)術(shù)界廣泛接受,并且業(yè)內(nèi)普遍認為:對于大規(guī)模復(fù)雜軟件系統(tǒng)而言,構(gòu)架的設(shè)計比數(shù)據(jù)結(jié)構(gòu)以及算法的設(shè)計更為重要目前四頁\總數(shù)四十頁\編于十六點*1.2軟件體系結(jié)構(gòu)的概念MaryShaw和DavidGarlan的定義:軟件體系結(jié)構(gòu)用于描述系統(tǒng)的構(gòu)成要素、構(gòu)成要素之間的交互和組合模式以及在進行組合時的約束條件LenBass的定義:軟件體系結(jié)構(gòu)是指程序或者系統(tǒng)的組成關(guān)系,這種組成關(guān)系包括軟件、軟件的外部可見屬性以及這些軟件之間的關(guān)系目前五頁\總數(shù)四十頁\編于十六點*1.2.1軟件體系結(jié)構(gòu)的概念(續(xù))IEEE1471-2000中的定義:軟件體系結(jié)構(gòu)是系統(tǒng)的基本組織結(jié)構(gòu),包括系統(tǒng)構(gòu)成要素,這些要素相互之間以及與運行環(huán)境之間的關(guān)系,還包括系統(tǒng)設(shè)計及演化時應(yīng)遵循的原則軟件體系結(jié)構(gòu)包括三個基本要素:構(gòu)件、連接件和約束目前六頁\總數(shù)四十頁\編于十六點*1.3軟件體系結(jié)構(gòu)的意義軟件體系結(jié)構(gòu)是軟件相關(guān)人員之間進行交流的手段軟件體系結(jié)構(gòu)是一種高層次的設(shè)計復(fù)用手段軟件體系結(jié)構(gòu)是早期設(shè)計決策的體現(xiàn),決定了最終軟件的質(zhì)量目前七頁\總數(shù)四十頁\編于十六點*1.4軟件體系結(jié)構(gòu)與軟件質(zhì)量屬性軟件體系結(jié)構(gòu)的優(yōu)劣依賴于各種因素,這些因素通常被稱為軟件質(zhì)量屬性(qualities)質(zhì)量屬性包括:性能,可伸縮性,可用性,可維護性,安全性,易用性,可重復(fù)性,可測試性以及可移植性等目前八頁\總數(shù)四十頁\編于十六點*1.5軟件體系結(jié)構(gòu)的風(fēng)格軟件體系結(jié)構(gòu)風(fēng)格是對軟件體系結(jié)構(gòu)的分類,每一種軟件體系結(jié)構(gòu)風(fēng)格都代表一類軟件的結(jié)構(gòu)組織模式軟件體系結(jié)構(gòu)風(fēng)格是在實踐中被重復(fù)使用的構(gòu)件設(shè)計的總結(jié)目前九頁\總數(shù)四十頁\編于十六點*1.5.1軟件體系結(jié)構(gòu)的風(fēng)格(續(xù))軟件體系結(jié)構(gòu)風(fēng)格包括:數(shù)據(jù)流風(fēng)格,順序批處理風(fēng)格,管道-過濾器風(fēng)格,調(diào)用-返回風(fēng)格,主程序-子程序風(fēng)格,面向?qū)ο箫L(fēng)格,分層的風(fēng)格,獨立構(gòu)件風(fēng)格,進程通訊,事件系統(tǒng),虛擬機風(fēng)格,解釋器,基于規(guī)則的系統(tǒng),以數(shù)據(jù)為中心的風(fēng)格,數(shù)據(jù)庫,超文本以及黑板風(fēng)格等。另外還有分布式的風(fēng)格,比如云計算,P2P風(fēng)格等目前十頁\總數(shù)四十頁\編于十六點*2調(diào)用-返回風(fēng)格提綱非結(jié)構(gòu)化的編程簡介調(diào)用-返回風(fēng)格軟件體系結(jié)構(gòu)的概念主程序-子程序軟件體系結(jié)構(gòu)面向?qū)ο筌浖w系結(jié)構(gòu)主程序-子程序與面向?qū)ο篌w系結(jié)構(gòu)舉例目前十一頁\總數(shù)四十頁\編于十六點*2.1非結(jié)構(gòu)化的編程簡介非結(jié)構(gòu)化的編程技術(shù)是歷史上最早的編程范型非結(jié)構(gòu)化語言(比如匯編語言)編寫的程序通常包內(nèi)含一系列有序的命令,每行有一個行號標記,便于程序跳轉(zhuǎn)目前十二頁\總數(shù)四十頁\編于十六點*2.1.1非結(jié)構(gòu)化編程的特點非結(jié)構(gòu)化編程已經(jīng)引入了循環(huán),分支及子程序的概念非結(jié)構(gòu)化編程中的子程序允許有多個入口和多個出口程序的執(zhí)行順序可以被任意變換目前十三頁\總數(shù)四十頁\編于十六點*2.1.2非結(jié)構(gòu)化編程的舉例01main02movAX,045;03movBX,012;04addAX,BX;05jnz17;06…07jump012;08…目前十四頁\總數(shù)四十頁\編于十六點*2.2調(diào)用-返回風(fēng)格軟件體系結(jié)構(gòu)調(diào)用-返回風(fēng)格體系結(jié)構(gòu)(CallandReturnArchitecture)采用分而治之的策略,其主要思想是將一個復(fù)雜的大系統(tǒng)分解為一些子系統(tǒng),以便降低復(fù)雜度,并且增加可修改性這種系統(tǒng)的程序執(zhí)行順序通常只由一個單線程控制目前十五頁\總數(shù)四十頁\編于十六點*2.2.1調(diào)用-返回風(fēng)格體系結(jié)構(gòu)示意AMainBCDE12910456738程序運行的控制流示意目前十六頁\總數(shù)四十頁\編于十六點*2.2.2調(diào)用-返回風(fēng)格體系的概念每個軟件都設(shè)計為有一個唯一的程序執(zhí)行入口和一個唯一的程序執(zhí)行出口;程序執(zhí)行結(jié)束后,則控制被返回給程序的調(diào)用構(gòu)件;這些程序的構(gòu)件被稱為子程序(Subroutine)從一個構(gòu)件到另一個構(gòu)件的控制傳遞被稱為程序調(diào)用(call)目前十七頁\總數(shù)四十頁\編于十六點*2.2.3調(diào)用-返回風(fēng)格體系的組織擁有整個軟件入口的構(gòu)件叫做主程序(MainProgram),它控制子程序的執(zhí)行順序可以被所有構(gòu)件訪問的共享數(shù)據(jù)被稱為全局變量(Globalvarible)MainSub1Sub2Sub3GlobalDataSub4Sub5目前十八頁\總數(shù)四十頁\編于十六點*2.2.4調(diào)用-返回風(fēng)格體系的層次組織調(diào)用-返回風(fēng)格體系結(jié)構(gòu)可以被組織成任何形式。但層次結(jié)構(gòu)的組織形式更清晰層次結(jié)構(gòu)的設(shè)計被稱為共享數(shù)據(jù)的主程序-子程序軟件體系結(jié)構(gòu)MainSub1Sub2Sub3Sub4Sub5Sub6Sub7Sub8DataSub10DataSub9Sub11目前十九頁\總數(shù)四十頁\編于十六點*2.3主程序-子程序軟件體系結(jié)構(gòu)主程序-子程序軟件體系結(jié)構(gòu)在設(shè)計上使用層次化的劃分方法,該體系結(jié)構(gòu)中使用由編程語言直接支持的單一控制線程相比于非結(jié)構(gòu)化編程,主程序-子程序軟件體系結(jié)構(gòu)能夠較好地支持系統(tǒng)的可改變性和可伸縮性等性能,其采用分而治之的策略目前二十頁\總數(shù)四十頁\編于十六點*

自頂向下的設(shè)計方法主程序-子程序軟件體系結(jié)構(gòu)通常采用自頂向下的設(shè)計方法,即從系統(tǒng)的功能角度出發(fā),從高層開始,將整個功能逐步細化為子功能MainSub1Sub2Sub3Sub11Sub12Sub21Sub22Sub31Sub211Sub121Sub111目前二十一頁\總數(shù)四十頁\編于十六點*

自頂向下的設(shè)計舉例一個藥品成本計算系統(tǒng)(MedicineCostComputation)要計算一種藥品的單位成本,要求輸入藥品的名稱(MedicineName),然后系統(tǒng)輸出該藥品的單位成本(MedicineCostperUnit)MedicineCostComputationMedicineNameMedicineCost系統(tǒng)的第一層數(shù)據(jù)流圖(DFD)目前二十二頁\總數(shù)四十頁\編于十六點*

系統(tǒng)層次化數(shù)據(jù)流圖結(jié)構(gòu)化設(shè)計從數(shù)據(jù)流圖開始,然后將數(shù)據(jù)流圖轉(zhuǎn)換為程序結(jié)構(gòu)圖系統(tǒng)的第三層數(shù)據(jù)流圖(DFD)系統(tǒng)的第二層數(shù)據(jù)流圖(DFD)MedicineCostComputationEnterMedicineNameOutputMedicineCostGetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCost目前二十三頁\總數(shù)四十頁\編于十六點*

系統(tǒng)結(jié)構(gòu)圖設(shè)計數(shù)據(jù)流圖從數(shù)據(jù)輸入開始,對數(shù)據(jù)的各個處理過程以及最后的輸出進行描述,然后構(gòu)建結(jié)構(gòu)圖GetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCostMedicineCostComputationSystemCalculatemedineCost13245678目前二十四頁\總數(shù)四十頁\編于十六點*2.3.2.3自頂向下結(jié)構(gòu)化設(shè)計的問題功能演化困難現(xiàn)實中的系統(tǒng)功能不容易描述,比如服務(wù)請求式的系統(tǒng)難于找到頂層功能模塊功能化設(shè)計丟掉了數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)由功能設(shè)計得到的軟件產(chǎn)品產(chǎn)生的可復(fù)用代碼較少目前二十五頁\總數(shù)四十頁\編于十六點*

結(jié)構(gòu)化設(shè)計的優(yōu)缺點優(yōu)點邏輯設(shè)計與物理設(shè)計分離開發(fā)過程中形成一套規(guī)范化的文檔,便于將來修改和維護缺點開發(fā)周期長,開發(fā)過程復(fù)雜系統(tǒng)難于適應(yīng)環(huán)境變化經(jīng)驗表明,較小的程序(小于10萬行)適合于結(jié)構(gòu)化開發(fā)目前二十六頁\總數(shù)四十頁\編于十六點*2.4

面向?qū)ο蟮捏w系結(jié)構(gòu)結(jié)構(gòu)化編程中的數(shù)據(jù)可以被程序的任何語句訪問,當(dāng)程序變大時,這種做法使得程序缺陷可能被傳到很遠,難于維護面向?qū)ο笤O(shè)計可以將數(shù)據(jù)和操作封裝起來,使數(shù)據(jù)的訪問受到限制。這種將數(shù)據(jù)和操作捆綁的方式被稱為對象目前二十七頁\總數(shù)四十頁\編于十六點*

面向?qū)ο蟮捏w系結(jié)構(gòu)面向?qū)ο蟮脑O(shè)計中,系統(tǒng)被看作為一些對象的集合,消息從一個對象發(fā)送到另一個對象,每個對象完成一定的功能Obj1Obj7Obj6Obj5Obj4Obj3Obj2CallCallCallCallCallCallCallCall面向?qū)ο蟮捏w系結(jié)構(gòu)目前二十八頁\總數(shù)四十頁\編于十六點*

面向?qū)ο蟮奶攸c封裝性繼承性多態(tài)復(fù)用和可維護性對象是對現(xiàn)實世界的抽象并且可以管理自己系統(tǒng)功能通過對象服務(wù)表示共享數(shù)據(jù)區(qū)域被取消對象可以是分布式的目前二十九頁\總數(shù)四十頁\編于十六點*2.4.3面向?qū)ο蟮睦^承機制繼承的目的是代碼復(fù)用繼承提供了一個統(tǒng)一的接口,容易實現(xiàn)多態(tài)AnimalLandAnimalAquaticAnimalBirdfamilyMammalsElephantWhale目前三十頁\總數(shù)四十頁\編于十六點*2.4.4面向?qū)ο蟮膬?yōu)點面向?qū)ο笤O(shè)計有如下優(yōu)點:容易維護,沒有共享的數(shù)據(jù)可復(fù)用性好映射現(xiàn)實世界,便于理解容易對一個系統(tǒng)進行分解目前三十一頁\總數(shù)四十頁\編于十六點*2.4.5面向?qū)ο蟮娜秉c面向?qū)ο笤O(shè)計有如下缺點:程序占用的內(nèi)容大一個對象要和其它對象交互,必須知道其它對象的身份目前三十二頁\總數(shù)四十頁\編于十六點*2.5主程序-子程序與面向?qū)ο蟮捏w系結(jié)構(gòu)比較設(shè)計一個文檔更新系統(tǒng),對符合一定格式的輸入文檔進行更新,系統(tǒng)的功能描述如下:政治問題,將文檔中的Japanese修改為Germany兩千年問題,將兩位日期修改為四位日期對商品按字典序排序目前三十三頁\總數(shù)四十頁\編于十六點*文檔更新系統(tǒng)的數(shù)據(jù)變化原始文件 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目前三十四頁\總數(shù)四十頁\編于十六點*文檔更新系統(tǒng)的數(shù)據(jù)變化經(jīng)過兩千年問題修改的文件 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目前三十五頁\總數(shù)四十頁\編于十六點*結(jié)構(gòu)化程序設(shè)計文檔更新系統(tǒng)結(jié)構(gòu)化程序中包含一個主程序和5個子程序結(jié)構(gòu)化設(shè)計的程序包含數(shù)據(jù)與函數(shù),程序中的全局變量沒有被封裝,由每個函數(shù)訪問與修改MainInputCorrectPoliticalErrorCorrectY2KErrorSortOutput目前三十六頁\總數(shù)四十頁\編于十六點*面向?qū)ο笤O(shè)計文檔更新系統(tǒng)面向?qū)ο蟮脑O(shè)計將數(shù)據(jù)、政治問題,排序及輸出功能封裝在不同的類中,類之間的數(shù)據(jù)通過參數(shù)進行傳遞LegacyFileUpdateGUI《Interface》FileUpdateInterface+update():voidInput-file:ArrayList+update():voidPoliticalIssue-file:ArrayList+update():void

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論