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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論