版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四章軟件總體設(shè)計(jì)1【本章引言】總體設(shè)計(jì)過程通常由兩個(gè)階段組成:系統(tǒng)設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)。其中系統(tǒng)設(shè)計(jì)的任務(wù)是確定系統(tǒng)的具體實(shí)現(xiàn)方案,結(jié)構(gòu)設(shè)計(jì)則是確定軟件的模塊結(jié)構(gòu)。這兩個(gè)階段是緊密聯(lián)系在一起的,它們執(zhí)行的效果將直接影響到總體設(shè)計(jì)好壞,乃至整個(gè)軟件工程的合理與否。前一個(gè)階段是后一個(gè)階段的基礎(chǔ),后一個(gè)階段是前一個(gè)階段的發(fā)展方向。因此,我們?cè)诳傮w設(shè)計(jì)的整個(gè)過程中必須圍繞系統(tǒng)設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)這兩個(gè)階段展開每一項(xiàng)工作。2/5/20232第四章軟件總體設(shè)計(jì)第四章軟件總體設(shè)計(jì)【本章重點(diǎn)】軟件設(shè)計(jì)的概念與原則;掌握總體設(shè)計(jì)的步驟和方法;【教學(xué)目標(biāo)】掌握軟件設(shè)計(jì)的概念與原則;掌握總體設(shè)計(jì)的步驟和方法;了解總體設(shè)計(jì)的文檔與評(píng)審。2/5/20233第四章軟件總體設(shè)計(jì)第四章軟件總體設(shè)計(jì)4.1總體設(shè)計(jì)概述4.2總體設(shè)計(jì)的圖形描述工具
4.3模塊化設(shè)計(jì)4.4面向數(shù)據(jù)流的設(shè)計(jì)方法4.5小結(jié)4.6習(xí)題2/5/20234第四章軟件總體設(shè)計(jì)軟件設(shè)計(jì)階段的任務(wù)與目標(biāo)
軟件編碼前,必須先進(jìn)行軟件設(shè)計(jì)。軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件的質(zhì)量。在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種需求,較好地解決了所開發(fā)的軟件“做什么”的問題,并已在軟件需求說明書和數(shù)據(jù)要求說明書中詳盡和充分地闡明了這些需求以后,下一步就要著手實(shí)現(xiàn)軟件的需求,即軟件設(shè)計(jì)階段要解決“怎么做”的問題。2/5/20235第四章軟件總體設(shè)計(jì)
軟件設(shè)計(jì)在開發(fā)階段中的重要性
軟件設(shè)計(jì)階段要解決“如何做”的問題。這顯然是整個(gè)軟件開發(fā)過程的核心問題,所有的開發(fā)工作都將根據(jù)設(shè)計(jì)的方案進(jìn)行。系統(tǒng)的總體結(jié)構(gòu)在該階段決定,因此軟件的總體設(shè)計(jì)決定了系統(tǒng)的質(zhì)量。軟件需求確定以后,進(jìn)入由軟件設(shè)計(jì)、編碼、測試三個(gè)關(guān)聯(lián)階段構(gòu)成的開發(fā)階段。開發(fā)階段的信息流如圖所示。在設(shè)計(jì)步驟中,根據(jù)軟件的功能和性能需求等,采用某種設(shè)計(jì)方法進(jìn)行數(shù)據(jù)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)。
2/5/20236第四章軟件總體設(shè)計(jì)2/5/20237第四章軟件總體設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)側(cè)重于軟件數(shù)據(jù)結(jié)構(gòu)的定義系統(tǒng)結(jié)構(gòu)設(shè)計(jì)定義軟件系統(tǒng)的整體結(jié)構(gòu),是軟件開發(fā)的核心步驟。在設(shè)計(jì)步驟中,建立軟件主要成份之間的關(guān)系過程設(shè)計(jì)則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述
在編碼步驟中,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試,最終得到完整有效的軟件。2/5/20238第四章軟件總體設(shè)計(jì)軟件設(shè)計(jì)是后續(xù)開發(fā)步驟及軟件維護(hù)工作的基礎(chǔ)。如果沒有設(shè)計(jì),只能建立一個(gè)不穩(wěn)定的系統(tǒng)結(jié)構(gòu)2/5/20239第四章軟件總體設(shè)計(jì)軟件設(shè)計(jì)階段的任務(wù)一、軟件設(shè)計(jì)的任務(wù)將分析階段獲得的需求說明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng),完成系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),包括數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu),最后得到軟件設(shè)計(jì)說明書。
從工程管理的角度來看,軟件設(shè)計(jì)分兩步完成;分為總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)兩個(gè)階段。其工作流程如圖所示。首先做概要設(shè)計(jì),將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。然后是詳細(xì)設(shè)計(jì),即過程設(shè)計(jì)。通過對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。2/5/202310第四章軟件總體設(shè)計(jì)把分析模型轉(zhuǎn)變成軟件2/5/202311第四章軟件總體設(shè)計(jì)2/5/202312第四章軟件總體設(shè)計(jì)概要設(shè)計(jì)的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)”劃分組成系統(tǒng)的物理元素-----程序、文件、數(shù)據(jù)庫和文檔等,另一方面要設(shè)計(jì)軟件的結(jié)構(gòu),即確定系統(tǒng)中每個(gè)程序由哪些模塊組成,以及這些模塊相互間的關(guān)系總體設(shè)計(jì)過程2/5/202313第四章軟件總體設(shè)計(jì)在詳細(xì)設(shè)計(jì)過程中,需要完成的工作是:
1.確定軟件各個(gè)組成部分內(nèi)的算法以及各部分的內(nèi)部數(shù)據(jù)組織
2.選定某種過程的表達(dá)形式來描述各種算法。
3.進(jìn)行詳細(xì)設(shè)計(jì)的評(píng)審詳細(xì)設(shè)計(jì)2/5/202314第四章軟件總體設(shè)計(jì)總體設(shè)計(jì)需求說明書復(fù)審軟件結(jié)構(gòu)修改詳細(xì)設(shè)計(jì)可接受模塊描述復(fù)審修改
設(shè)計(jì)說明書軟件設(shè)計(jì)工作流程
設(shè)計(jì)階段結(jié)束要交付的文檔是設(shè)計(jì)說明書,根據(jù)設(shè)計(jì)方法的不同,有不同的設(shè)計(jì)文檔。每個(gè)設(shè)計(jì)步驟完成后,都應(yīng)進(jìn)行復(fù)審。2/5/202315第四章軟件總體設(shè)計(jì)1、劃分模塊,確定軟件結(jié)構(gòu)
開發(fā)方法不同,確定軟件結(jié)構(gòu)的方法也不同。例如SD法,是從分層的DFD圖導(dǎo)出初始的結(jié)構(gòu)圖,再對(duì)初始的結(jié)構(gòu)圖進(jìn)行改進(jìn),獲得最終的結(jié)構(gòu)圖。一般包括確定系統(tǒng)的軟件結(jié)構(gòu),分解模塊,確定系統(tǒng)的模塊層次關(guān)系。2、確定系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)要確定數(shù)據(jù)的類型,組織、存取方式,相關(guān)程度及處理方式等。3、設(shè)計(jì)用戶界面
軟件設(shè)計(jì)階段的任務(wù)可分為三部分:2/5/202316第四章軟件總體設(shè)計(jì)二、軟件設(shè)計(jì)的目標(biāo)在設(shè)計(jì)階段應(yīng)達(dá)到的目標(biāo)是:提高可靠性;提高可維護(hù)性;提高可理解性;提高效率。軟件設(shè)計(jì)高可靠性高可維護(hù)性高可理解性高效率軟件設(shè)計(jì)的目標(biāo)2/5/202317第四章軟件總體設(shè)計(jì)
常用的設(shè)計(jì)方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等。衡量該目標(biāo)的準(zhǔn)則:1、軟件實(shí)體有明顯的層次結(jié)構(gòu),利于軟件元素間控制2、軟件實(shí)體應(yīng)該是模塊化的,模塊具有獨(dú)立功能3、軟件實(shí)體與環(huán)境的界面清晰4、設(shè)計(jì)規(guī)格說明清晰、簡潔、完整和無二義性2/5/202318第四章軟件總體設(shè)計(jì)4.1總體設(shè)計(jì)概述
4.1.1總體設(shè)計(jì)的任務(wù)確定模塊結(jié)構(gòu),劃分功能模塊,將軟件功能需求分配給所劃分的最小單元模塊。確定模塊間的聯(lián)系,確定數(shù)據(jù)結(jié)構(gòu)、文件結(jié)構(gòu)、數(shù)據(jù)庫模式,確定測試方法與策略。編寫總體設(shè)計(jì)說明書,用戶手冊(cè),測試計(jì)劃,選用相關(guān)的軟件工具來描述軟件結(jié)構(gòu),結(jié)構(gòu)圖是經(jīng)常使用的軟件描述工具。選擇分解功能與劃分模塊的設(shè)計(jì)原則 2/5/202319第四章軟件總體設(shè)計(jì)4.1總體設(shè)計(jì)概述
4.1.2總體設(shè)計(jì)的步驟1.設(shè)計(jì)系統(tǒng)方案2.選取合理的方案3.推薦最佳方案4.功能分解5.軟件結(jié)構(gòu)設(shè)計(jì)6.?dāng)?shù)據(jù)庫設(shè)計(jì)、文件結(jié)構(gòu)的設(shè)計(jì)7.制定測試計(jì)劃8.書寫文檔9.審查和復(fù)審2/5/202320第四章軟件總體設(shè)計(jì)軟件結(jié)構(gòu)軟件結(jié)構(gòu)是軟件模塊之間關(guān)系的表示,它決定了整個(gè)系統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。模塊之間的關(guān)系可有多種,但都可以歸結(jié)為一種層次關(guān)系。軟件結(jié)構(gòu)圖是總體設(shè)計(jì)階段的主要描述工具,它描述了構(gòu)成系統(tǒng)的基本元素——模塊及模塊之間的調(diào)用關(guān)系,模塊之間的數(shù)據(jù)傳遞關(guān)系。2/5/202321第四章軟件總體設(shè)計(jì)2/5/202322第四章軟件總體設(shè)計(jì)軟件結(jié)構(gòu)的基本概念A(yù)BCDEFGHIJKLM模塊(Module)模塊是程序?qū)ο笥忻值募?。例如,過程、函數(shù)、子程序、宏等,是構(gòu)成軟件系統(tǒng)結(jié)構(gòu)的基本元素。
軟件結(jié)構(gòu)圖2/5/202323第四章軟件總體設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)是軟件設(shè)計(jì)的第一個(gè)階段,該階段側(cè)重于系統(tǒng)宏觀結(jié)構(gòu)的設(shè)計(jì),而不關(guān)心模塊的內(nèi)部算法。楊叔子院子曾這樣指點(diǎn)其弟子:文學(xué)中有科學(xué),音樂中有數(shù)學(xué),漫畫中有現(xiàn)代數(shù)學(xué)的拓?fù)鋵W(xué)。漫畫家可以“幾筆”就把一個(gè)人畫出來,不管怎么美化或丑化,就是活像。為什么?因?yàn)槟恰皫坠P”不是別的,而是拓?fù)鋵W(xué)中的特征不變量,這是事物最本質(zhì)的東西。體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西:軟件系統(tǒng)的體系結(jié)構(gòu)分為集中式的層次結(jié)構(gòu)、客戶機(jī)/服務(wù)器等。2/5/202324第四章軟件總體設(shè)計(jì)一、層次結(jié)構(gòu)2/5/202325第四章軟件總體設(shè)計(jì)2/5/202326第四章軟件總體設(shè)計(jì)二、客戶-服務(wù)器模型(Client/ServerArchitecturalModel)
C/S結(jié)構(gòu)是一種分布式模型,采用發(fā)請(qǐng)求、得結(jié)果的模式:客戶機(jī)向服務(wù)器發(fā)出請(qǐng)求(數(shù)據(jù)請(qǐng)求、網(wǎng)頁請(qǐng)求、文件傳輸請(qǐng)求等)。服務(wù)器響應(yīng)請(qǐng)求,進(jìn)行相應(yīng)的操作,將結(jié)果回傳給客戶機(jī),客戶機(jī)再將格式化后的結(jié)果呈現(xiàn)給用戶。C/S結(jié)構(gòu)的應(yīng)用都由三個(gè)相對(duì)獨(dú)立的邏輯部分組成。用戶界面應(yīng)用邏輯數(shù)據(jù)訪問三種邏輯之間的關(guān)系2/5/202327第四章軟件總體設(shè)計(jì)兩層客戶-服務(wù)器模型
(TwoTierClient/ServerArchitecturalModel)服務(wù)器1網(wǎng)絡(luò)服務(wù)器2服務(wù)器M客戶1客戶2客戶N兩層Client/Server結(jié)構(gòu)請(qǐng)求結(jié)果請(qǐng)求C/S的工作模式是一種遠(yuǎn)程過程調(diào)用(RPC,RemoteProcedureCall)模式,允許客戶端和服務(wù)器端有不同的軟硬平臺(tái)。2/5/202328第四章軟件總體設(shè)計(jì)client1client2client4client3Wide-bandwidthnetwokCatalogueservercataloguevideoserverFilmclipfilespictureserverdigitisedphotographshypertextserverhypertextweb例:電影圖片庫的系統(tǒng)的體系結(jié)構(gòu)s2/5/202329第四章軟件總體設(shè)計(jì)
完整的應(yīng)用包含三個(gè)相對(duì)獨(dú)立的邏輯部分,而兩層的C/S結(jié)構(gòu)只有兩個(gè)端應(yīng)用。應(yīng)用邏輯應(yīng)該映射到哪一端上呢?三種情況:網(wǎng)絡(luò)用戶界面客戶端邏輯應(yīng)用服務(wù)端邏輯應(yīng)用客戶端用戶界面邏輯應(yīng)用數(shù)據(jù)訪問用戶界面邏輯應(yīng)用數(shù)據(jù)訪問服務(wù)器應(yīng)用邏輯層的映射情況數(shù)據(jù)訪問C/S應(yīng)用3C/S應(yīng)用1C/S應(yīng)用2
兩層C/S架構(gòu)將數(shù)據(jù)表示和處理邏輯分開,但應(yīng)用邏輯和兩端之一是緊耦合的,不適宜多用戶、多數(shù)據(jù)庫、非安全的網(wǎng)絡(luò)環(huán)境。2/5/202330第四章軟件總體設(shè)計(jì)2.三層/多層應(yīng)用模型(Three/MultiTierModel)第一級(jí)是數(shù)據(jù)庫管理結(jié)點(diǎn)(databasemanagementnode)。第二級(jí)或中間級(jí)是“商業(yè)邏輯結(jié)點(diǎn)”(businesslogicnode),是指具體應(yīng)用中實(shí)施的程序邏輯和法則。第三級(jí)是用戶界面級(jí),強(qiáng)調(diào)高效、方便易用的用戶界面。Databasemanagementnode(數(shù)據(jù)庫管理結(jié)點(diǎn))businesslogicnode(商業(yè)邏輯結(jié)點(diǎn))Security(安全)Event(事件)Search(搜索)ClientAClientDClientBClientC服務(wù)器客戶機(jī)第一級(jí)第二級(jí)第三級(jí)2/5/202331第四章軟件總體設(shè)計(jì)客戶端用戶界面服務(wù)器數(shù)據(jù)訪問多層應(yīng)用模型網(wǎng)絡(luò)應(yīng)用服務(wù)器1應(yīng)用邏輯應(yīng)用服務(wù)器n應(yīng)用邏輯…
在多層模型中,中間層會(huì)用到應(yīng)用服務(wù),包括事務(wù)服務(wù)、消息服務(wù)等等。常見的事務(wù)服務(wù)器有MicrosoftTransactionServer,消息服務(wù)器有MicrosoftMessageQueue。2/5/202332第四章軟件總體設(shè)計(jì)三、分布式對(duì)象結(jié)構(gòu)(DistributedObjectsArchitecture)
在C/S模型中,客戶和服務(wù)器在服務(wù)/請(qǐng)求上的差別,在一定程度上限制了系統(tǒng)的靈活性和可擴(kuò)展性。
采用分布式對(duì)象結(jié)構(gòu):“對(duì)象(Object)”——提供服務(wù)的系統(tǒng)組件(SystemComponent)。每個(gè)對(duì)象在邏輯上是平等的,它們可以互相為對(duì)方提供所需的服務(wù)。提供服務(wù)的對(duì)象就是服務(wù)器,而提出服務(wù)請(qǐng)求的對(duì)象就是客戶。2/5/202333第四章軟件總體設(shè)計(jì)
軟件總線(SoftwareBus)的中間件(Middleware)即對(duì)象請(qǐng)求代理(ObjectRequestBroker,ORB)分布式對(duì)象結(jié)構(gòu)具有很好的開放性和透明性,用戶可以非常方便地在總線上添加、更新或刪除組件對(duì)象。軟件總線(ORB)O1S(O1)O2S(O2)OnS(On)…分布式對(duì)象結(jié)構(gòu)2/5/202334第四章軟件總體設(shè)計(jì)4.2總體設(shè)計(jì)的圖形工具
4.2.1層次圖2/5/202335第四章軟件總體設(shè)計(jì)4.2總體設(shè)計(jì)的圖形工具4.2.2HIPO圖2/5/202336第四章軟件總體設(shè)計(jì)大學(xué)教務(wù)管理系統(tǒng)H圖2/5/202337第四章軟件總體設(shè)計(jì)IPO圖的一個(gè)例子2/5/202338第四章軟件總體設(shè)計(jì)
4.2總體設(shè)計(jì)的圖形工具4.2.3結(jié)構(gòu)圖2/5/202339第四章軟件總體設(shè)計(jì)軟件結(jié)構(gòu)圖(SC圖)
結(jié)構(gòu)圖(Structure
Chart,SC圖)是精確表達(dá)軟件結(jié)構(gòu)的圖形表示方法,它以特定的符號(hào)表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。⑴模塊(Module):用矩形框表示,框中寫有模塊的名字,說明模塊的功能。模塊是程序?qū)ο笥忻值募?。例如:過程、函數(shù)、子程序、宏等。⑶數(shù)據(jù):調(diào)用箭頭邊上的小箭頭表示調(diào)用時(shí)從一個(gè)模塊傳送給另一模塊的數(shù)據(jù)。⑵調(diào)用:從一個(gè)模塊指向另一個(gè)模塊的箭頭表示前一模塊對(duì)后一模塊的調(diào)用,一般是上層調(diào)用下層。2/5/202340第四章軟件總體設(shè)計(jì)模塊5模塊5模塊4模塊4模塊1模塊3模塊2valuesvaluesdatadata模塊1模塊2模塊3valuesdatadata模塊調(diào)用圖2/5/202341第四章軟件總體設(shè)計(jì)
模塊間接口的表示A查詢學(xué)生成績B查找學(xué)生記錄○學(xué)號(hào)查找成功的信息常用尾端帶有空心圓的短箭頭表示數(shù)據(jù)信息,用尾端帶有實(shí)心圓的短箭頭表示控制信息。有的結(jié)構(gòu)圖對(duì)這兩種信息不加以區(qū)別,一律用注有信息名的短箭頭來表示,如圖所示。○數(shù)據(jù)信息控制信息2/5/202342第四章軟件總體設(shè)計(jì)2/5/202343第四章軟件總體設(shè)計(jì)例:畫出打印報(bào)告的軟件結(jié)構(gòu)圖。調(diào)用次序?yàn)樯蠈诱{(diào)用下層;同層按照數(shù)據(jù)傳遞關(guān)系確定;一般從左到右執(zhí)行。
執(zhí)行過程即按照數(shù)據(jù)流向進(jìn)行。報(bào)告計(jì)算獲得編輯確認(rèn)數(shù)據(jù)讀入編輯打印報(bào)告頭打印報(bào)告尾打印輸入EOF輸入已編輯
已編輯已編輯已確認(rèn)已確認(rèn)數(shù)據(jù)已確認(rèn)數(shù)據(jù)計(jì)算結(jié)果結(jié)果日期總結(jié)果行行行打印報(bào)告予以確認(rèn)2/5/202344第四章軟件總體設(shè)計(jì)結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)2/5/202345第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.1模塊化與局部化1.模塊化
模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,模塊可以單獨(dú)被命名、而且可通過名字來訪問,例如,過程、函數(shù)、子程序、宏等等都可作為模塊。模塊化就是把程序劃分成若干個(gè)模塊,每個(gè)模塊具有一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能,進(jìn)而滿足問題的要求。2/5/202346第四章軟件總體設(shè)計(jì)
“模塊”,又稱“構(gòu)件”,一般指用一個(gè)名字可調(diào)用的一段程序。它一般具有如下三個(gè)基本屬性:⑴功能即指該模塊實(shí)現(xiàn)什么功能,做什么事情⑵邏輯即描述模塊內(nèi)部怎么做。⑶狀態(tài)即該模塊使用時(shí)的環(huán)境和條件。所謂模塊的獨(dú)立性,是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。即功能專一,模塊之間無過多的相互作用的模塊。這種類型的模塊可以并行開發(fā),模塊獨(dú)立性越強(qiáng),開發(fā)越容易。獨(dú)立性強(qiáng)的模塊,還能減少錯(cuò)誤的影響,使模塊容易組合、修改及測試。2/5/202347第四章軟件總體設(shè)計(jì)模塊化
模塊化就是將系統(tǒng)劃分為若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能。模塊化的目的是將系統(tǒng)“分而治之”,模塊化能夠降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測試和調(diào)試,因而也有助于提高軟件的可靠性。2/5/202348第四章軟件總體設(shè)計(jì)模塊化降低軟件復(fù)雜度的簡單證明令:C(X)表示問題X的復(fù)雜度函數(shù);E(X)解決問題X所需工作量的復(fù)雜度函數(shù);若:有問題P1,P2;
C(P1)>C(P2);顯然:E(P1)>E(P2)由經(jīng)驗(yàn):C(P1+P2)>C(P1)+C(P2)于是:E(P1+P2)>E(P1)+E(P2)將問題(P1+P2)劃分為兩個(gè)問題P1和P2后,其工作量和復(fù)雜度都降低。2/5/202349第四章軟件總體設(shè)計(jì)
并非模塊分得越小越好,因?yàn)槟K之間接口的復(fù)雜度和工作量增加。顯然,每個(gè)軟件系統(tǒng)都有一個(gè)最佳模塊數(shù)M。注意選擇分解的最佳模塊數(shù)。右上圖描述了模塊化與軟件成本的關(guān)系。軟件總成本
模塊化與軟件成本的關(guān)系成本模塊數(shù)目模塊成本接口成本}最小成本區(qū)M2/5/202350第四章軟件總體設(shè)計(jì)4.3模塊化設(shè)計(jì)4.3.1模塊化與局部化
2.局部化
局部化的概念和信息隱蔽概念密切相關(guān)。所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。在模塊中使用局部數(shù)據(jù)元素是局部化的一個(gè)例子。顯然,局部化有助于實(shí)現(xiàn)信息隱蔽。2/5/202351第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.2模塊化獨(dú)立性
模塊的獨(dú)立性可以用兩個(gè)定性的標(biāo)準(zhǔn)來度量:耦合和內(nèi)聚。耦合是模塊之間互相連接的緊密程度的度量,內(nèi)聚是一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。
2/5/202352第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.2模塊化獨(dú)立性1.耦合非直接耦合數(shù)據(jù)耦合標(biāo)記耦合控制耦合公共耦合內(nèi)容耦合
2/5/202353第四章軟件總體設(shè)計(jì)
耦合性是指軟件結(jié)構(gòu)中模塊相互連接的緊密程度,是模塊間相互連接性的度量。模塊分解的一個(gè)目標(biāo)是使塊間聯(lián)系盡可能小,塊間聯(lián)系的大小可從三個(gè)方面衡量:數(shù)據(jù)方式作用少多數(shù)量控制混合直接調(diào)用過程調(diào)用①方式—塊間聯(lián)系方式有“直接引用”或“用過程語句調(diào)用”②作用—塊間傳送的共用信息(參數(shù))類型,可為“數(shù)據(jù)型”、“控制型”或“混合型”(數(shù)據(jù)/控制型)③數(shù)量—塊間傳送的共用信息的數(shù)量2/5/202354第四章軟件總體設(shè)計(jì)模塊分解的一個(gè)目標(biāo)是使塊間聯(lián)系盡可能小,達(dá)到這個(gè)目標(biāo)可通過以下措施。⑴每個(gè)模塊用過程語句(或函數(shù)方式等)調(diào)用其他模塊。⑵模塊間傳送的參數(shù)為數(shù)據(jù)型。⑶模塊間公用的信息(如參數(shù)等)盡量少。2/5/202355第四章軟件總體設(shè)計(jì)耦合性的幾種類型內(nèi)容耦合公共耦合控制耦合復(fù)合耦合數(shù)據(jù)耦合高耦合性低1、內(nèi)容耦合(contentcoupling)
一個(gè)模塊直接訪問另一模塊的內(nèi)部數(shù)據(jù) 一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊的內(nèi)部 一個(gè)模塊有多個(gè)入口 兩個(gè)模塊有部分代碼重迭2/5/202356第四章軟件總體設(shè)計(jì)2、公共耦合(CommonCoupling)若干模塊訪問一個(gè)公共的數(shù)據(jù)環(huán)境,公共環(huán)境可為全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。顯然,公共數(shù)據(jù)區(qū)的變化,將影響所有公共耦合模塊,嚴(yán)重影響模塊的可靠性和可適應(yīng)性,降低軟件的可讀性。2/5/202357第四章軟件總體設(shè)計(jì)3、控制耦合(ControlCoupling)
一個(gè)模塊傳遞給另一模塊的信息是用于控制該模塊內(nèi)部邏輯的控制信號(hào)。顯然,對(duì)被控制模塊的任何修改,都會(huì)影響控制模塊。A
BFlagf1f2fn...2/5/202358第四章軟件總體設(shè)計(jì)publicinty;PublicA(stringx){
if(x==”true”){
y=1;}Else{
y=0;}}PublicvoidB(){
if(y==1){
F(
);
//F(
)是系統(tǒng)自定義的函數(shù)}Else{G(
);
//G(
)是系統(tǒng)自定義的函數(shù)}}2/5/202359第四章軟件總體設(shè)計(jì)4、復(fù)合耦合(StampCoupling)一個(gè)模塊傳送給另一個(gè)模塊的參數(shù)是一個(gè)復(fù)合的數(shù)據(jù)結(jié)構(gòu)。例如,包含幾個(gè)數(shù)據(jù)單項(xiàng)的記錄。5、數(shù)據(jù)耦合(DataCoupling)一個(gè)模塊傳送給另一個(gè)模塊的參數(shù)是一個(gè)單個(gè)的數(shù)據(jù)項(xiàng)2/5/202360第四章軟件總體設(shè)計(jì)
總之,耦合是影響軟件復(fù)雜程度的一個(gè)重要因素。應(yīng)該采取下述設(shè)計(jì)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2/5/202361第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.2模塊化獨(dú)立性2.內(nèi)聚偶然內(nèi)聚邏輯內(nèi)聚時(shí)間內(nèi)聚過程內(nèi)聚通信內(nèi)聚順序內(nèi)聚功能內(nèi)聚
2/5/202362第四章軟件總體設(shè)計(jì)塊內(nèi)聯(lián)系的類型分為七類:內(nèi)聚性表示一個(gè)模塊內(nèi)部各種數(shù)據(jù)和各種處理之間聯(lián)系的緊密程度,它是從功能的角度來度量模塊間的聯(lián)系。顯然,塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強(qiáng),模塊獨(dú)立性愈好。偶然型邏輯型瞬時(shí)型過程型通信型弱內(nèi)聚性強(qiáng)順序型功能型2/5/202363第四章軟件總體設(shè)計(jì)
模塊T中的三條語句毫無關(guān)系,A、B、C、D都不在文件CARD
FILE中。模塊P、Q、R分別與三條語句有關(guān)。PQRMOVEATOBREADCARDFILEMOVECTODT
偶然型模塊
1、偶然型(CoincidentalCohesion)又稱為巧合型,為了節(jié)約空間,將毫無關(guān)系(或者聯(lián)系不多)的各成分放在一個(gè)模塊中。這樣的模塊顯然不易理解,不易修改。2/5/202364第四章軟件總體設(shè)計(jì)
2、邏輯型(LogicalCohesion)將幾個(gè)邏輯上相似的功能放在一個(gè)模塊中,調(diào)用時(shí)由調(diào)用模塊傳遞的參數(shù)確定執(zhí)行的功能。由于要進(jìn)行控制參數(shù)的傳遞,必然要影響模塊的內(nèi)聚性。調(diào)用模塊判定讀一個(gè)記錄寫一個(gè)記錄邏輯型模塊被調(diào)用模塊2/5/202365第四章軟件總體設(shè)計(jì)
3、瞬時(shí)型(TemporalCohesion)將需要同時(shí)執(zhí)行的成分放在一個(gè)模塊中,因?yàn)槟K中的各功能與時(shí)間有關(guān),因此又稱為時(shí)間內(nèi)聚或經(jīng)典內(nèi)聚。例如,初始化模塊,中止模塊等這類模塊內(nèi)部結(jié)構(gòu)較簡單,一般較少判定,因此比邏輯內(nèi)聚強(qiáng),但是由于將多個(gè)功能放在一起,給修改和維護(hù)造成困難。2/5/202366第四章軟件總體設(shè)計(jì)
4、過程型(ProceduralCohesion)
如果一個(gè)模塊內(nèi)的處理是相關(guān)的,而且必須以特定次序執(zhí)行,則稱這個(gè)模塊為過程內(nèi)聚模塊。通常通過程序流程圖來確定,例如把流程圖中的循環(huán)部分、判定部分、計(jì)算部分分成三個(gè)模塊,這三個(gè)模塊都是過程內(nèi)聚模塊。2/5/202367第四章軟件總體設(shè)計(jì)
5、通信型(CommunicationalCohesion)模塊中的成分引用共同的輸入數(shù)據(jù),或者產(chǎn)生相同的輸出數(shù)據(jù),則稱為是通信內(nèi)聚模塊通信型模塊比瞬時(shí)型模塊的內(nèi)聚性強(qiáng),因?yàn)槟K中包含了許多獨(dú)立的功能,但卻引用相同數(shù)據(jù)A打印報(bào)告1打印報(bào)告2打印報(bào)告2B存入打印C修改刪除打印(a)(b)(c)
通信型模塊2/5/202368第四章軟件總體設(shè)計(jì)2/5/202369第四章軟件總體設(shè)計(jì)
6、順序型(SequentialCohesion)
模塊中某個(gè)成分的輸出是另一成分的輸入。由于這類模塊無論數(shù)據(jù)還是執(zhí)行順序,模塊中的一部分依賴于另外一部分。
順序型模塊,編輯功能的輸入是讀入功能的輸出,打印功能的輸入是累加功能的輸出。讀入編輯A數(shù)據(jù)累加打印B結(jié)果
順序型模塊2/5/202370第四章軟件總體設(shè)計(jì)
7、功能型(SequentialCohesion)一個(gè)模塊包括而且僅包括完成某一具體功能所必須的所有成分?;蛘哒f,模塊的所有成分都是為完成該功能而協(xié)同工作、緊密聯(lián)系、不可分割的。
求解方程的功能模塊求一元二次方程求平方根AB例如僅完成以下功能的模塊為功能模塊: ●求平方根 ●求解一元二次方程 ●計(jì)算利息 ●判素?cái)?shù) 2/5/202371第四章軟件總體設(shè)計(jì)1計(jì)算雇員年齡并給出生日的模塊2按給出的生日計(jì)算雇員年齡、退休時(shí)間的模塊。如果利用所計(jì)算的年齡來確定雇員將要退休的時(shí)間,是什么內(nèi)聚;如果分別計(jì)算年齡和退休時(shí)間,但使用相同生日數(shù)據(jù),是什么內(nèi)聚3打印季度開支報(bào)告、月份開支報(bào)告和日開支報(bào)告。具體打印哪一個(gè),將由傳入的控制標(biāo)志決定。如何提高內(nèi)聚性?功能內(nèi)聚順序內(nèi)聚通信內(nèi)聚邏輯內(nèi)聚2/5/202372第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.2模塊化獨(dú)立性3.設(shè)計(jì)準(zhǔn)則模塊規(guī)模應(yīng)該適中改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性深度、寬度、扇入和扇出都應(yīng)適當(dāng)模塊的作用范圍應(yīng)該在控制范圍之內(nèi)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口的模塊,避免“病態(tài)連接”模塊功能應(yīng)該可以預(yù)測2/5/202373第四章軟件總體設(shè)計(jì)1)模塊的大小要適中
模塊的大小,可以用模塊中所含語句的數(shù)量的多少來衡量。把模塊的大小限制在一定的范圍之內(nèi)。通常規(guī)定其語句行數(shù)在50~100左右,保持在一頁紙之內(nèi),最多不超過500行。2/5/202374第四章軟件總體設(shè)計(jì)消除重復(fù)功能(a)(b)(c)(d)Q重復(fù)部分XQ1YQ22)改進(jìn)軟件結(jié)構(gòu),消除重復(fù)功能
若兩模塊含有重復(fù)的部分,應(yīng)設(shè)法將重復(fù)的功能消去。
如下圖所示,Q1和Q2兩個(gè)模塊具有類似的功能,圖(b)、(c)、(d)方案就是可能的解決方案。XYQ’1Q’2QYQ’2XQ’1QXQ’1YQ’22/5/202375第四章軟件總體設(shè)計(jì)×邏輯內(nèi)聚√√√2/5/202376第四章軟件總體設(shè)計(jì)消除重復(fù)功能,改善軟件結(jié)構(gòu)
①完全相似:在結(jié)構(gòu)上完全相似,可能只是在數(shù)據(jù)類型上不一致。此時(shí)可以采取完全合并的方法。
②局部相似:找出其相同部分,分離出去,重新定義成一個(gè)獨(dú)立的下一層模塊。還可以與它的上級(jí)模塊合并。2/5/202377第四章軟件總體設(shè)計(jì)有關(guān)指標(biāo):⑴深度:表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊的層數(shù)。⑵寬度:表示控制的總分布。⑶扇出數(shù):指一個(gè)模塊直接控制下屬的模塊個(gè)數(shù)。⑷扇入數(shù):指一個(gè)模塊的直接上屬模塊個(gè)數(shù)。3)深入、寬度、扇入、扇出2/5/202378第四章軟件總體設(shè)計(jì)3.2.1軟件結(jié)構(gòu)的基本概念
軟件結(jié)構(gòu)示意圖一個(gè)好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:頂部寬度小,中部寬度大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。2/5/202379第四章軟件總體設(shè)計(jì)深度、寬度、扇入和扇出都應(yīng)適當(dāng)2/5/202380第四章軟件總體設(shè)計(jì)模塊的扇入扇出數(shù)不宜太多一個(gè)模塊調(diào)用其他模塊的個(gè)數(shù),稱為該模塊的扇出。模塊的扇出不宜過大,一般認(rèn)為不要超出7個(gè)。一個(gè)模塊被其他模塊調(diào)用的個(gè)數(shù),稱為該模塊的扇入。扇入越大,除服務(wù)性模塊外,模塊的扇入扇出數(shù)不宜太多,否則塊間聯(lián)系增加。2/5/202381第四章軟件總體設(shè)計(jì)控制范圍—結(jié)構(gòu)方面的特點(diǎn),包括模塊及其所有下屬模塊。作用范圍—判斷所涉及到的模塊,是從功能特點(diǎn)考慮的。SD方法認(rèn)為:當(dāng)作用范圍為控制范圍的子集時(shí),才能獲得較低的塊間聯(lián)系。如圖(b)中的設(shè)計(jì),判定的作用范圍恰好在判定所在模塊的下一層。4)模塊的作用范圍與控制范圍2/5/202382第四章軟件總體設(shè)計(jì)TOPXTBAB1B2圖(b)中模塊TOP的控制范圍是:
模塊TOP、X、T、B、A、B1、B2;模塊B的控制范圍與作用范圍相同,均為:模塊B、A、B1、B2圖(a)中模塊A的控制范圍:
A、B、C、D、G、E、F如果模塊F的判定涉及到模塊B、E、F則F的的作用范圍:B、E、FABCDGEFFBE(a)(b)2/5/202383第四章軟件總體設(shè)計(jì)答案顯然,圖(a)不滿足作用范圍應(yīng)與控制范圍的原則,模塊F的作用范圍不在控制范圍之內(nèi)。圖(b)中模塊TOP和圖(c)中模塊B雖然滿足上述原則,但其作用范圍所涉及到的模塊不是直接的。圖(d)的模塊設(shè)計(jì)最合理。應(yīng)用范圍與作用范圍舉例TOPABCDEF(a)◆TOPABCDEF(d)◆TOPABCDEF(b)◆TOPABCDEF(c)◆比較(a)、(b)、(c)、(d)4種設(shè)計(jì)方案的優(yōu)劣2/5/202384第四章軟件總體設(shè)計(jì)5)降低接口復(fù)雜度例如:求一元二次方程的跟的模塊,模塊名為Quad_Root,這里有2種接口方式a.Quad_Root(Tbl,X)b.Quad_Root(A,B,C,Root1,Root2)2/5/202385第四章軟件總體設(shè)計(jì)
一個(gè)功能可預(yù)測的模塊,不論內(nèi)部處理細(xì)節(jié)如何,但對(duì)相同的輸入數(shù)據(jù),總能產(chǎn)生同樣的結(jié)果。但是,如果模塊內(nèi)部蘊(yùn)藏有一些特殊的鮮為人知的功能時(shí),這個(gè)模塊就可能是不可預(yù)測的。對(duì)于這種模塊,如果調(diào)用者不小心使用,其結(jié)果將不可預(yù)測。6)功能可預(yù)測的模塊,但避免過分受限制的模塊2/5/202386第四章軟件總體設(shè)計(jì)2/5/202387第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)4.3.3抽象與信息隱蔽1.抽象抽象是人類認(rèn)識(shí)問題和解決問題的基本工具和方法。在解決復(fù)雜的具體問題時(shí),人們往往先忽略其細(xì)節(jié)和非本質(zhì)的方面,而集中注意力去分析問題的本質(zhì)和主要方面,搞清所要解決的問題的本質(zhì)。同時(shí)人們?cè)诳偨Y(jié)認(rèn)識(shí)和實(shí)驗(yàn)規(guī)律時(shí),也往往突出各類問題的共性,找出各種客觀事物、狀態(tài)和過程間的聯(lián)系和相似性,加以概括和提取,即抽象。
2/5/202388第四章軟件總體設(shè)計(jì)
4.3模塊化設(shè)計(jì)
4.3.3抽象與信息隱蔽2.信息隱蔽
信息隱蔽原理認(rèn)為:模塊所包含的信息(過程和數(shù)據(jù))對(duì)于其他模塊來說應(yīng)該是隱蔽的。也就是說,模塊應(yīng)當(dāng)被這樣規(guī)定和設(shè)計(jì),使得包含在模塊中的信息(過程和數(shù)據(jù))對(duì)于其他不需要這些信息的模塊來說,是不能訪問的,或者說是“不可見”的。2/5/202389第四章軟件總體設(shè)計(jì)例如:定義棧(stack)操作模塊Makenull(置空棧);Push(進(jìn)棧);Pop(出棧);Gettop(取棧頂)Empty(判???其操作均被封裝,無需了解模塊內(nèi)部的實(shí)現(xiàn)過程。2/5/202390第四章軟件總體設(shè)計(jì)
4.4面向數(shù)據(jù)流的設(shè)計(jì)方法4.4.1基本概念1.變換流信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流圖具有這些特征時(shí),這種信息流就叫作變換流。
2/5/202391第四章軟件總體設(shè)計(jì)
4.4面向數(shù)據(jù)流的設(shè)計(jì)方法4.4.1基本概念1.變換流2/5/202392第四章軟件總體設(shè)計(jì)
4.4面向數(shù)據(jù)流的設(shè)計(jì)方法4.4.1基本概念2.事務(wù)流
數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)工作序列中選出一個(gè)來執(zhí)行。這類系統(tǒng)的特征是具有在多種事務(wù)中選擇執(zhí)行某類事務(wù)的能力。事務(wù)型結(jié)構(gòu)由至少一條接受路徑、一個(gè)事務(wù)中心,與若干條動(dòng)作路徑組成。這類數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)流,稱為事務(wù)流。2/5/202393第四章軟件總體設(shè)計(jì)
4.4面向數(shù)據(jù)流的設(shè)計(jì)方法4.4.1基本概念2.事務(wù)流2/5/202394第四章軟件總體設(shè)計(jì)設(shè)計(jì)過程⑴變換型系統(tǒng)結(jié)構(gòu)圖通過變換分析技術(shù),將中心變換型的DFD圖轉(zhuǎn)換而得的SC圖,稱為變換型系統(tǒng)結(jié)構(gòu)圖。相應(yīng)于取得數(shù)據(jù)、變換數(shù)據(jù)、給出數(shù)據(jù),系統(tǒng)的結(jié)構(gòu)圖由輸入、中心變換和輸出等三部分組成。
2/5/202395第四章軟件總體設(shè)計(jì)2/5/202396第四章軟件總體設(shè)計(jì)例:儀表板的功能:通過模數(shù)轉(zhuǎn)換器實(shí)現(xiàn)傳感器和微處理器接口在發(fā)光二極管面板上顯示數(shù)據(jù)指示每小時(shí)英里數(shù),行駛的里程,每加侖行駛的英里數(shù)指示加速或減速超速警告:如果超過55英里/小時(shí),則發(fā)出超速警告鈴聲2/5/202397第四章軟件總體設(shè)計(jì)數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖2/5/202398第四章軟件總體設(shè)計(jì)具有邊界的數(shù)據(jù)流圖2/5/202399第四章軟件總體設(shè)計(jì)第一級(jí)分解的方法2/5/2023100第四章軟件總體設(shè)計(jì)數(shù)字儀表板系統(tǒng)的第一級(jí)分解2/5/2023101第四章軟件總體設(shè)計(jì)第二級(jí)分解的方法2/5/2023102第四章軟件總體設(shè)計(jì)圖4.19未經(jīng)精化的輸入結(jié)構(gòu)2/5/2023103第四章軟件總體設(shè)計(jì)未經(jīng)精化的變換結(jié)構(gòu)2/5/2023104第四章軟件總體設(shè)計(jì)未經(jīng)精化的輸出結(jié)構(gòu)2/5/2023105第四章軟件總體設(shè)計(jì)精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)2/5/2023106第四章軟件總體設(shè)計(jì)
⑵事務(wù)型系統(tǒng)結(jié)構(gòu)圖通過事務(wù)分析技術(shù),將事務(wù)處理型的DFD圖轉(zhuǎn)換為的SC圖,稱為事務(wù)型的系統(tǒng)結(jié)構(gòu)圖。其中,事務(wù)中心模塊按所接受的事務(wù)的類型,選擇某一個(gè)事務(wù)處理模塊執(zhí)行。各個(gè)事務(wù)處理模塊是并列的,依賴于一定的選擇條件,分別完成不同的事務(wù)處理工作。每個(gè)事務(wù)處理模塊可能要調(diào)用若干個(gè)操作模塊,而操作模塊又可能調(diào)用若干個(gè)細(xì)節(jié)模塊。某些事務(wù)處理模塊可能共享一些操作模塊,而某些操作模塊又可以共享一些細(xì)節(jié)模塊。2/5/2023107第四章軟件總體設(shè)計(jì)T事務(wù)數(shù)據(jù)流沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來執(zhí)行2/5/2023108第四章軟件總體設(shè)計(jì)2/5/2023109第四章軟件總體設(shè)計(jì)①確定主加工及邏輯輸入/輸出主加工—描述了系統(tǒng)的主要功能、特征。其特點(diǎn)是:輸入/輸出數(shù)據(jù)流較多,往往主加工不止一個(gè)。邏輯輸入/輸出—是指輸入/輸出主加工的數(shù)據(jù)流。輸入流—是把物理輸入轉(zhuǎn)換為邏輯輸入的數(shù)據(jù)流。輸出流—是將邏輯輸出轉(zhuǎn)換為物理輸出的數(shù)據(jù)流。FDC中心加工2號(hào)加工3號(hào)加工1號(hào)加工4號(hào)加工ABE
輸入流轉(zhuǎn)換流輸出流
輸入流轉(zhuǎn)換流輸出流②進(jìn)行一級(jí)分解,設(shè)計(jì)上層模塊為每個(gè)輸入設(shè)計(jì)一個(gè)輸入模塊,為每個(gè)輸出設(shè)計(jì)一個(gè)輸出
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- BIM工程師-全國《BIM應(yīng)用技能資格》押題密卷2
- 滬科版八年級(jí)物理全一冊(cè)《第三章光的世界》單元檢測卷帶答案
- 廣州版小學(xué)五年級(jí)英語下冊(cè)知識(shí)點(diǎn)和練習(xí)題
- 遞推技術(shù)在信號(hào)處理中的使用
- 利用壓縮空氣實(shí)現(xiàn)大規(guī)模儲(chǔ)能
- 2024高中地理第四章地表形態(tài)的塑造章末知識(shí)整合學(xué)案新人教版必修1
- 2024高中生物第二章動(dòng)物與人體生命活動(dòng)的調(diào)節(jié)第1節(jié)通過神經(jīng)系統(tǒng)的調(diào)節(jié)訓(xùn)練含解析新人教版必修3
- 2024高考地理一輪復(fù)習(xí)第十五單元區(qū)域生態(tài)環(huán)境建設(shè)考法精練含解析
- 2024高考化學(xué)一輪復(fù)習(xí)第5章物質(zhì)結(jié)構(gòu)與性質(zhì)元素周期律第15講原子結(jié)構(gòu)核外電子排布規(guī)律學(xué)案
- 2024高考?xì)v史一輪復(fù)習(xí)方案專題三現(xiàn)代中國的政治建設(shè)祖國統(tǒng)一與對(duì)外關(guān)系第7講現(xiàn)代中國的政治建設(shè)與祖國統(tǒng)一教學(xué)案+練習(xí)人民版
- 2020年全國II卷英語高考真題試題(答案+解析)
- 安徽省合肥市2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)3
- 化工公司安全知識(shí)競賽題庫(共1000題)
- 2024家清產(chǎn)業(yè)帶趨勢洞察
- 人教版小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)口算心算天天練 全冊(cè)
- 青島版(五年制)四年級(jí)下冊(cè)小學(xué)數(shù)學(xué)全冊(cè)導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 退學(xué)費(fèi)和解協(xié)議書模板
- 2024至2030年中國對(duì)氯甲苯行業(yè)市場全景調(diào)研及發(fā)展趨勢分析報(bào)告
- 智能教育輔助系統(tǒng)運(yùn)營服務(wù)合同
- 心功能分級(jí)及護(hù)理
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測試題含解析
評(píng)論
0/150
提交評(píng)論