




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、4第四章軟件設(shè)計是對實現(xiàn)軟件的結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)軟件設(shè)計是對實現(xiàn)軟件的結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)組件之間的接口以及所用算法的描述。組件之間的接口以及所用算法的描述。軟件設(shè)計是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件的軟件設(shè)計是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件的質(zhì)量。質(zhì)量。在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種需求,較好地解決了所開發(fā)的軟件需求,較好地解決了所開發(fā)的軟件“做什么做什么”的問題,的問題,并已在軟件需求說明書中詳盡和充分地闡明了這些需求并已在軟件需求說明書中詳盡和充分地闡明了這些需求以后,下一步就要著手實現(xiàn)軟件的需求,即軟件設(shè)計階以后,下一步
2、就要著手實現(xiàn)軟件的需求,即軟件設(shè)計階段要解決段要解決“”的問題。的問題。 4.1 4.1 軟件設(shè)計階段的任務(wù)與目標(biāo)軟件設(shè)計階段的任務(wù)與目標(biāo)需求描述需求描述體系結(jié)構(gòu)設(shè)計體系結(jié)構(gòu)設(shè)計抽象描述抽象描述接口設(shè)計接口設(shè)計組件設(shè)計組件設(shè)計數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)設(shè)計設(shè)計系統(tǒng)體系結(jié)構(gòu)系統(tǒng)體系結(jié)構(gòu)軟件描述軟件描述接口描述接口描述組件描述組件描述數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)描述描述算法描述算法描述算法設(shè)計算法設(shè)計 4.1.1 軟件設(shè)計在開發(fā)階段中的重要性軟件軟件設(shè)計設(shè)計功能與性功能與性能需求能需求編碼編碼軟件軟件測試測試程序模塊程序模塊已測試已測試軟件軟件系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)設(shè)計設(shè)計過程設(shè)計過程設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計信息域信息域
3、需求需求開發(fā)階段信息流開發(fā)階段信息流4.1.1 4.1.1 軟件設(shè)計在開發(fā)階段中的重要性軟件設(shè)計在開發(fā)階段中的重要性 系統(tǒng)結(jié)構(gòu)設(shè)計確定程序有哪些模塊組成,以及這些模塊之系統(tǒng)結(jié)構(gòu)設(shè)計確定程序有哪些模塊組成,以及這些模塊之間的關(guān)系。間的關(guān)系。 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 4.1.2 軟件設(shè)計階段的任務(wù)4.1.2 4.1.2 軟件設(shè)計階段的任務(wù)軟件設(shè)計階段的任務(wù)一、軟件設(shè)計的任務(wù)一、軟件設(shè)計的任務(wù)總體設(shè)計(概要設(shè)計)和詳細設(shè)計??傮w設(shè)計(概要設(shè)計)和詳細設(shè)計。概要設(shè)計的主要任務(wù):概要設(shè)計的主要任務(wù):1.1.設(shè)計軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)(1)(1)采用某種設(shè)計方法,將一個復(fù)雜的系統(tǒng)按功能劃分成模塊采用某種設(shè)計方
4、法,將一個復(fù)雜的系統(tǒng)按功能劃分成模塊(2)(2)確定確定每個模塊的功能每個模塊的功能(3)(3)確定模塊之間的調(diào)用關(guān)系確定模塊之間的調(diào)用關(guān)系(4)(4)確定模塊之間的接口確定模塊之間的接口,即模塊之間傳遞的信息,即模塊之間傳遞的信息(5)(5)評價模塊結(jié)構(gòu)的質(zhì)量評價模塊結(jié)構(gòu)的質(zhì)量 2. 2. 數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計(1)(1)數(shù)據(jù)結(jié)構(gòu)的設(shè)計數(shù)據(jù)結(jié)構(gòu)的設(shè)計: :設(shè)計抽象的數(shù)據(jù)結(jié)構(gòu)(設(shè)計抽象的數(shù)據(jù)結(jié)構(gòu)(2 2)數(shù)據(jù)庫的概念設(shè)計、)數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計和物理設(shè)計邏輯設(shè)計和物理設(shè)計3.3.編寫概要設(shè)計文檔編寫概要設(shè)計文檔 文檔主要有:文檔主要有: (1)(1)概要設(shè)計說明書。概
5、要設(shè)計說明書。 (2)(2)數(shù)據(jù)庫設(shè)計說明書,主要給出所使用的數(shù)據(jù)庫設(shè)計說明書,主要給出所使用的dbmsdbms簡介、數(shù)據(jù)庫的概簡介、數(shù)據(jù)庫的概念模型、邏輯設(shè)計結(jié)果。念模型、邏輯設(shè)計結(jié)果。 (3)(3)用戶手冊,對需求分析階段編寫的用戶手冊進行補充。用戶手冊,對需求分析階段編寫的用戶手冊進行補充。 (4)(4)修訂測試計劃,對測試策略、方法、步驟提出明確要求。修訂測試計劃,對測試策略、方法、步驟提出明確要求。詳細設(shè)計:詳細設(shè)計:確定模塊內(nèi)算法;確定模塊內(nèi)算法;數(shù)據(jù)結(jié)構(gòu)詳細設(shè)計(數(shù)據(jù)結(jié)構(gòu)詳細設(shè)計(jackson方法);方法);接口內(nèi)接口內(nèi)部的細節(jié)。部的細節(jié)。高可靠性高可靠性高可維護性高可維護性高
6、可理解性高可理解性高效率高效率 軟件設(shè)計的目標(biāo)4.1.2 4.1.2 軟件設(shè)計階段的任務(wù)軟件設(shè)計階段的任務(wù)二、軟件設(shè)計的目標(biāo)二、軟件設(shè)計的目標(biāo)在設(shè)計階段應(yīng)達到的目標(biāo)是在設(shè)計階段應(yīng)達到的目標(biāo)是: :提高可靠性;提高可維護性;提高可理解性;提高效率。提高可靠性;提高可維護性;提高可理解性;提高效率。衡量該目標(biāo)的準則衡量該目標(biāo)的準則1 1、軟件實體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。、軟件實體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。2 2、軟件實體應(yīng)該是模塊化的,模塊具有獨立功能。、軟件實體應(yīng)該是模塊化的,模塊具有獨立功能。3 3、軟件實體與環(huán)境的界面清晰。、軟件實體與環(huán)境的界面清晰。4 4、設(shè)計規(guī)
7、格說明清晰、簡潔、完整和無二義性、設(shè)計規(guī)格說明清晰、簡潔、完整和無二義性。常用的設(shè)計方法有:常用的設(shè)計方法有:sdsd法、法、jacksonjackson法、法、hipohipo法、法、parnasparnas法、法、warnierwarnier法等。法等。軟件結(jié)構(gòu)是軟件模塊之間關(guān)系的表示,它決定了整個系軟件結(jié)構(gòu)是軟件模塊之間關(guān)系的表示,它決定了整個系統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。模塊之間的關(guān)系可有多統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。模塊之間的關(guān)系可有多種,但都可以歸結(jié)為一種層次關(guān)系。種,但都可以歸結(jié)為一種層次關(guān)系。軟件結(jié)構(gòu)圖是總體設(shè)計階段的主要描述工具,它描述了軟件結(jié)構(gòu)圖是總體設(shè)計階段的主要描述
8、工具,它描述了構(gòu)成系統(tǒng)的基本元素構(gòu)成系統(tǒng)的基本元素模塊及模塊之間的調(diào)用關(guān)系,模模塊及模塊之間的調(diào)用關(guān)系,模塊之間的數(shù)據(jù)傳遞關(guān)系。塊之間的數(shù)據(jù)傳遞關(guān)系。本節(jié)討論如何進行軟件結(jié)構(gòu)的設(shè)計,設(shè)計的準則以及為本節(jié)討論如何進行軟件結(jié)構(gòu)的設(shè)計,設(shè)計的準則以及為了提高軟件系統(tǒng)的質(zhì)量,如何對軟件結(jié)構(gòu)進行改進的技術(shù)。了提高軟件系統(tǒng)的質(zhì)量,如何對軟件結(jié)構(gòu)進行改進的技術(shù)。4.2.1 軟件結(jié)構(gòu)的基本概念 模塊化的目的是將系統(tǒng)模塊化的目的是將系統(tǒng)“分而治之分而治之”,模塊化能,模塊化能夠降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,夠降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測試和調(diào)試,因而也有助于提高軟
9、件的可靠性。易于測試和調(diào)試,因而也有助于提高軟件的可靠性。4.2.14.2.1軟件結(jié)構(gòu)的基本概念軟件結(jié)構(gòu)的基本概念軟件結(jié)構(gòu)表示軟件系統(tǒng)的構(gòu)成,是軟件模塊間關(guān)系的表軟件結(jié)構(gòu)表示軟件系統(tǒng)的構(gòu)成,是軟件模塊間關(guān)系的表示,下圖則為軟件結(jié)構(gòu)示意圖。下面先介紹幾個相關(guān)的的概示,下圖則為軟件結(jié)構(gòu)示意圖。下面先介紹幾個相關(guān)的的概念。念。abcdefghijklm例如,過程、函數(shù)、子程例如,過程、函數(shù)、子程序、宏等,是構(gòu)成軟件系統(tǒng)結(jié)序、宏等,是構(gòu)成軟件系統(tǒng)結(jié)構(gòu)的基本元素。構(gòu)的基本元素。 軟件結(jié)構(gòu)圖模塊化降低軟件復(fù)雜度的簡單證明4.2.14.2.1軟件結(jié)構(gòu)的基本概念軟件結(jié)構(gòu)的基本概念模塊化降低軟件復(fù)雜度的模塊化降
10、低軟件復(fù)雜度的簡單證明簡單證明令:令:c c(x x)表示問題)表示問題 x x 的復(fù)雜度函數(shù);的復(fù)雜度函數(shù); e e(x x)解決問題)解決問題 x x 所需工作量的復(fù)所需工作量的復(fù)雜度函數(shù);雜度函數(shù);若:有問題若:有問題 p1 p1,p2 p2 ;c c(p1p1) c c(p2p2);); 顯然:顯然:e e(p1p1) e e(p2p2)由經(jīng)驗:由經(jīng)驗:c c(p1+p2p1+p2) c c(p1p1)+ c+ c(p2p2)于是:于是:e e(p1+p2p1+p2) e e(p1p1)+ e+ e(p2p2)將問題(將問題(p1+p2p1+p2)劃分為兩個問題)劃分為兩個問題p1p1
11、和和p2p2后,其工作量和復(fù)雜度都降低。后,其工作量和復(fù)雜度都降低。 并非模塊分得越小越好,因為模塊之間接口的復(fù)雜度和工作量增加。并非模塊分得越小越好,因為模塊之間接口的復(fù)雜度和工作量增加。顯然,每個軟件系統(tǒng)都有一個最佳模塊數(shù)顯然,每個軟件系統(tǒng)都有一個最佳模塊數(shù)m m。注意選擇分解的最佳模塊數(shù)。注意選擇分解的最佳模塊數(shù)。右上圖描述了模塊化與軟件成本的關(guān)系。右上圖描述了模塊化與軟件成本的關(guān)系。軟件總成本 模塊化與軟件成本的關(guān)系成本模塊數(shù)目模塊成本接口成本最小成本區(qū)m4.2.14.2.1軟件結(jié)構(gòu)的基本概念軟件結(jié)構(gòu)的基本概念頂層1層2層abcdefghijklmn深度扇入為扇入為2扇出為扇出為3扇入
12、為扇入為33層4層寬度寬度寬度 軟件結(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)準則是:頂部寬度小,中部寬度大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部度大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。有較高的扇入數(shù)。軟件結(jié)構(gòu)圖表
13、示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表軟件結(jié)構(gòu)圖表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表示,軟件之間的各種關(guān)系,均可表示為層次結(jié)構(gòu)。如圖所示。示,軟件之間的各種關(guān)系,均可表示為層次結(jié)構(gòu)。如圖所示。4.2.2 4.2.2 軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)由模塊連接而得到的軟件結(jié)構(gòu)最普通的形式就是樹狀結(jié)由模塊連接而得到的軟件結(jié)構(gòu)最普通的形式就是樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。構(gòu)和網(wǎng)狀結(jié)構(gòu)。在樹狀結(jié)構(gòu)中,位于最上層的根部是頂層模塊,它是程在樹狀結(jié)構(gòu)中,位于最上層的根部是頂層模塊,它是程序的主模塊。與其聯(lián)系的有若干下屬模塊,各下屬模塊還可序的主模塊。與其聯(lián)系的有若干下屬模塊,各下屬模塊還可以進
14、一步引出更下一層的下屬模塊,如圖所示的樹狀結(jié)構(gòu)。以進一步引出更下一層的下屬模塊,如圖所示的樹狀結(jié)構(gòu)。整個結(jié)構(gòu)只有一整個結(jié)構(gòu)只有一個頂層模塊,而對于個頂層模塊,而對于任何一個下屬模塊來任何一個下屬模塊來說,它只有一個上級說,它只有一個上級模塊,而且同一層模模塊,而且同一層模塊之間不發(fā)生關(guān)系。塊之間不發(fā)生關(guān)系。頂層1層2層3層 軟件的樹狀結(jié)構(gòu)abcdefghiklm網(wǎng)狀結(jié)構(gòu)在網(wǎng)狀結(jié)構(gòu)中,任何兩個模塊間都可以有雙向的關(guān)系,不分層在網(wǎng)狀結(jié)構(gòu)中,任何兩個模塊間都可以有雙向的關(guān)系,不分層次。任何兩個模塊都是平等的,沒有從屬關(guān)系。次。任何兩個模塊都是平等的,沒有從屬關(guān)系。 網(wǎng)狀結(jié)構(gòu)(a)(b)4.2.2 4
15、.2.2 軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)abcdefghabcd 比較兩種結(jié)構(gòu)的特點:對于不加限制的網(wǎng)狀結(jié)構(gòu),由于模塊間比較兩種結(jié)構(gòu)的特點:對于不加限制的網(wǎng)狀結(jié)構(gòu),由于模塊間相互關(guān)系的任意性,使得整個結(jié)構(gòu)十分復(fù)雜,處理起來勢必引起許相互關(guān)系的任意性,使得整個結(jié)構(gòu)十分復(fù)雜,處理起來勢必引起許多麻煩,這與原來劃分模塊為便于處理的意圖相矛盾。所以在軟件多麻煩,這與原來劃分模塊為便于處理的意圖相矛盾。所以在軟件開發(fā)的實踐中,人們通常采用樹狀結(jié)構(gòu),而不采用網(wǎng)狀結(jié)構(gòu)。開發(fā)的實踐中,人們通常采用樹狀結(jié)構(gòu),而不采用網(wǎng)狀結(jié)構(gòu)。模塊模塊5模塊模塊5模塊模塊4模塊模塊44.2.3 4.2.3 軟件
16、結(jié)構(gòu)圖(軟件結(jié)構(gòu)圖(scsc圖)圖)模塊模塊1模塊模塊3模塊模塊2valuesvaluesdatadata模塊模塊1模塊模塊2模塊模塊3valuesvaluesdatadata4.2.3 軟件結(jié)構(gòu)圖(sc圖)結(jié)構(gòu)圖(結(jié)構(gòu)圖(structure chartstructure chart,簡稱,簡稱scsc圖)是精確表達軟件圖)是精確表達軟件結(jié)構(gòu)的圖形表示方法,它以特定的符號表示模塊、模塊間的結(jié)構(gòu)的圖形表示方法,它以特定的符號表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的主要構(gòu)成有:調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的主要構(gòu)成有: 模塊調(diào)用圖data數(shù)字信息控制信息例例: :畫出打印報告的
17、軟件結(jié)構(gòu)圖畫出打印報告的軟件結(jié)構(gòu)圖 調(diào)用次序為上層調(diào)用下層;調(diào)用次序為上層調(diào)用下層; 同層按照數(shù)據(jù)傳遞關(guān)系確同層按照數(shù)據(jù)傳遞關(guān)系確定;一般從左到右執(zhí)行。定;一般從左到右執(zhí)行。 執(zhí)行過程即按照數(shù)據(jù)流向進行。執(zhí)行過程即按照數(shù)據(jù)流向進行。 報報 告告計計 算算獲得編輯獲得編輯確認數(shù)據(jù)確認數(shù)據(jù)讀入讀入編輯編輯打印報告頭打印報告頭打印報告尾打印報告尾打印打印輸入eof輸入已編輯 已編輯已編輯已確認已確認數(shù)據(jù)已確認數(shù)據(jù)計算結(jié)果結(jié)果日期總結(jié)果行行行4.2.3 4.2.3 軟件結(jié)構(gòu)圖(軟件結(jié)構(gòu)圖(scsc圖)圖)打印報告打印報告予以確認予以確認上一節(jié)討論了關(guān)于軟件結(jié)構(gòu)與軟件結(jié)構(gòu)圖的概念,本上一節(jié)討論了關(guān)于軟件
18、結(jié)構(gòu)與軟件結(jié)構(gòu)圖的概念,本節(jié)進一步討論影響軟件系統(tǒng)質(zhì)量的另一個關(guān)鍵問題,模節(jié)進一步討論影響軟件系統(tǒng)質(zhì)量的另一個關(guān)鍵問題,模塊的獨立性問題。塊的獨立性問題。模塊化方法已經(jīng)為所有工程領(lǐng)域所接受。模塊化的模塊化方法已經(jīng)為所有工程領(lǐng)域所接受。模塊化的主要優(yōu)點是,模塊化設(shè)計降低了軟件系統(tǒng)的復(fù)雜性,使主要優(yōu)點是,模塊化設(shè)計降低了軟件系統(tǒng)的復(fù)雜性,使得系統(tǒng)容易修改,同時使得系統(tǒng)各個部分可以并行開發(fā),得系統(tǒng)容易修改,同時使得系統(tǒng)各個部分可以并行開發(fā),從而提高了軟件的生產(chǎn)率。從而提高了軟件的生產(chǎn)率。提高模塊質(zhì)量在于提高模塊獨立性。模塊的獨立性提高模塊質(zhì)量在于提高模塊獨立性。模塊的獨立性用耦合性和內(nèi)聚性來衡量。用
19、耦合性和內(nèi)聚性來衡量。4.3.1 模塊獨立性(module independence)4.3.1 4.3.1 模塊獨立性模塊獨立性“模塊模塊”,又稱,又稱“構(gòu)件構(gòu)件”,一般指用一個名字可調(diào)用的一,一般指用一個名字可調(diào)用的一段程序。它一般具有如下段程序。它一般具有如下三個基本屬性三個基本屬性:功能功能 即指該模塊實現(xiàn)什么功能,做什么事情。必須注意:即指該模塊實現(xiàn)什么功能,做什么事情。必須注意:模塊功能,應(yīng)是該模塊本身的功能加上它所調(diào)用的所有子模塊模塊功能,應(yīng)是該模塊本身的功能加上它所調(diào)用的所有子模塊的功能。的功能。邏輯邏輯 即描述模塊內(nèi)部怎么做。即描述模塊內(nèi)部怎么做。狀態(tài)狀態(tài) 即該模塊使用時的環(huán)
20、境和條件。即該模塊使用時的環(huán)境和條件。所謂模塊的獨立性,是指軟件系統(tǒng)中每個模塊只涉及軟件所謂模塊的獨立性,是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。即功能專一,模塊之間無過多的相互作用的模塊。的。即功能專一,模塊之間無過多的相互作用的模塊。這種類型的模塊可以并行開發(fā),模塊獨立性越強,開發(fā)越這種類型的模塊可以并行開發(fā),模塊獨立性越強,開發(fā)越容易。獨立性強的模塊,還能減少錯誤的影響,使模塊容易組容易。獨立性強的模塊,還能減少錯誤的影響,使模塊容易組合、修改及測試。合、修改及測試。4.3.1 模塊獨
21、立性(module independence)4.3.1 4.3.1 模塊獨立性模塊獨立性模塊獨立性的度量標(biāo)準是兩個定性準則模塊獨立性的度量標(biāo)準是兩個定性準則: 用于描述模塊之間聯(lián)系的緊密程度。用于描述模塊之間聯(lián)系的緊密程度。 用于描述模塊內(nèi)部聯(lián)系的緊密程度。用于描述模塊內(nèi)部聯(lián)系的緊密程度。 模塊獨立性比較強的模塊應(yīng)該是具有高內(nèi)聚性和的低耦模塊獨立性比較強的模塊應(yīng)該是具有高內(nèi)聚性和的低耦合度。合度。 模塊間耦合的類型:模塊間耦合的類型: 低低 無直接耦合無直接耦合耦耦 數(shù)據(jù)耦合數(shù)據(jù)耦合合合 標(biāo)記耦合標(biāo)記耦合性性 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 高高 內(nèi)容耦合內(nèi)容耦合模模塊
22、塊獨獨立立性性弱弱( (低耦合低耦合) )強強( (中耦合中耦合) )( (較強耦合較強耦合) )( (強耦合強耦合) )(1) (1) 無直接耦合無直接耦合 兩個模塊沒有直接關(guān)系兩個模塊沒有直接關(guān)系( (模塊模塊1 1和和模塊模塊2)2),模塊獨立性最強。,模塊獨立性最強。模塊模塊1 1模塊模塊2 2模塊模塊3 3模塊模塊4 4(2) (2) 數(shù)據(jù)耦合數(shù)據(jù)耦合 一模塊調(diào)用另一模塊一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)輸出都是簡單的數(shù)據(jù)( (若干若干參數(shù)參數(shù)) )。 屬松散耦合。屬松散耦合。數(shù)據(jù)耦合舉例數(shù)據(jù)耦合舉例開發(fā)票開發(fā)票計算水費計算水費單價單價數(shù)
23、量數(shù)量金額金額(3) 3) 標(biāo)記耦合標(biāo)記耦合( (特征耦合特征耦合) )如兩個模塊通過傳遞如兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)( (不是簡單數(shù)據(jù),而是記錄、數(shù)組不是簡單數(shù)據(jù),而是記錄、數(shù)組等等) )加以聯(lián)系,或都與一個加以聯(lián)系,或都與一個數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)有關(guān)系有關(guān)系, , 則稱這兩個模塊則稱這兩個模塊間存在標(biāo)記偶合。間存在標(biāo)記偶合。標(biāo)記耦合舉例標(biāo)記耦合舉例計算水電費計算水電費計算水費計算水費計算電費計算電費住戶情況住戶情況水費水費電費電費住戶情況住戶情況“住戶情況住戶情況”是一個是一個數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu), ,圖中模塊都圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)與此數(shù)據(jù)結(jié)構(gòu)有關(guān). .“計算水費計算水費”和和“計算電
24、費計算電費”本無關(guān)本無關(guān), ,由于由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系, ,它們之間它們之間也是標(biāo)記偶合也是標(biāo)記偶合. .將標(biāo)記耦合修改為數(shù)據(jù)耦合舉例將標(biāo)記耦合修改為數(shù)據(jù)耦合舉例計算水電費計算水電費計算水費計算水費計算電費計算電費本月本月用水量用水量本月本月用電量用電量水費水費電費電費(4) (4) 控制耦合控制耦合 一模塊向下屬模塊傳遞的信一模塊向下屬模塊傳遞的信息息 ( (開關(guān)量、標(biāo)志等控制被開關(guān)量、標(biāo)志等控制被調(diào)用模塊決策的變量調(diào)用模塊決策的變量) ) 控制控制了被調(diào)用模塊的內(nèi)部邏輯。了被調(diào)用模塊的內(nèi)部邏輯。控制耦合舉例a a計算平均分計算平均分或最高分或最高分b
25、 b平均平均/ /最高最高( (控制信號控制信號) )成績成績讀入分數(shù)讀入分數(shù)輸出結(jié)果輸出結(jié)果計算平均分計算平均分計算最高分計算最高分平均平均/ /最高最高? ?b b控制耦合增加了理解和編程的復(fù)控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴塊的內(nèi)部邏輯,增加了相互依賴去除模塊間控制耦合的方法:去除模塊間控制耦合的方法:(1)(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)將被調(diào)用模塊內(nèi)的判定上移到調(diào) 用模塊中進行用模塊中進行(2)(2)被調(diào)用模塊分解成若干單一功被調(diào)用模塊分解成若干單一功 能模塊能模塊改控制耦合為數(shù)據(jù)耦合舉例改控制耦合為數(shù)據(jù)
26、耦合舉例a a計算平均分計算平均分b1b1平均成績最高成績計算最高分計算最高分b2b2(5) (5) 外部耦合外部耦合一組模塊共享全局簡單變量而不一組模塊共享全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是同一全局數(shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量是通過參數(shù)表傳遞該全局變量的信息。的信息。 c c語言語言externextern(6) (6) 公共耦合公共耦合( (公共數(shù)據(jù)區(qū)耦合公共數(shù)據(jù)區(qū)耦合) )一組模塊引用同一個公用數(shù)據(jù)區(qū)一組模塊引用同一個公用數(shù)據(jù)區(qū)( (也稱全局數(shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境也稱全局數(shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境) )。公共數(shù)據(jù)區(qū)公共數(shù)據(jù)區(qū)指:指: 全局數(shù)據(jù)結(jié)構(gòu)全局數(shù)據(jù)結(jié)構(gòu) 共享通訊區(qū)共
27、享通訊區(qū) 內(nèi)存公共覆蓋區(qū)等內(nèi)存公共覆蓋區(qū)等公共耦合舉例公共耦合舉例公共數(shù)據(jù)區(qū)公共數(shù)據(jù)區(qū)c cb b模塊模塊a a、b b、c c間存在錯綜復(fù)雜的聯(lián)系間存在錯綜復(fù)雜的聯(lián)系(1)(1)軟件可理解性降低軟件可理解性降低(2)(2)診斷錯誤困難診斷錯誤困難(3)(3)軟件可維護性差,軟件可維護性差,(4)(4)軟件可靠性差軟件可靠性差( (公共數(shù)據(jù)區(qū)及全程變量無保護措施公共數(shù)據(jù)區(qū)及全程變量無保護措施) )慎用公共數(shù)據(jù)區(qū)和全程變量慎用公共數(shù)據(jù)區(qū)和全程變量!公共耦合存在的問題:公共耦合存在的問題:(7) (7) 內(nèi)容耦合內(nèi)容耦合一模塊直接訪問一模塊直接訪問另一模塊的內(nèi)部另一模塊的內(nèi)部信息信息 ( (程序代
28、碼程序代碼或數(shù)據(jù))或數(shù)據(jù))最不好的耦合形式最不好的耦合形式 !abab模塊代碼重疊模塊代碼重疊entry1 entry1 多入口模塊多入口模塊多個功能多個功能如何降低模塊間耦合度如何降低模塊間耦合度:(1) (1) 盡量使用數(shù)據(jù)耦合盡量使用數(shù)據(jù)耦合少用控制耦合少用控制耦合限制公共耦合的范圍限制公共耦合的范圍堅決避免使用內(nèi)容耦合堅決避免使用內(nèi)容耦合(2) (2) 降低接口的復(fù)雜性降低接口的復(fù)雜性2. 2. 模塊獨立性的度量之二:內(nèi)聚性模塊獨立性的度量之二:內(nèi)聚性 一個模塊內(nèi)部元素在功能上相互一個模塊內(nèi)部元素在功能上相互關(guān)聯(lián)的強度關(guān)聯(lián)的強度 設(shè)計目標(biāo):高內(nèi)聚設(shè)計目標(biāo):高內(nèi)聚 ( (模塊在軟件過程中
29、模塊在軟件過程中 完成單一的任務(wù)完成單一的任務(wù)) )模塊的內(nèi)聚性類型:模塊的內(nèi)聚性類型:低低 偶然內(nèi)聚偶然內(nèi)聚 內(nèi)內(nèi) 邏輯內(nèi)聚邏輯內(nèi)聚 聚聚 時間內(nèi)聚時間內(nèi)聚 性性 過程內(nèi)聚過程內(nèi)聚 通信內(nèi)聚通信內(nèi)聚 信息內(nèi)聚信息內(nèi)聚 高高 功能內(nèi)聚功能內(nèi)聚模模塊塊獨獨立立性性弱弱( (功能分散功能分散) )強強( (功能單一功能單一) )(1)(1)偶然內(nèi)聚偶然內(nèi)聚( (巧合內(nèi)聚巧合內(nèi)聚) ) 模塊內(nèi)各部分間無聯(lián)系模塊內(nèi)各部分間無聯(lián)系abcmmove o to rread file fmove s to t模塊模塊m中的三個語句沒有任何聯(lián)系中的三個語句沒有任何聯(lián)系缺點:缺點:可理解性差,可理解性差, 可修改
30、性差可修改性差例例: :(2) (2) 邏輯內(nèi)聚邏輯內(nèi)聚幾個邏輯上相關(guān)的功能被放在同一模塊中,幾個邏輯上相關(guān)的功能被放在同一模塊中,則稱為邏輯內(nèi)聚。如一個模塊讀取各種不則稱為邏輯內(nèi)聚。如一個模塊讀取各種不同類型外設(shè)的輸入。盡管邏輯內(nèi)聚比偶然同類型外設(shè)的輸入。盡管邏輯內(nèi)聚比偶然內(nèi)聚合理一些,但邏輯內(nèi)聚的模塊各成分內(nèi)聚合理一些,但邏輯內(nèi)聚的模塊各成分在功能上并無關(guān)系,即使局部功能的修改在功能上并無關(guān)系,即使局部功能的修改有時也會影響全局,因此這類模塊的修改有時也會影響全局,因此這類模塊的修改也比較困難。也比較困難。 邏輯內(nèi)聚模塊abcefgabcefga1b1c1efgefg模塊內(nèi)部邏輯模塊內(nèi)部邏
31、輯e e、f f、g g邏輯邏輯功能相似,組功能相似,組成新模塊成新模塊efgefg缺點缺點:增強了耦合程度增強了耦合程度( (控制耦合控制耦合) ) 不易修改,效率低不易修改,效率低公用代碼段公用代碼段公用代碼段公用代碼段(3) (3) 時間內(nèi)聚時間內(nèi)聚( (經(jīng)典內(nèi)聚經(jīng)典內(nèi)聚) )模塊完成的功能必須在同一段時間模塊完成的功能必須在同一段時間內(nèi)執(zhí)行,這些功能只因時間因素內(nèi)執(zhí)行,這些功能只因時間因素關(guān)聯(lián)在一起。關(guān)聯(lián)在一起。例如例如: :初始化系統(tǒng)模塊、初始化系統(tǒng)模塊、 系統(tǒng)結(jié)束模塊、系統(tǒng)結(jié)束模塊、 緊急故障處理模塊等均是時間性聚合緊急故障處理模塊等均是時間性聚合 模塊模塊. .(4) 過程內(nèi)聚模
32、塊內(nèi)各處理成分相關(guān),模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行且必須以特定次序執(zhí)行程序流程圖劃分模塊通常程序流程圖劃分模塊通常是過程內(nèi)聚的。是過程內(nèi)聚的。過程內(nèi)聚模塊讀入讀入成績單成績單審查審查成績單成績單統(tǒng)計統(tǒng)計成績成績打印打印成績成績讀入并審查讀入并審查成績單成績單統(tǒng)計并打印統(tǒng)計并打印成績單成績單(5) 通信內(nèi)聚 模塊內(nèi)各部分使用相同的輸模塊內(nèi)各部分使用相同的輸入數(shù)據(jù),或產(chǎn)生相同的輸出入數(shù)據(jù),或產(chǎn)生相同的輸出結(jié)果結(jié)果通信內(nèi)聚模塊例產(chǎn)生工產(chǎn)生工資報表資報表計算平計算平均工資均工資職工工職工工資記錄資記錄職工工職工工資報表資報表平均平均工資工資產(chǎn)生職工工資報表并計算平均工資模塊產(chǎn)生職工工資報表
33、并計算平均工資模塊(6) (6) 順序內(nèi)聚順序內(nèi)聚一個模塊內(nèi)的處理元素和一個模塊內(nèi)的處理元素和同一同一個功能密切相關(guān),個功能密切相關(guān),而且這些處而且這些處理必須順序執(zhí)行(理必須順序執(zhí)行(通常一個處通常一個處理元素的輸出數(shù)據(jù)作為另外一理元素的輸出數(shù)據(jù)作為另外一個處理元素的輸入數(shù)據(jù))。個處理元素的輸入數(shù)據(jù))。數(shù)據(jù)流圖劃分的模塊數(shù)據(jù)流圖劃分的模塊(7) (7) 功能內(nèi)聚功能內(nèi)聚 模塊僅包括為完成某個功能所必模塊僅包括為完成某個功能所必須的所有成分。須的所有成分。 ( (模塊所有成分共同完成一個功模塊所有成分共同完成一個功 能,缺一不可能,缺一不可 ) ) 內(nèi)聚性最強內(nèi)聚性最強 內(nèi)聚與耦合密切相關(guān),同
34、其內(nèi)聚與耦合密切相關(guān),同其它模塊強耦合的模塊意味者弱內(nèi)它模塊強耦合的模塊意味者弱內(nèi)聚,強內(nèi)聚模塊意味著與其它模聚,強內(nèi)聚模塊意味著與其它模塊間松散耦合塊間松散耦合. .設(shè)計目標(biāo):設(shè)計目標(biāo): 力爭強內(nèi)聚、弱耦合力爭強內(nèi)聚、弱耦合4.4 4.4 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法 軟件設(shè)計分為兩個階段軟件設(shè)計分為兩個階段: :(1)(1)概要設(shè)計概要設(shè)計( (總體設(shè)計總體設(shè)計) )確定軟件的結(jié)構(gòu)以及各組成成分確定軟件的結(jié)構(gòu)以及各組成成分( (子系統(tǒng)或模塊子系統(tǒng)或模塊) )之間的相互關(guān)系。之間的相互關(guān)系。(2)(2)詳細設(shè)計詳細設(shè)計 確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描
35、述各模塊程序過程的詳細文檔。述各模塊程序過程的詳細文檔。4.5 4.5 概要設(shè)計概要設(shè)計( (總體設(shè)計總體設(shè)計) )主要確定:軟件系統(tǒng)的結(jié)構(gòu)軟件系統(tǒng)的結(jié)構(gòu)各模塊功能及模塊間聯(lián)系各模塊功能及模塊間聯(lián)系( (接口接口) )表示軟件結(jié)構(gòu)的圖形工具表示軟件結(jié)構(gòu)的圖形工具結(jié)構(gòu)圖結(jié)構(gòu)圖層次圖和層次圖和hipo圖圖面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法 ( (結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法sd)sd)4.5.1. 4.5.1. 面向數(shù)據(jù)流設(shè)計方法的基本概念 sd以數(shù)據(jù)流圖為基礎(chǔ),它定義了把以數(shù)據(jù)流圖為基礎(chǔ),它定義了把dfd變換成變換成軟件結(jié)構(gòu)軟件結(jié)構(gòu)的不同的不同映射映射方法方法映射映射dfd( (問題結(jié)構(gòu)問
36、題結(jié)構(gòu)) )軟件系統(tǒng)的結(jié)構(gòu)軟件系統(tǒng)的結(jié)構(gòu)( (程序結(jié)構(gòu)程序結(jié)構(gòu)) )系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式:系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式:f變換型結(jié)構(gòu)變換型結(jié)構(gòu)f事務(wù)型結(jié)構(gòu)事務(wù)型結(jié)構(gòu)數(shù)據(jù)流圖可分為兩種類型數(shù)據(jù)流圖可分為兩種類型: f變換型數(shù)據(jù)流變換型數(shù)據(jù)流f事務(wù)型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流變換變換中心中心輸入輸入輸出輸出變換型結(jié)構(gòu)事務(wù)事務(wù)中心中心接受接受路徑路徑動動作作路路徑徑基本模型 特征特征事務(wù)型 結(jié)構(gòu)由輸入、變由輸入、變換中心和輸換中心和輸出三部分組出三部分組成成具有在多種具有在多種事務(wù)中選擇事務(wù)中選擇執(zhí)行某類事執(zhí)行某類事物的能力物的能力變換型數(shù)據(jù)流 結(jié)構(gòu)事務(wù)型數(shù)據(jù)流 結(jié)構(gòu)傳入傳入變換變換傳出傳出
37、變換變換中心中心傳入傳入部分部分傳出傳出部分部分事務(wù)事務(wù)分析分析事務(wù)事務(wù)中心中心動作動作 1動作動作 2動作動作 3接受接受接受接受部分部分變換型數(shù)據(jù)流舉例輸入輸入信息信息物理物理輸入輸入格式格式檢查檢查處理處理顯示顯示正確正確信息信息結(jié)果結(jié)果物理物理輸出輸出數(shù)據(jù)數(shù)據(jù)變換中心變換中心邏輯邏輯輸入輸入邏輯邏輯輸出輸出傳入部分傳入部分傳出部分傳出部分特點:具有明確的傳入、變換特點:具有明確的傳入、變換( (或稱主加或稱主加 工工) ) 和傳出界面的和傳出界面的dfd事務(wù)型數(shù)據(jù)流圖舉例imlnoabcdfegh大型系統(tǒng)大型系統(tǒng)dfddfd中中, ,變換型變換型和事務(wù)型和事務(wù)型結(jié)構(gòu)往往共存結(jié)構(gòu)往往共存
38、: :t t事務(wù)中心事務(wù)中心傳入傳入變換變換傳出傳出4.5.2 4.5.2 面向數(shù)據(jù)流設(shè)計方法的設(shè)計步驟面向數(shù)據(jù)流設(shè)計方法的設(shè)計步驟(1)(1)精化精化dfddfd(2)(2)確定確定dfddfd類型類型(3)(3)把把dfddfd映射到系統(tǒng)模塊結(jié)構(gòu)設(shè)計映射到系統(tǒng)模塊結(jié)構(gòu)設(shè)計 出模塊結(jié)構(gòu)的上層出模塊結(jié)構(gòu)的上層(4)(4)基于基于dfddfd逐步分解高層模塊設(shè)計逐步分解高層模塊設(shè)計 出下層模塊出下層模塊(5)(5)根據(jù)模塊獨立性原理,精化模根據(jù)模塊獨立性原理,精化模 塊結(jié)構(gòu)塊結(jié)構(gòu)(6)(6)模塊接口描述模塊接口描述流類型流類型復(fù)查復(fù)查事務(wù)分析事務(wù)分析變換分析變換分析sd方法的兩種映射過渡方法變換
39、型變換型dfd事務(wù)型事務(wù)型dfd初始初始sc初始初始sc變換分析變換分析事務(wù)分析事務(wù)分析由變換分由變換分析產(chǎn)生析產(chǎn)生由事務(wù)分由事務(wù)分析產(chǎn)生析產(chǎn)生1. 變換分析設(shè)計方法步驟:步驟:(1)(1)區(qū)分傳入、變換中心、區(qū)分傳入、變換中心、 傳出部分,在傳出部分,在 dfd 上上 標(biāo)明分界線標(biāo)明分界線bcadeqprwuvabcedrpuwv變換中心變換中心傳入傳入部分部分傳出傳出部分部分變換分析設(shè)計方法步驟(2)(2)第一級分解第一級分解( (建立初始建立初始sc框架框架) ) 設(shè)計頂層和第一層模塊設(shè)計頂層和第一層模塊第一級分解的方法第一級分解的方法c,ec,e u,wu,w變換分析設(shè)計方法步驟(3)
40、(3)第二級分解第二級分解( (分解分解scsc各分支各分支) ) 自頂向下分解,設(shè)計出每個分自頂向下分解,設(shè)計出每個分支的中、下層模塊支的中、下層模塊傳傳入分支的分解macbabaceddec,e傳出分支的分解wvmeuwuw,uv(1)(1)中心加工分支的分解中心加工分支的分解mtpqrec,pru,wpr 任何情況下都可使用變換分析任何情況下都可使用變換分析方法設(shè)計軟件結(jié)構(gòu),但如數(shù)據(jù)方法設(shè)計軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯的事務(wù)特點時流具有明顯的事務(wù)特點時 ( (有有一個明顯的事務(wù)中心一個明顯的事務(wù)中心),),以采用以采用事務(wù)分析方法為宜。事務(wù)分析方法為宜。2. 事務(wù)分析設(shè)計方法事務(wù)分析設(shè)計
41、方法步驟:(1)(1)在在dfddfd上確定事務(wù)中心、接收部上確定事務(wù)中心、接收部 分和發(fā)送部分。分和發(fā)送部分。(2)(2)畫出畫出scsc框架,把框架,把dfddfd上的三部分上的三部分 分別映射為事務(wù)控制模塊、接收分別映射為事務(wù)控制模塊、接收 模塊和動作發(fā)送模塊。模塊和動作發(fā)送模塊。(3)(3)分解細化接收分支和發(fā)送分支,分解細化接收分支和發(fā)送分支, 完成初始完成初始scsc。用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)讀用戶讀用戶命令命令密碼命令密碼命令密碼密碼顯示顯示信息信息系統(tǒng)參系統(tǒng)參數(shù)數(shù)據(jù)數(shù)數(shù)據(jù)用戶用戶命令命令讀系統(tǒng)讀系統(tǒng)數(shù)據(jù)數(shù)據(jù)配置信息配置信息顯示信息顯示信息和狀態(tài)和狀態(tài)命令命令分析處理
42、分析處理讀讀密碼密碼命令命令類型類型開開/ /關(guān)關(guān)命令命令建立配建立配置文件置文件原配置原配置數(shù)據(jù)數(shù)據(jù)激活激活/ /非活動非活動系統(tǒng)系統(tǒng)與文件中與文件中密碼比較密碼比較格式化格式化配置數(shù)據(jù)配置數(shù)據(jù)配置配置命令命令檢驗信檢驗信息過程息過程重試重試信息信息四位四位數(shù)字數(shù)字檢驗檢驗信息信息檢驗檢驗信息信息a/da/d信息信息格式化格式化配置配置數(shù)據(jù)數(shù)據(jù)格式化格式化配置數(shù)據(jù)配置數(shù)據(jù)由變換分由變換分析產(chǎn)生析產(chǎn)生由事務(wù)分由事務(wù)分析產(chǎn)生析產(chǎn)生事務(wù)分析的映射方法事務(wù)分析的映射方法用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)讀用戶讀用戶命令命令密碼密碼顯示顯示信息信息系統(tǒng)參系統(tǒng)參數(shù)數(shù)
43、據(jù)數(shù)數(shù)據(jù)用戶用戶命令命令讀系統(tǒng)讀系統(tǒng)數(shù)據(jù)數(shù)據(jù)配置信息配置信息顯示信息顯示信息和狀態(tài)和狀態(tài)命令命令分析處理分析處理讀讀密碼密碼命令命令類型類型建立配建立配置文件置文件原配置原配置數(shù)據(jù)數(shù)據(jù)激活激活/ /非活動非活動系統(tǒng)系統(tǒng)與文件中與文件中密碼比較密碼比較格式化格式化配置數(shù)據(jù)配置數(shù)據(jù)檢驗信檢驗信息過程息過程重試重試信息信息四位四位數(shù)字數(shù)字檢驗檢驗信息信息檢驗檢驗信息信息a/da/d信息信息格式化格式化配置配置數(shù)據(jù)數(shù)據(jù)格式化格式化配置數(shù)據(jù)配置數(shù)據(jù)密碼命令密碼命令開開/ /關(guān)關(guān)命令命令配置配置命令命令用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)讀用戶讀用戶命令命令密碼密碼顯示
44、顯示信息信息系統(tǒng)參系統(tǒng)參數(shù)數(shù)據(jù)數(shù)數(shù)據(jù)用戶用戶命令命令讀系統(tǒng)讀系統(tǒng)數(shù)據(jù)數(shù)據(jù)配置信息配置信息顯示信息顯示信息和狀態(tài)和狀態(tài)命令命令分析處理分析處理讀讀密碼密碼命令命令類型類型建立配建立配置文件置文件原配置原配置數(shù)據(jù)數(shù)據(jù)激活激活/ /非活動非活動系統(tǒng)系統(tǒng)與文件中與文件中密碼比較密碼比較格式化格式化配置數(shù)據(jù)配置數(shù)據(jù)檢驗信檢驗信息過程息過程重試重試信息信息四位四位數(shù)字數(shù)字檢驗檢驗信息信息檢驗檢驗信息信息a/da/d信息信息配置配置數(shù)據(jù)數(shù)據(jù)格式化格式化配置配置數(shù)據(jù)數(shù)據(jù)密碼命令密碼命令開開/ /關(guān)關(guān)命令命令配置配置命令命令用戶命令交互子系統(tǒng)用戶命令交互子系統(tǒng)4.5.2 層次圖和hipo圖ibmibm公司發(fā)明的
45、公司發(fā)明的hipohipo圖:圖:層次圖層次圖 + + 輸入輸入 / / 處理處理 / /輸出圖輸出圖 ( (h圖圖) () (ipo圖圖) )( (hierachy input process output)1. 層次圖(h圖) 表示軟件的層次結(jié)構(gòu)表示軟件的層次結(jié)構(gòu)正文加工系統(tǒng)正文加工系統(tǒng)輸入輸入輸出輸出編輯編輯加標(biāo)題加標(biāo)題存儲存儲檢索檢索 編目錄編目錄添加添加刪除刪除插入插入修改修改合并合并列表列表帶編號的層次圖(h圖) 正文加工系統(tǒng)正文加工系統(tǒng)輸入輸入1.01.0輸出輸出2.02.0編輯編輯3.03.0加標(biāo)題加標(biāo)題 4.0 4.0存儲存儲5.05.0檢索檢索6.06.0編目錄編目錄 7.
46、0 7.0添加添加3.13.1刪除刪除3.23.2插入插入3.33.3修改修改3.43.4合并合并3.53.5列表列表3.63.62. hipo圖 h圖中每一方框圖中每一方框( (模塊模塊) )均有一張均有一張ipo圖對應(yīng)圖對應(yīng) 航線調(diào)度系統(tǒng)航線調(diào)度系統(tǒng)hipohipo圖舉例圖舉例 h h圖圖: :命令監(jiān)控器命令監(jiān)控器1.01.0取得輸入取得輸入1.11.1輸入確認輸入確認 1.2 1.2請求確認請求確認1.31.3更新處理更新處理 1.4 1.4傳統(tǒng)的ipo圖舉例輸入輸入處理處理輸出輸出讀口令請求讀口令請求口令文件口令文件1 1取得輸入取得輸入2 2口令確認口令確認3 3請求確認請求確認請求
47、記錄請求記錄權(quán)限文件權(quán)限文件4 4更新處理更新處理權(quán)限記錄權(quán)限記錄狀態(tài)報告狀態(tài)報告響應(yīng)響應(yīng)命令監(jiān)控器命令監(jiān)控器(1.0)(1.0)的的ipoipo圖圖改進的ipo圖格式ipoipo圖圖系統(tǒng):模塊:編號:作者:日期:被調(diào)用:調(diào)用:輸出:輸入:輸入:局部數(shù)據(jù)元素:注釋:4.6詳細設(shè)計(過程設(shè)計、模塊設(shè)計)主要任務(wù):主要任務(wù):編寫詳細設(shè)計說明書編寫詳細設(shè)計說明書為此,設(shè)計人員應(yīng):為此,設(shè)計人員應(yīng):(1)(1)確定每個模塊的算法,用工具確定每個模塊的算法,用工具 表達算法的過程,寫出模塊的表達算法的過程,寫出模塊的 詳細過程性描述。詳細過程性描述。(2)(2)確定每一模塊的數(shù)據(jù)結(jié)構(gòu)。確定每一模塊的數(shù)據(jù)
48、結(jié)構(gòu)。(3)(3)確定模塊接口細節(jié)。確定模塊接口細節(jié)。詳細設(shè)計是編碼的先導(dǎo)。詳細設(shè)計是編碼的先導(dǎo)。4.6.1 詳細設(shè)計的描述方法詳細設(shè)計工具:詳細設(shè)計工具:(1) (1) 圖形工具圖形工具(2) (2) 表格工具表格工具(3) (3) 語言工具語言工具1. 1. 程序流程圖程序流程圖2. 2. 盒圖盒圖(n-s(n-s圖圖) )3. 3. 問題分析圖問題分析圖(pad)(pad)4. 4. 過程設(shè)計語言過程設(shè)計語言(pdl)(pdl)( (偽碼偽碼) )5. 5. 判定表判定表1. 盒圖(n-s圖)用方框圖代替?zhèn)鹘y(tǒng)的流程圖用方框圖代替?zhèn)鹘y(tǒng)的流程圖描述五種基本控制結(jié)構(gòu)的圖形構(gòu)件描述五種基本控制結(jié)
49、構(gòu)的圖形構(gòu)件(1) (1) 順序型順序型abc(2) 選擇型(if then else)if then else if thenabf條件條件taft條件條件then 部分部分then 部分部分else部分部分(3)多分支選擇型(case型)a1值值1 1a2an.條件條件值值2 2值值n n(4) while(4) while重復(fù)型重復(fù)型 (5) until (5) until重復(fù)型重復(fù)型s(循環(huán)體)(循環(huán)體)do-while ps(循環(huán)體)(循環(huán)體)repeat until p( (先測試循環(huán)先測試循環(huán)) )( (后測試循環(huán)后測試循環(huán)) )循環(huán)條件循環(huán)條件(6) 并行結(jié)構(gòu)a1a2an.(7
50、) 移出標(biāo)記acbfx6ta:d( (調(diào)用結(jié)構(gòu)調(diào)用結(jié)構(gòu)) )2. 問題分析圖(pad) (problem analysis diagram)基本控制結(jié)構(gòu)基本控制結(jié)構(gòu): :(1)(1)順序結(jié)構(gòu)順序結(jié)構(gòu) (2) (2)選擇結(jié)構(gòu)選擇結(jié)構(gòu) abcabtf條條件件(3)重復(fù)結(jié)構(gòu) while csuntil cs(先測試循環(huán))(后測試循環(huán))等價的等價的pascalpascal語言:語言:repeat c until s等價的等價的pascalpascal語言:語言:while c do s(4) 多分支選擇型(case型) a1a1值值1 1值值2 2值值n n a2a2anan. . . . . . .
51、條件條件3.判定表判定表(決策表決策表)描述多條件、多目標(biāo)動作的形式化工具描述多條件、多目標(biāo)動作的形式化工具判定表舉例判定表舉例 ( (計算機票折扣率計算機票折扣率) )旅游時間旅游時間訂訂 票票 量量折折 扣扣 量量7 79 9,1212月月20202020 20 20 20 20 15% 15% 5% 5% 20% 20% 30% 30%條件類別條件類別四種條件組合四種條件組合操作操作條件組合下操作的執(zhí)行條件組合下操作的執(zhí)行1 16,10,116,10,11月月判定樹判定樹(decision 決策樹決策樹) 條件條件1 1 條件條件2 2 結(jié)果結(jié)果計計 7 79,9, 訂票量訂票量2020
52、: : 15%15%算算 1212月月 訂票量訂票量2020: : 5%5%折折扣扣 1 16,6, 訂票量訂票量2020: : 30%30%量量 10,1110,11月月 訂票量訂票量2020: : 5%5%4. pdl(1) 關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點。為了使結(jié)結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點。為了使結(jié)構(gòu)清晰和可讀性好,通常在所有可能嵌套使構(gòu)清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,iffi(或或endif)等等。等等。(2) 自然語言的自由語法,它描
53、述處理特點。自然語言的自由語法,它描述處理特點。(3) 數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)(例如純量和數(shù)組例如純量和數(shù)組),又包括復(fù)雜的數(shù)據(jù)結(jié),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)構(gòu)(例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構(gòu)例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構(gòu))。(4) 模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。口描述模式。 1 1、可使用性、可使用性 使用簡單使用簡單 用戶界面中所用術(shù)語的標(biāo)準化和一致性用戶界面中所用術(shù)語的標(biāo)準化和一致性 具有具有help功能功能 快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本 具有容錯能力具有容錯能力
54、 2 2、靈活性、靈活性 考慮用戶的特點、能力、知識水平。考慮用戶的特點、能力、知識水平。 提供不同的系統(tǒng)響應(yīng)信息。提供不同的系統(tǒng)響應(yīng)信息。 提供根據(jù)用戶需求制定和修改提供根據(jù)用戶需求制定和修改界面。界面。 3 3、界面的復(fù)雜性與可靠性、界面的復(fù)雜性與可靠性 復(fù)雜性復(fù)雜性界面規(guī)模及組織的復(fù)雜程度。應(yīng)該愈簡單愈好。界面規(guī)模及組織的復(fù)雜程度。應(yīng)該愈簡單愈好。 可靠性可靠性指無故障使用的時間間隔。用戶界面應(yīng)該能夠保指無故障使用的時間間隔。用戶界面應(yīng)該能夠保 證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。4.7 用戶界面設(shè)計 1 1、用戶特性分析、用戶
55、特性分析 用戶模型用戶模型 了解所有用戶的技能和經(jīng)驗,針對用戶能力設(shè)計或更改界了解所有用戶的技能和經(jīng)驗,針對用戶能力設(shè)計或更改界面。從以下方面分析:面。從以下方面分析: 用戶類型用戶類型通常分為:外行型、初學(xué)型、熟練型、專家型。通常分為:外行型、初學(xué)型、熟練型、專家型。 用戶特性度量用戶特性度量與用戶使用模式和用戶群體能力有關(guān)。與用戶使用模式和用戶群體能力有關(guān)。 包括:用戶使用頻度、用戶用機能力、用戶的知識、思維能包括:用戶使用頻度、用戶用機能力、用戶的知識、思維能力等。力等。這部分工作應(yīng)該與軟件需求分析同步進行。包括以下內(nèi)容:這部分工作應(yīng)該與軟件需求分析同步進行。包括以下內(nèi)容:2 2、用戶界
56、面的任務(wù)分析、用戶界面的任務(wù)分析 任務(wù)模型(任務(wù)模型(dfddfd圖)圖) 是對系統(tǒng)內(nèi)部活動的分解,不僅要進行功能分解(用是對系統(tǒng)內(nèi)部活動的分解,不僅要進行功能分解(用dfddfd圖圖描述),還要包括與人相關(guān)的活動。每個加工即一個功能或描述),還要包括與人相關(guān)的活動。每個加工即一個功能或任務(wù)。任務(wù)。3 3、確定用戶界面類型、確定用戶界面類型 正文菜單、圖標(biāo)菜單、正文和圖標(biāo)混合菜單,如:正文菜單、圖標(biāo)菜單、正文和圖標(biāo)混合菜單,如:開始菜單。開始菜單。 字符界面、字符界面、gui界面、無交互界面。界面、無交互界面。 設(shè)計原則:以人為本,以用戶的體驗為準。設(shè)計原則:以人為本,以用戶的體驗為準。 固定
57、位置、浮動位置(彈出)、下拉式、嵌入式固定位置、浮動位置(彈出)、下拉式、嵌入式混合菜單固定及下拉菜單固定菜單固定菜單下拉菜單下拉菜單 在用戶界面中,加入豐富多彩的畫面,將能夠更加行象地為用戶提供有在用戶界面中,加入豐富多彩的畫面,將能夠更加行象地為用戶提供有用的信息,以達到可視化的目的。主要的處理操作有:圖象的隱蔽和再現(xiàn)、用的信息,以達到可視化的目的。主要的處理操作有:圖象的隱蔽和再現(xiàn)、屏幕滾動和圖案顯示、動畫等。屏幕滾動和圖案顯示、動畫等。 對話框是在需要時,顯示在屏幕上一個矩形區(qū)域內(nèi)的圖形和正文信息。對話框是在需要時,顯示在屏幕上一個矩形區(qū)域內(nèi)的圖形和正文信息。通過對話,實現(xiàn)系統(tǒng)和用戶之
58、間的通信。通過對話,實現(xiàn)系統(tǒng)和用戶之間的通信。對話框顯示的方式與彈出式菜單類似,即瞬時彈出。同時,系統(tǒng)還應(yīng)對話框顯示的方式與彈出式菜單類似,即瞬時彈出。同時,系統(tǒng)還應(yīng)將對話框所覆蓋的原圖象進行保存,以便在對話結(jié)束后能立即恢復(fù)。將對話框所覆蓋的原圖象進行保存,以便在對話結(jié)束后能立即恢復(fù)。有三種對話形式:有三種對話形式:必須回答式如圖必須回答式如圖3.58所示所示無需回答式無需回答式 如圖如圖3.59所示所示警告式警告式 如圖如圖4.58所示所示必須回答式對話框無需回答式對話框警告式對話框4 4、窗口(、窗口(windowwindow) 圖形學(xué)中稱為視圖區(qū)(圖形學(xué)中稱為視圖區(qū)(viewportvi
59、ewport),視為虛擬屏幕。一個實用窗口,),視為虛擬屏幕。一個實用窗口,可包含部件:可包含部件: 菜單區(qū)(菜單區(qū)(menu barmenu bar) 圖標(biāo)區(qū)(圖標(biāo)區(qū)(icon baricon bar) 標(biāo)題區(qū)(標(biāo)題區(qū)(title bartitle bar) 移動區(qū)(移動區(qū)(move barmove bar) 大小區(qū)(大小區(qū)(size barsize bar) 退出區(qū)(退出區(qū)(quit barquit bar) 用戶工作區(qū)(用戶工作區(qū)(users work barusers work bar) 橫向滾動區(qū)(橫向滾動區(qū)(horizontal scroll barhorizontal scrol
60、l bar) 縱向滾動區(qū)(縱向滾動區(qū)(vertical scroll barvertical scroll bar)窗口數(shù)據(jù)數(shù)據(jù)i/oi/o界面,是系統(tǒng)的重要組成部分。主要從界面,是系統(tǒng)的重要組成部分。主要從輸入速度輸入速度和和減少出錯率減少出錯率考慮??紤]。1、盡量減少輸入工作量、盡量減少輸入工作量 對相同內(nèi)容輸入設(shè)置默認值對相同內(nèi)容輸入設(shè)置默認值 自動填入自動填入 列表選擇或點擊選擇列表選擇或點擊選擇2、屏幕顯示與輸入匹配、屏幕顯示與輸入匹配 即屏幕顯示按照數(shù)據(jù)使用頻率、重要性、次序等即屏幕顯示按照數(shù)據(jù)使用頻率、重要性、次序等組織。組織。3、數(shù)據(jù)輸入的一般規(guī)則、數(shù)據(jù)輸入的一般規(guī)則確定輸入確
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西警官職業(yè)學(xué)院《影視藝術(shù)欣賞》2023-2024學(xué)年第二學(xué)期期末試卷
- 通遼職業(yè)學(xué)院《文化創(chuàng)意產(chǎn)業(yè)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西現(xiàn)代職業(yè)技術(shù)學(xué)院《動物遺傳學(xué)實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明文理學(xué)院《書籍裝幀設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 建筑公司整體轉(zhuǎn)讓合同
- 農(nóng)民公寓買賣合同
- 臨時工聘用炊事員合同書
- 品牌形象代言合同
- 指定用途借款合同
- 實驗室設(shè)備采購合同
- 電梯故障代碼表
- 地方導(dǎo)游基礎(chǔ)知識電子教案 專題七 學(xué)習(xí)情境三 寧夏回族自治區(qū)課時教案
- 中華人民共和國學(xué)前教育法-知識培訓(xùn)
- 2024年四川省宜賓市中考英語試題含解析
- 擔(dān)保公司專項檢查方案
- 養(yǎng)護道班考勤管理制度
- 北師大版(2019)必修第二冊 Unit6 The admirable Lesson 1 A Medical Pioneer名師教學(xué)設(shè)計
- 中科曙光公司在線測評題
- GB/T 36187-2024冷凍魚糜
- 消防演練課件教學(xué)課件
- 2024年計算機二級WPS考試題庫380題(含答案)
評論
0/150
提交評論