第3章軟件設(shè)計(jì)_第1頁(yè)
第3章軟件設(shè)計(jì)_第2頁(yè)
第3章軟件設(shè)計(jì)_第3頁(yè)
第3章軟件設(shè)計(jì)_第4頁(yè)
第3章軟件設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第 三三 章章3軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)概述3.2 軟件體系結(jié)構(gòu)設(shè)計(jì)3.3 軟件設(shè)計(jì)準(zhǔn)則3.4 結(jié)構(gòu)化設(shè)計(jì)(SD)法3.5 詳細(xì)設(shè)計(jì)的描述工具3.6 用戶界面設(shè)計(jì) 軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件質(zhì)量件質(zhì)量。軟件設(shè)計(jì)階段要解決軟件設(shè)計(jì)階段要解決“如何做如何做”的問(wèn)題。的問(wèn)題。 將分析階段獲得的需求說(shuō)明轉(zhuǎn)換為計(jì)算機(jī)中可將分析階段獲得的需求說(shuō)明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng)。包括實(shí)現(xiàn)的系統(tǒng)。包括: :軟件體系結(jié)構(gòu)的設(shè)計(jì)軟件體系結(jié)構(gòu)的設(shè)計(jì)用戶界面的設(shè)計(jì)用戶界面的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)算法的設(shè)計(jì)算法的設(shè)計(jì) 從工程管理的角度來(lái)看,軟件設(shè)計(jì)分兩步完

2、成,分從工程管理的角度來(lái)看,軟件設(shè)計(jì)分兩步完成,分為總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)兩個(gè)階段。為總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)兩個(gè)階段。 概要設(shè)計(jì)。將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系概要設(shè)計(jì)。將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。劃分出程序、數(shù)據(jù)庫(kù)、過(guò)程、文件、類等統(tǒng)結(jié)構(gòu)。劃分出程序、數(shù)據(jù)庫(kù)、過(guò)程、文件、類等 詳細(xì)設(shè)計(jì)。通過(guò)對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳詳細(xì)設(shè)計(jì)。通過(guò)對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。軟件設(shè)計(jì)工作流程需求需求說(shuō)明書說(shuō)明書復(fù)復(fù)審審軟件結(jié)構(gòu)軟件結(jié)構(gòu)可接受可接受模塊描述復(fù)復(fù)審審修修 改改修修 改改總體總體設(shè)計(jì)設(shè)計(jì)詳細(xì)詳細(xì)設(shè)計(jì)設(shè)計(jì) 軟件設(shè)計(jì)的目標(biāo)就

3、是構(gòu)造一個(gè)高內(nèi)聚、低耦合的軟軟件設(shè)計(jì)的目標(biāo)就是構(gòu)造一個(gè)高內(nèi)聚、低耦合的軟件模型。件模型。軟件軟件高可靠性高可靠性高可維高可維護(hù)性護(hù)性高可理高可理解性解性高效率高效率軟件設(shè)計(jì)的目標(biāo)衡量軟件設(shè)計(jì)的目標(biāo)的衡量軟件設(shè)計(jì)的目標(biāo)的準(zhǔn)則準(zhǔn)則: 軟件實(shí)體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。軟件實(shí)體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。 軟件實(shí)體應(yīng)該是模塊化的,模塊具有獨(dú)立功能。軟件實(shí)體應(yīng)該是模塊化的,模塊具有獨(dú)立功能。 設(shè)計(jì)規(guī)格說(shuō)明清晰、簡(jiǎn)潔、完整和無(wú)二義性。設(shè)計(jì)規(guī)格說(shuō)明清晰、簡(jiǎn)潔、完整和無(wú)二義性。 軟件實(shí)體與環(huán)境的界面清晰。軟件實(shí)體與環(huán)境的界面清晰。3.2 3.2 軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系

4、結(jié)構(gòu)確定了系統(tǒng)的軟件體系結(jié)構(gòu)確定了系統(tǒng)的組織結(jié)構(gòu)組織結(jié)構(gòu)和和拓?fù)浣Y(jié)構(gòu)拓?fù)浣Y(jié)構(gòu),顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。提供了一些設(shè)計(jì)決策的基本原理。 體系結(jié)構(gòu)的設(shè)計(jì)過(guò)程的主要活動(dòng):體系結(jié)構(gòu)的設(shè)計(jì)過(guò)程的主要活動(dòng):1.系統(tǒng)分解系統(tǒng)分解將系統(tǒng)分解為若干相互作用的子系統(tǒng)。將系統(tǒng)分解為若干相互作用的子系統(tǒng)。2.控制建??刂平=⑾到y(tǒng)各部分間控制關(guān)系的一般模型。建立系統(tǒng)各部分間控制關(guān)系的一般模型。3.模塊分解模塊分解 將子系統(tǒng)進(jìn)一步劃分為模塊。將子系統(tǒng)進(jìn)一步劃分為模塊。體系結(jié)構(gòu)設(shè)計(jì)是軟件設(shè)計(jì)的第一個(gè)階段,該階段側(cè)重體系結(jié)構(gòu)

5、設(shè)計(jì)是軟件設(shè)計(jì)的第一個(gè)階段,該階段側(cè)重于系統(tǒng)宏觀結(jié)構(gòu)的設(shè)計(jì),而不關(guān)心模塊的內(nèi)部算法。于系統(tǒng)宏觀結(jié)構(gòu)的設(shè)計(jì),而不關(guān)心模塊的內(nèi)部算法。軟件系統(tǒng)的體系結(jié)構(gòu)分為集中式的倉(cāng)庫(kù)模型、分布式軟件系統(tǒng)的體系結(jié)構(gòu)分為集中式的倉(cāng)庫(kù)模型、分布式模型等。模型等。 一、倉(cāng)庫(kù)模型一、倉(cāng)庫(kù)模型(The repository model) 也稱也稱“容器模型容器模型 ”,是一種集中式的模型。中央數(shù)據(jù),是一種集中式的模型。中央數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)各個(gè)子系統(tǒng)共享的數(shù)據(jù),其他的子系統(tǒng)可以直接倉(cāng)庫(kù)存儲(chǔ)各個(gè)子系統(tǒng)共享的數(shù)據(jù),其他的子系統(tǒng)可以直接訪問(wèn)這些共享數(shù)據(jù)。子系統(tǒng)之間緊密耦合。訪問(wèn)這些共享數(shù)據(jù)。子系統(tǒng)之間緊密耦合。 各子系統(tǒng)共享中央數(shù)據(jù)庫(kù)

