版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院1第八章軟件設(shè)計(jì)基礎(chǔ)
軟件設(shè)計(jì)是軟件工程的重要階段。軟件設(shè)計(jì)過程是對程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和過程細(xì)節(jié)逐步求精、復(fù)審并編制文檔的過程。經(jīng)過軟件工程師們多年的努力形成了一些軟件設(shè)計(jì)技術(shù)、質(zhì)量評估標(biāo)準(zhǔn)和設(shè)計(jì)表示法并用于軟件工程實(shí)踐。本章討論與軟件設(shè)計(jì)有關(guān)的主要概念,介紹幾個(gè)具體的軟件設(shè)計(jì)方法。2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院28.1軟件設(shè)計(jì)過程軟件開發(fā)階段由設(shè)計(jì)、編碼和測試三個(gè)基本活動組成,其中“設(shè)計(jì)活動”是獲取高質(zhì)量、低耗費(fèi)、易維護(hù)軟件最重要的一個(gè)環(huán)節(jié)。需求分析階段獲得的需求規(guī)格說明書包括對欲實(shí)現(xiàn)系統(tǒng)的信息、功能和行為方面的描述,這是軟件設(shè)計(jì)的基礎(chǔ)。對此采用任一種軟件設(shè)計(jì)方法都將產(chǎn)生系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)(architecturaldesign)、系統(tǒng)的數(shù)據(jù)設(shè)計(jì)(datadesign)和系統(tǒng)的過程設(shè)計(jì)(proceduraldesign)(圖8.1)。第八章軟件設(shè)計(jì)基礎(chǔ)2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院3軟件設(shè)計(jì)過程不同的軟件設(shè)計(jì)方法會產(chǎn)生不同的設(shè)計(jì)形式。數(shù)據(jù)設(shè)計(jì)把信息描述轉(zhuǎn)換為實(shí)現(xiàn)軟件所要求的數(shù)據(jù)結(jié)構(gòu)??傮w結(jié)構(gòu)設(shè)計(jì)旨在確定程序各主要部件之間的關(guān)系。過程設(shè)計(jì)要完成每一部件的過程化描述。根據(jù)設(shè)計(jì)結(jié)果編制代碼。設(shè)計(jì)階段做的決策直接影響軟件質(zhì)量,沒有良好的設(shè)計(jì)就沒有穩(wěn)定的系統(tǒng),也不會有易維護(hù)的軟件。統(tǒng)計(jì)表明:設(shè)計(jì)、編碼和測試這三個(gè)活動一般占用整個(gè)軟件開發(fā)費(fèi)用(不包括維護(hù)階段)的75%以上。8.1軟件設(shè)計(jì)過程2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院4圖8.1開發(fā)階段的信息流8.1軟件設(shè)計(jì)過程2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院5軟件設(shè)計(jì)過程軟件設(shè)計(jì)也可看作將需求規(guī)格說明逐步轉(zhuǎn)換為軟件源代碼的過程。從工程管理的角度看,軟件設(shè)計(jì)可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩大步驟。概要設(shè)計(jì)是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架詳細(xì)設(shè)計(jì)是將其進(jìn)一步精化成軟件的算法表示和數(shù)據(jù)結(jié)構(gòu)。概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)由若干活動組成,除總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)外,許多現(xiàn)代應(yīng)用軟件,還包括一個(gè)獨(dú)立的界面設(shè)計(jì)活動。8.1軟件設(shè)計(jì)過程2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院68.2軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念是過去三十年里陸續(xù)提出的。軟件設(shè)計(jì)者根據(jù)這組概念進(jìn)行設(shè)計(jì)決策,如:劃分子部件的標(biāo)準(zhǔn);從軟件的概念表示中分離出功能和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié);以統(tǒng)一的標(biāo)準(zhǔn)衡量軟件設(shè)計(jì)質(zhì)量等等。第八章軟件設(shè)計(jì)基礎(chǔ)2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院78.2.1抽象與逐步求精抽象是管理、控制復(fù)雜性的基本策略。“抽象”是心理學(xué)概念,它要求人們將注意力集中在某一層次上考慮問題,而忽略那些低層次的細(xì)節(jié)。使用抽象技術(shù)便于人們用“問題域”的概念和術(shù)語描述問題,而無須過早地轉(zhuǎn)換為那些不熟悉的結(jié)構(gòu)。軟件設(shè)計(jì)過程是,在不同抽象級別上考慮、處理問題的過程。(1)在最高抽象級別上,用面向問題域的語言敘述“問題”,概括“問題解”的形式。(2)不斷地具體化,不斷地用面向過程的語言描述問題。(3)在最低的抽象級別上給出可直接實(shí)現(xiàn)的“問題解”,即程序。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院8抽象與逐步求精軟件工程過程的每一步都是對較高一級抽象的解作一次較具體化的描述。在系統(tǒng)定義階段,軟件系統(tǒng)被描述為基于計(jì)算機(jī)的大系統(tǒng)的一個(gè)組成部分;在軟件規(guī)劃和需求分析階段,軟件用問題域約定的習(xí)慣用語表達(dá);從概要設(shè)計(jì)過渡到詳細(xì)設(shè)計(jì)時(shí),抽象級再一次降低;編碼完成后,達(dá)到了抽象的最低級。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院9抽象與逐步求精在由高級抽象到低級抽象的轉(zhuǎn)換過程中,伴隨著一連串的過程抽象和數(shù)據(jù)抽象。過程抽象把完成一個(gè)特定功能的動作序列抽象為一個(gè)過程名和參數(shù)表,通過指定過程名和實(shí)際參數(shù)調(diào)用此過程;數(shù)據(jù)抽象把一個(gè)數(shù)據(jù)對象的定義(或描述)抽象為一個(gè)數(shù)據(jù)類型名,用此類型名可定義多個(gè)具有相同性質(zhì)的數(shù)據(jù)對象。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院10例8.1不同抽象級別的軟件形式例8.1考慮適用于低級CAD的圖形軟件包。抽象1
該CAD軟件系統(tǒng)配有能與作圖員進(jìn)行可視化通訊的圖形界面。能用鼠標(biāo)替代作圖板和直尺畫各種直線和曲線。能完成所有幾何計(jì)算及所有截面視圖和輔助視圖的設(shè)計(jì)。圖形設(shè)計(jì)的結(jié)果存在圖形文件中,圖形文件可包含幾何的、正文的和其他各種補(bǔ)充設(shè)計(jì)信息。在這一抽象級別上,問題的解用問題域本身的術(shù)語描述。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院11不同抽象級別軟件的形式抽象2
CAD軟件任務(wù);用戶界面任務(wù);創(chuàng)建二維圖形任務(wù);顯示圖形任務(wù);管理圖形文件任務(wù);endCAD.在這一抽象級別上,給出了組成CAD軟件任務(wù)的所有子任務(wù),術(shù)語與問題域有所不同,但仍然不是實(shí)現(xiàn)用的語言。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院12不同抽象級別軟件的形式抽象3例“創(chuàng)建二維圖形任務(wù)”
PROCEDURE創(chuàng)建二維圖形REPEATUNTIL<創(chuàng)建圖形任務(wù)終止>DOWHILE<出現(xiàn)與數(shù)字儀的交互時(shí)>數(shù)字儀接口任務(wù);判斷作圖請求:線:畫線任務(wù);圓:畫圓任務(wù);
…
END;8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院13不同抽象級別軟件的形式DOWHILE<出現(xiàn)與鍵盤的交互時(shí)>鍵盤接口任務(wù);選擇分析或計(jì)算:輔助視圖:輔助視圖任務(wù);截面視圖:截面視圖任務(wù);
…
END;ENDREPETITION;ENDPROCEDURE.在這一抽象級別上,給出了初步的過程性表示,此時(shí)所有術(shù)語都是面向軟件(比如采用dowhile結(jié)構(gòu))并且模塊結(jié)構(gòu)也開始明朗。求精過程還可繼續(xù)下去,直至產(chǎn)生源代碼。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院14不同抽象級別軟件的形式數(shù)據(jù)抽象與過程抽象一樣,能使設(shè)計(jì)者按不同的詳細(xì)程度表示數(shù)據(jù)對象。例為CAD軟件定義drawing(圖)的數(shù)據(jù)對象:TYPEdrawingISSTRUCTUREDEFINEDnumberISSTRINGLENGTH(12);geometryDEFINED…
notesISSTRINGLENGTH(256);bomDEFINED…
ENDdrawingTYPE;drawing被表示為一種結(jié)構(gòu),各組成部件又可為某種數(shù)據(jù)抽象,如geometry和bom。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院15不同抽象級別軟件的形式抽象數(shù)據(jù)類型drawing定義完畢,即可用類型名直接說明數(shù)據(jù)對象,而不必涉及其內(nèi)部構(gòu)造的細(xì)節(jié),如,可用語句blueprintISINSTANCEOFdrawing;或schematicISINSTANCEOFdrawing;說明blueprint和schematic具有drawing的特性。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院16不同抽象級別軟件的形式在抽象數(shù)據(jù)類型的定義中可以附加一組操作的定義,用以確定在此類數(shù)據(jù)對象上可進(jìn)行的操作。以抽象數(shù)據(jù)類型drawing為例,可以定義擦除(erase)、存儲(save)、分類(catalog)和拷貝(copy)等操作。若干程序設(shè)計(jì)語言(如Ada,Modula,CLU)都提供了對抽象數(shù)據(jù)類型的支持,Ada的程序包機(jī)制是對數(shù)據(jù)抽象和過程抽象的雙重支持。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院17不同抽象級別軟件的形式由N.Wirth提出的“逐步求精”概念,與“抽象”密切相關(guān),是早期的自頂向下設(shè)計(jì)策略?!爸鸩角缶钡闹饕枷胧?針對某個(gè)功能的宏觀描述用逐步求精的方法不斷地分解,逐步確立過程細(xì)節(jié),直至該功能用程序語言描述的算法實(shí)現(xiàn)為止。求精的每一步都是用更為詳細(xì)的描述替代上一層次的抽象描述,在整個(gè)設(shè)計(jì)過程中產(chǎn)生的,具有不同詳細(xì)程度的各種描述組成系統(tǒng)的層次結(jié)構(gòu)。層次結(jié)構(gòu)的上一層是下一層的抽象,下一層是上一層的求精。在過程求精的同時(shí),伴隨著數(shù)據(jù)求精,無論是過程還是數(shù)據(jù),每個(gè)求精步都蘊(yùn)含著某些設(shè)計(jì)決策,設(shè)計(jì)人員必須掌握一些基本的準(zhǔn)則和各種可能的候選方法。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院188.2.2模塊化與信息隱藏模塊化的概念把軟件劃分為可獨(dú)立命名和編址的部件,每個(gè)部件稱為一個(gè)模塊,當(dāng)把所有模塊組裝到一起時(shí)則獲得滿足問題需要的一個(gè)解。軟件總體結(jié)構(gòu)體現(xiàn)了模塊化思想?!澳K化是軟件唯一能使程序獲得智能化管理的一個(gè)屬性”,
沒有模塊的程序控制路徑錯(cuò)綜復(fù)雜,變量被遠(yuǎn)距離引用等難于被人掌握。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院19模塊化與信息隱藏求解問題的過程假設(shè)函數(shù)C(X)定義了問題X已被覺察到的復(fù)雜性,函數(shù)E(X)定義了求解問題X所要求的工作量(按時(shí)間計(jì)),對于問題P1和P2,如果C(P1)>C(P2)(8.1a)則E(P1)>E(P2)(8.1b)C(P1+P2)>C(P1)+C(P2)(8.2)E(P1+P2)>E(P1)+E(P2)(8.3)解決一個(gè)復(fù)雜問題,比解決一個(gè)簡單問題耗費(fèi)多。由P1、P2組合而成的問題復(fù)雜性,比單個(gè)問題復(fù)雜性的和更大。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院20模塊化與信息隱藏“分治法”一個(gè)復(fù)雜問題分割成若干個(gè)可管理的小問題后更易于求解。當(dāng)模塊總數(shù)增加時(shí),每個(gè)模塊的成本減少了,但模塊接口所需代價(jià)隨之增加。如果模塊數(shù)為M時(shí)將獲得最小開發(fā)成本,那么模塊數(shù)在M附近選擇,就能避免模塊分割過度和不足。這些問題涉及信息隱藏、內(nèi)聚度與藕合度的概念。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院21模塊化與信息隱藏怎樣保證模塊數(shù)“在M附近”?依據(jù)什么標(biāo)準(zhǔn)劃分模塊?8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院221信息隱藏模塊獨(dú)立的概念模塊應(yīng)該設(shè)計(jì)得使其所含信息(過程和數(shù)據(jù))對于那些不需要這些信息的模塊不可訪問;每個(gè)模塊只完成一個(gè)相對獨(dú)立的特定功能;模塊之間僅僅交換那些為完成系統(tǒng)功能必須交換的信息,即模塊應(yīng)該獨(dú)立。采用信息隱藏原理指導(dǎo)模塊設(shè)計(jì)優(yōu)點(diǎn):支持模塊的并行開發(fā)減少軟件測試和軟件維護(hù)的工作量。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院232內(nèi)聚度內(nèi)聚度模塊內(nèi)部各成分彼此結(jié)合的緊密程度。內(nèi)聚度按其高低程度可分為七級,內(nèi)聚度越高越好。低級內(nèi)聚度(1)偶然性內(nèi)聚(CoincidentalCohesion)。模塊內(nèi)各成分為完成一組功能而組合在一起,它們相互之間即使有關(guān)系,也很松散。(2)邏輯性內(nèi)聚(LogicalCohesion)模塊完成的諸任務(wù)邏輯上相關(guān),如,一個(gè)模塊產(chǎn)生所有與類型無關(guān)的輸出。(3)時(shí)間性內(nèi)聚(TemporalCohesion)模塊包含的諸任務(wù)必須在同一時(shí)間段內(nèi)執(zhí)行,如一個(gè)初始化模塊。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院24模塊化與信息隱藏中級內(nèi)聚度(1)過程性內(nèi)聚(ProceduralCohesion)模塊具有過程性內(nèi)聚度指,模塊內(nèi)成分彼此相關(guān),并且必須按特定的次序執(zhí)行;(2)通信性內(nèi)聚(CommunicationalCohesion)
模塊中各成份都將對數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域進(jìn)行操作,以達(dá)到通信的目的。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院25模塊化與信息隱藏高級內(nèi)聚度(1)順序性內(nèi)聚(SequentialCohesion)模塊內(nèi)的各處理成份均與同一功能相關(guān),且這些處理必須順序執(zhí)行,則稱順序內(nèi)聚。(2)功能性內(nèi)聚(FunctionalCohesion)模塊內(nèi)所有成分形成一個(gè)整體,完成單個(gè)功能。設(shè)計(jì)軟件時(shí),應(yīng)該能夠識別內(nèi)聚度的高低,并通過修改設(shè)計(jì)盡可能提高模塊內(nèi)聚度,從而獲得較高的模塊獨(dú)立性8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院263耦合度耦合度軟件結(jié)構(gòu)中模塊間關(guān)聯(lián)程度的一種度量。耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置以及通過界面?zhèn)魉蛿?shù)據(jù)的多少等。設(shè)計(jì)軟件應(yīng)追求盡可能松散耦合的系統(tǒng)。松散耦合系統(tǒng)中,任一模塊的設(shè)計(jì)、測試和維護(hù)都相對獨(dú)立。松散耦合系統(tǒng)模塊間聯(lián)系較少,錯(cuò)誤在模塊間傳播的可能性隨之變小。模塊間的耦合程度直接影響系統(tǒng)的可理解性、可測試性、可靠性和可維護(hù)性。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院27模塊化與信息隱藏耦合度也分為七級:(1)非直接耦合(NodirectCoupling)兩模塊中任一個(gè)都不依賴對方能獨(dú)立工作,這類耦合度最低。(2)數(shù)據(jù)耦合(DataCoupling)兩模塊通過參數(shù)交換信息,信息僅限于數(shù)據(jù)。(3)控制耦合(ControlCoupling)傳遞的信息含有控制信息??刂岂詈贤ǔ黾酉到y(tǒng)的復(fù)雜性,適當(dāng)分解模塊可望消除控制耦合。(4)特征耦合(StampCoupling)。介于數(shù)據(jù)耦合與控制耦合之間8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院28模塊化與信息隱藏(5)外部耦合(ExternalCoupling)當(dāng)若干模塊均與同一個(gè)外部環(huán)境關(guān)聯(lián),如,I/O處理使所有I/O模塊與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián)。外部耦合盡管需要,但應(yīng)限制在少數(shù)幾個(gè)模塊上。(6)公共耦合(CommonCoupling)若干模塊通過全局的數(shù)據(jù)環(huán)境相互作用,全局?jǐn)?shù)據(jù)環(huán)境中可能含有全局變量、公用區(qū)、內(nèi)存公共復(fù)蓋區(qū)、任何存儲介質(zhì)上的文件、物理設(shè)備等。(7)內(nèi)容耦合(ContentCoupling)一個(gè)模塊使用另一模塊內(nèi)部的數(shù)據(jù)或控制信息;一個(gè)模塊直接轉(zhuǎn)移到另一模塊內(nèi)部等等。設(shè)計(jì)軟件時(shí)應(yīng)盡量使用數(shù)據(jù)耦合,減少控制耦合,限制外部環(huán)境耦合和公共數(shù)據(jù)耦合,杜絕內(nèi)容耦合。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院29模塊化與信息隱藏模塊化設(shè)計(jì)的思想適用于任何軟件系統(tǒng)的設(shè)計(jì)。當(dāng)某些軟件系統(tǒng),如實(shí)時(shí)軟件和部分微處理機(jī)軟件,因不能容忍子程序調(diào)用引起的時(shí)間開銷而必須以整塊軟件的形式出現(xiàn)時(shí),軟件設(shè)計(jì)仍然應(yīng)該以模塊化設(shè)計(jì)的思想為指導(dǎo),直至編碼時(shí)再改用代入式(in—line)方法。這樣,源程序中雖不含明顯的模塊,但模塊化設(shè)計(jì)所帶來的大部分益處卻已被系統(tǒng)獲得。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院308.2.3軟件總體結(jié)構(gòu)設(shè)計(jì)軟件總體結(jié)構(gòu)(softwarearchitecture)應(yīng)該包括兩方面內(nèi)容(1)由系統(tǒng)中所有過程性部件(即模塊)構(gòu)成的層次結(jié)構(gòu),亦稱為程序結(jié)構(gòu);(2)輸入輸出數(shù)據(jù)結(jié)構(gòu)。軟件總體結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是產(chǎn)生一個(gè)模塊化的程序結(jié)構(gòu)并明確各模塊之間的控制關(guān)系,此外還要通過定義界面,說明程序的輸入輸出數(shù)據(jù)流,進(jìn)一步協(xié)調(diào)程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院31軟件總體結(jié)構(gòu)設(shè)計(jì)程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)是逐步求精、分而治之的結(jié)果。軟件設(shè)計(jì)從需求定義開始,逐步分層導(dǎo)出程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),當(dāng)需求定義中所述的每個(gè)部分最終都能由一個(gè)或幾個(gè)軟件元素實(shí)現(xiàn)時(shí),整個(gè)求解過程即告結(jié)束。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院32
軟件總體結(jié)構(gòu)設(shè)計(jì)依據(jù)任何一種軟件設(shè)計(jì)方法總能推導(dǎo)出一個(gè)軟件結(jié)構(gòu)。模塊內(nèi)聚度和耦合度是判斷結(jié)構(gòu)好壞的主要標(biāo)準(zhǔn)。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院33軟件總體結(jié)構(gòu)設(shè)計(jì)表示程序結(jié)構(gòu)的工具類樹圖(Tree-likediagram)Warnier—Orr圖Jackson圖等8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院34程序結(jié)構(gòu)的術(shù)語軟件的深度(Depth)和寬度(Width)分別說明控制的層數(shù)和跨度。模塊的“扇出率”(Fan—out)指,該模塊直接控制的其他模塊數(shù)。模塊的“扇入率”(Fan—in)指,能直接控制該模塊的模塊數(shù)。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院35程序結(jié)構(gòu)的術(shù)語如果一個(gè)模塊控制另一模塊,稱前者為“主控”模塊,后者為“從屬”模塊。
軟件結(jié)構(gòu)的可見域和連通域。模塊的可見域指,該模塊可直接或間接引用的一組模塊;模塊的連通域指,模塊可直接引用的模塊。軟件的總體結(jié)構(gòu)應(yīng)該在考慮每個(gè)模塊的細(xì)節(jié)前就確定下來。軟件設(shè)計(jì)方法鼓勵(lì)人們首先致力于軟件總體結(jié)構(gòu)的設(shè)計(jì),而后再進(jìn)行詳細(xì)設(shè)計(jì)。每一種方法導(dǎo)出總體結(jié)構(gòu)的具體方式不盡相同。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院368.2.4數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)描述各數(shù)據(jù)分量之間的邏輯關(guān)系,數(shù)據(jù)結(jié)構(gòu)一經(jīng)確定,數(shù)據(jù)的組織形式、訪問方法、組合程度及處理策略基本上隨之確定,所以數(shù)據(jù)結(jié)構(gòu)是影響軟件總體結(jié)構(gòu)的重要因素,對數(shù)據(jù)結(jié)構(gòu)的完整討論超出本書的范圍,但掌握標(biāo)量、數(shù)組、鏈表和樹等典型的數(shù)據(jù)表示方法,并能根據(jù)實(shí)際需要靈活應(yīng)用十分必要。數(shù)據(jù)結(jié)構(gòu)與程序結(jié)構(gòu)一樣,也可以在不同的抽象級別上表示。以棧為例,作為一個(gè)抽象數(shù)據(jù)類型,在概念級上只關(guān)心“先進(jìn)后出”特性,而在實(shí)現(xiàn)級上則要考慮物理表示及內(nèi)部工作的細(xì)節(jié),比如,用向量實(shí)現(xiàn),或用鏈表實(shí)現(xiàn)等等。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院37數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)對程序結(jié)構(gòu)和過程復(fù)雜性有直接的影響,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)很重要,在很大程度上決定軟件的質(zhì)量。無論采用哪一種軟件設(shè)計(jì)技術(shù),沒有良好的數(shù)據(jù)結(jié)構(gòu),不可能導(dǎo)出良好的程序結(jié)構(gòu)。數(shù)據(jù)設(shè)計(jì)是為在需求規(guī)格說明中定義的那些數(shù)據(jù)對象選擇合適的邏輯表示,并確定可能作用在這些邏輯結(jié)構(gòu)上的所有操作(包括選用已存在的程序包)。數(shù)據(jù)抽象和信息隱藏兩個(gè)概念是數(shù)據(jù)設(shè)計(jì)的基礎(chǔ)。數(shù)據(jù)設(shè)計(jì)方案不是唯一的,有時(shí)需進(jìn)行算法復(fù)雜性分析后才能從多種候選中找出最佳者。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院388.2.5軟件過程設(shè)計(jì)程序結(jié)構(gòu)僅考慮軟件總體結(jié)構(gòu)中模塊之間的控制分層關(guān)系,而不關(guān)心模塊內(nèi)各處理元素和判斷元素的順序。過程設(shè)計(jì)緊跟在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和程序結(jié)構(gòu)設(shè)計(jì)之后,基本任務(wù)是描述這方面的信息。過程包括有關(guān)處理的精確說明,如事件的順序、確切的判斷位置、循環(huán)操作以及數(shù)據(jù)的組成等等。程序結(jié)構(gòu)與軟件過程相互關(guān)聯(lián),程序結(jié)構(gòu)中任個(gè)模塊的所有從屬模塊必將被引用出現(xiàn)在該模塊的過程說明中。8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院39圖8.6模塊A的內(nèi)部結(jié)構(gòu)8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院40圖8.7過程的層次結(jié)構(gòu)8.2軟件設(shè)計(jì)基本概念2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院418.3過程設(shè)計(jì)技術(shù)和工具8.3.1結(jié)構(gòu)化程序設(shè)計(jì)過程設(shè)計(jì)的任務(wù)是描述算法的細(xì)節(jié),下面討論過程設(shè)計(jì)的技術(shù)和工具。結(jié)構(gòu)化程序設(shè)計(jì)
E.W.Dijkstra提出,理由是GOTO語句對程序的可讀性、可測試性和可維護(hù)性帶來極大的危害,應(yīng)該用更可維護(hù)的控制結(jié)構(gòu)替代它。Bohm和Jacopini證明了僅用“順序”、“分枝”和“循環(huán)”三種基本的控制構(gòu)件即能構(gòu)造任何單入口單出口程序,這個(gè)結(jié)論奠定了結(jié)構(gòu)程序設(shè)計(jì)的理論基礎(chǔ)。第八章軟件設(shè)計(jì)基礎(chǔ)2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院42過程設(shè)計(jì)技術(shù)和工具結(jié)構(gòu)化程序設(shè)計(jì)定義采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制構(gòu)件。自頂向下逐步求精的方法是人類解決復(fù)雜問題時(shí)常用的方法,采用這種先整體后局部,先抽象后具體的步驟開發(fā)的軟件具有較清晰的層次。僅使用單入口單出口的控制構(gòu)件,程序有良好的結(jié)構(gòu)特征,能降低程序的復(fù)雜性,增強(qiáng)程序的可讀性、可維護(hù)性和可驗(yàn)證性,提高軟件的生產(chǎn)率。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院43過程設(shè)計(jì)技術(shù)和工具結(jié)構(gòu)程序設(shè)計(jì)的思想,應(yīng)該在軟件設(shè)計(jì)中體現(xiàn)出來,但這并不排除為效率或其他原因,對結(jié)構(gòu)程序設(shè)計(jì)作一點(diǎn)修正。隨著面向?qū)ο?、軟件重用等新的軟件開發(fā)方法和技術(shù)的發(fā)展,更現(xiàn)實(shí)、更有效的開發(fā)途徑可能是自頂向下和自底向上兩種方法的有機(jī)結(jié)合。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院448.3.2圖形表示法流程圖、盒圖是描述過程細(xì)節(jié)的工具。流程圖(也稱為程序框圖)是最常用的一種表示法,它能直觀地描述過程的控制流程,最便于初學(xué)者掌握。流程圖中方框表示處理步,菱形框表示判斷步,有向線段表示控制流。順序、分枝、循環(huán)三個(gè)基本控制構(gòu)件用流程圖表達(dá)的形式如圖8.8所示。
8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院45圖形表示法Case結(jié)構(gòu)是if—then—else結(jié)構(gòu)的推廣,do—while循環(huán)與repeat循環(huán)的區(qū)別僅在于測試循環(huán)條件與執(zhí)行循環(huán)體的先后次序。嵌套使用這些控制結(jié)構(gòu)能逐步形成更復(fù)雜的控制流程描述。如果對流程圖中每一構(gòu)件用“邊框”圈起來,邊界之間不出現(xiàn)交叉,則說明所有構(gòu)件都為單入口單出口,稱此程序?yàn)榻Y(jié)構(gòu)化程序(structuredprogram)。圖8.9為一個(gè)結(jié)構(gòu)化程序的流程圖。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院46圖8.8流程圖構(gòu)件8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院47圖8.9結(jié)構(gòu)化程序的流程圖8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院48過程設(shè)計(jì)技術(shù)和工具由Nassi和Sheiderman提出的盒圖,也稱為N—S圖,它強(qiáng)迫程序員以結(jié)構(gòu)化方式思考和解決問題,三種基本控制構(gòu)件用盒圖表達(dá)的形式如圖8.10所示。圖8.10盒圖的構(gòu)件圖8.9表示的過程用盒圖表示形如圖8.11。圖8.11盒圖盒圖的功能域(指分枝和循環(huán)結(jié)構(gòu)的邊界)比流程圖更清晰,控制不能隨意轉(zhuǎn)移,并且數(shù)據(jù)的作用域容易確定。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院49圖8.10盒圖的構(gòu)件8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院50圖8.11盒圖8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院518.3.3判定表當(dāng)模塊中包含復(fù)雜的條件組合,并要根據(jù)這些條件選擇動作時(shí),流程圖、盒圖及8.3.4節(jié)將介紹的過程設(shè)計(jì)語言(PDL)都有一定的缺陷,判定表能清晰地表示出復(fù)雜的條件組合與各種動作之間的對應(yīng)關(guān)系。
一張判定表由四部分組成,左上部列出所有條件,左下部列出所有可能的動作,右部為一矩陣,說明條件與動作之間的對應(yīng)關(guān)系,其每列可解釋為一條處理規(guī)則。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院52判定表例8.2簡化的賬單系統(tǒng)判定表問題描述:耗電記費(fèi)系統(tǒng)可以采用固定價(jià)格收費(fèi)和浮動價(jià)格收費(fèi)兩種方式。若采用固定價(jià)格方式收費(fèi),對每月耗電100千瓦小時(shí)以下的用戶只征收最低標(biāo)準(zhǔn)費(fèi),超過100千瓦小時(shí)的用戶按價(jià)格表A收費(fèi);若采用浮動價(jià)格方式收費(fèi),則每月耗電100千瓦小時(shí)以下的用戶按價(jià)格表A收費(fèi),超過100千瓦小時(shí)的用戶按價(jià)格表B收費(fèi)。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院53判定表采用下述步驟產(chǎn)生表8.1所示判定表:①列出與該過程(或模塊)有關(guān)的動作(共四項(xiàng),分別為收取最低標(biāo)準(zhǔn)費(fèi)、按價(jià)格表A收費(fèi)、按價(jià)格表B收費(fèi),其他處理);②列出所有獨(dú)立條件(共四條,分別為固定價(jià)格方式、浮動價(jià)格方式、每月耗電少于100千瓦小時(shí),每月耗電超過100千瓦小時(shí));③根據(jù)問題處理描述,把條件組合與特定的動作聯(lián)系起來,刪去無意義的條件組合;④定義處理規(guī)則(共5條),即指明什么情況下做什么動作。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院54表8.1判定表8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院55判定表盡管判定表能夠簡潔無歧義地描述處理規(guī)則,但卻不能清晰地表示順序和循環(huán)結(jié)構(gòu)。判定表常作為一種輔助設(shè)計(jì)工具與其他過程設(shè)計(jì)工具結(jié)合使用。
8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院568.3.4過程設(shè)計(jì)語言(PDL)PDL(ProcedureDesignLanguage)也稱為結(jié)構(gòu)英語或偽碼,是所有正文形式的過程設(shè)計(jì)工具的統(tǒng)稱,目前有多種PDL。
PDL經(jīng)常表現(xiàn)為一種“混雜”的形式,允許自然語言(如英語)的詞匯與某種結(jié)構(gòu)化程序設(shè)計(jì)語言(如Pascal、Ada等)的語法結(jié)構(gòu)交織在一起,目前大多數(shù)PDL描述不能直接編譯。
8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院57過程設(shè)計(jì)語言(PDL)①關(guān)鍵字采用固定語法并支持結(jié)構(gòu)化構(gòu)件、數(shù)據(jù)說明機(jī)制和模塊化;②處理部分采用自然語言描述;③允許說明簡單(標(biāo)量、數(shù)組等)和復(fù)雜(鏈表、樹等)的數(shù)據(jù)結(jié)構(gòu);④子程序的定義與調(diào)用規(guī)則不受具體接口方式的影響?,F(xiàn)今大多數(shù)PDL都以某種流行的高級程序設(shè)計(jì)語言作為基礎(chǔ),例如Ada—PDL是Ada團(tuán)體中廣為使用的設(shè)計(jì)工具。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院58過程設(shè)計(jì)語言(PDL)考察建立在通用結(jié)構(gòu)化程序設(shè)計(jì)語言上的PDL原型。基本成分子程序定義界面描述數(shù)據(jù)說明塊結(jié)構(gòu)分枝結(jié)構(gòu)循環(huán)結(jié)構(gòu)I/O結(jié)構(gòu)8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院59過程設(shè)計(jì)語言(PDL)數(shù)據(jù)說明的常用形式TYPE<變量名>IS<限定詞1><限定詞2>此處<變量名>既可為過程的某個(gè)局部變量,亦可為多個(gè)過程共用的全局變量;<限定詞1>為某個(gè)特定關(guān)鍵字(例如,SCALAR,ARRAY,LIST,STRING,STRUCTURE等);<限定詞2>說明此處定義的變量在該過程或整個(gè)程序中應(yīng)如何使用。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院60過程設(shè)計(jì)語言(PDL)PDL允許定義面向具體問題的抽象數(shù)據(jù)類型。如,在某編譯器的模塊設(shè)計(jì)時(shí)可能使用下面的數(shù)據(jù)說明:TYPEtable—1ISINSTANCEOFsymbol—able假定symbol—table是在另一處定義的抽象數(shù)據(jù)類型:TYPEsymbol—tableISSTRUCTUREDEFINED
…
該P(yáng)DL的塊結(jié)構(gòu)描述一個(gè)過程元素,即一個(gè)塊內(nèi)的所有語句將作為一個(gè)整體執(zhí)行形式為BEGIN[<塊名>]<語句序列>END
8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院61過程設(shè)計(jì)語言(PDL)該P(yáng)DL的分枝結(jié)構(gòu)有if—then—else和case兩種形式IF<條件描述>THEN<塊結(jié)構(gòu)或語句>ELSE<塊結(jié)構(gòu)或語句>ENDIFCASEOF<情況變量名>W(wǎng)HEN<第1種情況>SELECT<塊結(jié)構(gòu)或語句>;WHEN<第2種情況>SELECT<塊結(jié)構(gòu)或語句>;
…
WHEN<最后一種情況>SELECT<塊結(jié)構(gòu)或語句>;DEFAULT:<塊結(jié)構(gòu)或語句>;ENDCASE8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院62過程設(shè)計(jì)語言(PDL)循環(huán)結(jié)構(gòu)包括前測試循環(huán)、后測試循環(huán)和固定循環(huán)三類,表達(dá)形式分別為DOWHILE<條件描述><塊結(jié)構(gòu)或語句>ENDWHILEREPEATUNTIL<條件描述><塊結(jié)構(gòu)或語句>ENDREPDOFOR<循環(huán)變量>=<循環(huán)變量取值范圍,表達(dá)式或序列><塊結(jié)構(gòu)或語句>ENDFOR除標(biāo)準(zhǔn)循環(huán)構(gòu)件外,此PDL還提供了NEXT和EXIT兩種語句,旨在支持受限方式退出循環(huán)。EXIT將控制轉(zhuǎn)到其所在循環(huán)后的第一個(gè)語句,NEXT強(qiáng)迫本次循環(huán)結(jié)束,新一輪循環(huán)開始。若外層循環(huán)帶標(biāo)號,EXIT和NEXT能實(shí)現(xiàn)從多層嵌套的內(nèi)循環(huán)中直接跳出,而不必逐層退出。在該P(yáng)DL中,子程序說明為PROCEDURE<子程序名><屬性表>INTERFACE<參數(shù)表><塊結(jié)構(gòu)和/或語句序列>END8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院63過程設(shè)計(jì)語言(PDL)屬性表指明子程序的引用特性如,INTERNAL、EXTERNAL模式依賴于程序設(shè)計(jì)語言的實(shí)現(xiàn)輸入/輸出說明部分的形式READ/WRITETO<設(shè)備><I/O表>或ASK<詢問>ANSWER<響應(yīng)選擇項(xiàng)>后一形式多用于人機(jī)交互的設(shè)計(jì)。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院64過程設(shè)計(jì)語言(PDL)PDL擴(kuò)充多任務(wù)、并行處理、異常處理、進(jìn)程同步等機(jī)制。使用某個(gè)PDL進(jìn)行過程設(shè)計(jì),應(yīng)充分了解全部內(nèi)容。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院658.3.5過程設(shè)計(jì)工具之比較比較前述種種設(shè)計(jì)工具之優(yōu)劣須基于這樣一個(gè)前提,即如果使用得當(dāng),任一種工具都將對過程設(shè)計(jì)提供寶貴的支持,反之即使是最好的工具亦可能產(chǎn)生難于理解的設(shè)計(jì)。衡量一個(gè)設(shè)計(jì)工具好壞的一般準(zhǔn)則是看其所產(chǎn)生的過程描述是否易于理解、復(fù)審和維護(hù),進(jìn)而過程描述能否自然地轉(zhuǎn)換為代碼并保證設(shè)計(jì)與代碼完全一致。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院66設(shè)計(jì)工具屬性(1)模塊化(Modularity):支持模塊化軟件的開發(fā)并提供描述接口的機(jī)制(例如直接表示子程序和塊結(jié)構(gòu));(2)整體簡潔性(OverallSimplicity):設(shè)計(jì)表示相對易學(xué)、易用、易讀;(3)便于編輯(EaseofEditing):支持后續(xù)設(shè)計(jì)、測試乃至維護(hù)階段對過程設(shè)計(jì)進(jìn)行的修改;(4)機(jī)器可讀性(MachineReadability):計(jì)算機(jī)輔助軟件工程(CASE)環(huán)境已被廣泛接受,一種設(shè)計(jì)表示法若能直接輸入并被CASE工具識別將帶來極大便利;8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院67過程設(shè)計(jì)工具之比較(5)可維護(hù)性(Maintainability):過程設(shè)計(jì)表示應(yīng)支持各種軟件配置項(xiàng)的維護(hù);(6)強(qiáng)制結(jié)構(gòu)化(StructureEnforcement):過程設(shè)計(jì)工具應(yīng)能強(qiáng)制設(shè)計(jì)人員采用結(jié)構(gòu)化構(gòu)件,有助于產(chǎn)生好的設(shè)計(jì);(7)自動產(chǎn)生報(bào)告(AutomaticProcessing):設(shè)計(jì)人員通過分析詳細(xì)設(shè)計(jì)的結(jié)果往往能突發(fā)靈感,改進(jìn)設(shè)計(jì)。若存在自動處理器,能產(chǎn)生有關(guān)設(shè)計(jì)的分析報(bào)告必將增強(qiáng)設(shè)計(jì)人員在這方面的能力;8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院68過程設(shè)計(jì)工具之比較(8)數(shù)據(jù)表示(DataRepresentation):詳細(xì)設(shè)計(jì)應(yīng)具備表示局部與全局?jǐn)?shù)據(jù)的能力;(9)邏輯驗(yàn)證(LogicVerification):能自動驗(yàn)證設(shè)計(jì)邏輯的正確性是軟件測試追求的最高目標(biāo),設(shè)計(jì)表示愈易于邏輯驗(yàn)證其可測試性愈強(qiáng);(10)可編碼能力(“Codeto”Ability):一種設(shè)計(jì)表示若能自然地轉(zhuǎn)換為代碼則能減少開發(fā)費(fèi)用,降低出錯(cuò)率。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院69過程設(shè)計(jì)工具之比較對照上述屬性,到底哪一種過程設(shè)計(jì)工具最好呢?回答將因人而異。一般認(rèn)為,PDL較好地組合了這組特性。PDL還可直接嵌在源代碼中作為設(shè)計(jì)文檔和注釋,減少維護(hù)的困難;PDL描述可用一般正文編譯器或字處理軟件編輯;PDL自動處理器已經(jīng)面世,并有可能開發(fā)出“代碼自動產(chǎn)生器”。然而,這并不意味著其他的設(shè)計(jì)工具一定弱于PDL,例如,流程圖和盒圖能直觀地表示控制流程;判定表因能精確地描述組合條件與動作之間的對應(yīng)關(guān)系,特別適用于表格驅(qū)動一類軟件的開發(fā);其他一些設(shè)計(jì)工具也自有獨(dú)到之處。經(jīng)驗(yàn)表明,具體選擇過程設(shè)計(jì)工具時(shí),人的因素可能比技術(shù)因素更具有影響力。8.3過程設(shè)計(jì)技術(shù)和工具2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院708.4設(shè)計(jì)規(guī)格說明與評審軟件設(shè)計(jì)階段的輸出主要是設(shè)計(jì)規(guī)格說明書,結(jié)構(gòu)如表8.2所示,各條款的內(nèi)容是在設(shè)計(jì)求精過程中逐步確定的。第八章軟件設(shè)計(jì)基礎(chǔ)2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院71設(shè)計(jì)規(guī)格說明與評審設(shè)計(jì)說明書第一節(jié)描述與設(shè)計(jì)活動有關(guān)的各個(gè)方面,該節(jié)中許多信息取自系統(tǒng)規(guī)格說明書和系統(tǒng)定義階段產(chǎn)生的其他文檔。第二節(jié)具體指明引用信息的出處。第三節(jié)設(shè)計(jì)描述是概要設(shè)計(jì)的產(chǎn)物,設(shè)計(jì)由信息驅(qū)動,即軟件總體結(jié)構(gòu)主要受數(shù)據(jù)流程、數(shù)據(jù)結(jié)構(gòu)的影響,需求分析時(shí)產(chǎn)生的DFD或其他某種形式的數(shù)據(jù)表示將在這一節(jié)中進(jìn)一步精化,用于確定軟件結(jié)構(gòu)。8.4設(shè)計(jì)規(guī)格說明與評審2023/10/23國防科技大學(xué)計(jì)算機(jī)學(xué)院72設(shè)計(jì)規(guī)格說明與評審第四節(jié)的模塊指
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版航空輪胎進(jìn)出口貿(mào)易合同樣本4篇
- 二零二五年度居間合作補(bǔ)充協(xié)議-房地產(chǎn)項(xiàng)目合作共贏方案3篇
- 2025年人力資源勞動派遣服務(wù)合同格式
- 2025年度旅游度假居間服務(wù)合作協(xié)議4篇
- 2025年版人工智能技術(shù)研發(fā)與應(yīng)用服務(wù)合同樣本3篇
- 股權(quán)轉(zhuǎn)讓協(xié)議(二零二五年度):含有連鎖酒店經(jīng)營權(quán)的轉(zhuǎn)讓3篇
- 2025年度跨境電商平臺知識產(chǎn)權(quán)保護(hù)及合作框架協(xié)議2篇
- 二零二五年度高端建筑深井降水施工合作協(xié)議2篇
- 2025年度跨境電子商務(wù)平臺服務(wù)貿(mào)易三方合作協(xié)議4篇
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)中心租賃合同網(wǎng)絡(luò)服務(wù)保障補(bǔ)充4篇
- 小學(xué)四年級數(shù)學(xué)知識點(diǎn)總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報(bào)告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評論
0/150
提交評論