




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 第4章 結(jié)構(gòu)化軟件設(shè)計(jì)6學(xué)時(shí)武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 引言 設(shè)計(jì)人員把分析的結(jié)果設(shè)計(jì)圖紙 程序員拿著設(shè)計(jì)圖紙編寫代碼名字:讀者信息編號(hào):DS01描述:記錄讀者的基本信息定義:讀者信息= 姓名 + 單位 +讀者類型 + 職稱 + 電話位置:數(shù)據(jù)庫的讀者信息表 模塊模塊 1 1 模塊模塊 2 2 模塊模塊 3 3 模塊模塊4 4 模塊模塊 5 5 模塊模塊 6 6 輸入處理說明輸出讀者輸入讀者DS102備注:需求規(guī)格說明書概要設(shè)計(jì)概要設(shè)計(jì)設(shè)計(jì)圖紙?jiān)O(shè)計(jì)圖紙-軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖模塊模塊4設(shè)計(jì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)
2、設(shè)計(jì)需求分析成果武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 第4章 結(jié)構(gòu)化軟件設(shè)計(jì) 1)結(jié)構(gòu)化設(shè)計(jì)的基本概念2)方法和步驟2)詳細(xì)設(shè)計(jì)的方法。3)軟件設(shè)計(jì)的原則。4)影響軟件設(shè)計(jì)的主要因素。掌握掌握 掌握理解了解要求要求武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 通過軟件設(shè)計(jì)將用戶的需求變?yōu)閷?shí)現(xiàn)軟件的“藍(lán)圖”。藍(lán)圖只描述軟件的整體框架,也叫做概要設(shè)計(jì)。概要設(shè)計(jì)之后,就要對(duì)軟件進(jìn)行詳細(xì)設(shè)計(jì),通過對(duì)軟件設(shè)計(jì)的不斷細(xì)化,形成一個(gè)可以實(shí)施的設(shè)計(jì)方案。o 軟件設(shè)計(jì)的最終目標(biāo)是要取得最佳方案?!白罴选笔侵冈谒泻蜻x方案中,能夠以最低的成本,在最短的時(shí)間內(nèi),生產(chǎn)出可靠性和
3、可維護(hù)性俱佳軟件的方案。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1 軟件設(shè)計(jì)的概念4.1.1模塊和模塊化o 一般把用一個(gè)名字就可調(diào)用的一段程序稱為“模塊”。模塊具有如下三個(gè)基本屬性。n 功能:指該模塊要完成的任務(wù)。n 邏輯:模塊內(nèi)部執(zhí)行過程。n 狀態(tài):使用該模塊時(shí)的環(huán)境和條件。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.1模塊和模塊化(續(xù))o 把整個(gè)系統(tǒng)劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,將多個(gè)模塊組織起來實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。o 模塊化設(shè)計(jì)方法強(qiáng)調(diào)清楚地定義每個(gè)模塊的功能和它的輸入/輸出參數(shù),而模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏在各自的模塊之中,與其它模塊
4、之間的關(guān)系可以是調(diào)用關(guān)系,因此模塊化程序易于調(diào)試和修改。o 隨著模塊規(guī)模的減小,模塊的開發(fā)成本減少,但是模塊之間的接口變得復(fù)雜起來,使得模塊的集成成本增加。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.2內(nèi)聚和耦合內(nèi)聚和耦合o 在軟件設(shè)計(jì)中應(yīng)該保持模塊的獨(dú)立性原則。反映模塊獨(dú)立性的有兩個(gè)標(biāo)準(zhǔn):內(nèi)聚和耦合。n 內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度n 耦合衡量模塊之間彼此依賴的程度。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.2內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))o 模塊間相互關(guān)聯(lián)的程度取決于下面幾點(diǎn):n 一個(gè)模塊對(duì)另一個(gè)模塊的訪問,比如模塊A可
5、能要調(diào)用模塊B來完成一個(gè)功能。n 模塊間傳遞的數(shù)據(jù)量。n 模塊間接口的復(fù)雜程度。Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 7種耦合的獨(dú)立性內(nèi)容耦合公共耦合外部耦合控制耦合數(shù)據(jù)結(jié)構(gòu)耦合數(shù)據(jù)耦合非直接耦合模塊獨(dú)立性模塊耦合性低高弱強(qiáng)武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.2內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))內(nèi)容耦合:如果一個(gè)模內(nèi)容耦合:如果一個(gè)模塊直接引用另一個(gè)模塊塊直接引用另一個(gè)模塊的內(nèi)容。的內(nèi)容。例例1
6、:A訪問訪問C的內(nèi)部數(shù)的內(nèi)部數(shù)據(jù)或不通過正常入據(jù)或不通過正常入口而轉(zhuǎn)入口而轉(zhuǎn)入C的內(nèi)部。的內(nèi)部。ABCDA:goto C1C:C1: 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 公共耦合公共耦合多個(gè)模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則稱它們是公共耦合。 問題:公共部分的改動(dòng)將影響所有調(diào)用它的模塊;問題:公共部分的改動(dòng)將影響所有調(diào)用它的模塊;公共部分的數(shù)據(jù)存取無法控制;公共部分的數(shù)據(jù)存取無法控制;復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加Global:V1, V2A:A1=V1+V2B:V1=B1Global:V1,V2A:V1+B:V2=B1+V1武當(dāng)山武
7、當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 控制耦合控制耦合模塊A向模塊B傳遞一個(gè)控制信息,稱這兩個(gè)模塊是控制耦合的。 o B模塊的具體功能取決于控制信息FlagABFlagF2F1FnFlag武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 數(shù)據(jù)耦合數(shù)據(jù)耦合如果兩個(gè)模塊傳遞的是數(shù)據(jù)項(xiàng),則這兩個(gè)模塊是數(shù)據(jù)耦合。A模塊B模塊參數(shù)武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度7種內(nèi)聚的獨(dú)立性武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門
8、戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o通信內(nèi)聚通信內(nèi)聚:一個(gè)模塊內(nèi)各功能部分一個(gè)模塊內(nèi)各功能部分都針對(duì)相同輸入都針對(duì)相同輸入/輸出數(shù)據(jù)進(jìn)行處輸出數(shù)據(jù)進(jìn)行處理。理。內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 過程內(nèi)聚:過程內(nèi)聚:模塊執(zhí)行的若干動(dòng)作,相互關(guān)聯(lián)并且有順模塊執(zhí)行的若干動(dòng)作,相互關(guān)聯(lián)并且有順序關(guān)系。例如,從錄入界面讀取數(shù)據(jù),然后更新數(shù)據(jù)序關(guān)系。例如,從錄入界面讀取數(shù)據(jù),然后更新數(shù)據(jù)庫記錄。它仍然是將多個(gè)相關(guān)的功能放在一個(gè)模塊中庫記錄。它仍然
9、是將多個(gè)相關(guān)的功能放在一個(gè)模塊中實(shí)現(xiàn)。實(shí)現(xiàn)。內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o時(shí)間內(nèi)聚:時(shí)間內(nèi)聚:模塊的各個(gè)功能的執(zhí)模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。例能必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。如初始化模塊和終止模塊。內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 邏輯內(nèi)聚:邏輯內(nèi)聚:一個(gè)模塊一個(gè)模塊完成的任務(wù)在邏輯上完成的任務(wù)在邏輯上相同相同/相似。相似。A:讀磁盤讀磁盤讀磁帶讀磁帶讀光盤讀光盤from dis
10、kfrom tapefrom 內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 巧合內(nèi)聚又稱為偶巧合內(nèi)聚又稱為偶然內(nèi)聚。當(dāng)模塊內(nèi)然內(nèi)聚。當(dāng)模塊內(nèi)各部分之間沒有聯(lián)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系,這種聯(lián) 系也系也很松散。很松散。內(nèi)聚和耦合(續(xù))內(nèi)聚和耦合(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.3抽象o 所謂抽象就是將事務(wù)的相似方面集中和概括起來,暫時(shí)忽略它們之間的差異?;蛘哒f,抽象就是抽出事務(wù)的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。o 在最高的抽象層次上,用自然語言,配合面向問題的專業(yè)術(shù)語,概括
11、地描述問題的解法。o 在中間的抽象層次上,采用過程化的描述方法。o 在最底層,使用能夠直接實(shí)現(xiàn)的方式來描述問題的解。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.4信息隱藏o 核心內(nèi)容是:一個(gè)模塊中所包含的信息,不允許其他不需要這些信息的模塊訪問。o 模塊化可以通過定義一組相互獨(dú)立的模塊來實(shí)現(xiàn),這些獨(dú)立的模塊彼此間僅僅交換那些為完成相應(yīng)功能而必須交換的信息。o 信息隱蔽對(duì)模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)進(jìn)行了屏蔽。o 在設(shè)計(jì)模塊時(shí)采取信息隱藏,使得大多數(shù)處理細(xì)節(jié)對(duì)軟件的其他部分是隱蔽的。在將來修改軟件時(shí)偶然引入錯(cuò)誤所造成的影響就可以局限在一個(gè)或幾個(gè)模塊內(nèi)部,不至于波及到軟件其
12、他部分。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.1.5軟件結(jié)構(gòu)圖o Yourdon提出的軟件結(jié)構(gòu)圖非常適合表示軟件的結(jié)構(gòu)。圖中的每個(gè)方框代表一個(gè)模塊,框內(nèi)注明模塊的名稱、主要功能,方框之間的箭頭線表示模塊間的調(diào)用關(guān)系。o 結(jié)構(gòu)圖中還可以標(biāo)注模塊之間傳遞的數(shù)據(jù)和控制信息。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 結(jié)構(gòu)圖說明o 模塊的名字應(yīng)當(dāng)能夠反映該模塊的功能,如:查詢。o 模塊的調(diào)用關(guān)系和接口:兩個(gè)模塊之間用單向箭頭連接。箭頭從調(diào)用模塊指向被調(diào)用模塊,當(dāng)被調(diào)用模塊執(zhí)行結(jié)束后,控制又返回到調(diào)用模塊。o 模塊間的信息傳遞:當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí),調(diào)用模
13、塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運(yùn)行。被調(diào)用模塊執(zhí)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊。為了區(qū)別在模塊之間傳遞的是數(shù)據(jù)還是控制信息,用 表示數(shù)據(jù)信息,用 表示控制信息。通常在短箭頭附近注有信息的名字。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 結(jié)構(gòu)圖說明(續(xù))o 兩個(gè)輔助符號(hào):用符號(hào)表示一個(gè)模塊有條件地調(diào)用另一個(gè)模塊;用符號(hào)表示模塊循環(huán)調(diào)用它的各下屬模塊。圖中模塊A下加一個(gè)菱形表示控制模塊A按條件選擇調(diào)用模塊B、模塊C、模塊D。ACBDACBD武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 結(jié)構(gòu)圖說明(續(xù))o 結(jié)構(gòu)圖的形態(tài)特征:上層
14、模塊調(diào)用下層模塊,模塊自上而下“主宰”,自下而上“從屬”。同一層的模塊之間并沒有這種主從關(guān)系。o 結(jié)構(gòu)圖的深度:在多層次的結(jié)構(gòu)圖中,模塊結(jié)構(gòu)的層數(shù)稱為該結(jié)構(gòu)圖的深度。下面結(jié)構(gòu)圖的深度為7。結(jié)構(gòu)圖的深度在一定意義上反映了程序結(jié)構(gòu)的規(guī)模和復(fù)雜程度。對(duì)于中等規(guī)模的程序,結(jié)構(gòu)圖的深度約為10左右。對(duì)于一個(gè)大型程序,深度可以有幾十層。o 結(jié)構(gòu)圖的寬度:結(jié)構(gòu)圖中模塊數(shù)最多的那層的模塊個(gè)數(shù)稱為結(jié)構(gòu)圖的寬度,下圖的寬度為6。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 結(jié)構(gòu)圖說明(續(xù))o 模塊的扇入和扇出:扇出表示一個(gè)模塊直接調(diào)用的其他模塊數(shù)目。扇入則定義為調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)。多扇出意味
15、著需要控制和協(xié)調(diào)許多下屬模塊。而多扇入的模塊通常是公用模塊。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.2軟件設(shè)計(jì)軟件設(shè)計(jì)原則原則和影響設(shè)計(jì)的因素和影響設(shè)計(jì)的因素o設(shè)計(jì)可回溯到需求。軟件設(shè)計(jì)中的每個(gè)元素都可以對(duì)應(yīng)到需求,保證設(shè)計(jì)使用戶需要的。o充分利用已有的模塊。一個(gè)復(fù)雜的軟件通常是由一系列模塊組成,很多模塊可能在以前的系統(tǒng)中已經(jīng)開發(fā)過了,如果這些模塊設(shè)計(jì)得好,具有良好的可復(fù)用性,那么在設(shè)計(jì)新軟件時(shí)應(yīng)該盡可能使用已有的模塊。o軟件模塊之間應(yīng)該遵循高內(nèi)聚、低耦合和信息隱藏的設(shè)計(jì)原則。o設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和規(guī)范性。在設(shè)計(jì)開始之前,設(shè)計(jì)小組應(yīng)該定義設(shè)計(jì)風(fēng)格和設(shè)計(jì)規(guī)范,保證不同的
16、設(shè)計(jì)人員設(shè)計(jì)出風(fēng)格一致的軟件。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 軟件設(shè)計(jì)軟件設(shè)計(jì)原則原則和影響設(shè)計(jì)的因素(續(xù))和影響設(shè)計(jì)的因素(續(xù))o 容錯(cuò)性設(shè)計(jì)。不管多么完善的軟件都可能有潛在的問題,所以設(shè)計(jì)人員應(yīng)該為軟件進(jìn)行容錯(cuò)性設(shè)計(jì),當(dāng)軟件遇到異常數(shù)據(jù)、事件或操作時(shí),軟件不至于徹底崩潰。o 設(shè)計(jì)的粒度要適當(dāng)。設(shè)計(jì)不是編碼,即使在詳細(xì)設(shè)計(jì)階段,設(shè)計(jì)模型的抽象級(jí)別也比源代碼要高,它涉及的是模塊內(nèi)部的實(shí)現(xiàn)算法和數(shù)據(jù)結(jié)構(gòu)。因此,不要用具體的程序代碼取代設(shè)計(jì)。o 在設(shè)計(jì)時(shí)就要開始評(píng)估軟件的質(zhì)量。軟件的質(zhì)量屬性需要在設(shè)計(jì)時(shí)考慮如何實(shí)現(xiàn),不要等全部設(shè)計(jì)結(jié)束之后再考慮軟件的質(zhì)量。武當(dāng)山武當(dāng)山旅
17、游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 軟件設(shè)計(jì)原則和軟件設(shè)計(jì)原則和影響設(shè)計(jì)的因素影響設(shè)計(jì)的因素(續(xù))(續(xù))o 由多人共同設(shè)計(jì)一個(gè)軟件時(shí)的協(xié)調(diào)問題;o 設(shè)計(jì)人員的設(shè)計(jì)經(jīng)驗(yàn)、理解力和喜好的差別;o 一致的設(shè)計(jì)規(guī)范約束;o 設(shè)計(jì)者的文化背景、信仰、價(jià)值觀等其他方面的問題,這些都是影響軟件設(shè)計(jì)的因素。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.3 結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法o 結(jié)構(gòu)化設(shè)計(jì)方法通常也叫做面向數(shù)據(jù)流的設(shè)計(jì)或面向過程的設(shè)計(jì)。o 結(jié)構(gòu)化設(shè)計(jì)是基于模塊化的、自頂向下、逐步求精等技術(shù)基礎(chǔ)上的設(shè)計(jì)方法。o 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析和結(jié)構(gòu)化編程方法前后呼應(yīng),形成了統(tǒng)一、完整
18、的系列化方法。o 結(jié)構(gòu)化設(shè)計(jì)方法以需求分析階段獲得的數(shù)據(jù)流程圖為基礎(chǔ),通過一系列映射,把數(shù)據(jù)流程圖變換為軟件結(jié)構(gòu)圖。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 結(jié)構(gòu)化設(shè)計(jì)方法4步驟1)分析數(shù)據(jù)流的類型。數(shù)據(jù)流的類型有變換型和事)分析數(shù)據(jù)流的類型。數(shù)據(jù)流的類型有變換型和事務(wù)型兩種,不同類型的數(shù)據(jù)流程圖映射的軟件結(jié)務(wù)型兩種,不同類型的數(shù)據(jù)流程圖映射的軟件結(jié)構(gòu)有所不同。構(gòu)有所不同。2)將數(shù)據(jù)流程圖映射為程序結(jié)構(gòu)圖。)將數(shù)據(jù)流程圖映射為程序結(jié)構(gòu)圖。3)優(yōu)化設(shè)計(jì)結(jié)構(gòu)。)優(yōu)化設(shè)計(jì)結(jié)構(gòu)。4)評(píng)審軟件結(jié)構(gòu)。)評(píng)審軟件結(jié)構(gòu)。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 變換型數(shù)據(jù)
19、流o 在變換型的數(shù)據(jù)流程圖上劃分邏輯輸入、中心變換、邏輯輸出的邊界; 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 變換型數(shù)據(jù)流程軟件結(jié)構(gòu)圖1)重畫數(shù)據(jù)流程圖,重畫數(shù)據(jù)流程圖應(yīng)注意以下幾個(gè)要點(diǎn):n 從物理輸入到物理輸出。n 當(dāng)數(shù)據(jù)流進(jìn)入和離開一個(gè)處理時(shí),要仔細(xì)地標(biāo)記它們,不要重名。n 數(shù)據(jù)流程圖中的數(shù)據(jù)存儲(chǔ)先略去,造成的數(shù)據(jù)開鏈視為數(shù)據(jù)的物理輸入或輸出。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 2)在數(shù)據(jù)流程圖上區(qū)分系統(tǒng)的邏輯輸入、邏輯輸出和中心變換部分。n從數(shù)據(jù)流程圖的物理輸入端開始,向系統(tǒng)的中間移動(dòng),一直到某個(gè)數(shù)據(jù)流不再被看作是系統(tǒng)的輸入為止,這個(gè)數(shù)據(jù)流的前
20、一個(gè)數(shù)據(jù)流就是系統(tǒng)的邏輯輸入。從物理輸入端到邏輯輸入,構(gòu)成軟件的輸入部分。n同理從物理輸出端開始,向系統(tǒng)的中間移動(dòng),就可以找到軟件的邏輯輸出。n在輸入部分和輸出部分之間的就是中心變換部分。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 3)設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第1層。n 設(shè)計(jì)一個(gè)主模塊,并用系統(tǒng)的名字為它命名,做為系統(tǒng)的頂層。n 第1層:為每個(gè)邏輯輸入設(shè)計(jì)一個(gè)輸入模塊,它的功能是為主模塊提供數(shù)據(jù);為每一個(gè)邏輯輸出設(shè)計(jì)一個(gè)輸出模塊,它的功能是將主模塊提供的數(shù)據(jù)輸出;為中心變換設(shè)計(jì)一個(gè)變換模塊,它的功能是將邏輯輸入轉(zhuǎn)換成邏輯輸出。n 主模塊控制和協(xié)調(diào)第1層的輸入模塊、變換模塊和輸出模
21、塊的工作。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4)設(shè)計(jì)軟件結(jié)構(gòu)的下層結(jié)構(gòu)。n每個(gè)邏輯輸入模塊有兩個(gè)下屬模塊:一個(gè)接收數(shù)據(jù);另一個(gè)把數(shù)據(jù)變換成上級(jí)模塊所需要的數(shù)據(jù)格式。而接收數(shù)據(jù)模塊又是輸入模塊,又要重復(fù)上述工作。如此循環(huán)下去,直到輸入模塊已經(jīng)涉及到物理輸入端為止。n同樣,每個(gè)邏輯輸出模塊有兩個(gè)下屬模塊:一個(gè)是將上級(jí)模塊提供的數(shù)據(jù)變換成輸出的形式;另一個(gè)是將它們輸出。對(duì)于每一個(gè)邏輯輸出,在數(shù)據(jù)流程圖上向物理輸出端方向移動(dòng),遇到物理輸出為止。n設(shè)計(jì)中心變換模塊的下層模塊沒有通用的方法,一般應(yīng)參照數(shù)據(jù)流程圖的中心變換部分和功能分解的原則來考慮如何對(duì)中心變換模塊進(jìn)行分解。武當(dāng)山
22、武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 轉(zhuǎn)換后的初始軟件結(jié)構(gòu)圖武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 事務(wù)型數(shù)據(jù)流o 在事務(wù)型流程圖上劃分接收分支和發(fā)送分支的邊界,見右圖。o 注意:兩種類型的數(shù)據(jù)流有時(shí)會(huì)同時(shí)出現(xiàn)在一個(gè)流程圖中,例如右圖中的路徑L是變換型數(shù)據(jù)流。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 事務(wù)型數(shù)據(jù)流程軟件結(jié)構(gòu)圖1)重畫數(shù)據(jù)流程圖,重畫數(shù)據(jù)流程圖應(yīng)注意以下幾個(gè)要點(diǎn):n 從物理輸入到物理輸出。n 當(dāng)數(shù)據(jù)流進(jìn)入和離開一個(gè)處理時(shí),要仔細(xì)地標(biāo)記它們,不要重名。n 數(shù)據(jù)流程圖中的數(shù)據(jù)存儲(chǔ)先略去,造成的數(shù)據(jù)開鏈視為數(shù)據(jù)的物理輸入或輸出。武當(dāng)
23、山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 2)標(biāo)識(shí)事務(wù)中心、事務(wù)接收路徑和事務(wù)處理路徑。n通常事務(wù)中心位于幾條處理路徑的起點(diǎn),從數(shù)據(jù)流程圖上很容易標(biāo)識(shí)出來,因?yàn)槭聞?wù)處理中心一般會(huì)有“發(fā)射中心”的特征。例如,上圖中的“判斷命令”處理就是一個(gè)事務(wù)中心,它有三條發(fā)射路徑。n事務(wù)中心前面的部分叫做接收路徑,發(fā)射中心后面各條發(fā)散路徑叫做事務(wù)處理路徑。對(duì)于每條處理路徑來講,還應(yīng)該確定它們自己的流特征。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 3)設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第1層。n 軟件結(jié)構(gòu)圖的頂層是系統(tǒng)的事務(wù)控制模塊。n 第1層是由事務(wù)流輸入分支和事務(wù)分類處理分支映射得到的程序
24、結(jié)構(gòu)。也就是說,第1層通常是由兩部分組成:取得事務(wù)和處理事務(wù)。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4)設(shè)計(jì)軟件結(jié)構(gòu)的下層結(jié)構(gòu)。n設(shè)計(jì)事務(wù)流輸入分支的方法與變換分析中輸入流的設(shè)計(jì)方法類似,從事務(wù)中心變換開始,沿輸入路徑向物理輸入端移動(dòng)。每個(gè)接收數(shù)據(jù)模塊的功能是向調(diào)用它的上級(jí)模塊提供數(shù)據(jù),它需要有兩個(gè)下屬模塊:一個(gè)接收數(shù)據(jù);另一個(gè)把這些數(shù)據(jù)變換成它的上級(jí)模塊所需要的數(shù)據(jù)格式。接收數(shù)據(jù)模塊又是輸入模塊,也要重復(fù)上述工作。如此循環(huán)下去,直到輸入模塊已經(jīng)涉及到物理輸入端為止。n事務(wù)處理分支結(jié)構(gòu)映射成一個(gè)分類控制模塊,它控制下層的處理模塊。對(duì)每個(gè)事務(wù)建立一個(gè)事務(wù)處理模塊。如果發(fā)現(xiàn)
25、在系統(tǒng)中有類似的事務(wù),就可以把這些類似的事務(wù)組織成一個(gè)公共事務(wù)處理模塊。但是,如果組合后的模塊是低內(nèi)聚的,則應(yīng)該重新考慮組合問題 。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 轉(zhuǎn)換后的初始軟件結(jié)構(gòu)圖武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì) o 數(shù)據(jù)流程圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖,應(yīng)該對(duì)軟件結(jié)構(gòu)圖進(jìn)行優(yōu)化。使其符合高內(nèi)聚低耦合的、模塊化、信息隱藏的原則。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則一:模塊功能完善化。一個(gè)完整的功能模塊,不僅能夠完成指定的功能,而且還應(yīng)當(dāng)能夠向調(diào)用者返回完成任
26、務(wù)的狀態(tài),以及失敗的原因。因此要求功能模塊除了應(yīng)該執(zhí)行規(guī)定的功能外,還應(yīng)該具有出錯(cuò)處理的內(nèi)容,當(dāng)模塊不能完成規(guī)定的功能時(shí),必須回送出錯(cuò)標(biāo)志,向它的調(diào)用者報(bào)告失敗的原因。如果模塊正確結(jié)束,應(yīng)該返回正確結(jié)束的標(biāo)志。上述所有內(nèi)容,都應(yīng)當(dāng)看做是一個(gè)模塊的有機(jī)組成部分,不應(yīng)分離到其他模塊中去,否則將會(huì)增大模塊間的耦合程度。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則二:設(shè)計(jì)功能單一和結(jié)果可預(yù)測的模塊。一個(gè)功能單一和結(jié)果可預(yù)測的模塊可以被看成是一個(gè)“黑箱”,不論內(nèi)部處理細(xì)節(jié)如何,對(duì)于相同的輸入數(shù)據(jù),總能產(chǎn)生同樣的結(jié)果。但是,如果模塊內(nèi)部蘊(yùn)藏有一些特殊的
27、鮮為人知的功能時(shí),其模塊的結(jié)果可能無法預(yù)測。例如,如果在模塊內(nèi)部有一個(gè)局部控制變量,在運(yùn)行過程中模塊的處理由這個(gè)控制變量確定,由于這個(gè)局部控制變量對(duì)于調(diào)用模塊來說是隱蔽的,所以調(diào)用模塊無法控制這個(gè)模塊的執(zhí)行,也不能預(yù)知將會(huì)引起什么后果,有可能造成混亂。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則三:消除重復(fù)功能,改善軟件結(jié)構(gòu)。應(yīng)當(dāng)認(rèn)真審查初始的軟件結(jié)構(gòu)圖,如果發(fā)現(xiàn)幾個(gè)模塊的功能有相似之處,應(yīng)該加以改進(jìn)。例如,當(dāng)兩個(gè)模塊的功能完全相似,而只是所處理的數(shù)據(jù)類型不一致時(shí),應(yīng)該合并模塊,同時(shí)修改模塊的數(shù)據(jù)類型和變量定義。但是,如果兩個(gè)模塊的功能只是
28、局部相似時(shí),最好不要簡單地合二為一,因?yàn)檫@種簡單的并后會(huì)造成模塊內(nèi)部設(shè)置許多判斷開關(guān),模塊的接口參數(shù)勢必會(huì)傳遞一些控制信息,造成模塊內(nèi)聚降低。通常的處理辦法是分析兩個(gè)相似的模塊,找出相同的部分,然后將相同的部分從分離出去組成一個(gè)新的模塊。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則四:模塊的作用范圍應(yīng)在控制范圍之內(nèi)。首先定義一個(gè)模塊的控制范圍是:是這個(gè)模塊及其所有下屬模塊。例如圖中模塊E的控制范圍是I、H、J。o 一個(gè)模塊的作用范圍是:這個(gè)模塊內(nèi)判定的作用范圍,凡是受這個(gè)判定影響的模塊都屬于這個(gè)判定的作用范圍。例如圖中模塊J的一個(gè)判定傳遞
29、給E模塊,然后再傳遞給I和H模塊,這時(shí)模塊J的作用范圍是模塊E、I、J。顯然,這種設(shè)計(jì)是不好的,因?yàn)槟KI和H不是模塊J的控制范圍,這樣就導(dǎo)致模塊之間傳遞的是控制參數(shù),使模塊之間的耦合增加。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) GABCFDEHIIJ武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 如果在設(shè)計(jì)過程中,發(fā)現(xiàn)作用范圍不在控制范圍內(nèi),可采用如下辦法把作用范圍移到控制范圍之內(nèi):o )提高控制模塊的層次。將判定所在模塊合并到父模塊中,使判定處于較高層次。o )將受判定影響的模塊下移到控制范圍內(nèi);o )將判定上移到層次中較
30、高的位置。但是要注意,判定所在的模塊最好不要太高,模塊之間的控制參數(shù)傳遞路徑太長,增加了模塊之間的耦合。比較好的方案是將判定提到模塊E中。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則五:模塊的大小要適中。模塊的大小一般用模塊的源代碼數(shù)量來衡量,通常在設(shè)計(jì)過程中,將模塊的源代碼數(shù)量限制在左右,即一頁紙的范圍內(nèi),這樣閱讀比較方便。實(shí)際上,規(guī)模大的模塊往往是由于分解不充分造成的,應(yīng)該對(duì)其進(jìn)一步分解,生成一些下級(jí)模塊或同層模塊。有些模塊規(guī)模非常小,這種情況下要區(qū)別對(duì)待,如果該模塊是公共模塊或者是高內(nèi)聚模塊,則一定不要把它合并到其他模塊中去;否則可以
31、考慮將規(guī)模很小的模塊合并到其它相關(guān)的模塊中。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 規(guī)則六:盡可能減少高扇出和高扇入的結(jié)構(gòu)。o 規(guī)則七:將模塊中相對(duì)變化較大的部分剝離出去。為了加強(qiáng)模塊的可復(fù)用性,在設(shè)計(jì)時(shí)將模塊中相對(duì)穩(wěn)定的部分與可能變化的部分分離,在分離的兩個(gè)模塊之間加一個(gè)接口模塊對(duì)模塊之間傳遞的參數(shù)進(jìn)行整理,這對(duì)保持模塊的穩(wěn)定性和可重用性有很大作用。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.4 優(yōu)化軟件結(jié)構(gòu)設(shè)計(jì)(續(xù))o 對(duì)于有時(shí)間要求的軟件結(jié)構(gòu),在整個(gè)設(shè)計(jì)階段和編碼階段都必須進(jìn)行優(yōu)化,優(yōu)化的方法如下:n 首先改進(jìn)軟
32、件的結(jié)構(gòu)。n 在詳細(xì)設(shè)計(jì)時(shí),挑出那些有可能占用過多時(shí)間的模塊,為這些模塊精心設(shè)計(jì)時(shí)間效率更高的處理算法。n 檢測軟件,分離出占用大量處理機(jī)資源的模塊。如果有必要,用匯編語言或其它較低級(jí)的語言重新設(shè)計(jì)、編碼,以提高軟件的效率。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.5 圖書館圖書信息管理系統(tǒng)設(shè)計(jì)案例o 仔細(xì)研究這些數(shù)據(jù)流程圖,發(fā)現(xiàn)一個(gè)圖書管理信息系統(tǒng)可以分為五個(gè)子系統(tǒng)設(shè)計(jì),它們是讀者信息管理子系統(tǒng)、借書子系統(tǒng)、還書子系統(tǒng)、采編子系統(tǒng)和系統(tǒng)維護(hù)子系統(tǒng)。將一個(gè)復(fù)雜的系統(tǒng)劃分為多個(gè)簡單的子系統(tǒng),有利于系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o
33、 進(jìn)入設(shè)計(jì)階段后,要從軟件設(shè)計(jì)的角度重審數(shù)據(jù)流程圖。首先應(yīng)該為流通組設(shè)計(jì)一個(gè)方便的工作環(huán)境,在這個(gè)工作環(huán)境之中包含了流通組日常要做的所有工作,應(yīng)該增加一個(gè)“還書工作環(huán)境”的處理,編號(hào)IPO320。 o “還書工作環(huán)境”處理之后應(yīng)該是流通組門的業(yè)務(wù)分發(fā)處理,所以增加一個(gè)“事物分發(fā)”處理,編號(hào)為IPO321。在處理完某個(gè)具體的還書業(yè)務(wù)之后,有可能導(dǎo)致“通知預(yù)約”處理的執(zhí)行,而“催還”和“通知預(yù)約”兩個(gè)處理之中都隱含了一個(gè)共同的處理“發(fā)送郵件”,因此,應(yīng)該將具有相同功能的處理獨(dú)立成為一個(gè)“發(fā)送郵件”的處理,編號(hào)為IPO324。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 在重畫數(shù)
34、據(jù)流程圖時(shí)發(fā)現(xiàn),處罰操作屬于性質(zhì)相同的處理,應(yīng)該將它們歸并在一起。每種處罰的規(guī)則和處理不同,增加了一個(gè)“處罰事物分發(fā)”處理,判斷不同的處罰類型,每種處罰處理的用戶界面不同,為三種處罰類型設(shè)計(jì)不同的用戶界面。最終的處罰結(jié)果是保存在一個(gè)數(shù)據(jù)庫表中,因此調(diào)用同一個(gè)“保存處罰記錄”處理。在整個(gè)處罰的處理部分,基本上是按照邏輯輸入、處理、邏輯輸出劃分的。o 另外增加了兩個(gè)界面處理,這是為了將用戶界面與業(yè)務(wù)處理分開來設(shè)計(jì)和實(shí)現(xiàn),便于系統(tǒng)的維護(hù)和修改。下面是修改后的數(shù)據(jù)流程圖: 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 還書數(shù)據(jù)流程圖還書子系統(tǒng)結(jié)構(gòu)圖武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(h
35、ttp:/ wd) 走查軟件結(jié)構(gòu)圖 o 軟件結(jié)構(gòu)圖中的模塊關(guān)系體現(xiàn)的是調(diào)用關(guān)系,模塊之間的接口參數(shù)在軟件結(jié)構(gòu)圖上表現(xiàn)出來。o 設(shè)計(jì)者根據(jù)調(diào)用關(guān)系在紙上對(duì)系統(tǒng)進(jìn)行初步的試運(yùn)行,方法是從軟件結(jié)構(gòu)圖的最頂層按深度優(yōu)先原則調(diào)用下級(jí)模塊,直到圖的最底層。在紙上試運(yùn)行過程中,填寫一張功能模塊對(duì)照表。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 數(shù)據(jù)結(jié)構(gòu)與程序模塊對(duì)照表軟件功能需求與程序模塊對(duì)照表功能模塊1模塊2模塊n功能需求1Module nameModule name功能需求2Module nameModule name功能需求nModule name第1列是分析階段確定的軟件功能編號(hào),
36、通常一個(gè)功能可能需要多個(gè)模塊實(shí)現(xiàn),如果模塊超過5個(gè),往往說明該功能太大,應(yīng)該將其細(xì)分。每個(gè)功能都應(yīng)該有一條自上而下的模塊調(diào)用通路,如果發(fā)現(xiàn)某條通路走下來不能實(shí)現(xiàn)需要的功能,就要重新檢查數(shù)據(jù)流程圖到軟件結(jié)構(gòu)圖的轉(zhuǎn)換是否正確。在走查模塊時(shí)不要進(jìn)入模塊內(nèi)部的具體處理算法,只是檢查接口參數(shù)和分配的功能即可武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 用快速原型法修正設(shè)計(jì)用快速原型法修正設(shè)計(jì)o 在設(shè)計(jì)時(shí),有些問題很難確定是否能夠?qū)崿F(xiàn),可以先開發(fā)一個(gè)原型,通過開發(fā)原型來發(fā)現(xiàn)設(shè)計(jì)中存在的問題,以便在編碼之前解決很多棘手的問題。另外,原型可以促進(jìn)開發(fā)人員之間、以及開發(fā)人員與用戶之間的溝通。o 開
37、發(fā)原型時(shí),通常忽略功能上的很多細(xì)節(jié),只是將注意力放在系統(tǒng)的某個(gè)或某幾個(gè)特定方面。例如,界面方面、性能方面、還有安全方面等等,這種原型肯定會(huì)存在許多漏洞,但是,如果一個(gè)原型僅僅是要證明設(shè)計(jì)的可行性時(shí),就不必太多的關(guān)注這些漏洞。這種原型屬于拋棄型原型,意思是,開發(fā)的原型僅僅是為了證明系統(tǒng)某些特征的可行性,它不是最終的產(chǎn)品。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 關(guān)于設(shè)計(jì)的說明o 在程序結(jié)構(gòu)被設(shè)計(jì)和優(yōu)化后,應(yīng)該對(duì)設(shè)計(jì)進(jìn)行一些必要的說明。每個(gè)模塊寫一份處理說明;為模塊之間的接口提供一份接口說明;確定全局?jǐn)?shù)據(jù)結(jié)構(gòu);指出所有的設(shè)計(jì)約束和限制。o 處理說明應(yīng)該清楚地描述模塊的主要處理任務(wù)
38、、條件抉擇和輸人輸出。注意概要設(shè)計(jì)階段不要對(duì)模塊的內(nèi)部處理過程進(jìn)行詳細(xì)描述,這項(xiàng)工作是詳細(xì)設(shè)計(jì)的任務(wù)。o 接口說明要給出一張表格,列出所有進(jìn)入模塊和從模塊輸出的數(shù)據(jù)。接口說明中應(yīng)包括通過參數(shù)表傳遞的信息、對(duì)外界的輸入輸出信息、訪問全局?jǐn)?shù)據(jù)區(qū)的信息等等。此外還要指出其下屬的模塊和上級(jí)模塊。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 模塊說明表模塊名稱:編號(hào):主要功能: 輸入?yún)?shù)及類型: 輸出參數(shù)及類型:上級(jí)調(diào)用模塊: 向下調(diào)用模塊: 局部數(shù)據(jù)結(jié)構(gòu): 約束條件和設(shè)計(jì)限制:武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.6設(shè)計(jì)復(fù)查o 采用概要設(shè)計(jì)復(fù)查的方法來檢查在概念
39、上的設(shè)計(jì);o 在關(guān)鍵設(shè)計(jì)審查中,向其它開發(fā)者描述關(guān)鍵技術(shù)上的設(shè)計(jì)細(xì)節(jié);o 進(jìn)行程序設(shè)計(jì)的復(fù)查,程序設(shè)計(jì)的復(fù)查屬于詳細(xì)設(shè)計(jì)階段。復(fù)查的目標(biāo)是確保軟件設(shè)計(jì)與實(shí)現(xiàn)正是用戶想要的。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.7數(shù)據(jù)設(shè)計(jì) o 盡量使用簡單的數(shù)據(jù)結(jié)構(gòu)。簡單的數(shù)據(jù)結(jié)構(gòu)通常伴隨著簡單的操作,有些人喜歡使用復(fù)雜的工具完成一些簡單的事情,這在軟件開發(fā)中是比較忌諱的。o 在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)要注意數(shù)據(jù)之間的關(guān)系,特別要平衡數(shù)據(jù)冗余與數(shù)據(jù)關(guān)聯(lián)的矛盾。有時(shí),為了減少信息的冗余,需要增加更多的關(guān)聯(lián),使程序處理比較復(fù)雜;如果一味的降低數(shù)據(jù)之間的關(guān)聯(lián),可能會(huì)造成大量的數(shù)據(jù)冗余,難以保證數(shù)據(jù)的
40、一致性。o 為了加強(qiáng)數(shù)據(jù)設(shè)計(jì)的可復(fù)用性,應(yīng)該針對(duì)常用的數(shù)據(jù)結(jié)構(gòu)和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)抽象類型,并且將數(shù)據(jù)結(jié)構(gòu)與操縱數(shù)據(jù)結(jié)構(gòu)的操作封裝在一起。同時(shí)要清楚地描述調(diào)用這個(gè)抽象數(shù)據(jù)結(jié)構(gòu)的接口說明。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.7數(shù)據(jù)設(shè)計(jì)(續(xù))o 4) 盡量使用經(jīng)典的數(shù)據(jù)結(jié)構(gòu),因?yàn)椋瑢?duì)它們的討論比較普遍,容易被大多數(shù)開發(fā)人員理解,同時(shí),也能夠獲得更多的支持。o 5)在確定數(shù)據(jù)結(jié)構(gòu)時(shí)一般先考慮靜態(tài)結(jié)構(gòu),如果不能滿足要求,再考慮動(dòng)態(tài)結(jié)構(gòu)。 武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.7數(shù)據(jù)設(shè)計(jì)(續(xù))o 文件設(shè)計(jì)是指對(duì)數(shù)據(jù)存儲(chǔ)文件的設(shè)計(jì),主要工作是根據(jù)使用要
41、求、處理方式、存儲(chǔ)的信息量、數(shù)據(jù)的使用頻率和文件的物理介質(zhì)等因素,來確定文件的類別、文件的組織方式。設(shè)計(jì)文件記錄的格式,估計(jì)文件的容量。o 文件的設(shè)計(jì)過程包括文件的邏輯設(shè)計(jì)和文件的物理設(shè)計(jì)兩個(gè)階段,文件的邏輯設(shè)計(jì)在概要設(shè)計(jì)階段進(jìn)行,文件的物理設(shè)計(jì)在詳細(xì)設(shè)計(jì)階段進(jìn)行。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.7數(shù)據(jù)設(shè)計(jì)(續(xù))o 整理必須的數(shù)據(jù)元素:分析文件中要存儲(chǔ)的數(shù)據(jù)元素,確定每個(gè)數(shù)據(jù)元素的類型、長度,并且給每個(gè)數(shù)據(jù)元素定義一個(gè)容易理解的、有意義的名字。o 分析數(shù)據(jù)間的關(guān)系:根據(jù)業(yè)務(wù)處理邏輯確定數(shù)據(jù)元素之間的關(guān)系,有時(shí)一個(gè)文件記錄中可能包含多個(gè)子數(shù)據(jù)結(jié)構(gòu)。例如,考生成績文
42、件的記錄中可能包含:考生編號(hào)、姓名、學(xué)校、(語文、數(shù)學(xué)、英語、物理、化學(xué))、總成績。其中,括號(hào)部分是一個(gè)子結(jié)構(gòu),描述各科的成績,這些數(shù)據(jù)元素可能需要同時(shí)處理。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o3) 確定文件的存儲(chǔ)介質(zhì)。目前,文件的存儲(chǔ)介質(zhì)主要有磁帶、軟盤、磁盤、光盤、可移動(dòng)快速閃存。選擇文件存儲(chǔ)介質(zhì)是主要考慮下面一些原則:oa) 數(shù)據(jù)量ob) 處理方式oc) 存儲(chǔ)時(shí)間od) 處理時(shí)間oe) 數(shù)據(jù)結(jié)構(gòu)of) 操作要求og) 費(fèi)用要求4.7數(shù)據(jù)設(shè)計(jì)(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) o 確定文件的記錄格式。文件的記錄格式通常分為無格式的字符
43、流和用戶定義的記錄格式兩種。并且還可以設(shè)計(jì)為定長記錄和不定長記錄。o 估算記錄的存取時(shí)間。根據(jù)文件的存儲(chǔ)介質(zhì)和類型,計(jì)算平均訪問時(shí)間和最壞情況下的訪問時(shí)間。o 估算文件的存儲(chǔ)量。根據(jù)一條記錄的大小估算整個(gè)文件的存儲(chǔ)量,然后,考慮文件的增長速度,確定文件的存儲(chǔ)介質(zhì)的規(guī)格型號(hào),以及設(shè)計(jì)文件備份轉(zhuǎn)儲(chǔ)的周期 4.7數(shù)據(jù)設(shè)計(jì)(續(xù))武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.7數(shù)據(jù)設(shè)計(jì)(續(xù))o 數(shù)據(jù)庫模式設(shè)計(jì):模式設(shè)計(jì)是在物理層和邏輯層面上描述的數(shù)據(jù)庫設(shè)計(jì)。o 第三范式形式的實(shí)體及關(guān)系數(shù)據(jù)模型是模式設(shè)計(jì)過程的輸入,模式設(shè)計(jì)的主要問題是處理具體的數(shù)據(jù)庫管理系統(tǒng)的結(jié)構(gòu)約束。o 子模式設(shè)計(jì):
44、子模式是用戶使用的數(shù)據(jù)視圖。o 完整性和安全性設(shè)計(jì)o 優(yōu)化武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.8詳細(xì)設(shè)計(jì)o 詳細(xì)設(shè)計(jì)也叫過程設(shè)計(jì),應(yīng)該在軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)之后進(jìn)行,主要是設(shè)計(jì)模塊內(nèi)的算法實(shí)現(xiàn)細(xì)節(jié)。o 任務(wù)不是編寫程序,而是要為編寫程序代碼設(shè)計(jì)“圖紙”,由程序員按“圖紙”用某種高級(jí)程序設(shè)計(jì)語言編寫程序代碼。因此,詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼質(zhì)量。o 衡量程序代碼的質(zhì)量不僅要看它的邏輯是否正確,性能是否滿足要求,更主要的要看它是否容易閱讀和理解。因此,詳細(xì)設(shè)計(jì)的目標(biāo)不僅僅是保證所設(shè)計(jì)的模塊功能正確,更重要的是保證所設(shè)計(jì)的處理過程簡明易懂。武當(dāng)山武當(dāng)山旅游門戶網(wǎng)站旅游門戶網(wǎng)站(http:/ wd) 4.8詳細(xì)設(shè)計(jì)(續(xù))o 結(jié)構(gòu)化程序的特征:n 程序模塊只有一個(gè)入口和一個(gè)出口。n 程序中只包含順序、條件和循環(huán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷庫買賣拆除合同范本
- 剪力墻和伸縮縫施工方案
- 亞馬遜推廣服務(wù)合同范本
- 分包電氣合同范本
- 第七章各具特色的地區(qū)教學(xué)設(shè)計(jì)2023-2024學(xué)年商務(wù)星球版地理七年級(jí)下冊(cè)
- 中英文演出合同范本
- 農(nóng)作物安全生產(chǎn)合同范本
- 加盟燕窩店合同范例
- 加工面店轉(zhuǎn)讓合同范本
- 出口篷布采購合同范本
- 一年級(jí)下冊(cè)《讀讀童謠和兒歌》試題及答案共10套
- CHZ 3002-2010 無人機(jī)航攝系統(tǒng)技術(shù)要求(正式版)
- 免拆底模鋼筋桁架樓承板圖集
- 尋夢環(huán)游記(Coco)中英文臺(tái)詞對(duì)照
- 重點(diǎn)關(guān)愛學(xué)生幫扶活動(dòng)記錄表
- 改革后-topik考試作文紙
- 父母委托子女保管存款協(xié)議書
- 產(chǎn)品設(shè)計(jì)與開發(fā)的系統(tǒng)工程方法
- 初中物理核心素養(yǎng)培養(yǎng)
- 預(yù)防留置針脫落
- 痛風(fēng)護(hù)理疑難病例討論
評(píng)論
0/150
提交評(píng)論