6、中的數(shù)據(jù)各子系統(tǒng)共享中央數(shù)據(jù)庫(kù)中的數(shù)據(jù)共享容器模型共享容器模型 各子系統(tǒng)有自己的數(shù)據(jù)庫(kù),子系統(tǒng)之間通過(guò)消息傳遞實(shí)現(xiàn)數(shù)各子系統(tǒng)有自己的數(shù)據(jù)庫(kù),子系統(tǒng)之間通過(guò)消息傳遞實(shí)現(xiàn)數(shù)據(jù)交換。據(jù)交換。命令控制系統(tǒng)、命令控制系統(tǒng)、CAD系統(tǒng)系統(tǒng) 中央數(shù)據(jù)倉(cāng)庫(kù)中央數(shù)據(jù)倉(cāng)庫(kù)(Repository)子系統(tǒng)子系統(tǒng)1子系統(tǒng)子系統(tǒng)2子系統(tǒng)子系統(tǒng)n 倉(cāng)庫(kù)結(jié)構(gòu)倉(cāng)庫(kù)結(jié)構(gòu)私有數(shù)據(jù)庫(kù)私有數(shù)據(jù)庫(kù)私有數(shù)據(jù)庫(kù)私有數(shù)據(jù)庫(kù)私有數(shù)據(jù)庫(kù)私有數(shù)據(jù)庫(kù)倉(cāng)庫(kù)模型的主要優(yōu)缺點(diǎn)倉(cāng)庫(kù)模型的主要優(yōu)缺點(diǎn)優(yōu)點(diǎn):優(yōu)點(diǎn): 1.共享大數(shù)據(jù)量的有效方法。共享大數(shù)據(jù)量的有效方法。 2.子系統(tǒng)不必關(guān)心其他的子系統(tǒng)如何使用它所產(chǎn)生的數(shù)子系統(tǒng)不必關(guān)心其他的子系統(tǒng)如何使用它所產(chǎn)生的數(shù)

7、據(jù)。據(jù)。 3.易于將新子系統(tǒng)集成,若新子系統(tǒng)也采用相同規(guī)范易于將新子系統(tǒng)集成,若新子系統(tǒng)也采用相同規(guī)范 。 缺陷:缺陷: 1.為了共享數(shù)據(jù)為了共享數(shù)據(jù) ,各子系統(tǒng)必須有一致的數(shù)據(jù)視圖各子系統(tǒng)必須有一致的數(shù)據(jù)視圖 ,不可避,不可避免地會(huì)影響了整個(gè)系統(tǒng)的性能。免地會(huì)影響了整個(gè)系統(tǒng)的性能。 2.子系統(tǒng)的改變使產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)也可能發(fā)生改變。子系統(tǒng)的改變使產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)也可能發(fā)生改變。 3.統(tǒng)一的數(shù)據(jù)庫(kù)結(jié)構(gòu)統(tǒng)一的數(shù)據(jù)庫(kù)結(jié)構(gòu)(備份、安全、訪問(wèn)控制和恢復(fù)的策略備份、安全、訪問(wèn)控制和恢復(fù)的策略 ),將影響子系統(tǒng)的效率將影響子系統(tǒng)的效率 。二、二、 客戶服務(wù)器模型客戶服務(wù)器模型(Client/Server Ar

8、chitectural Model) C/S結(jié)構(gòu)是一種結(jié)構(gòu)是一種分布式模型分布式模型,采用發(fā)請(qǐng)求、得結(jié)果的,采用發(fā)請(qǐng)求、得結(jié)果的模式:模式:客戶機(jī)客戶機(jī) 向服務(wù)器發(fā)出請(qǐng)求向服務(wù)器發(fā)出請(qǐng)求(數(shù)據(jù)請(qǐng)求、網(wǎng)頁(yè)請(qǐng)求、文件數(shù)據(jù)請(qǐng)求、網(wǎng)頁(yè)請(qǐng)求、文件傳輸請(qǐng)求等傳輸請(qǐng)求等)。服務(wù)器服務(wù)器 響應(yīng)請(qǐng)求,進(jìn)行相應(yīng)的操作,將結(jié)果回傳給客戶響應(yīng)請(qǐng)求,進(jìn)行相應(yīng)的操作,將結(jié)果回傳給客戶機(jī),客戶機(jī)再將格式化后的結(jié)果呈現(xiàn)給用戶。機(jī),客戶機(jī)再將格式化后的結(jié)果呈現(xiàn)給用戶。C/S結(jié)構(gòu)的應(yīng)用都由三個(gè)相對(duì)獨(dú)立的邏輯部分組成。結(jié)構(gòu)的應(yīng)用都由三個(gè)相對(duì)獨(dú)立的邏輯部分組成。用戶界面用戶界面應(yīng)用邏輯應(yīng)用邏輯數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)三種邏輯之間的關(guān)系1.

9、兩層客戶服務(wù)器模型兩層客戶服務(wù)器模型 (Two Tier Client/Server Architectural Model)服務(wù)器服務(wù)器1網(wǎng)絡(luò)網(wǎng)絡(luò)服務(wù)器服務(wù)器2服務(wù)器服務(wù)器M客戶客戶1客戶客戶2客戶客戶N兩層兩層Client/Server結(jié)構(gòu)結(jié)構(gòu)請(qǐng)求請(qǐng)求結(jié)果結(jié)果請(qǐng)求請(qǐng)求C/S的工作模式是一種遠(yuǎn)程過(guò)程調(diào)用的工作模式是一種遠(yuǎn)程過(guò)程調(diào)用(RPC,Remote Procedure Call)模式,允許客戶端和服務(wù)器端有不同的軟模式,允許客戶端和服務(wù)器端有不同的軟硬平臺(tái)。硬平臺(tái)。 完整的應(yīng)用包含三個(gè)相對(duì)獨(dú)立的邏輯部分,而兩層的完整的應(yīng)用包含三個(gè)相對(duì)獨(dú)立的邏輯部分,而兩層的C/S結(jié)構(gòu)只有兩個(gè)端應(yīng)用。應(yīng)用

10、邏輯應(yīng)該映射到哪一端上結(jié)構(gòu)只有兩個(gè)端應(yīng)用。應(yīng)用邏輯應(yīng)該映射到哪一端上呢?呢? 三種情況:三種情況:網(wǎng)網(wǎng) 絡(luò)絡(luò)用戶界面用戶界面客戶端邏輯客戶端邏輯應(yīng)用應(yīng)用服務(wù)端邏輯服務(wù)端邏輯應(yīng)用應(yīng)用客戶端客戶端用戶界面用戶界面邏輯應(yīng)用邏輯應(yīng)用數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)用戶界面用戶界面邏輯應(yīng)用邏輯應(yīng)用數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)服務(wù)器服務(wù)器應(yīng)用邏輯層的映射情況數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)C/S應(yīng)用應(yīng)用3C/S應(yīng)用應(yīng)用1C/S應(yīng)用應(yīng)用2 兩層兩層C/S架構(gòu)將數(shù)據(jù)表示和處理邏輯分開架構(gòu)將數(shù)據(jù)表示和處理邏輯分開 ,但應(yīng)用邏,但應(yīng)用邏輯和兩端之一是緊耦合的輯和兩端之一是緊耦合的,不適宜多用戶、多數(shù)據(jù)庫(kù)、非不適宜多用戶、多數(shù)據(jù)庫(kù)、非安安全的網(wǎng)絡(luò)環(huán)境。安安全

