




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章 總體設計How to do generally !第五章 總體設計5.1 總體設計的過程5.2 軟件設計基本原理5.3 設計準則 5.4 總體設計的圖形描述工具5.5 結(jié)構(gòu)化設計方法 總體設計問題定義可行性研究需求分析總體設計詳細設計編碼與單元測試綜合測試軟件維護軟件定義時期軟件開發(fā)時期軟件維護時期概括地說,如何解決這些問題,系統(tǒng)怎樣實現(xiàn)?劃分系統(tǒng)的構(gòu)成成分(黑盒子),如程序、文件、數(shù)據(jù)庫、人工操作等。設計系統(tǒng)的軟件結(jié)構(gòu),即構(gòu)成模塊。5.1 總體設計的過程1. 設計供選擇的方案2. 選取合理的方案 3. 推薦最佳實現(xiàn)方案4. 功能分解5. 軟件結(jié)構(gòu)設計6. 數(shù)據(jù)庫設計7. 制定測試計劃
2、8. 編寫文檔9. 審查和復審1. 設計供選擇的方案設想方案需求分析階段得出的數(shù)據(jù)流圖是總體設計的根本出發(fā)點。用不同思路對需求分析中的數(shù)據(jù)流圖的處理進行分組(不同的處理邊界和處理方法)??晒┻x擇的方案從實用的、可操作性的角度,去除不合理的方案,留下合理的方案進入下一步的選取和設計。選取合理的方案合理方案的選取在上一步設計出的方案中選取合理的方案。這些方案中至少應包括低成本、中成本和高成本的三種方案類型。對每個合理方案要提供以下幾方面資料:(1)系統(tǒng)流程圖;(2)數(shù)據(jù)字典;(3)成本效益分析;(4)實現(xiàn)這個系統(tǒng)的進度計劃。 3. 推薦最佳方案推薦方案分析員從合理方案中選擇一個最佳方案向用戶推薦,
3、并為推薦的方案制定詳細的實現(xiàn)計劃。審查方案對于分析員推薦的最佳方案,用戶和有關(guān)專家應該認真審查。如果確認該方案確實符合用戶的需要,并且在現(xiàn)有條件下完全能夠?qū)崿F(xiàn),則應該提請使用部門負責人進一步審批。在使用部門負責人也接受了分析員所推薦的方案之后,方可進入總體設計過程的下一步工作,即結(jié)構(gòu)設計階段。 功能分解對于大型系統(tǒng)的設計,通常分為兩個階段:結(jié)構(gòu)設計和過程設計。結(jié)構(gòu)設計:確定系統(tǒng)由哪些模塊組成,以及這些模塊之間的相互關(guān)系。過程設計:確定每個模塊的處理過程。其中,結(jié)構(gòu)設計是總體設計階段的任務,而過程設計則是詳細設計階段的任務。功能分解為了確定軟件結(jié)構(gòu)(下一步),需從實用的角度對軟件的功能進行分解。
4、功能分解可通過分析和細化數(shù)據(jù)流圖中的處理而實現(xiàn)。功能的描述完成功能分解后,應采用適當?shù)墓ぞ撸ㄈ鏘PO圖、IPO表)描述每個處理的算法。5. 軟件結(jié)構(gòu)設計軟件結(jié)構(gòu)軟件結(jié)構(gòu)是指軟件各功能模塊之間的關(guān)系,如層次關(guān)系、調(diào)用/被調(diào)用關(guān)系等。軟件結(jié)構(gòu)設計將軟件模塊組織成良好的層次關(guān)系:頂層、下層、更下層。軟件功能模塊通過調(diào)用其下層子模塊,實現(xiàn)所需要完成的功能。軟件結(jié)構(gòu)的描述層次方框圖Warnier圖6. 數(shù)據(jù)庫設計 數(shù)據(jù)庫設計數(shù)據(jù)庫的應用越來越廣泛,實際上大多數(shù)的系統(tǒng)都要用到數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫設計是一項專門的技術(shù)和學科(數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫技術(shù))。數(shù)據(jù)庫設計指對于一個給定的應用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建
5、立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求(信息要求和處理要求)。總體設計人員應根據(jù)需求分析中所確定的數(shù)據(jù)需求來進行相應的數(shù)據(jù)庫設計。數(shù)據(jù)庫設計內(nèi)容模式設計子模式設計完整性安全性設計優(yōu)化處理等。 7. 制定測試計劃 測試計劃在軟件開發(fā)的早期階段提前考慮軟件的測試計劃是很有必要的。這樣能促使軟件設計人員在設計時注意到軟件的測試問題,從而有利于提高軟件的可測試性。軟件測試計劃的主要內(nèi)容:測試目的測試范圍被測試/不被測試的特性測試方法測試的通過標準測試環(huán)境要求測試人員要求和職責分配測試進度要求測試風險和應急措施 8. 編寫文檔總體設計的文檔總體設計說明書(包括系統(tǒng)實現(xiàn)方案和
6、軟件模塊結(jié)構(gòu));測試計劃(包括測試策略、測試方案、預測的測試結(jié)果、測試進度計劃等);用戶手冊(根據(jù)總體設計階段的結(jié)果,編寫的初步的用戶操作手冊);細化的實現(xiàn)計劃;數(shù)據(jù)庫設計。9. 審查和復審技術(shù)審查召開項目小組評審會,從技術(shù)角度審查總體設計的合理性、正確性、可追溯性等。管理復審從管理者的角度,審查總體設計中組織管理工作規(guī)范性、文檔的規(guī)范性和完整性等。5. 2 軟件設計基本原理1. 模塊化2. 抽象3. 逐步求精4. 信息隱蔽5. 模塊獨立性1. 模塊化模塊模塊是由一個標識符所代表的、由邊界元素(如Java中的)限定的相鄰程序元素(數(shù)據(jù)/變量說明、可執(zhí)行語句)的、實現(xiàn)特定功能的序列。模塊又稱構(gòu)件
7、,是能夠單獨命名并獨立地完成一定功能的程序語句的集合。例如高級語言中的過程、函數(shù)、子程序等都可作為模塊。模塊化是軟件的一個重要屬性模塊化的特性提供了人們處理復雜的問題的一種方法,同時也使得軟件能夠被有效地管理。模塊化特性設函數(shù):C(x)表示問題x的復雜程度;E(x)表示解決問題x所需要的工作量(時間)。對于兩個問題P1和P2,如果:C(P1)C(P2),則顯然有:E(P1)E(P2)另一個特性是:C(P1P2)C(P1)C(P2)根據(jù)上面的結(jié)論,還有:E(P1P2)E(P1)E(P2)這個不等式表明:單獨解決問題P1和P2所需的工作量之和,比把P1和P2合起來作為一個問題來解決時所需的工作量要
8、少。 這種“分而治之”的思想提供了模塊化的根據(jù):把復雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。模塊化和軟件成本的關(guān)系(模塊化粒度)成本/模塊2. 抽象抽象我們在考慮問題時,集中考慮和當前問題有關(guān)的方面,而忽略和當前問題無關(guān)的方面,這就是抽象。或者說抽象就是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。 軟件工程過程中的抽象軟件工程過程的每一步,都是對軟件解法的抽象層次的一次細化。在可研階段,軟件被看作是一個完整的系統(tǒng)部分;在需求分析期間,使用在問題環(huán)境中熟悉的術(shù)語來描述軟件的解法;當由總體設計階段轉(zhuǎn)入詳細設計階段時,抽象的程度進一步減少;最后,當源程序?qū)懗鰜頃r,也就達到了抽象的
9、最低層??傮w設計中的抽象總體設計中的軟件層次結(jié)構(gòu)是一種抽象,自頂向下是軟件抽象層次的細化。這種抽象簡化了軟件的設計與實現(xiàn),提高了可理解性和可測試性。3. 逐步求精逐步求精:逐步求精是人類解決復雜問題時采用的基本用法,也是許多軟件工程技術(shù)的基礎(chǔ)??砂阎鸩角缶斫鉃椋骸盀榱四芗芯鉀Q主要問題而盡量推遲對問題細節(jié)的考慮”。逐步求精的理論基礎(chǔ):“Miller法則”:一個人在任何時候都只能把注意力集中在5到9個(72)知識塊上。 “Miller法則”是人類智力的基本局限,我們不可能戰(zhàn)勝自己的本性,只能接受這個事實,承認自身的局限性,并在這個前提下近我們最大的努力。逐步求精的好處:它能幫助軟件工程師把
10、精力集中在與當前開發(fā)階段最相關(guān)的那些方面上,而忽略那些對整體解決方案來說雖然必要的,然而目前還不需要的細節(jié),這些細節(jié)將留到以后考慮。軟件設計中“抽象”和“求精”的互補關(guān)系抽象是設計者在軟件設計中關(guān)注系統(tǒng)/模塊的特征、功能和數(shù)據(jù)的,而忽略底層細節(jié);求精使設計者在設計過程中逐步揭示和實現(xiàn)底層細節(jié)。4. 信息隱蔽信息隱蔽模塊所包含的信息(過程和數(shù)據(jù))對于其他模塊來說應該是隱蔽的。也就是說,模塊應當被這樣規(guī)定和設計,使得包含在模塊中的信息(過程或數(shù)據(jù))對于其它不需要這些信息的模塊來說,是不能訪問的,或者說是“不可見”的。局部化局部化的概念和信息隱藏概念是密切相關(guān)的,所謂局部化是指把一些關(guān)系密切的軟件元
11、素物理地放得彼此靠近。信息隱蔽的好處信息隱蔽對于軟件的測試與維護都有很大的好處。因為對于軟件的其它部分來說,絕大多數(shù)數(shù)據(jù)和過程都是隱蔽的,這樣,在修改期間由于疏忽而引入的錯誤所造成的影響就可以局限在一個或幾個模塊內(nèi)部,不至波及到軟件的其他部分(局部化)。5. 模塊獨立模塊獨立模塊獨立是指開發(fā)具有獨立功能且和其他模塊沒有過多的相互作用的模塊。模塊獨立的概念是模塊化,抽象、信息隱藏和局部化概念的直接結(jié)果。模塊獨立性的好處有效的模塊化的軟件比較容易開發(fā)出來,而且適于團隊進行分工開發(fā)。模塊化程度較高的軟件比較容易測試和維護。模塊的獨立程度可以由兩個定性標準度量耦合:指不同模塊彼此間互相依賴的緊密程度;
12、內(nèi)聚:指在模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。耦合耦合:軟件結(jié)構(gòu)中各個模塊之間相互關(guān)聯(lián)程度的度量。耦合的分類:無耦合/非直接耦合兩個模塊之間沒有或沒有直接的數(shù)據(jù)或調(diào)用關(guān)系。數(shù)據(jù)耦合如果兩個模塊通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合就是數(shù)據(jù)耦合。 標記耦合兩個模塊應用了(訪問了)同名的外部標識符。特征耦合當把整個數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而使用其中一部分數(shù)據(jù)元素時,就出現(xiàn)了特征耦合。在這種情況下,被調(diào)用的模塊可以使用的數(shù)據(jù)多于它確實需要的數(shù)據(jù),這將導致對數(shù)據(jù)的訪問失去控制。控制耦合如果兩個模塊通過參數(shù)交換信息,交換的信息有控制信息,那么這種耦合就是控制耦合。公共耦合當兩個或多個模塊通
13、過公共數(shù)據(jù)環(huán)境相互作用時,他們之間的耦合稱為公共環(huán)境耦合。內(nèi)容耦合有下列情形之一,兩個模塊就發(fā)生了內(nèi)容耦合:一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部;一個模塊有多個入口。設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,避免使用內(nèi)容耦合。內(nèi)聚內(nèi)聚:模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。內(nèi)聚的分類:偶然內(nèi)聚(低,0分)如果一個模塊完成一組任務,這些任務彼此間即使有關(guān)系,關(guān)系也比較松散,就叫做偶然內(nèi)聚。邏輯內(nèi)聚(低,1分)如果一個模塊完成的任務在邏輯上屬于相同或相似的一類,則稱為邏輯內(nèi)聚。時間內(nèi)聚(低,3分)如果一個模塊包含的任務必修在同一段時
14、間內(nèi)執(zhí)行,就叫時間內(nèi)聚。過程內(nèi)聚(中,5分)如果一個模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過程內(nèi)聚。 通信內(nèi)聚(中,7分)如果模塊中所有元素都使用同一個輸入數(shù)據(jù)和產(chǎn)生一個輸出數(shù)據(jù),則成為通信內(nèi)聚。 順序內(nèi)聚(高,9分)如果一個模塊內(nèi)的處理元素同一個功能密切相關(guān),而且這些處理必須順序執(zhí)行,則稱為順序內(nèi)聚。 功能內(nèi)聚(高,10分)如果模塊內(nèi)所有處理元素屬于一個整體,完成一個單一的功能,則稱為功能內(nèi)聚。 5. 3 設計準則1. 改進軟件結(jié)構(gòu)提高模塊獨立性2. 模塊規(guī)模應該適中3. 深度、寬度、扇出和扇入都應適當4. 模塊的作用域應該在控制域之內(nèi)5. 力爭降低模塊接口的復雜程度6.
15、設計單入口單出口的模塊7. 模塊功能應該可以預測設計準則1. 改進軟件結(jié)構(gòu)提高模塊獨立性審查設計出來的初步的軟件結(jié)構(gòu),通過模塊合并和分解,力求降低耦合、提高內(nèi)聚。提高獨立性的主要方法:提取公用子功能、減少模塊間控制信息的傳遞、減少模塊對全局變量的訪問、降低接口的復雜性等。2. 模塊規(guī)模應該適中規(guī)模過大的模塊邏輯復雜,難以理解。而且完成的功能可能含有多種,因此一般還可以進一步分解。規(guī)模過小的模塊會使系統(tǒng)的模塊數(shù)增加很多,造成模塊接口開銷大。對于非公共調(diào)用的小模塊,可合并在其父模塊中。推薦模塊的大小為一頁紙,大約不超過60條語句。設計準則(續(xù))3. 深度、寬度、扇出和扇入都應適當深度:軟件結(jié)構(gòu)的控
16、制層數(shù)(數(shù)的深度),反映了系統(tǒng)的邏輯復雜程度。寬度:軟件結(jié)構(gòu)的同一層上最多模塊數(shù),反映了系統(tǒng)的功能復雜程度。扇出:一個模塊直接調(diào)用(控制)的下級模塊數(shù),反映了該模塊的復雜程度。扇入:一個模塊被直接調(diào)用的上級模塊數(shù),反映了該模塊的共享程度。4. 模塊的作用域應該在控制域之內(nèi)作用域:受該模塊內(nèi)的一個判定影響的所有模塊的集合(邏輯上受影響)。控制域:該模塊直接或間接從屬于它的所有模塊的集合(結(jié)構(gòu)上受影響)。軟件結(jié)構(gòu)的度量-例子深度=4寬度=4模塊A:-扇入=1-扇出=2-控制域:B,C,D,E,F-作用域:取決于內(nèi)部邏輯模塊C:-扇入=2-扇出=3-控制域:D,E,F-作用域:取決于內(nèi)部邏輯“好的”
17、軟件結(jié)構(gòu):深度和寬度適中;上層模塊高扇出,下層模塊高扇入;作用域在控制域內(nèi)。設計準則(續(xù))5. 力爭降低模塊接口的復雜程度模塊接口復雜是容易引發(fā)軟件錯誤的重要原因。模塊接口復雜是模塊緊耦合、低內(nèi)聚的征兆。模塊接口的設計應使信息傳遞簡單清晰,與模塊功能一致。6. 設計單入口單出口的模塊使模塊只有一個入口、一個出口,不出現(xiàn)中間跳出、跳入。模塊之間不出現(xiàn)內(nèi)容耦合。7. 模塊功能應該可以預測,且功能不過份局限模塊的功能是確定的、可重現(xiàn)的(對于同樣的輸入產(chǎn)生同樣的輸出)。在功能確定的基礎(chǔ)上,模塊處理能力應有較廣的適應性,滿足不同數(shù)據(jù)結(jié)構(gòu)和處理規(guī)模。5. 4 總體設計的圖形描述工具5.4.1 層次圖層次化
18、表示功能模塊的調(diào)用關(guān)系,上層模塊調(diào)用下層模塊完成所需的功能。5.4.2 HIPO圖5.4.3 結(jié)構(gòu)圖 正文加工系統(tǒng)的層次圖5.4.1 層次圖層次化表示功能模塊的調(diào)用關(guān)系,上層模塊調(diào)用下層模塊完成所需的功能。帶編號的層次圖(H圖)5.4.2 HIPO圖對層次圖改進:每一個方框有編號;每一個方框?qū)粡圛PO圖。軟件結(jié)構(gòu)圖的基本符號5.4.3 結(jié)構(gòu)圖對層次圖改進:采用帶有注釋的箭頭表示模塊調(diào)用時參數(shù)的傳遞;實心圓注釋箭頭表示傳遞控制信息,空心圓注釋箭頭表示傳遞數(shù)據(jù);菱形表示條件分支選擇;箭頭圓弧表示循環(huán)。產(chǎn)生最佳解的結(jié)構(gòu)圖結(jié)構(gòu)圖例5. 5 結(jié)構(gòu)化設計方法5.5.1 數(shù)據(jù)流圖的類型5.5.2 設計步
19、驟5.5.3 變換設計5.5.4 事務設計5.5.5 設計的后處理 結(jié)構(gòu)化設計從數(shù)據(jù)流圖(DFD)入手,分析DFD的類型,找出DFD的處理中心,映射成初步的軟件結(jié)構(gòu)(層次結(jié)構(gòu)圖),按照設計準則細化和優(yōu)化結(jié)構(gòu),描述模塊的接口和全局數(shù)據(jù),經(jīng)過評審后,提交下一步進行詳細設計5.5.1 數(shù)據(jù)流圖的類型1、變換型數(shù)據(jù)流圖2、事務型數(shù)據(jù)流圖1、變換型數(shù)據(jù)流圖時間圖5.8變換流2、事務型數(shù)據(jù)流圖圖5.9事務流5.5.2 設計步驟圖5.10面向數(shù)據(jù)流方法的設計過程5.5.3 變換設計1. 復查基本系統(tǒng)模型2. 復查并精化數(shù)據(jù)流圖3. 確定數(shù)據(jù)流圖的類型4. 確定輸入流和輸出流的邊界,從而孤立出變換中心5. 進
20、行“第一級分解”6. 進行“第二級分解”7. 使用設計度量和設計準則對第一次分割得到的軟件結(jié)構(gòu)進一步精化變換設計例:汽車儀表盤我們通過一個汽車數(shù)字儀表板的設計來介紹變換分析的過程。假設儀表板的功能如下:(1)通過模數(shù)(AD)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;(2)在發(fā)光二極管(LCD)面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;(4)指示加速或減速;(5)超速警告:如果車速超過55英里小時,則發(fā)出超速警告鈴聲。在軟件需求分析階段,應該對上述每項性能和其它要求進行全面的分析,并建立起相應的文檔資料,得出數(shù)據(jù)流圖。具體的設計步驟如下。1、復查基本系
21、統(tǒng)模型仔細閱讀和理解需求規(guī)格說明書復查基本系統(tǒng)模型初步的數(shù)據(jù)流圖數(shù)據(jù)字典IPO圖2、復查并精化數(shù)據(jù)流圖圖5.11數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖3、確定數(shù)據(jù)流圖的類型這一步的任務是確定數(shù)據(jù)流圖是變換型數(shù)據(jù)流圖還是事務型數(shù)據(jù)流圖。從上圖中可以看出,數(shù)據(jù)沿著兩條輸入通路(旋轉(zhuǎn)信號和燃料流量傳感器信號)進入系統(tǒng),然后沿著五條通路(4個顯示,一個警告鈴聲)離開,沒有明顯的事務中心(雖然變換“計算mph與超速值”可以看作是一個事務中心)。因此,可以認為這個數(shù)據(jù)流圖的類型是變換型數(shù)據(jù)流圖。4、確定輸入流和輸出流的邊界,從而孤立出變換中心圖5.12具有邊界的數(shù)據(jù)流圖5、進行“第一級分解”一個總控模塊若干個二級模塊對
22、“變換型”DFD:一個輸入模塊、一個變換模塊、一個輸出模塊。對“事務型”DFD:一個事務接收模塊、每個事務流對應一個模塊。圖5.13 第一級分解的方法第一級分解的結(jié)果圖5.14 數(shù)字儀表板系統(tǒng)的第一級分解6、進行“第二級分解”DFD中的每一個加工對應一個模塊從“變換中心”向外延伸,構(gòu)造模塊間的層次(調(diào)用)關(guān)系圖5.15第二級分解的方法圖5.16 未經(jīng)精化的輸入結(jié)構(gòu)第二級分解的結(jié)果輸入結(jié)構(gòu)第二級分解的結(jié)果變換結(jié)構(gòu)圖5.17 未經(jīng)精化的變換結(jié)構(gòu)第二級分解的結(jié)果輸出結(jié)構(gòu)圖5.18未經(jīng)精化的輸出結(jié)構(gòu)7、對第一次分割得到的軟件結(jié)構(gòu)進一步精化對于從前面的設計步驟得到的軟件結(jié)構(gòu),使用設計度量和設計準則,還可
23、以進行許多修改:輸入結(jié)構(gòu)中的模塊“轉(zhuǎn)換成rpm”和“收集sps”,模塊太小,功能簡單,可以合并;模塊“確定加速減速”可以放在模塊“計算mph”下面,以減少耦合;模塊“加速減速顯示”可以相應地放在模塊“顯示mph”的下面。設計準則參見“5. 2 軟件設計基本原理”?;舅悸肥牵耗K化、高內(nèi)聚、低耦合、上層模塊高扇出、下層模塊高扇入。精化的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)圖5.19 精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)5.5.4 事務設計圖5.20 事務分析的映射方法一個總控模塊若干個二級模塊:一個事務接收模塊、每個事務流對應一個模塊。5.5.5 設計的后處理在確定系統(tǒng)的軟件結(jié)構(gòu)以后,還必須做好下述工作:為每
24、個模塊開發(fā)一份功能說明;為每個模塊提供一份接口說明;定義局部的和全程的數(shù)據(jù)結(jié)構(gòu);給出所有的設計限制或約束;進行總體設計評審;如果需要和可能的話,進行設計“優(yōu)化”。4.5小結(jié)總體設計的目的用比較抽象的方法確定系統(tǒng)概要地是如何實現(xiàn)的(How to do generally !)。從初步的數(shù)據(jù)流圖導出(設計出)軟件結(jié)構(gòu)。主要分為系統(tǒng)設計(DFD、方案、功能)和軟件結(jié)構(gòu)設計(DFD、軟件結(jié)構(gòu))二個階段??傮w設計的過程9步設想可能方案、選取合理方案、推薦最佳方案、功能分解細化DFD、設計軟件結(jié)構(gòu)、設計數(shù)據(jù)庫、制定測試計劃、編寫文檔、審查和復審??傮w設計的原理模塊化、抽象vs逐步求精、信息隱蔽/局部化、模
25、塊獨立性(耦合、內(nèi)聚)總體設計的啟發(fā)規(guī)則7條原則保證設計出良好的軟件結(jié)構(gòu)??傮w設計的圖形工具數(shù)據(jù)流圖、層次圖、HIPO圖、結(jié)構(gòu)圖。結(jié)構(gòu)化設計方法(SD)區(qū)分數(shù)據(jù)流圖的類型(變換型、事務型);結(jié)構(gòu)化設計方法的步驟(7步)習題 51. 為每種類型的模塊耦合舉一個具體例子。2. 為每種類型的模塊內(nèi)聚舉一個具體例子。3. 用面向數(shù)據(jù)流的方法設計下列系統(tǒng)的軟件結(jié)構(gòu)。(1) 儲蓄系統(tǒng)(參見習題2第2題)。(2) 機票預訂系統(tǒng)(參見習題2第3題)。(3) 患者監(jiān)護系統(tǒng)(參見習題2第4題)。4. 美國某大學共有200名教師,校方與教師工會剛剛簽訂一項協(xié)議。按照協(xié)議,所有年工資超過26 000(含26 000)的教師工資將保持不變,年工資少于26 000的教師將增加工資,所增加的工資數(shù)按下述方法計算:給每個由此教師所贍養(yǎng)的人(包括教師本人)每年補助100,此外,教師有一年工齡每年再多補助50,但是,增加后的年工資總額不能多于26 000。教師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新團隊課題申報書
- 高質(zhì)量發(fā)展課題申報書
- 民間音樂課題申報書
- 調(diào)研課題申報立項書格式
- 鹵菜技術(shù)傳授合同范本
- 課題申報書保障條件
- 員工繳納公積金合同范本
- 個人承包私活合同范本
- 包銷合同范本版
- 售房補充合同范本
- 接力版六年級下冊小學英語 Lesson 4 Sally is going to Beijing. 第一課時 教案(教學設計)
- 食堂蔬菜品種及質(zhì)量標準
- 《大數(shù)據(jù)分析與應用》教學大綱
- FZW2812F(FDR)型用戶分界真空負荷開關(guān)安裝使用說明書完
- 2022年中國遠洋海運集團有限公司招聘考試題庫及答案解析
- 供應鏈管理課件第5章供應鏈合作伙伴選擇與評價
- 4D現(xiàn)場管理培訓ppt課件(PPT 45頁)
- 餐飲店面投資預算(900平方米)
- 小學生個人簡歷WORD模板
- 檢驗科危急值管理.
- 五輥研磨機(課堂PPT)
評論
0/150
提交評論