




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程復(fù)習(xí)軟件工程復(fù)習(xí) Teacher: Teacher: xieyxieyi i12334 43512334 4345第一章1軟軟件危機的概概念 “ “軟件危機軟件危機”(Software crisisSoftware crisis)是指在計算機軟件的是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。這些問題絕開發(fā)和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所有軟件都不同程度地存在這些問題。有軟件都不同程度地存在這些問題。軟件危機包含下述兩方面的問題:軟件危機包含下述兩方面的問題:(
2、1)(1)如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何開發(fā)軟件,以滿足對軟件日益增長的需求;(2)(2)如何維護數(shù)量不斷膨脹的已有軟件。如何維護數(shù)量不斷膨脹的已有軟件。 為了克服軟件危機,人們從其他產(chǎn)業(yè)的工業(yè)化為了克服軟件危機,人們從其他產(chǎn)業(yè)的工業(yè)化生產(chǎn)得到啟示,于是在生產(chǎn)得到啟示,于是在68年北大西洋公約的軟件可年北大西洋公約的軟件可靠性會議(靠性會議(NATO)上,首次提出了上,首次提出了“軟件工程軟件工程”的概念的概念。提出了在軟件生產(chǎn)中采用工程化的方法,。提出了在軟件生產(chǎn)中采用工程化的方法,采用一系列科學(xué)的、現(xiàn)代化的方法技術(shù)來開發(fā)軟件。采用一系列科學(xué)的、現(xiàn)代化的方法技術(shù)來開發(fā)軟件。這
3、種工程化的思想貫穿到軟件開發(fā)和維護的全過程。這種工程化的思想貫穿到軟件開發(fā)和維護的全過程?!败浖こ誊浖こ獭钡母拍畹母拍?.3軟件開發(fā)方法軟件開發(fā)的目標是要在規(guī)定的投資和時間內(nèi),軟件開發(fā)的目標是要在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶的需求,高質(zhì)量的軟件,為此需開發(fā)出符合用戶的需求,高質(zhì)量的軟件,為此需要有成功的開發(fā)方法。要有成功的開發(fā)方法。 面向過程的開發(fā)方法面向過程的開發(fā)方法 面向?qū)ο蟮拈_發(fā)方法面向?qū)ο蟮拈_發(fā)方法是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點是快速,自然和方便。方法,主要特點是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向
4、下、逐步求精。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精。它的基本原則是功能的分解與抽象。它的基本原則是功能的分解與抽象。 它采用結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn)來它采用結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化實現(xiàn)來完成軟件開發(fā)的各項任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蛲瓿绍浖_發(fā)的各項任務(wù),并使用適當(dāng)?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結(jié)構(gòu)化技術(shù)的運用。軟件工程環(huán)境來支持結(jié)構(gòu)化技術(shù)的運用。這種方法學(xué)這種方法學(xué)把軟件生命周期的全過程依次劃分為若干個階段,然把軟件生命周期的全過程依次劃分為若干個階段,然后順序地完成每個階段的任務(wù)。后順序地完成每個階段的任務(wù)。采用這種方法學(xué)開發(fā)采用這種方法學(xué)開發(fā)軟件的時候,一個階段一個階
5、段地進行開發(fā)。軟件的時候,一個階段一個階段地進行開發(fā)。 結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法 SP法(法(Structured Program) 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 SD法(法(Structured Design) 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法 SA法(法(Structured Analysis) SA,SD,SP 法相互銜接,形成了法相互銜接,形成了一整套開發(fā)方法。一整套開發(fā)方法。 代表有瀑布模型代表有瀑布模型, ,螺旋模型和原型法螺旋模型和原型法結(jié)構(gòu)結(jié)構(gòu)化方法及瀑布模型 結(jié)構(gòu)化分析(結(jié)構(gòu)化分析(SA):在可行性分析的基礎(chǔ)上,進一步了解:在可行性分析的基礎(chǔ)上,進一步了解確定用戶需求
6、,準確地回答確定用戶需求,準確地回答 “系統(tǒng)必須做什么?系統(tǒng)必須做什么?”的問題,的問題,獲得需求規(guī)格說明書。描述方法為獲得需求規(guī)格說明書。描述方法為DFD 圖、數(shù)據(jù)詞典及加圖、數(shù)據(jù)詞典及加工說明。工說明。 結(jié)構(gòu)化設(shè)計(結(jié)構(gòu)化設(shè)計(SD):將分析階段獲得的需求說明轉(zhuǎn)換為計:將分析階段獲得的需求說明轉(zhuǎn)換為計算機中可實現(xiàn)的系統(tǒng),完成系統(tǒng)的結(jié)構(gòu)設(shè)計,包括數(shù)據(jù)結(jié)算機中可實現(xiàn)的系統(tǒng),完成系統(tǒng)的結(jié)構(gòu)設(shè)計,包括數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu),最后得到軟件設(shè)計說明書。描述方式:模構(gòu)和程序結(jié)構(gòu),最后得到軟件設(shè)計說明書。描述方式:模塊圖、流程圖及塊圖、流程圖及PAD 圖等。圖等。 結(jié)構(gòu)化程序設(shè)計(結(jié)構(gòu)化程序設(shè)計(SP):根據(jù)
7、軟件設(shè)計,選擇程序設(shè)計語:根據(jù)軟件設(shè)計,選擇程序設(shè)計語言,編碼實現(xiàn)具有良好風(fēng)格的軟件系統(tǒng)。言,編碼實現(xiàn)具有良好風(fēng)格的軟件系統(tǒng)。OOSD(Object-Oriented Software Development)是)是80年代推出的一種年代推出的一種全新的軟件開發(fā)方法。非常實用而強有力,被譽全新的軟件開發(fā)方法。非常實用而強有力,被譽為為90年代軟件的核心技術(shù)之一。年代軟件的核心技術(shù)之一。面向?qū)ο蠓椒捌涔ぷ髂P?其基本思想是:對問題領(lǐng)域進行自然的分割,其基本思想是:對問題領(lǐng)域進行自然的分割,以更接近人類通常思維的方式建立問題領(lǐng)域的模以更接近人類通常思維的方式建立問題領(lǐng)域的模型,以便對客觀的信息
8、實體進行結(jié)構(gòu)和行為的模型,以便對客觀的信息實體進行結(jié)構(gòu)和行為的模擬,從而使設(shè)計的軟件更直接地表現(xiàn)問題的求解擬,從而使設(shè)計的軟件更直接地表現(xiàn)問題的求解過程。過程。面向?qū)ο蟮拈_發(fā)方法以對象作為最基本的面向?qū)ο蟮拈_發(fā)方法以對象作為最基本的元素,是分析和解決問題的核心。元素,是分析和解決問題的核心。面向?qū)ο箝_發(fā)方法的組成 OOSD由三部分組成:由三部分組成: OOA(Object-Oriented Analysis)面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?OOD(Object-Oriented Design)面向?qū)ο蟮脑O(shè)計面向?qū)ο蟮脑O(shè)計 OOP (Object-Oriented Program)面向?qū)ο蟮某绦蛟O(shè)
9、計面向?qū)ο蟮某绦蛟O(shè)計OOAOOA強調(diào)的是對一個系統(tǒng)中的對象特征和行強調(diào)的是對一個系統(tǒng)中的對象特征和行為的定義。建立系統(tǒng)的三類模型。為的定義。建立系統(tǒng)的三類模型。OODOODOOD與與OOAOOA密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進密切配合順序?qū)崿F(xiàn)對現(xiàn)實世界的進一步建模。一步建模。OOPOOPOOP是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用是面向?qū)ο蟮募夹g(shù)中發(fā)展最快的,使用面向?qū)ο蟮某绦蛟O(shè)計語言,進行編碼。面向?qū)ο蟮某绦蛟O(shè)計語言,進行編碼。面向?qū)ο蠓椒ǖ哪P痛硎菄娙P兔嫦驅(qū)ο蠓椒ǖ哪P痛硎菄娙P?.4 軟件過程軟件開發(fā)模型是描述軟件開發(fā)過程中各種活動如軟件開發(fā)模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的
10、模型。因此又稱為何執(zhí)行的模型。因此又稱為軟件過程模型軟件過程模型。軟件過程模型是對軟件開發(fā)實際過程的抽象和軟件過程模型是對軟件開發(fā)實際過程的抽象和簡化。簡化。 目前典型的軟件開發(fā)模型有:目前典型的軟件開發(fā)模型有:瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、模型、rationalrational統(tǒng)一過程、敏捷過程與極限編程、微軟過程統(tǒng)一過程、敏捷過程與極限編程、微軟過程等。等。 不同的開發(fā)方法有不同的軟件過程模型。不同的開發(fā)方法有不同的軟件過程模型。開發(fā)開發(fā)時期時期運行運行時期時期計劃計劃時期時期( (目標與范圍說明書目標與范圍說明書)
11、)( (可行性論證論告可行性論證論告) )( (維護報告維護報告) )( (測試報告測試報告) )( (程序程序) )( (設(shè)計文檔設(shè)計文檔) )( (需求說明書需求說明書) )軟軟件生命周期(SDLD)瀑布模型瀑布模型瀑布模型的優(yōu)點瀑布模型的優(yōu)點v可以強迫開發(fā)人員采用規(guī)范的方法;可以強迫開發(fā)人員采用規(guī)范的方法;v嚴格規(guī)定了每個階段必須提交的文檔;嚴格規(guī)定了每個階段必須提交的文檔;v要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。仔細驗證。瀑布模型的缺點瀑布模型的缺點v在軟件開發(fā)的初期階段就要求做出正確、全面、完整的需在軟件開發(fā)的初
12、期階段就要求做出正確、全面、完整的需求分析對許多應(yīng)用軟件來說是極其困難的。求分析對許多應(yīng)用軟件來說是極其困難的。v在需求分析階段,當(dāng)需求確定后,無法及時驗證需求是否在需求分析階段,當(dāng)需求確定后,無法及時驗證需求是否正確、完整。正確、完整。v作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性,對開發(fā)過程中很難發(fā)現(xiàn)的錯誤,只有在最終產(chǎn)品靈活性,對開發(fā)過程中很難發(fā)現(xiàn)的錯誤,只有在最終產(chǎn)品運行時才能暴露出來,從而使軟件產(chǎn)品難以維護。運行時才能暴露出來,從而使軟件產(chǎn)品難以維護??焖僭涂焖僭万炞C驗證編碼編碼驗證驗證規(guī)格說明規(guī)格說明驗證驗證設(shè)計設(shè)計
13、驗證驗證綜合測試綜合測試維護維護變化的需求變化的需求驗證驗證快速原型模型快速原型模型快速原型模型適用的場合快速原型模型適用的場合v原型模型比瀑布模型更符合人們認識事物的過程和規(guī)律,原型模型比瀑布模型更符合人們認識事物的過程和規(guī)律,是一種較實用的開發(fā)框架。是一種較實用的開發(fā)框架。v它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā),它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā),更適合于那些項目組成員(包括分析員、設(shè)計員、程序員更適合于那些項目組成員(包括分析員、設(shè)計員、程序員和用戶)不能很好交流或通信有困難的情況。和用戶)不能很好交流或通信有困難的情況。需求分析需求分析驗證驗證規(guī)格說明規(guī)格說明
14、驗證驗證設(shè)計設(shè)計驗證驗證維護維護針對每個構(gòu)件,完成針對每個構(gòu)件,完成詳細設(shè)計、編碼和集詳細設(shè)計、編碼和集成,經(jīng)測試后交付給成,經(jīng)測試后交付給用戶用戶增量模型增量模型增量模型的優(yōu)點增量模型的優(yōu)點v能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品。能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品。v逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。沖擊。增量模型的缺點增量模型的缺點v在把每個新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必在把每個新的增量構(gòu)件
15、集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品。此外,必須把軟件的體系結(jié)構(gòu)設(shè)計的便于按照這種方式進行擴充,向現(xiàn)有產(chǎn)品中系結(jié)構(gòu)設(shè)計的便于按照這種方式進行擴充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過程必須簡單、方便,加入新構(gòu)件的過程必須簡單、方便,這就意味著需要更精這就意味著需要更精心的設(shè)計心的設(shè)計。 對大型軟件對大型軟件,需要多個原型描述系統(tǒng)的生存期,需要多個原型描述系統(tǒng)的生存期,螺旋模型將瀑布模型與原型化模型結(jié)合起來螺旋模型將瀑布模型與原型化模型結(jié)合起來, ,并加入了風(fēng)險分析并加入了風(fēng)險分析。螺旋模型螺旋模型 螺旋模型將開發(fā)過程螺旋模型將開發(fā)過
16、程分為幾個螺旋周期,每分為幾個螺旋周期,每個螺旋周期可分為個螺旋周期可分為4 4個工個工作步驟:作步驟: 第一,確定目標、方案第一,確定目標、方案和限制條件;和限制條件; 第二,評估方案、標識第二,評估方案、標識風(fēng)險和解決風(fēng)險;風(fēng)險和解決風(fēng)險; 第三,開發(fā)確認產(chǎn)品;第三,開發(fā)確認產(chǎn)品; 第四,計劃下一周期工第四,計劃下一周期工作。作。螺旋模型的優(yōu)點螺旋模型的優(yōu)點v對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標。有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標。v減少了過多測試或測試不足所帶來的風(fēng)險。減少了
17、過多測試或測試不足所帶來的風(fēng)險。v在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質(zhì)區(qū)別。之間并沒有本質(zhì)區(qū)別。螺旋模型的缺點螺旋模型的缺點v如果每次迭代的效率不高,致使迭代次數(shù)過多,將會增加如果每次迭代的效率不高,致使迭代次數(shù)過多,將會增加成本并推遲提交時間。成本并推遲提交時間。v使用該模型需要有相當(dāng)豐富的風(fēng)險評估經(jīng)驗和專門知識,使用該模型需要有相當(dāng)豐富的風(fēng)險評估經(jīng)驗和專門知識,要求開發(fā)隊伍水平較高。要求開發(fā)隊伍水平較高。螺旋模型適用的場合螺旋模型適用的場合 支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并支持支持需求不明確、特別是大
18、型軟件系統(tǒng)的開發(fā),并支持面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,是一種具有廣闊前景的模型。是一種具有廣闊前景的模型。1.4.5噴噴泉模型1.4.6 Rational統(tǒng)一過程圖圖1.10 RUP1.10 RUP軟件開發(fā)生命周期軟件開發(fā)生命周期1.4.7敏捷過程與極限編程 圖圖1.11 XP1.11 XP項目的整體開發(fā)過程項目的整體開發(fā)過程1.4.8微軟過程 圖圖1.131.13微軟軟件生命周期階段劃分和主要里程碑微軟軟件生命周期階段劃分和主要里程碑 圖圖1.141.14微軟過程的生命周期模型微軟過程的生命周期模型 掌握各大模型的概概
19、念及適應(yīng)場應(yīng)場合等. 2第二 章v可行性研究的目的:可行性研究的目的:用最小的代價,在盡可能短的時間內(nèi)用最小的代價,在盡可能短的時間內(nèi)確定問題是否能夠解決。確定問題是否能夠解決。v可行性研究的實質(zhì):可行性研究的實質(zhì):進行一次大大壓縮簡化了的系統(tǒng)分析進行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計的過程。和設(shè)計的過程??尚行匝醒芯康娜蝿?wù)務(wù) 技術(shù)術(shù)可行性 使用現(xiàn)現(xiàn)有的技術(shù)術(shù)能實現(xiàn)這個實現(xiàn)這個系統(tǒng)嗎統(tǒng)嗎? 經(jīng)濟經(jīng)濟可行性 這個這個系統(tǒng)統(tǒng)的經(jīng)濟經(jīng)濟效益能超過它過它的開發(fā)開發(fā)成本嗎嗎? 操作可行性 系統(tǒng)統(tǒng)的操作方式在這個這個用戶組織內(nèi)戶組織內(nèi)行得通嗎嗎?系統(tǒng)流程圖系統(tǒng)流程圖:一種種物理模型,描繪繪物理數(shù)數(shù)據(jù)流圖圖
20、.數(shù)據(jù)流圖(數(shù)據(jù)流圖(Data Flow Diagram,DFD)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它描是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它描述了將系統(tǒng)的邏輯輸入轉(zhuǎn)換為邏輯輸出所需述了將系統(tǒng)的邏輯輸入轉(zhuǎn)換為邏輯輸出所需的加工處理過程。的加工處理過程。2.4.1 符號號 基本符號基本符號 附加符號附加符號* 與與 + 或或互斥+數(shù)據(jù)流圖的畫法(一) 由外向里:由外向里:不分層,一次性畫出完整的數(shù)據(jù)流圖不分層,一次性畫出完整的數(shù)據(jù)流圖)先確定系統(tǒng)邊界,再確定總的輸入和輸出)先確定系統(tǒng)邊界,再確定總的輸入和輸出)畫系統(tǒng)內(nèi)部,即畫加工用若干個加工把輸)畫系統(tǒng)內(nèi)部,即畫加工用若干個加工把輸入和輸出聯(lián)系起來在
21、數(shù)據(jù)流每次發(fā)生改變?nèi)牒洼敵雎?lián)系起來在數(shù)據(jù)流每次發(fā)生改變的地方畫上一個加工,在數(shù)據(jù)要存儲的地方的地方畫上一個加工,在數(shù)據(jù)要存儲的地方畫上一個文件畫上一個文件)加工如果還有新的數(shù)據(jù)流產(chǎn)生,則加工還需)加工如果還有新的數(shù)據(jù)流產(chǎn)生,則加工還需要進一步分解成更細的加工,叫基本加工要進一步分解成更細的加工,叫基本加工數(shù)數(shù)據(jù)流圖圖的畫畫法(二) 分層數(shù)據(jù)流圖:分層數(shù)據(jù)流圖:自頂向下畫,對系統(tǒng)進行逐層分解,可以自頂向下畫,對系統(tǒng)進行逐層分解,可以控制每一層的復(fù)雜度控制每一層的復(fù)雜度 頂層:頂層:實體輸入一個加工輸出實體輸入一個加工輸出 中間層:中間層:加工子加工子加工加工子加工子加工 底層:底層:由基本加工組
22、成由基本加工組成X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1頂頂層層中中 間間 層層底底 層層先全局后局部先全局后局部, ,先整體后細節(jié)先整體后細節(jié), ,先抽象后具體先抽象后具體. .0圖1圖2圖1.1圖2.1圖2.2圖分層層DFD 圖圖分層數(shù)層數(shù)據(jù)流圖圖的作圖圖步驟驟:先畫畫出頂層頂層的DFD圖圖,即確定實實體和輸輸入輸輸出逐層層分解頂層頂層DFD圖圖,獲獲得若干中間層間層DFD圖圖畫畫出底層層的DFD圖圖合理使用文件合理使用文件 當(dāng)文件作為某些加工之間的交界面時,文件必當(dāng)文件作為某些加工之間的交界面時,文件必須
23、畫出來,一旦文件作為數(shù)據(jù)流圖中的一個獨立成須畫出來,一旦文件作為數(shù)據(jù)流圖中的一個獨立成份畫出來了,那么他同其他成份之間的聯(lián)系也應(yīng)同份畫出來了,那么他同其他成份之間的聯(lián)系也應(yīng)同時表達出來。時表達出來。加工分解的原則加工分解的原則 自然性:概念上合理、清晰;自然性:概念上合理、清晰; 均勻性:均勻性:理想的分解是將一個問題分解成大小理想的分解是將一個問題分解成大小均勻的幾個部分;均勻的幾個部分; 分解度:一般每一個加工每次分解最多不要超分解度:一般每一個加工每次分解最多不要超過個子加工過個子加工,分解應(yīng)分解到基本加工為止。分解應(yīng)分解到基本加工為止。五、 分層DFD圖的改進 DFD圖須經(jīng)過圖須經(jīng)過反
24、復(fù)修改反復(fù)修改,才能獲得最終的目標系統(tǒng),才能獲得最終的目標系統(tǒng)的的DFD圖。從以下方面改進圖。從以下方面改進DFD圖:圖: 1 1、檢查數(shù)據(jù)流的正確性檢查數(shù)據(jù)流的正確性 數(shù)據(jù)數(shù)據(jù)守恒守恒 子圖、父圖的平衡子圖、父圖的平衡 文件使用是否合理。特別注意輸入文件使用是否合理。特別注意輸入/ /出文件的數(shù)出文件的數(shù)據(jù)流。據(jù)流。2、改進、改進DFD圖的易理解性圖的易理解性 簡化加工之間的聯(lián)系(聯(lián)系越少,獨立性越強,簡化加工之間的聯(lián)系(聯(lián)系越少,獨立性越強,易理解性越好)。易理解性越好)。 改進分解的均勻性。改進分解的均勻性。 適當(dāng)命名(各成分名稱無二義性,準確、具體)適當(dāng)命名(各成分名稱無二義性,準確、
25、具體)成本成本/效益分析效益分析的目的是要從經(jīng)濟角度分析開發(fā)一個特定的的目的是要從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負責(zé)人正確地作出新系統(tǒng)是否劃算,從而幫助客戶組織的負責(zé)人正確地作出是否投資于這項開發(fā)工程的決定。是否投資于這項開發(fā)工程的決定。2.6.1 成本估計成本估計2.6.2 成本成本/效益分析的方法效益分析的方法2.6 成本/效益分析2.6.2 成本/效益分析的方法v成本成本/ /效益分析的第一步是估計開發(fā)成本、運行費用和效益分析的第一步是估計開發(fā)成本、運行費用和新系統(tǒng)將帶來的經(jīng)濟效益:新系統(tǒng)將帶來的經(jīng)濟效益:v應(yīng)該比較新系統(tǒng)的開發(fā)成本和經(jīng)濟效益,以便從經(jīng)濟應(yīng)該
26、比較新系統(tǒng)的開發(fā)成本和經(jīng)濟效益,以便從經(jīng)濟角度判斷這個系統(tǒng)是否值得投資。角度判斷這個系統(tǒng)是否值得投資。1. 貨幣的時間價值貨幣的時間價值 假設(shè)年利率為假設(shè)年利率為i,如果現(xiàn)在存入,如果現(xiàn)在存入P元,則元,則n年后可以得到年后可以得到的錢數(shù)為:的錢數(shù)為:F=P(1+i)n;反之,如果;反之,如果n年后能收入年后能收入F元錢,元錢,那么這些錢的現(xiàn)在價值是:那么這些錢的現(xiàn)在價值是:P=F/(1+i)n。2. 投資回收期投資回收期 投資回收期就是使累計的經(jīng)濟效益等于最初投資所需投資回收期就是使累計的經(jīng)濟效益等于最初投資所需要的時間。顯然,投資回收期越短就能越快獲得利潤,因要的時間。顯然,投資回收期越短
27、就能越快獲得利潤,因此這項工程也就越值得投資。此這項工程也就越值得投資。3. 純收入純收入 純收入指在整個生命周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益純收入指在整個生命周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折折合成現(xiàn)在值合成現(xiàn)在值)與投資之差。與投資之差。4. 投資回收率投資回收率 把資金存入銀行或貸給其他企業(yè)能夠獲得利息,把資金存入銀行或貸給其他企業(yè)能夠獲得利息,通常用通常用年利率衡量利息年利率衡量利息多少,類似地也可以計算多少,類似地也可以計算投資投資回收率回收率,用它衡量投資效益的大小,并且,用它衡量投資效益的大小,并且可以把它和可以把它和年利率相比較年利率相比較,在衡量工程的經(jīng)濟效益時,它是最重,在衡量工程的
28、經(jīng)濟效益時,它是最重要的參考數(shù)據(jù)。要的參考數(shù)據(jù)。 設(shè)設(shè)P是現(xiàn)在的投資額,是現(xiàn)在的投資額,F(xiàn)i是第是第i年年底的效益,年年底的效益,n是是系統(tǒng)使用壽命,系統(tǒng)使用壽命,j是投資回收率,則是投資回收率,則 P = F1/(1+j) + F2/(1+j)2 + + Fn/(1+j)n 掌握計計算一個項個項目各大經(jīng)濟經(jīng)濟指標標的方法. 需求分析是軟件定義時期的最后一個階段,它的基本需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)是準確地回答任務(wù)是準確地回答“系統(tǒng)必須做什么系統(tǒng)必須做什么?”?”這個問題,也就這個問題,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。是對目標系統(tǒng)提出完整、準確、清晰、具
29、體的要求。 在需求分析階段結(jié)束之前,系統(tǒng)分析員應(yīng)該寫出在需求分析階段結(jié)束之前,系統(tǒng)分析員應(yīng)該寫出軟件軟件需求規(guī)格說明書需求規(guī)格說明書,以書面形式準確地描述軟件需求。,以書面形式準確地描述軟件需求。第第3 3章章 需求分析需求分析軟軟 件需件需 求求用用 戶需戶需 求求系系 統(tǒng)需統(tǒng)需 求求功能功能需求需求非功能非功能需求需求領(lǐng)域領(lǐng)域需求需求由客戶管理員、由客戶管理員、用戶等提出用戶等提出軟件需求的內(nèi)容軟件需求的內(nèi)容一、軟件需求內(nèi)容一、軟件需求內(nèi)容需求分析與建模需求分析與建模 需求分析和建模又包含三個層次的工作。需求分析和建模又包含三個層次的工作。1 1、需求分析、需求分析 2 2、需求建模(分為
30、企業(yè)、需求建模(分為企業(yè)建模建模、功能需求、功能需求建模建模和非和非功能需求功能需求建模建模等)等)3 3、需求規(guī)格說明需求規(guī)格說明不同的描述方式。不同的描述方式。 主要對收集到的需求進行提煉、分析和認真審主要對收集到的需求進行提煉、分析和認真審查,確保所有參加人員取得一致共識。找出錯誤、查,確保所有參加人員取得一致共識。找出錯誤、遺漏和不足,建立完整的分析模型。遺漏和不足,建立完整的分析模型。 需求規(guī)規(guī)格說說明書書的作用 -項項目開發(fā)開發(fā)合同 -設(shè)計編設(shè)計編程基礎(chǔ)礎(chǔ) -系統(tǒng)測試統(tǒng)測試指南 -竣工驗驗收依據(jù) 將系統(tǒng)看作若干功能模塊的集合,每個功能又可將系統(tǒng)看作若干功能模塊的集合,每個功能又可以
31、分解為子功能以分解為子功能, ,子功能還可繼續(xù)分解子功能還可繼續(xù)分解, ,分解的結(jié)果即分解的結(jié)果即是系統(tǒng)的雛形。是系統(tǒng)的雛形。存在問題存在問題1. 1. 需要人工完成需要人工完成2. 2. 無法對描述的準確度進行驗證。無法對描述的準確度進行驗證。3. 3. 難以適應(yīng)需求的變化。難以適應(yīng)需求的變化。問題空間問題空間功能功能子功能子功能映射映射 是一種以數(shù)據(jù)、數(shù)據(jù)的封閉性為基礎(chǔ),從問題是一種以數(shù)據(jù)、數(shù)據(jù)的封閉性為基礎(chǔ),從問題空空間到某種表示的映射方法間到某種表示的映射方法, ,由數(shù)據(jù)流圖由數(shù)據(jù)流圖( (DFDDFD圖圖) )表示表示。 面向?qū)ο蟮姆治龇椒嫦驅(qū)ο蟮姆治龇椒?面向?qū)ο蠓治龇椒嫦驅(qū)ο?/p>
32、分析方法( (OOA) )的關(guān)鍵是識別問題域內(nèi)的關(guān)鍵是識別問題域內(nèi)的對象的對象, ,分析它們之間的關(guān)系分析它們之間的關(guān)系, ,并建立起三類模型。并建立起三類模型。結(jié)構(gòu)化分析方法是最成熟和應(yīng)用最廣泛的方法結(jié)構(gòu)化分析方法是最成熟和應(yīng)用最廣泛的方法分解:分解:對于一個復(fù)雜的系統(tǒng),對于一個復(fù)雜的系統(tǒng),為了將復(fù)雜性降低到可以掌為了將復(fù)雜性降低到可以掌握的程度,可以把大問題分握的程度,可以把大問題分解成若干小問題,然后分別解成若干小問題,然后分別解決(如右圖)。解決(如右圖)?!胺纸夥纸狻焙秃汀俺橄蟪橄蟆?。抽象:抽象:分解可以分層進行,即先考慮問題最本質(zhì)的分解可以分層進行,即先考慮問題最本質(zhì)的屬性,暫把細
33、節(jié)略去屬性,暫把細節(jié)略去, ,以后再逐層添加細節(jié),直至涉以后再逐層添加細節(jié),直至涉及到最詳細的內(nèi)容,這種用最本質(zhì)的屬性表示一個系及到最詳細的內(nèi)容,這種用最本質(zhì)的屬性表示一個系統(tǒng)的方法就是統(tǒng)的方法就是“抽象抽象”。1.11.21.3x2132.12.22.31.11.3 基本思想與與步驟驟1 1、分層的數(shù)據(jù)流圖、分層的數(shù)據(jù)流圖( (DFDDFD圖圖) )2 2、數(shù)據(jù)詞典數(shù)據(jù)詞典3 3、描述加工邏輯的、描述加工邏輯的結(jié)構(gòu)化語言、判定表及判定樹結(jié)構(gòu)化語言、判定表及判定樹 SA方法的特點 由頂層頂層向下逐層層分解 圖圖形方式描述 SA法的局限性 與數(shù)與數(shù)據(jù)庫庫的銜銜接性差 人機交互方式不易表達達 不適
34、用于實時實時系統(tǒng)統(tǒng) 書書面模型(不能上機驗證驗證,不容易發(fā)現(xiàn)問題發(fā)現(xiàn)問題) 軟件設(shè)計是軟件開發(fā)的關(guān)鍵步驟,軟件設(shè)計是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件質(zhì)量直接影響軟件質(zhì)量。軟件設(shè)計階段要解決軟件設(shè)計階段要解決“如何做如何做”的問題。的問題。 將需求階段獲得的需求說明(模型)將需求階段獲得的需求說明(模型)轉(zhuǎn)換為計算機中可實現(xiàn)的系統(tǒng)轉(zhuǎn)換為計算機中可實現(xiàn)的系統(tǒng), ,即進行系統(tǒng)結(jié)構(gòu)設(shè)計。即進行系統(tǒng)結(jié)構(gòu)設(shè)計。 設(shè)計階段主要任務(wù)是設(shè)計階段主要任務(wù)是: :系統(tǒng)結(jié)構(gòu)的設(shè)計系統(tǒng)結(jié)構(gòu)的設(shè)計數(shù)據(jù)結(jié)構(gòu)的設(shè)計數(shù)據(jù)結(jié)構(gòu)的設(shè)計用戶界面的設(shè)計用戶界面的設(shè)計算法的設(shè)計算法的設(shè)計 軟件軟件涉及多方面,可分為總體設(shè)計和涉及多方面,
35、可分為總體設(shè)計和詳細設(shè)計。詳細設(shè)計。過程設(shè)計過程設(shè)計系統(tǒng)結(jié)構(gòu)設(shè)計系統(tǒng)結(jié)構(gòu)設(shè)計數(shù)據(jù)設(shè)計數(shù)據(jù)設(shè)計界面設(shè)計界面設(shè)計軟件設(shè)計軟件設(shè)計任務(wù)任務(wù)軟件設(shè)計分為軟件設(shè)計分為總體設(shè)計總體設(shè)計和和詳細設(shè)計詳細設(shè)計兩個階段兩個階段。 3.1.2 3.1.2 軟件設(shè)計階段軟件設(shè)計階段總體設(shè)計總體設(shè)計v總體設(shè)計的兩個重要任務(wù):總體設(shè)計的兩個重要任務(wù):v劃分出組成系統(tǒng)的物理元素;劃分出組成系統(tǒng)的物理元素;v設(shè)計軟件的結(jié)構(gòu),也就是確定系統(tǒng)中每個程序是設(shè)計軟件的結(jié)構(gòu),也就是確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。由哪些模塊組成的,以及這些模塊相互間的關(guān)系。2. 設(shè)計設(shè)計軟件結(jié)構(gòu)軟件結(jié)構(gòu) u指定了系統(tǒng)的
36、組織結(jié)構(gòu)和拓撲結(jié)構(gòu)指定了系統(tǒng)的組織結(jié)構(gòu)和拓撲結(jié)構(gòu).確定程序由哪些模確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系塊組成,以及這些模塊之間的關(guān)系. 通常程序中的一個通常程序中的一個模塊完成一個適當(dāng)?shù)淖庸δ?。把這些模塊自頂向下組模塊完成一個適當(dāng)?shù)淖庸δ堋0堰@些模塊自頂向下組成一種良好的層次調(diào)用關(guān)系,也就完成了軟件結(jié)構(gòu)設(shè)成一種良好的層次調(diào)用關(guān)系,也就完成了軟件結(jié)構(gòu)設(shè)計的任務(wù)。計的任務(wù)。u如果數(shù)據(jù)流圖已經(jīng)細化到適當(dāng)?shù)膶哟?,則可以直接從如果數(shù)據(jù)流圖已經(jīng)細化到適當(dāng)?shù)膶哟危瑒t可以直接從數(shù)據(jù)流圖映射出軟件結(jié)構(gòu)。數(shù)據(jù)流圖映射出軟件結(jié)構(gòu)。u 設(shè)計方法不同,確定軟件結(jié)構(gòu)的方法也不同。常用的設(shè)計方法不同,確定軟件結(jié)構(gòu)
37、的方法也不同。常用的設(shè)計方法有:設(shè)計方法有: SD法、法、Jackson法、法、OOD法、法、HIPO法、法、 Parnas法、法、 Warnier法等。法等。 軟件軟件就是構(gòu)造一個高內(nèi)聚低耦合就是構(gòu)造一個高內(nèi)聚低耦合的軟件模型。的軟件模型。軟件軟件高可靠高可靠性性高可維高可維護性護性高可理高可理解性解性高效率高效率軟件設(shè)計的目標模塊分解模塊分解模塊模塊: :構(gòu)成系統(tǒng)的基本單元構(gòu)成系統(tǒng)的基本單元設(shè)計階段的基本任務(wù)設(shè)計階段的基本任務(wù):決定軟件系統(tǒng)的:決定軟件系統(tǒng)的模塊結(jié)構(gòu)模塊結(jié)構(gòu). .模塊化模塊化: :就是將系統(tǒng)劃分成若干模塊,就是將系統(tǒng)劃分成若干模塊,每個模塊完成一個子功能,把這些模塊每個模塊
38、完成一個子功能,把這些模塊集中起來組成一個整體,以滿足所要求集中起來組成一個整體,以滿足所要求的整個系統(tǒng)的功能的整個系統(tǒng)的功能。我們利用模塊化來降低軟件復(fù)雜度。注我們利用模塊化來降低軟件復(fù)雜度。注意選擇分解的最佳模塊數(shù)。意選擇分解的最佳模塊數(shù)。采用模塊化原理帶來的好處:采用模塊化原理帶來的好處:u模塊化使軟件結(jié)構(gòu)清晰,易于設(shè)模塊化使軟件結(jié)構(gòu)清晰,易于設(shè) 計,也易于閱讀和理解;計,也易于閱讀和理解;u模塊化使軟件容易測試和調(diào)試,模塊化使軟件容易測試和調(diào)試, 有助于提高軟件的可靠性;有助于提高軟件的可靠性;u模塊化能夠提高軟件的可修改性;模塊化能夠提高軟件的可修改性;u模塊化也有助于軟件開發(fā)工程的
39、組模塊化也有助于軟件開發(fā)工程的組 織管理。織管理。模塊分解模塊分解模塊的基本特征:模塊的基本特征: 外部特征(輸入輸出,功能)外部特征(輸入輸出,功能) 內(nèi)部特征(內(nèi)部數(shù)據(jù)、代碼)內(nèi)部特征(內(nèi)部數(shù)據(jù)、代碼)設(shè)計過程:由外向里設(shè)計過程:由外向里 先確定模塊的外部特征(概要設(shè)計)先確定模塊的外部特征(概要設(shè)計) 再確定模塊的內(nèi)部特征(詳細設(shè)計)再確定模塊的內(nèi)部特征(詳細設(shè)計) 模塊塊是否分解得越小越好? 軟件結(jié)構(gòu)表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)軟件結(jié)構(gòu)表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表示,均表示為層次關(guān)系系的表示,均表示為層次關(guān)系。直線表示調(diào)用關(guān)系。直線表示調(diào)用關(guān)系. .軟 件 結(jié) 構(gòu)
40、 示 意 圖頂層頂層1層層2層層ABCDEFGHIJKLMN深度寬度扇入為扇入為2扇出為扇出為3扇入為扇入為3寬度深度寬度3層層4層層模塊結(jié)構(gòu)示意圖模塊結(jié)構(gòu)示意圖 深度深度:表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊的層數(shù)的層數(shù); 寬度寬度:表示控制的總分布;表示控制的總分布; 扇出數(shù)扇出數(shù):指一個模塊直接控制下屬的模塊個數(shù);指一個模塊直接控制下屬的模塊個數(shù); 扇入數(shù)扇入數(shù):指一個模塊的直接上屬模塊個數(shù)。反映指一個模塊的直接上屬模塊個數(shù)。反映了模塊的了模塊的重用率重用率. . 一個好的軟件結(jié)構(gòu)的形態(tài)準則是:頂部寬度小,一個好的軟件結(jié)構(gòu)的形態(tài)準則是:頂部寬度小,中部
41、寬度最大,底部寬度次之;在結(jié)構(gòu)頂部有較高的中部寬度最大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。扇出數(shù),在底部有較高的扇入數(shù)。 經(jīng)驗表明,一個設(shè)計得好的典型系統(tǒng)的平均扇出經(jīng)驗表明,一個設(shè)計得好的典型系統(tǒng)的平均扇出通常是通常是3 3或或4(4(扇出的上限通常是扇出的上限通常是5 59)9)。 有有 關(guān)關(guān) 指指 標標 模塊獨塊獨立性準則則: 模塊獨塊獨立性的含義義是指開發(fā)開發(fā)具有功能專專一,模塊塊之間間無過過多相互作用的模塊塊。又稱為稱為模塊獨塊獨立性準則則。這種類這種類型的模塊塊可以并并行開發(fā)開發(fā),開開發(fā)發(fā)容易,能減減少錯誤錯誤的影響響,使模塊塊容易組組合、修改及測試測試。
42、v模塊的獨立程度可以由兩個定性標準度量,這兩模塊的獨立程度可以由兩個定性標準度量,這兩個標準分別稱為內(nèi)聚和耦合。個標準分別稱為內(nèi)聚和耦合。v耦合耦合衡量不同模塊彼此間互相依賴衡量不同模塊彼此間互相依賴(連接連接)的緊密的緊密程度程度(塊間聯(lián)系塊間聯(lián)系);v內(nèi)聚內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度密程度(塊內(nèi)聯(lián)系塊內(nèi)聯(lián)系)。1.耦合耦合v耦合耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。程度的度量。v耦合強弱取決于模塊間接口的復(fù)雜程度,進耦合強弱取決于模塊間接口的復(fù)雜程度,進入或訪問一個模塊的點,以及通過接口的數(shù)
43、入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。據(jù)。v在軟件設(shè)計中應(yīng)該追求盡可能松散耦合的系在軟件設(shè)計中應(yīng)該追求盡可能松散耦合的系統(tǒng)。統(tǒng)。 耦合性耦合性 用于描述模塊之間聯(lián)系的緊密程度。用于描述模塊之間聯(lián)系的緊密程度。軟件獨立性的度量標準是兩個定性指標:軟件獨立性的度量標準是兩個定性指標:內(nèi)容耦合內(nèi)容耦合公共耦合公共耦合控制耦合控制耦合復(fù)合耦合復(fù)合耦合數(shù)據(jù)耦合數(shù)據(jù)耦合應(yīng)該采取下述設(shè)計原則:應(yīng)該采取下述設(shè)計原則: 盡量使用數(shù)據(jù)耦合,少用控制耦合和特盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。用內(nèi)容耦合。2.內(nèi)聚內(nèi)聚v內(nèi)聚內(nèi)聚
44、標志一個模塊內(nèi)各個元素彼此結(jié)合的緊標志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然密程度,它是信息隱藏和局部化概念的自然擴展。擴展。v設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,不要使用低內(nèi)聚。的內(nèi)聚也是可以采用的,不要使用低內(nèi)聚。v內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。往往意味著模塊間的松耦合。v實踐表明內(nèi)聚更重要,應(yīng)該把更多注意力集實踐表明內(nèi)聚更重要,應(yīng)該把更多注意力集中到提高模塊的內(nèi)聚程度上。中到提高模塊的內(nèi)聚程度上。內(nèi)聚性內(nèi)聚性 用于描述模塊內(nèi)部
45、聯(lián)系的緊密程度。用于描述模塊內(nèi)部聯(lián)系的緊密程度。軟件獨立性的度量標準是兩個定性指標:軟件獨立性的度量標準是兩個定性指標: 耦合性耦合性 用于描述模塊之間聯(lián)系的緊密程度。用于描述模塊之間聯(lián)系的緊密程度。內(nèi)容耦合內(nèi)容耦合公共耦合公共耦合控制耦合控制耦合復(fù)合耦合復(fù)合耦合數(shù)據(jù)耦合數(shù)據(jù)耦合偶然型偶然型邏輯型邏輯型瞬時型瞬時型通訊型通訊型順序型順序型功能型功能型內(nèi)聚與耦合之間的關(guān)系內(nèi)聚與耦合之間的關(guān)系 高內(nèi)聚、低耦合是我們進行軟件設(shè)計的一貫原則。高內(nèi)聚、低耦合是我們進行軟件設(shè)計的一貫原則。 一般而言,模塊的內(nèi)聚越高,模塊間的耦合一般而言,模塊的內(nèi)聚越高,模塊間的耦合就越弱,模塊的獨立性也越好,因此我們要在
46、設(shè)就越弱,模塊的獨立性也越好,因此我們要在設(shè)計時力爭做到高內(nèi)聚,能夠辨認出低內(nèi)聚的模塊,計時力爭做到高內(nèi)聚,能夠辨認出低內(nèi)聚的模塊,并且通過修改設(shè)計提高模塊的內(nèi)聚程度降低模塊并且通過修改設(shè)計提高模塊的內(nèi)聚程度降低模塊間的耦合程度,從而獲得較高的模塊獨立性。間的耦合程度,從而獲得較高的模塊獨立性。描繪軟繪軟件結(jié)構(gòu)結(jié)構(gòu)的圖圖形工具1. 層次圖層次圖 2. HIPO圖圖 3. 結(jié)構(gòu)圖結(jié)構(gòu)圖1. 層層次圖圖 層次圖用來描繪軟件的層次結(jié)構(gòu),圖中的一層次圖用來描繪軟件的層次結(jié)構(gòu),圖中的一個矩形框代表一個模塊,方框間的連線表示調(diào)用個矩形框代表一個模塊,方框間的連線表示調(diào)用關(guān)系而不像層次方框圖那樣表示組成關(guān)系
47、。關(guān)系而不像層次方框圖那樣表示組成關(guān)系。圖圖 正文加工系統(tǒng)的層次圖正文加工系統(tǒng)的層次圖2. HIPO圖圖 HIPO圖是美國圖是美國IBM公司發(fā)明的公司發(fā)明的“層次圖加層次圖加輸入輸入/處理處理/輸出圖輸出圖”的英文縮寫,由一個的英文縮寫,由一個H圖(層圖(層次圖)和若干個次圖)和若干個IPO圖組成。和圖組成。和H圖中每個方框相圖中每個方框相對應(yīng),應(yīng)該有一張對應(yīng),應(yīng)該有一張IPO圖描繪這個方框代表的模塊圖描繪這個方框代表的模塊的處理過程。的處理過程。圖圖 帶編號的層次圖帶編號的層次圖(H圖圖)3. 結(jié)構(gòu)圖結(jié)構(gòu)圖 結(jié)構(gòu)圖描述了程序的模塊結(jié)構(gòu),表示了一個系統(tǒng)結(jié)構(gòu)圖描述了程序的模塊結(jié)構(gòu),表示了一個系統(tǒng)
48、的層次分解關(guān)系,反映了塊間聯(lián)系和塊內(nèi)聯(lián)系等的層次分解關(guān)系,反映了塊間聯(lián)系和塊內(nèi)聯(lián)系等特征及控制信息的傳遞關(guān)系。特征及控制信息的傳遞關(guān)系。圖圖 結(jié)構(gòu)圖的例子結(jié)構(gòu)圖的例子產(chǎn)生最佳解的一般結(jié)構(gòu)產(chǎn)生最佳解的一般結(jié)構(gòu)結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 SD(Structured Design)法與與 SA、SP法前后銜銜接,是結(jié)構(gòu)結(jié)構(gòu)化開發(fā)開發(fā)方法的核心。SDSD方法的基本思想方法的基本思想:整個系統(tǒng)由相對獨立、:整個系統(tǒng)由相對獨立、功能單一的模塊構(gòu)成。模塊之間的相對性由功能單一的模塊構(gòu)成。模塊之間的相對性由塊間聯(lián)系或塊內(nèi)聯(lián)系來衡量。塊間聯(lián)系或塊內(nèi)聯(lián)系來衡量。SDSD方法是根據(jù)一些固定的規(guī)則,從分層的方法是根
49、據(jù)一些固定的規(guī)則,從分層的DFDDFD圖導(dǎo)出初始的模塊圖。再對初始的模塊圖進圖導(dǎo)出初始的模塊圖。再對初始的模塊圖進行改進,獲得最終的結(jié)構(gòu)圖。行改進,獲得最終的結(jié)構(gòu)圖。結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 1. SD SD 法的兩個階段法的兩個階段 總體設(shè)計總體設(shè)計 任務(wù):任務(wù): 解決系統(tǒng)的模塊結(jié)構(gòu),即分解模塊,解決系統(tǒng)的模塊結(jié)構(gòu),即分解模塊,確定確定模塊功能模塊功能及系統(tǒng)模塊的層次結(jié)構(gòu)。及系統(tǒng)模塊的層次結(jié)構(gòu)。 文檔:文檔:模塊結(jié)構(gòu)圖及其模塊功能說明。模塊結(jié)構(gòu)圖及其模塊功能說明。 詳細設(shè)計詳細設(shè)計 對模塊圖中每個模塊的過程進行描述,常用的對模塊圖中每個模塊的過程進行描述,常用的描述的方式有:偽代碼,流程
50、圖,描述的方式有:偽代碼,流程圖,N-S圖,圖,PAD圖圖等。等。SD方法的設(shè)計設(shè)計步驟驟 1 1)從)從DFDDFD圖導(dǎo)出初始的模塊結(jié)構(gòu)圖圖導(dǎo)出初始的模塊結(jié)構(gòu)圖 2 2)按照)按照SDSD方法的設(shè)計總則,改進模塊結(jié)構(gòu)方法的設(shè)計總則,改進模塊結(jié)構(gòu)圖圖 注意:模塊結(jié)構(gòu)圖不同于程序流程圖。結(jié)構(gòu)注意:模塊結(jié)構(gòu)圖不同于程序流程圖。結(jié)構(gòu)圖反映軟件整體的性質(zhì),框圖反映的局部的圖反映軟件整體的性質(zhì),框圖反映的局部的內(nèi)容,過程性的。內(nèi)容,過程性的。 二、二、SD SD 法的設(shè)計步驟法的設(shè)計步驟從從DFDDFD圖導(dǎo)出初始的模塊結(jié)構(gòu)圖圖導(dǎo)出初始的模塊結(jié)構(gòu)圖(SC)(SC)。 中心變換型中心變換型(transfor
51、m center) _ 變換分析變換分析 事務(wù)處理型事務(wù)處理型(transaction) _ 事務(wù)分析事務(wù)分析按照按照SDSD法設(shè)計總則,改進模塊結(jié)構(gòu)圖。法設(shè)計總則,改進模塊結(jié)構(gòu)圖。注意:注意:模塊結(jié)構(gòu)圖不同于模塊結(jié)構(gòu)圖不同于“框圖框圖”。軟件軟件層次性:層次性:反映軟件整體的性質(zhì)反映軟件整體的性質(zhì) ( (結(jié)構(gòu)圖結(jié)構(gòu)圖) )過程性:反映局部的性質(zhì)過程性:反映局部的性質(zhì) ( (框圖框圖) )3.3 3.3 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法( (續(xù))續(xù))變換變換分析 變換變換型結(jié)構(gòu)結(jié)構(gòu)的DFD圖圖特點 這類數(shù)這類數(shù)據(jù)流圖圖可看成是對輸對輸入數(shù)數(shù)據(jù)進進行轉(zhuǎn)換轉(zhuǎn)換而得到輸輸出數(shù)數(shù)據(jù)的處處理。 DFD圖圖可
52、以明顯顯分為為“輸輸入處處理輸輸出”三部分。邏輯輸入邏輯輸入邏輯輸出邏輯輸出主加工主加工變換變換分析 主加工:通常位于系統(tǒng)中幾股數(shù)據(jù)流的匯合處主加工:通常位于系統(tǒng)中幾股數(shù)據(jù)流的匯合處 確定邏輯輸入:離物理輸入端最遠的、仍屬于系統(tǒng)輸入的確定邏輯輸入:離物理輸入端最遠的、仍屬于系統(tǒng)輸入的數(shù)據(jù)流數(shù)據(jù)流 確定邏輯輸出:離物理輸出端最遠的,仍屬于系統(tǒng)輸出的確定邏輯輸出:離物理輸出端最遠的,仍屬于系統(tǒng)輸出的數(shù)據(jù)流數(shù)據(jù)流 有些系統(tǒng)沒有主加工的成分。有些系統(tǒng)沒有主加工的成分。 用變換變換分析法設(shè)計設(shè)計模塊塊 頂層:頂層:為主加工設(shè)計一個主模塊,功能是整個系統(tǒng)的為主加工設(shè)計一個主模塊,功能是整個系統(tǒng)的功能功能
53、一層:一層:為邏輯輸入中的每一個輸入數(shù)據(jù)流設(shè)計一個輸為邏輯輸入中的每一個輸入數(shù)據(jù)流設(shè)計一個輸入模塊,功能是向主模塊提供數(shù)據(jù);為邏輯輸出中的入模塊,功能是向主模塊提供數(shù)據(jù);為邏輯輸出中的每一個輸出數(shù)據(jù)流設(shè)計一個輸出模塊,功能是為主模每一個輸出數(shù)據(jù)流設(shè)計一個輸出模塊,功能是為主模塊提高輸出通道;為主模塊設(shè)計一個變換模塊,功能塊提高輸出通道;為主模塊設(shè)計一個變換模塊,功能是將邏輯輸入轉(zhuǎn)換為邏輯輸出。是將邏輯輸入轉(zhuǎn)換為邏輯輸出。 二層及以下:二層及以下:為上層的每個輸入模塊設(shè)計兩個下層模為上層的每個輸入模塊設(shè)計兩個下層模塊:一個輸入模塊和一個變換模塊;為上層的每個輸塊:一個輸入模塊和一個變換模塊;為上
54、層的每個輸出模塊設(shè)計兩個下層模塊:一個變換模塊和一個輸出出模塊設(shè)計兩個下層模塊:一個變換模塊和一個輸出模塊。上層的變換模塊若比較復(fù)雜的話,也要向下繼模塊。上層的變換模塊若比較復(fù)雜的話,也要向下繼續(xù)分變換模塊。續(xù)分變換模塊。 這類數(shù)據(jù)流圖可看成是對輸入數(shù)據(jù)進行轉(zhuǎn)換而得到這類數(shù)據(jù)流圖可看成是對輸入數(shù)據(jù)進行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理。輸出數(shù)據(jù)的處理。 DFDDFD圖可以明顯分為圖可以明顯分為“輸入輸入處理處理輸出輸出”三部分三部分。(物理輸入)(物理輸入)(邏輯輸入)(邏輯輸入)(邏輯輸出)(邏輯輸出)輸輸 入入主加工主加工輸輸 出出(物理輸出)(物理輸出)檢查檢查順序順序檢查檢查合理性合理性擴充擴充
55、代碼代碼核對核對 記錄記錄修改修改壓縮壓縮代碼代碼格式化格式化修改修改數(shù)據(jù)數(shù)據(jù) 舊文件舊文件新文件新文件中心變換型中心變換型 的 DFD DFD 圖圖簡化的簡化的DFD圖圖4號號加工加工1號號加工加工2號號加工加工中心中心加工加工3號號加工加工ABCDEF輸輸入入流流轉(zhuǎn)換流轉(zhuǎn)換流輸輸出出流流MMCICTCOCCDD進行一級分解,設(shè)計上層模塊。進行一級分解,設(shè)計上層模塊。為每個輸入設(shè)計一個輸入模塊,為每個輸入設(shè)計一個輸入模塊,為每個輸出設(shè)計一個輸出模塊,同時為每個主加工設(shè)計一為每個輸出設(shè)計一個輸出模塊,同時為每個主加工設(shè)計一個處理模塊。個處理模塊。進行二級分解,設(shè)計中下層模塊:進行二級分解,設(shè)計
56、中下層模塊:為上層的每個輸入模塊設(shè)計兩個下層模塊:一個輸入模為上層的每個輸入模塊設(shè)計兩個下層模塊:一個輸入模塊和一個變換模塊;為上層的每個輸出模塊設(shè)計兩個下塊和一個變換模塊;為上層的每個輸出模塊設(shè)計兩個下層模塊:一個變換模塊和一個輸出模塊。層模塊:一個變換模塊和一個輸出模塊。 4號號加工加工1號號加工加工2號號加工加工中心中心加工加工3號號加工加工ABCDEF輸輸入入流流轉(zhuǎn)換流轉(zhuǎn)換流輸輸出出流流EMCICTCOCCDD取取B轉(zhuǎn)換轉(zhuǎn)換B轉(zhuǎn)換轉(zhuǎn)換D送送EBBCDEMCICTCOCCDD取取B轉(zhuǎn)換轉(zhuǎn)換B轉(zhuǎn)換轉(zhuǎn)換D送送EBBCDEE繼續(xù)向下分解繼續(xù)向下分解 取取A轉(zhuǎn)換轉(zhuǎn)換A轉(zhuǎn)換轉(zhuǎn)換E送送FAABEFF
57、 這類數(shù)據(jù)流圖有一個數(shù)據(jù)處理中心,這類數(shù)據(jù)流圖有一個數(shù)據(jù)處理中心,按加工的結(jié)果選擇一個輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理。按加工的結(jié)果選擇一個輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理。 如下圖所示:如下圖所示:分類分類報名報名付款付款注銷注銷查詢查詢復(fù)審復(fù)審采用采用“事務(wù)分析事務(wù)分析”(transaction Analysis)技術(shù)技術(shù)事務(wù)處理型事務(wù)處理型 的的 DFD 圖圖用事務(wù)務(wù)分析方法設(shè)計設(shè)計模塊圖塊圖 頂層:為主加工設(shè)計一個主模塊,功能是整個系頂層:為主加工設(shè)計一個主模塊,功能是整個系統(tǒng)的功能;統(tǒng)的功能; 一層:為邏輯輸入中的每一個輸入數(shù)據(jù)流設(shè)計一一層:為邏輯輸入中的每一個輸入數(shù)據(jù)流設(shè)計一個輸入模塊,功能是向主
58、模塊提供數(shù)據(jù);為邏輯個輸入模塊,功能是向主模塊提供數(shù)據(jù);為邏輯輸出中的每一個輸出數(shù)據(jù)流設(shè)計一個輸出模塊,輸出中的每一個輸出數(shù)據(jù)流設(shè)計一個輸出模塊,功能是為主模塊提供輸出通道;為每種類型的事功能是為主模塊提供輸出通道;為每種類型的事務(wù)設(shè)計一個事務(wù)處理模塊(變換模塊)務(wù)設(shè)計一個事務(wù)處理模塊(變換模塊) 二層及以下:與變換分析類似。二層及以下:與變換分析類似。 原始的數(shù)據(jù)流圖IP1 1P2 2P3 3輸入流輸入流事務(wù)中心事務(wù)中心加工路徑加工路徑事務(wù)控制事務(wù)控制接受事務(wù)接受事務(wù)發(fā)送事務(wù)發(fā)送事務(wù)P1P2P3對應(yīng)模塊圖 幾點補補充: 實際應(yīng)實際應(yīng)用中系統(tǒng)統(tǒng)通常是兩種類兩種類型的混合結(jié)構(gòu)結(jié)構(gòu),需要以變換變換
59、分析為為主、事務(wù)務(wù)分析為輔進為輔進行設(shè)計設(shè)計; 在多任務(wù)環(huán)務(wù)環(huán)境下,將將系統(tǒng)統(tǒng)中可以并并行處處理的部分設(shè)計設(shè)計成許許多子任務(wù)務(wù),彼此間間用通訊訊方式進進行聯(lián)聯(lián)系;程序結(jié)構(gòu)與問題結(jié)構(gòu)與問題結(jié)構(gòu)結(jié)構(gòu)相對應(yīng)對應(yīng)。 簡單的轉(zhuǎn)換方法如書上p109和p112所示.SD方法小結(jié)結(jié) SDSD方法設(shè)計軟件系統(tǒng)的特點:方法設(shè)計軟件系統(tǒng)的特點:由問題的結(jié)構(gòu)(數(shù)據(jù)流圖)導(dǎo)出軟件系統(tǒng)的模塊結(jié)由問題的結(jié)構(gòu)(數(shù)據(jù)流圖)導(dǎo)出軟件系統(tǒng)的模塊結(jié)構(gòu)圖;構(gòu)圖;將系統(tǒng)先分解再組合,有效地控制系統(tǒng)復(fù)雜性;提將系統(tǒng)先分解再組合,有效地控制系統(tǒng)復(fù)雜性;提出了軟件系統(tǒng)質(zhì)量評價標(塊間聯(lián)系和塊內(nèi)聯(lián)系);出了軟件系統(tǒng)質(zhì)量評價標(塊間聯(lián)系和塊內(nèi)聯(lián)系
60、);提出了一組設(shè)計技巧;圖形描述直觀明了;提出了一組設(shè)計技巧;圖形描述直觀明了;SDSD方法設(shè)計軟件系統(tǒng)的缺點:方法設(shè)計軟件系統(tǒng)的缺點:對數(shù)據(jù)結(jié)構(gòu)的設(shè)計未做考慮;對數(shù)據(jù)結(jié)構(gòu)的設(shè)計未做考慮;塊間聯(lián)系和塊內(nèi)聯(lián)系無嚴格定義;塊間聯(lián)系和塊內(nèi)聯(lián)系無嚴格定義; 從需求階段到設(shè)計階段的圖轉(zhuǎn)換復(fù)雜從需求階段到設(shè)計階段的圖轉(zhuǎn)換復(fù)雜第第6 6章章 詳細設(shè)計詳細設(shè)計 總體設(shè)計是軟件結(jié)構(gòu)的建立過程總體設(shè)計是軟件結(jié)構(gòu)的建立過程 詳細設(shè)計是對上述過程細節(jié)的完善,給出軟件結(jié)詳細設(shè)計是對上述過程細節(jié)的完善,給出軟件結(jié)構(gòu)中各個模塊的內(nèi)部過程描述,從而在編碼階段構(gòu)中各個模塊的內(nèi)部過程描述,從而在編碼階段可以把這個描述直接翻譯成用
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多元評估與反饋機制計劃
- 嬰幼兒疾病識別試題及答案
- 快速掌握電子商務(wù)考試試題及答案
- 挑戰(zhàn)自我的人力資源管理師試題及答案
- 2024監(jiān)理工程師實務(wù)案例分析試題及答案
- 政策變化2024年計算機二級考試試題及答案
- 黑龍江林業(yè)職業(yè)技術(shù)學(xué)院《現(xiàn)代藝術(shù)體操(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年全球農(nóng)業(yè)發(fā)展趨勢分析試題及答案
- 黑龍江省哈爾濱六十九重點名校2025年中考化學(xué)試題試卷含解析
- 黑龍江省哈爾濱第六中學(xué)2025年高三下學(xué)期4月二模試題歷史試題含解析
- 職工訴求記錄表
- DBJ04∕T 289-2020 建筑工程施工安全資料管理標準
- 幼兒園大班社會《認識交通工具》課件
- 初三年級組長“走進初三誓師大會”發(fā)言稿
- 無人機應(yīng)用技術(shù)概論-第-1-章-緒論
- 《電工電子技術(shù)基礎(chǔ)》高職全套教學(xué)課件
- 2024北京電子科技職業(yè)學(xué)院招聘筆試備考題庫及答案解析
- 第十五課 中望3D-工程圖系列2講解
- 2024-2029年中國3D裸眼技術(shù)行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景研究報告
- DZ∕T 0220-2006 泥石流災(zāi)害防治工程勘查規(guī)范(正式版)
- 干部人事檔案轉(zhuǎn)遞單(帶存根回執(zhí))
評論
0/150
提交評論