11、的網(wǎng)絡(luò)環(huán)境。 2.三層三層/多層應(yīng)用模型多層應(yīng)用模型(Three/Multi Tier Model) 第一級(jí)是數(shù)據(jù)庫(kù)管理結(jié)點(diǎn)第一級(jí)是數(shù)據(jù)庫(kù)管理結(jié)點(diǎn)(database management node)。第二級(jí)或中間級(jí)是第二級(jí)或中間級(jí)是“商業(yè)邏輯結(jié)點(diǎn)商業(yè)邏輯結(jié)點(diǎn)” (business logic node),是是指具體應(yīng)用中實(shí)施的指具體應(yīng)用中實(shí)施的 程序邏輯和法則。程序邏輯和法則。第三級(jí)是用戶界面級(jí),強(qiáng)調(diào)高效、方便易用的用戶界面。第三級(jí)是用戶界面級(jí),強(qiáng)調(diào)高效、方便易用的用戶界面。Database management node(數(shù)據(jù)庫(kù)管理結(jié)點(diǎn))(數(shù)據(jù)庫(kù)管理結(jié)點(diǎn))business logic nod

12、e(商業(yè)邏輯結(jié)點(diǎn))商業(yè)邏輯結(jié)點(diǎn))Security(安全)(安全)Event(事件)(事件)Search(搜索)(搜索)ClientAClientDClientBClientC服服務(wù)務(wù)器器客客戶戶機(jī)機(jī)第一級(jí)第一級(jí)第二級(jí)第二級(jí)第三級(jí)第三級(jí)客戶端客戶端用戶界面用戶界面服務(wù)器服務(wù)器數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)多層應(yīng)用模型網(wǎng)網(wǎng) 絡(luò)絡(luò)應(yīng)用服務(wù)器應(yīng)用服務(wù)器1應(yīng)用邏輯應(yīng)用邏輯應(yīng)用服務(wù)器應(yīng)用服務(wù)器n應(yīng)用邏輯應(yīng)用邏輯 在多層模型中,中間層會(huì)用到應(yīng)用服務(wù),包括事務(wù)在多層模型中,中間層會(huì)用到應(yīng)用服務(wù),包括事務(wù)服務(wù)、消息服務(wù)等等。常見的事務(wù)服務(wù)器有服務(wù)、消息服務(wù)等等。常見的事務(wù)服務(wù)器有Microsoft Transaction S

13、erver,消息服務(wù)器有,消息服務(wù)器有Microsoft Message Queue。三、分布式對(duì)象結(jié)構(gòu)三、分布式對(duì)象結(jié)構(gòu)(Distributed Objects Architecture) 在在C/S模型中,客戶和服務(wù)器在服務(wù)模型中,客戶和服務(wù)器在服務(wù)/請(qǐng)求上的差別請(qǐng)求上的差別(請(qǐng)求與被請(qǐng)求請(qǐng)求與被請(qǐng)求),在一定程度上限制了系統(tǒng)的靈活性和,在一定程度上限制了系統(tǒng)的靈活性和可擴(kuò)展性??蓴U(kuò)展性。 采用分布式對(duì)象結(jié)構(gòu)采用分布式對(duì)象結(jié)構(gòu) : “對(duì)象對(duì)象(Object)”提供服務(wù)的系統(tǒng)組件提供服務(wù)的系統(tǒng)組件(System Component)。 每個(gè)對(duì)象在邏輯上是平等的,它們可以互相為對(duì)方提每個(gè)對(duì)象在

14、邏輯上是平等的,它們可以互相為對(duì)方提供所需的服務(wù)。供所需的服務(wù)。 提供服務(wù)的對(duì)象就是服務(wù)器,而提出服務(wù)請(qǐng)求的對(duì)象提供服務(wù)的對(duì)象就是服務(wù)器,而提出服務(wù)請(qǐng)求的對(duì)象就是客戶。就是客戶。 軟件總線軟件總線(Software Bus)的中間件的中間件(Middleware) 即即對(duì)象請(qǐng)求代理對(duì)象請(qǐng)求代理(Object Request Broker,ORB) 分布式對(duì)象結(jié)構(gòu)具有很好的開放性和透明性,用分布式對(duì)象結(jié)構(gòu)具有很好的開放性和透明性,用戶可以非常方便地在總線上添加、更新或刪除組件對(duì)戶可以非常方便地在總線上添加、更新或刪除組件對(duì)象。象。軟件總線軟件總線(ORB)O1S(O1)O2S(O2)OnS(On

15、)分布式對(duì)象結(jié)構(gòu)流行的流行的ORB技術(shù)標(biāo)準(zhǔn)有:技術(shù)標(biāo)準(zhǔn)有:1.CORBA(Common Object Request Broker Architecture) 公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)。由對(duì)象管理組織由對(duì)象管理組織OMG (Object Management Group)提出的應(yīng)用軟件體系結(jié)構(gòu))提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)范。和對(duì)象技術(shù)規(guī)范。2.COM(Distributed Component Object Model) 組件對(duì)象模型組件對(duì)象模型。為組件之間、組件與應(yīng)用程序之間的。為組件之間、組件與應(yīng)用程序之間的通信和互操作提供了統(tǒng)一的標(biāo)準(zhǔn)和技術(shù)規(guī)范,使不同語(yǔ)言

16、通信和互操作提供了統(tǒng)一的標(biāo)準(zhǔn)和技術(shù)規(guī)范,使不同語(yǔ)言開發(fā)的組件可進(jìn)行基于組件的軟件開發(fā)。開發(fā)的組件可進(jìn)行基于組件的軟件開發(fā)。 3. EJB(Enterprise Java Bean) 由由Sun公司定義的規(guī)范,公司定義的規(guī)范,EJB構(gòu)件是實(shí)現(xiàn)構(gòu)件是實(shí)現(xiàn)EJB規(guī)范的規(guī)范的Java構(gòu)件,構(gòu)件,完成企業(yè)級(jí)應(yīng)用中的業(yè)務(wù)邏輯。完成企業(yè)級(jí)應(yīng)用中的業(yè)務(wù)邏輯。EJB構(gòu)件駐留構(gòu)件駐留在在EJB容器中。容器中。 四、四、 抽象機(jī)模型抽象機(jī)模型又稱為又稱為分層模型分層模型,通常用于建立子系統(tǒng)的接口模型。,通常用于建立子系統(tǒng)的接口模型。每層提供一組服務(wù),定義一個(gè)每層提供一組服務(wù),定義一個(gè)抽象機(jī)。抽象機(jī)。典型的例子:典型

17、的例子:應(yīng)用層協(xié)議應(yīng)用層協(xié)議表示層協(xié)議表示層協(xié)議會(huì)話層協(xié)議會(huì)話層協(xié)議傳輸層協(xié)議傳輸層協(xié)議 物物 理理 介介 質(zhì)質(zhì)應(yīng)用層應(yīng)用層表示層表示層會(huì)話層會(huì)話層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層應(yīng)用層應(yīng)用層表示層表示層會(huì)話層會(huì)話層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層中繼系統(tǒng)中繼系統(tǒng) 中繼系統(tǒng)中繼系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)優(yōu)點(diǎn):支持增量式開發(fā)。優(yōu)點(diǎn):支持增量式開發(fā)。缺點(diǎn):系統(tǒng)構(gòu)成、性能保證較困難。缺點(diǎn):系統(tǒng)構(gòu)成、性能保證較困難。1.軟件結(jié)構(gòu)的準(zhǔn)則軟件結(jié)構(gòu)的準(zhǔn)則2. 模塊

18、化準(zhǔn)則模塊化準(zhǔn)則3.軟件獨(dú)立性準(zhǔn)則軟件獨(dú)立性準(zhǔn)則 軟件設(shè)計(jì)是軟件開發(fā)過(guò)程的重要階段,對(duì)保證軟件設(shè)計(jì)是軟件開發(fā)過(guò)程的重要階段,對(duì)保證軟件系統(tǒng)的質(zhì)量起著關(guān)鍵作用。但是如何保證軟件軟件系統(tǒng)的質(zhì)量起著關(guān)鍵作用。但是如何保證軟件設(shè)計(jì)的質(zhì)量呢?有以下經(jīng)過(guò)長(zhǎng)期考驗(yàn)的設(shè)計(jì)準(zhǔn)則:設(shè)計(jì)的質(zhì)量呢?有以下經(jīng)過(guò)長(zhǎng)期考驗(yàn)的設(shè)計(jì)準(zhǔn)則: 這些設(shè)計(jì)準(zhǔn)則直接影響到體系結(jié)構(gòu)的設(shè)計(jì)過(guò)程這些設(shè)計(jì)準(zhǔn)則直接影響到體系結(jié)構(gòu)的設(shè)計(jì)過(guò)程的主要活動(dòng)的主要活動(dòng)系統(tǒng)分解和模塊分解。系統(tǒng)分解和模塊分解。 軟件結(jié)構(gòu)表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系軟件結(jié)構(gòu)表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表示,均表示為層次關(guān)系的表示,均表示為層次關(guān)系。軟 件

19、結(jié) 構(gòu) 示 意 圖0層層1層層2層層ABCDEFGHIJKLMN深度寬度扇入為扇入為2扇出為扇出為3扇入為扇入為3寬度深度寬度3層層4層層一、一、 軟件結(jié)構(gòu)的準(zhǔn)則軟件結(jié)構(gòu)的準(zhǔn)則 深度深度:表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊的層數(shù)的層數(shù)。 寬度寬度:表示控制的總分布。表示控制的總分布。 扇出數(shù)扇出數(shù):指一個(gè)模塊直接控制下屬的模塊個(gè)數(shù)。指一個(gè)模塊直接控制下屬的模塊個(gè)數(shù)。 扇入數(shù)扇入數(shù):指一個(gè)模塊的直接上屬模塊個(gè)數(shù)。指一個(gè)模塊的直接上屬模塊個(gè)數(shù)。 一個(gè)好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:頂部寬度小,一個(gè)好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:頂部寬度小,中部寬度最大,底部寬度次之;在結(jié)

20、構(gòu)頂部有較高的中部寬度最大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。扇出數(shù),在底部有較高的扇入數(shù)。有有 關(guān)關(guān) 指指 標(biāo)標(biāo) 所謂所謂模塊化模塊化就是將系統(tǒng)劃分成若干模塊,每個(gè)模塊就是將系統(tǒng)劃分成若干模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集中起來(lái)組成一個(gè)整體,以完成一個(gè)子功能,把這些模塊集中起來(lái)組成一個(gè)整體,以滿足所要求的整個(gè)系統(tǒng)的功能滿足所要求的整個(gè)系統(tǒng)的功能。 我們利用模塊化來(lái)降低軟件復(fù)雜度。我們利用模塊化來(lái)降低軟件復(fù)雜度。 并非模塊分得越并非模塊分得越小越好,因?yàn)槟K之間接口的復(fù)雜度和工作量增加。顯然,每小越好,因?yàn)槟K之間接口的復(fù)雜度和工作量增加。顯然,每個(gè)軟件系統(tǒng)

21、都有一個(gè)最佳模塊數(shù)個(gè)軟件系統(tǒng)都有一個(gè)最佳模塊數(shù)M。注意選擇分解的最佳模塊。注意選擇分解的最佳模塊數(shù)。數(shù)。二、二、 模塊化準(zhǔn)則模塊化準(zhǔn)則三、三、 軟件獨(dú)立性準(zhǔn)則軟件獨(dú)立性準(zhǔn)則 軟件獨(dú)立性的含義是指開發(fā)具有功能專一,模塊之軟件獨(dú)立性的含義是指開發(fā)具有功能專一,模塊之間無(wú)過(guò)多相互作用的模塊。又稱為間無(wú)過(guò)多相互作用的模塊。又稱為模塊獨(dú)立性準(zhǔn)則。模塊獨(dú)立性準(zhǔn)則。 這種類型的模塊可以并行開發(fā),開發(fā)容易,能減少這種類型的模塊可以并行開發(fā),開發(fā)容易,能減少錯(cuò)誤的影響,使模塊容易組合、修改及測(cè)試。錯(cuò)誤的影響,使模塊容易組合、修改及測(cè)試。 耦合性耦合性 用于描述模塊之間聯(lián)系的緊密程度。用于描述模塊之間聯(lián)系的緊密程

22、度。軟件獨(dú)立性的度量標(biāo)準(zhǔn)是兩個(gè)定性指標(biāo):軟件獨(dú)立性的度量標(biāo)準(zhǔn)是兩個(gè)定性指標(biāo):內(nèi)容耦合內(nèi)容耦合公共耦合公共耦合控制耦合控制耦合特征耦合特征耦合數(shù)據(jù)耦合數(shù)據(jù)耦合w在軟件設(shè)計(jì)中應(yīng)該追求模塊間盡可能松散耦合的系統(tǒng)。w設(shè)計(jì)模塊時(shí),應(yīng)以數(shù)據(jù)耦合為主,輔以特征耦合和控制耦合,限制公共耦合,完全不用內(nèi)容偶合。 內(nèi)容耦合:內(nèi)容耦合: A直接引用直接引用B的數(shù)據(jù),如的數(shù)據(jù),如goto語(yǔ)句語(yǔ)句 公共耦合:多個(gè)模塊訪問(wèn)一個(gè)公共數(shù)據(jù)區(qū)公共耦合:多個(gè)模塊訪問(wèn)一個(gè)公共數(shù)據(jù)區(qū) 控制耦合:傳遞控制信號(hào)給另一個(gè)模塊控制耦合:傳遞控制信號(hào)給另一個(gè)模塊 void output(flag) if(flag) printf(OK!);

23、else printf(NO!); main() int flag; . . . output(flag); . 數(shù)據(jù)耦合:參數(shù)是單個(gè)數(shù)據(jù)項(xiàng),或單數(shù)據(jù)項(xiàng)組成的數(shù)組數(shù)據(jù)耦合:參數(shù)是單個(gè)數(shù)據(jù)項(xiàng),或單數(shù)據(jù)項(xiàng)組成的數(shù)組 sum(int a,int b) int c; c=a+b; return(c); main() int x,y; . . .printf(x+y=%d,sum(x,y); 特征耦合:把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的特征耦合:把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需使用一部分?jǐn)?shù)據(jù)元素模塊只需使用一部分?jǐn)?shù)據(jù)元素設(shè)計(jì)模塊時(shí),應(yīng)以數(shù)據(jù)耦合為主,輔以特征耦合和控制耦合,限制公共耦合,完

24、全不用內(nèi)容偶合。內(nèi)聚性內(nèi)聚性 用于描述模塊內(nèi)部聯(lián)系的緊密程度。用于描述模塊內(nèi)部聯(lián)系的緊密程度。偶然型偶然型邏輯型邏輯型瞬時(shí)型瞬時(shí)型通信型通信型順序型順序型功能型功能型 內(nèi)聚性表示一個(gè)模塊內(nèi)部各種數(shù)據(jù)和各種處理之間內(nèi)聚性表示一個(gè)模塊內(nèi)部各種數(shù)據(jù)和各種處理之間聯(lián)系的緊密程度,它是從功能的角度來(lái)度量模塊間的聯(lián)系的緊密程度,它是從功能的角度來(lái)度量模塊間的聯(lián)系。顯然聯(lián)系。顯然,塊內(nèi)聯(lián)系愈緊塊內(nèi)聯(lián)系愈緊,即內(nèi)聚性愈強(qiáng)即內(nèi)聚性愈強(qiáng),模塊獨(dú)立性模塊獨(dú)立性愈好。愈好。設(shè)計(jì)時(shí)盡量做到高內(nèi)聚,中等程度的內(nèi)聚也可采用,設(shè)計(jì)時(shí)盡量做到高內(nèi)聚,中等程度的內(nèi)聚也可采用,避免使用低內(nèi)聚避免使用低內(nèi)聚p 低內(nèi)聚低內(nèi)聚 偶然內(nèi)聚

25、:偶然內(nèi)聚: 為了節(jié)約空間,將毫無(wú)關(guān)系(或聯(lián)系不多)為了節(jié)約空間,將毫無(wú)關(guān)系(或聯(lián)系不多)的各成分放在一個(gè)模塊中。不易理解,不易修改。的各成分放在一個(gè)模塊中。不易理解,不易修改。 邏輯內(nèi)聚:一個(gè)模塊完成的任務(wù)在邏輯上相似。如一個(gè)模邏輯內(nèi)聚:一個(gè)模塊完成的任務(wù)在邏輯上相似。如一個(gè)模塊主要產(chǎn)生各種類型的輸出。塊主要產(chǎn)生各種類型的輸出。 瞬時(shí)內(nèi)聚:模塊中包含的內(nèi)容必須在同一段時(shí)間內(nèi)執(zhí)行。瞬時(shí)內(nèi)聚:模塊中包含的內(nèi)容必須在同一段時(shí)間內(nèi)執(zhí)行。如各種初始化工作。如各種初始化工作。p 中內(nèi)聚中內(nèi)聚 通信內(nèi)聚:模塊中所有元素使用共同的輸入數(shù)據(jù),產(chǎn)生共通信內(nèi)聚:模塊中所有元素使用共同的輸入數(shù)據(jù),產(chǎn)生共同的輸出數(shù)據(jù)

26、。同的輸出數(shù)據(jù)。p 高內(nèi)聚高內(nèi)聚 順序內(nèi)聚:模塊中某個(gè)成分的輸出是另一部分的輸入。順序內(nèi)聚:模塊中某個(gè)成分的輸出是另一部分的輸入。 功能內(nèi)聚:模塊中所有處理元素屬于一個(gè)整體,完成一個(gè)功能內(nèi)聚:模塊中所有處理元素屬于一個(gè)整體,完成一個(gè)單一功能。單一功能。3.4 3.4 結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法 SD(Structured Design)法與法與SA、SP法前后銜接,法前后銜接,是結(jié)構(gòu)化開發(fā)方法的核心。是結(jié)構(gòu)化開發(fā)方法的核心。一、一、SD SD 法的基本概念法的基本概念1. SD SD 法的兩個(gè)階段法的兩個(gè)階段 總體設(shè)計(jì)總體設(shè)計(jì) 任務(wù):任務(wù): 解決系統(tǒng)的模塊結(jié)構(gòu),即分解模塊,解決系統(tǒng)的模塊結(jié)構(gòu)

27、,即分解模塊,確定確定模塊功能模塊功能及系統(tǒng)模塊的層次結(jié)構(gòu)。及系統(tǒng)模塊的層次結(jié)構(gòu)。 文檔:文檔:模塊結(jié)構(gòu)圖及其模塊功能說(shuō)明。模塊結(jié)構(gòu)圖及其模塊功能說(shuō)明。 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 對(duì)模塊圖中每個(gè)模塊的過(guò)程進(jìn)行描述,常用的對(duì)模塊圖中每個(gè)模塊的過(guò)程進(jìn)行描述,常用的描述的方式有:偽代碼、流程圖、描述的方式有:偽代碼、流程圖、N-S圖、圖、PAD圖等。圖等。2.SD 2.SD 法的設(shè)計(jì)步驟法的設(shè)計(jì)步驟 從從DFDDFD(Data Flow DiagramData Flow Diagram )圖導(dǎo)出初始的)圖導(dǎo)出初始的模塊結(jié)構(gòu)圖模塊結(jié)構(gòu)圖SCSC(Structure ChartStructure Chart)。

28、)。 按照按照SDSD法設(shè)計(jì)總則,改進(jìn)模塊結(jié)構(gòu)圖。法設(shè)計(jì)總則,改進(jìn)模塊結(jié)構(gòu)圖。注意:注意:模塊結(jié)構(gòu)圖不同于模塊結(jié)構(gòu)圖不同于“框圖框圖”。軟件軟件層次性層次性 : : 反映軟件整體的性質(zhì)反映軟件整體的性質(zhì) ( (結(jié)構(gòu)圖結(jié)構(gòu)圖) )過(guò)程性過(guò)程性 : : 反映局部的性質(zhì)反映局部的性質(zhì) ( (框圖框圖) )3.3.DFDDFD圖的分類圖的分類 中心變換型中心變換型(transform center) (transform center) 變換分析變換分析 事務(wù)處理型事務(wù)處理型(transaction) (transaction) 事務(wù)分析事務(wù)分析 這類數(shù)據(jù)流圖可看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得這類數(shù)據(jù)流圖

29、可看成是對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理。到輸出數(shù)據(jù)的處理。 DFDDFD圖可以明顯分為圖可以明顯分為 “ “輸入輸入處理處理輸出輸出 ” ”三三部分部分(物理輸入)(物理輸入)(邏輯輸入)(邏輯輸入)(邏輯輸出)(邏輯輸出)輸輸 入入處理處理輸輸 出出(物理輸出)(物理輸出)檢查檢查順序順序檢查檢查合理性合理性擴(kuò)充擴(kuò)充代碼代碼核對(duì)核對(duì) 記錄記錄修改修改壓縮壓縮代碼代碼格式化格式化修改修改數(shù)據(jù)數(shù)據(jù) 舊文件舊文件新文件新文件中心變換型中心變換型 的的 DFD DFD 圖圖 這類數(shù)據(jù)流圖有一個(gè)數(shù)據(jù)處理中心,按加工的結(jié)這類數(shù)據(jù)流圖有一個(gè)數(shù)據(jù)處理中心,按加工的結(jié)果選擇一個(gè)輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理

30、。果選擇一個(gè)輸出數(shù)據(jù)流繼續(xù)執(zhí)行的處理。 如下圖所示:如下圖所示:分類分類報(bào)名報(bào)名付款付款注銷注銷查詢查詢復(fù)審復(fù)審采用采用“事務(wù)分析事務(wù)分析”(transaction Analysis)技術(shù)技術(shù)事務(wù)處理型事務(wù)處理型 的的 DFD 圖圖序號(hào)序號(hào)內(nèi)內(nèi) 容容長(zhǎng)度(字節(jié))長(zhǎng)度(字節(jié))數(shù)據(jù)類型數(shù)據(jù)類型可否修改可否修改1賬號(hào)賬號(hào)5數(shù)字?jǐn)?shù)字否否2戶名戶名30數(shù)字字母數(shù)字字母可可3地址地址30數(shù)字字母數(shù)字字母可可4省省10字母字母可可5市市15字母字母可可6郵政編碼郵政編碼5數(shù)字?jǐn)?shù)字可可7電話電話7數(shù)字?jǐn)?shù)字可可8類型類型1字母字母否否9信貸員號(hào)信貸員號(hào)5數(shù)字?jǐn)?shù)字可可10最近一次業(yè)務(wù)日期最近一次業(yè)務(wù)日期6數(shù)字?jǐn)?shù)字

31、否否11最近一次付息日期最近一次付息日期6數(shù)字?jǐn)?shù)字否否12余額余額8數(shù)字?jǐn)?shù)字否否13業(yè)務(wù)總量業(yè)務(wù)總量8數(shù)字?jǐn)?shù)字否否14限額限額6數(shù)字?jǐn)?shù)字否否 要求對(duì)貸款文件進(jìn)行修改,修改信息由卡片輸入,要求對(duì)貸款文件進(jìn)行修改,修改信息由卡片輸入,卡片上的修改信息格式如下:卡片上的修改信息格式如下: 15位位 69位位 10位起位起 賬號(hào)賬號(hào) 空空 修改值修改值1 1* 修改值修改值2 2* .* (序號(hào))序號(hào)) 分析分析: :1.1. 貸款文件的記錄格式(如前表)貸款文件的記錄格式(如前表)2.2. 修改記錄(卡片)格式修改記錄(卡片)格式3. 3. 需求分析結(jié)果需求分析結(jié)果DFD DFD 圖圖, ,是一種混

32、合的是一種混合的 DFD DFD 圖。圖。修修改改記記錄錄寫寫記記錄錄卡片卡片編編輯輯卡卡片片檢檢查查順順序序檢檢查查次次序序賬賬號(hào)號(hào)相相等等錯(cuò)誤順序卡片順序卡片修改信息修改信息舊記錄舊記錄順序記錄順序記錄要修改要修改的記錄的記錄不修改不修改的記錄的記錄已修改已修改的記錄的記錄新記錄新記錄修修改改分分類類抽抽出出修修改改順序順序卡片卡片修改修改信息信息2345679需求分析結(jié)果需求分析結(jié)果 DFD DFD 圖圖編輯卡片加工分解編輯卡片加工分解主加工是?主加工是?報(bào)告報(bào)告報(bào)告報(bào)告修改信息修改信息順序記錄順序記錄新記錄新記錄將將DFDDFD圖轉(zhuǎn)換為圖轉(zhuǎn)換為模塊結(jié)構(gòu)圖模塊結(jié)構(gòu)圖貸款文件貸款文件管理系

33、統(tǒng)管理系統(tǒng)取順序取順序記錄記錄修改修改記錄記錄打印打印報(bào)告報(bào)告打印打印記錄記錄比較比較賬號(hào)賬號(hào)取修改取修改信息信息讀舊讀舊記錄記錄檢查檢查順序順序取取卡片卡片編輯編輯卡片卡片讀卡片讀卡片檢查順序檢查順序卡片卡片順序卡片舊記錄舊記錄順序記錄順序記錄順序卡片順序卡片已修改“編輯卡片編輯卡片”應(yīng)繼應(yīng)繼續(xù)向下分解,是典續(xù)向下分解,是典型的型的“事務(wù)處理事務(wù)處理”型的型的DFDDFD圖。圖。寫寫記錄記錄修修改改記記錄錄寫寫記記錄錄卡片卡片編編輯輯卡卡片片檢檢查查順順序序檢檢查查次次序序賬賬號(hào)號(hào)相相等等錯(cuò)誤順序卡片順序卡片修改信息修改信息舊記錄舊記錄順序記錄順序記錄要修改要修改的記錄的記錄不修改不修改的記

34、錄的記錄已修改已修改的記錄的記錄新記錄新記錄報(bào)告報(bào)告已編輯卡片 按照按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計(jì)總則進(jìn)行的設(shè)計(jì)總則進(jìn)行修改,完善系統(tǒng)的模塊圖,寫出模塊的功能說(shuō)明。修改,完善系統(tǒng)的模塊圖,寫出模塊的功能說(shuō)明。功能模塊的組成:功能模塊的組成: 執(zhí)行某項(xiàng)任務(wù)的部分執(zhí)行某項(xiàng)任務(wù)的部分 出錯(cuò)處理部分出錯(cuò)處理部分 返回結(jié)束標(biāo)志返回結(jié)束標(biāo)志具體具體從以下方面改進(jìn):從以下方面改進(jìn):1 1)盡可能建立功能模塊)盡可能建立功能模塊功能模塊具有最強(qiáng)的內(nèi)聚性,應(yīng)滿足信息屏蔽原則:功能模塊具有最強(qiáng)的內(nèi)聚性,應(yīng)滿足信息屏蔽原則:一個(gè)模塊內(nèi)所包含的信息(過(guò)程和數(shù)據(jù))對(duì)不需要這些一個(gè)模塊

35、內(nèi)所包含的信息(過(guò)程和數(shù)據(jù))對(duì)不需要這些信息的模塊是不能訪問(wèn)的(黑盒)。信息的模塊是不能訪問(wèn)的(黑盒)。三、三、模塊結(jié)構(gòu)圖的改進(jìn)模塊結(jié)構(gòu)圖的改進(jìn)2 2)消除重復(fù)功能)消除重復(fù)功能 若兩模塊含有重復(fù)的部分,應(yīng)設(shè)法將重復(fù)的功能若兩模塊含有重復(fù)的部分,應(yīng)設(shè)法將重復(fù)的功能消去。消去。(a)XYQ1Q2YQ2QXQ(b)(c)(d)Q重復(fù)部分重復(fù)部分Y YXQ1YQ2X X3 3)模塊的作用范圍應(yīng)與控制范圍)模塊的作用范圍應(yīng)與控制范圍控制范圍控制范圍 結(jié)構(gòu)方面的特點(diǎn),包括模塊及其所有下屬模塊。結(jié)構(gòu)方面的特點(diǎn),包括模塊及其所有下屬模塊。作用范圍作用范圍 判斷所涉及到的模塊,是從功能特點(diǎn)考慮的。判斷所涉及到

36、的模塊,是從功能特點(diǎn)考慮的。SDSD方法認(rèn)為:方法認(rèn)為: 如圖如圖(b)(b)中的設(shè)計(jì),判定的作用范圍恰好在判定所在模塊的下一層。中的設(shè)計(jì),判定的作用范圍恰好在判定所在模塊的下一層。TOPXTBAB1B2圖圖(b)(b)中模塊中模塊TOP TOP 的控制范圍是:的控制范圍是:模塊模塊 TOPTOP、X X、T T、B B、A A、B1B1、B2B2;模塊模塊B B 的控制范圍與作用范圍相同,均為:的控制范圍與作用范圍相同,均為:模塊模塊B B、A A、B1B1、B2B2圖圖(a)(a)中模塊中模塊A A的控制范圍:的控制范圍: A A、B B、C C、D D、G G、E E、F F如果模塊如果

37、模塊F F的判定涉及到模塊的判定涉及到模塊B B、E E、F F。則則F F的的作用范圍:的的作用范圍:B B、E E、F FABCDGEF FBE顯然,圖(顯然,圖(a a)不滿足作用范圍應(yīng)與控制范)不滿足作用范圍應(yīng)與控制范圍的原則,模塊圍的原則,模塊F F的作用范圍不在控制范圍之內(nèi)。的作用范圍不在控制范圍之內(nèi)。圖(圖(b b)中模塊)中模塊TOPTOP和圖(和圖(c c)中模塊)中模塊B B雖然滿雖然滿足上述原則,但其作用范圍所涉及到的模塊不足上述原則,但其作用范圍所涉及到的模塊不是直接的。是直接的。圖(圖(d d)的模塊設(shè)計(jì)最合理。)的模塊設(shè)計(jì)最合理??刂品秶c作用范圍控制范圍與作用范圍

38、舉例舉例TOPABCDEF (a)TOPABCDEF(d)TOPABCDEF(b)TOPABCDEF(c)比較比較(a)(a)、(b)(b)、(c)(c)、(d)4(d)4種設(shè)計(jì)方案的優(yōu)劣!種設(shè)計(jì)方案的優(yōu)劣!4 4)模塊的大小適當(dāng))模塊的大小適當(dāng) 模塊大小指其篇幅,一般模塊大小為模塊大小指其篇幅,一般模塊大小為50-10050-100行行為宜。為宜。5 5)模塊的扇入)模塊的扇入/ /扇出數(shù)不宜太多扇出數(shù)不宜太多 扇出數(shù)扇出數(shù) 一個(gè)模塊調(diào)用其他模塊的個(gè)數(shù)。一個(gè)模塊調(diào)用其他模塊的個(gè)數(shù)。 扇入數(shù)扇入數(shù) 一個(gè)模塊被其他模塊調(diào)用的個(gè)數(shù)。一個(gè)模塊被其他模塊調(diào)用的個(gè)數(shù)。 除服務(wù)性模塊外,模塊的扇入扇出數(shù)不

39、宜太多除服務(wù)性模塊外,模塊的扇入扇出數(shù)不宜太多,否則塊間聯(lián)系增加。,否則塊間聯(lián)系增加。一、任務(wù)一、任務(wù) 確定每個(gè)模塊的算法;確定每一個(gè)模塊的數(shù)據(jù)組織;為每個(gè)確定每個(gè)模塊的算法;確定每一個(gè)模塊的數(shù)據(jù)組織;為每個(gè)模塊設(shè)計(jì)一組測(cè)試用例;編寫詳細(xì)設(shè)計(jì)說(shuō)明書。模塊設(shè)計(jì)一組測(cè)試用例;編寫詳細(xì)設(shè)計(jì)說(shuō)明書。二、詳細(xì)設(shè)計(jì)的原則二、詳細(xì)設(shè)計(jì)的原則 1. 模塊的邏輯描述正確可靠、清晰易讀模塊的邏輯描述正確可靠、清晰易讀 2. 采用結(jié)構(gòu)化程序設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序復(fù)雜采用結(jié)構(gòu)化程序設(shè)計(jì)方法,改善控制結(jié)構(gòu),降低程序復(fù)雜度,提高程序的可讀性、可測(cè)試性和可維護(hù)性度,提高程序的可讀性、可測(cè)試性和可維護(hù)性三、常用的描

40、述方法工具三、常用的描述方法工具 1. 流程圖流程圖 2. 結(jié)構(gòu)化流程圖(結(jié)構(gòu)化流程圖(N-S圖)圖) 3. PAD圖問(wèn)題分析圖圖問(wèn)題分析圖 4. PDL 語(yǔ)言語(yǔ)言3.5 3.5 詳細(xì)設(shè)計(jì)描述工具詳細(xì)設(shè)計(jì)描述工具程序流程圖程序流程圖abX1X2X7X6X4X3X5higfedcjFTFFFTTT多分支選多分支選擇結(jié)構(gòu)擇結(jié)構(gòu)先判定型循先判定型循環(huán)結(jié)構(gòu)環(huán)結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)結(jié)構(gòu)化流程圖(結(jié)構(gòu)化流程圖(N-S圖)圖)由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成。由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成。順序結(jié)構(gòu)順序結(jié)構(gòu)塊塊1塊塊2塊塊3塊塊4條件條件T F塊塊1塊塊2選擇結(jié)構(gòu)選擇結(jié)構(gòu)

41、Case I=1,2,3T塊塊1塊塊2多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)F塊塊3塊塊當(dāng)條件成立時(shí)當(dāng)條件成立時(shí)當(dāng)型循環(huán)當(dāng)型循環(huán)塊塊直到條件成立時(shí)直到條件成立時(shí)直到型循環(huán)直到型循環(huán)結(jié)構(gòu)化流程圖(結(jié)構(gòu)化流程圖(N-S圖)圖)ab條條 件件 1TF Case Xi, i=2,3,4X2X3X4當(dāng)條件當(dāng)條件3成立成立條條 件件 2直到條件直到條件4成立成立直直 到到 條條 件件 成立成立cdefghij順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)FTTFPADPAD圖圖問(wèn)題分析圖(問(wèn)題分析圖(Problem Analysis Di

42、agramProblem Analysis Diagram)其基本控制結(jié)構(gòu)如下:其基本控制結(jié)構(gòu)如下:條件條件then部分部分else部分部分選擇結(jié)構(gòu)選擇結(jié)構(gòu)TF任務(wù)任務(wù)1任務(wù)任務(wù)2任務(wù)任務(wù)3 順序結(jié)構(gòu)順序結(jié)構(gòu)WHILE型條件型條件循環(huán)體循環(huán)體先判定型循環(huán)結(jié)構(gòu)先判定型循環(huán)結(jié)構(gòu)UNTIL型條件型條件循環(huán)體循環(huán)體后判定型循環(huán)結(jié)構(gòu)后判定型循環(huán)結(jié)構(gòu)控控制制變變量量 任務(wù)任務(wù)1任務(wù)任務(wù)2任務(wù)任務(wù)n多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)值值 1值值 2值值 n PDL (ProcedureDesign Language) PDL是一種用于描述功能模塊的算法設(shè)計(jì)和加是一種用于描述功能模塊的算法設(shè)計(jì)和加工細(xì)節(jié)的語(yǔ)言,稱為

43、設(shè)計(jì)程序用語(yǔ)言,它是一工細(xì)節(jié)的語(yǔ)言,稱為設(shè)計(jì)程序用語(yǔ)言,它是一種偽碼種偽碼 偽碼的語(yǔ)法規(guī)則分偽碼的語(yǔ)法規(guī)則分“外語(yǔ)法外語(yǔ)法”和和“內(nèi)語(yǔ)法內(nèi)語(yǔ)法” PDL具有嚴(yán)格的關(guān)鍵字外語(yǔ)法,用于定義控制具有嚴(yán)格的關(guān)鍵字外語(yǔ)法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu) PDL具有靈活自由的內(nèi)語(yǔ)法,實(shí)際操作和條件具有靈活自由的內(nèi)語(yǔ)法,實(shí)際操作和條件的可使用自然語(yǔ)言的詞匯的可使用自然語(yǔ)言的詞匯 隨著各種應(yīng)用軟件的面市,作為人機(jī)接口的用戶隨著各種應(yīng)用軟件的面市,作為人機(jī)接口的用戶界面具有越來(lái)越重要的作用,用戶界面是否友好直接界面具有越來(lái)越重要的作用,用戶界面是否友好直接影響到軟件的壽命與競(jìng)爭(zhēng)力。因此,對(duì)用戶界面的設(shè)

44、影響到軟件的壽命與競(jìng)爭(zhēng)力。因此,對(duì)用戶界面的設(shè)計(jì)必須予以足夠的重視。計(jì)必須予以足夠的重視。3.6 3.6 用戶界面設(shè)計(jì)用戶界面設(shè)計(jì) 用戶界面設(shè)計(jì)中的主要問(wèn)題用戶界面設(shè)計(jì)中的主要問(wèn)題 什么是友好的用戶界面。什么是友好的用戶界面。 用戶界面設(shè)計(jì)應(yīng)該完成的工用戶界面設(shè)計(jì)應(yīng)該完成的工作。作。總之,用戶界面設(shè)計(jì)要以人為本。總之,用戶界面設(shè)計(jì)要以人為本。用戶界面設(shè)計(jì)迭代過(guò)程用戶界面設(shè)計(jì)迭代過(guò)程分析和理解分析和理解用戶活動(dòng)用戶活動(dòng)在紙上設(shè)計(jì)在紙上設(shè)計(jì)原型原型與最終用戶與最終用戶一起評(píng)價(jià)一起評(píng)價(jià)設(shè)計(jì)原型設(shè)計(jì)原型產(chǎn)生動(dòng)態(tài)產(chǎn)生動(dòng)態(tài)設(shè)計(jì)原型設(shè)計(jì)原型與最終用戶與最終用戶一起評(píng)價(jià)一起評(píng)價(jià)實(shí)現(xiàn)最終的實(shí)現(xiàn)最終的用戶界面用戶

45、界面可執(zhí)行原型可執(zhí)行原型 1 1、可使用性、可使用性 使用簡(jiǎn)單。使用簡(jiǎn)單。 用戶界面中所用術(shù)語(yǔ)的標(biāo)準(zhǔn)化和一致性。用戶界面中所用術(shù)語(yǔ)的標(biāo)準(zhǔn)化和一致性。 具有具有HELPHELP功能。功能。 快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本。快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本。 具有容錯(cuò)能力。具有容錯(cuò)能力。 2 2、靈活性、靈活性 考慮用戶的特點(diǎn)、能力、知識(shí)水平??紤]用戶的特點(diǎn)、能力、知識(shí)水平。 提供不同的系統(tǒng)響應(yīng)信息。提供不同的系統(tǒng)響應(yīng)信息。 提供根據(jù)用戶需求制定和修改界面。提供根據(jù)用戶需求制定和修改界面。 3 3、界面的復(fù)雜性與可靠性、界面的復(fù)雜性與可靠性 復(fù)雜性復(fù)雜性界面規(guī)模及組織的復(fù)雜程度。應(yīng)該愈簡(jiǎn)單愈好。界面規(guī)模

46、及組織的復(fù)雜程度。應(yīng)該愈簡(jiǎn)單愈好。 可靠性可靠性指無(wú)故障使用的時(shí)間間隔。用戶界面應(yīng)該能夠保指無(wú)故障使用的時(shí)間間隔。用戶界面應(yīng)該能夠保 證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。 了解所有用戶的技能和經(jīng)驗(yàn),針對(duì)用戶能力設(shè)計(jì)或更改界面。從以了解所有用戶的技能和經(jīng)驗(yàn),針對(duì)用戶能力設(shè)計(jì)或更改界面。從以下方面分析:下方面分析: 用戶類型用戶類型 通常分為:外行型、初學(xué)型、熟練型、專家型。通常分為:外行型、初學(xué)型、熟練型、專家型。 用戶特性度量用戶特性度量 與用戶使用模式和用戶群體能力有關(guān)。與用戶使用模式和用戶群體能力有關(guān)。 包括:用戶使用頻度、用戶用

47、機(jī)能力、用戶的知識(shí)、思維能力等。包括:用戶使用頻度、用戶用機(jī)能力、用戶的知識(shí)、思維能力等。這部分工作應(yīng)該與軟件需求分析同步進(jìn)行。包括以下內(nèi)容:這部分工作應(yīng)該與軟件需求分析同步進(jìn)行。包括以下內(nèi)容: 是對(duì)系統(tǒng)內(nèi)部活動(dòng)的分解,不僅要進(jìn)行功能分解(用是對(duì)系統(tǒng)內(nèi)部活動(dòng)的分解,不僅要進(jìn)行功能分解(用DFDDFD圖描述),圖描述),還要包括與人相關(guān)的活動(dòng)。每個(gè)加工即一個(gè)功能或任務(wù)。還要包括與人相關(guān)的活動(dòng)。每個(gè)加工即一個(gè)功能或任務(wù)。 1.可視性和可支付性可視性和可支付性(Visibility and Affordance)。 2.努力保持命令、菜單。顏色等統(tǒng)一(努力保持命令、菜單。顏色等統(tǒng)一(Strive for Consistency)。)。 3.為頻繁使用的用戶提供快捷方式(為頻繁使用的用戶提供快捷方式(Enable Frequent Users to Use Short Cuts)。)。 4.提供信息反饋(提供信息反饋(Offer Information Feedback)。)。 5.提供簡(jiǎn)單的錯(cuò)誤處理(提供簡(jiǎn)單的錯(cuò)誤處理(Offer Simple Error Handling)。)。 6.允許方便地進(jìn)行操作回滾(允許方便地進(jìn)行操作回滾(Permit Easy Reversal of Actions)。)。 7.降低短期記憶(降低短期記憶(Reduce Short-Term Memory

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論