信息系統(tǒng)分析與設(shè)計(jì)之傳統(tǒng)設(shè)計(jì)方法_第1頁(yè)
信息系統(tǒng)分析與設(shè)計(jì)之傳統(tǒng)設(shè)計(jì)方法_第2頁(yè)
信息系統(tǒng)分析與設(shè)計(jì)之傳統(tǒng)設(shè)計(jì)方法_第3頁(yè)
信息系統(tǒng)分析與設(shè)計(jì)之傳統(tǒng)設(shè)計(jì)方法_第4頁(yè)
信息系統(tǒng)分析與設(shè)計(jì)之傳統(tǒng)設(shè)計(jì)方法_第5頁(yè)
已閱讀5頁(yè),還剩104頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

傳統(tǒng)設(shè)計(jì)方法

03二月2023第9章傳統(tǒng)設(shè)計(jì)方法2/109本章內(nèi)容先導(dǎo)案例概述9.1

采用結(jié)構(gòu)化方法進(jìn)行應(yīng)用程序結(jié)構(gòu)的設(shè)計(jì)9.2

自動(dòng)化系統(tǒng)邊界9.3

系統(tǒng)流程圖9.4

結(jié)構(gòu)圖9.5

模塊算法設(shè)計(jì):偽碼9.6

結(jié)構(gòu)化應(yīng)用程序設(shè)計(jì)與其他設(shè)計(jì)任務(wù)的集成9.7

三層設(shè)計(jì)要點(diǎn)回顧閱讀章節(jié)要求03二月2023第9章傳統(tǒng)設(shè)計(jì)方法3/109先導(dǎo)案例劇院系統(tǒng)有限公司:新事物,舊事物03二月2023第9章傳統(tǒng)設(shè)計(jì)方法4/109概述結(jié)構(gòu)化模型、模型開發(fā)過程及其相關(guān)術(shù)語(yǔ)。如何用系統(tǒng)流程圖、結(jié)構(gòu)圖和模塊偽碼把從分析階段模型得來的信息轉(zhuǎn)到設(shè)計(jì)模塊。把傳統(tǒng)軟件設(shè)計(jì)和其他設(shè)計(jì)階段的內(nèi)容整合起來。用傳統(tǒng)方法設(shè)計(jì)三層結(jié)構(gòu)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法5/1099.1采用結(jié)構(gòu)化方法進(jìn)行應(yīng)用程序結(jié)構(gòu)的設(shè)計(jì)模塊:計(jì)算機(jī)程序的可標(biāo)識(shí)部分,用來完成具體定義的功能。計(jì)算機(jī)程序:由一系列模塊組成的可執(zhí)行實(shí)體。系統(tǒng)流程圖:描述系統(tǒng)內(nèi)計(jì)算機(jī)程序間所有控制流的圖,標(biāo)識(shí)每段程序及其所存取的數(shù)據(jù),表明不同程序、子系統(tǒng)、相關(guān)文件和DB間的關(guān)聯(lián)關(guān)系。它記錄整個(gè)系統(tǒng)的體系結(jié)構(gòu)。偽碼:與結(jié)構(gòu)化編程類似地語(yǔ)句,描述模塊的邏輯。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法6/109模塊具有輸入/輸出、邏輯功能、運(yùn)行程序、內(nèi)部數(shù)據(jù)屬性的一組程序語(yǔ)句。模塊的輸入來源和輸出去向都是同一個(gè)調(diào)用者,模塊從調(diào)用者那里獲得輸入,然后再把產(chǎn)生的數(shù)據(jù)返回給調(diào)用者;邏輯功能:指它能夠做什么事情,表達(dá)了它把輸入轉(zhuǎn)換成輸出的功能;內(nèi)部數(shù)據(jù):指屬于該模塊自己的數(shù)據(jù);運(yùn)行程序:指它如何用程序?qū)崿F(xiàn)這種邏輯功能。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法7/109外部屬性:輸入/輸出和邏輯功能是模塊的外部屬性,是在系統(tǒng)設(shè)計(jì)階段所要討論的問題;內(nèi)部屬性:內(nèi)部數(shù)據(jù)和運(yùn)行程序是模塊的內(nèi)部屬性,它應(yīng)該放在程序設(shè)計(jì)中進(jìn)行討論。模塊結(jié)構(gòu)圖中用矩形表達(dá)一個(gè)模塊,模塊的名稱寫在矩形框的里面。模塊的名稱必須表達(dá)該模塊的功能,即每一次調(diào)用時(shí)該模塊應(yīng)該完成的任務(wù)。模塊的外、內(nèi)部屬性03二月2023第9章傳統(tǒng)設(shè)計(jì)方法8/109結(jié)構(gòu)化設(shè)計(jì)模型分析員用自頂向下的方法進(jìn)行設(shè)計(jì)。以DFD、用結(jié)構(gòu)化英語(yǔ)描述的詳細(xì)文檔,以及詳細(xì)的數(shù)據(jù)流定義來作為設(shè)計(jì)模型和開發(fā)文檔的輸入部分。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法9/1099.2自動(dòng)化系統(tǒng)邊界自動(dòng)化系統(tǒng)邊界將DFD的處理劃分成手工處理部分和系統(tǒng)處理部分。處理過程可在系統(tǒng)邊界內(nèi),也可在系統(tǒng)邊界外。系統(tǒng)邊界外的處理是一些手工處理(如排序并審核文件資料、輸入用戶訂單或查看剛到的貨物)。邊界里面的處理過程能夠以在線處理或批處理模式進(jìn)行處理。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法10/109帶自動(dòng)化系統(tǒng)邊界的數(shù)據(jù)流圖該圖展示了工資單程序所有主要的處理過程。是一幅包括自動(dòng)化系統(tǒng)邊界的典型DFD。該圖說明了系統(tǒng)界線,也說明了程序界線。前者標(biāo)識(shí)整個(gè)自動(dòng)化系統(tǒng),后者將DFD劃分成獨(dú)立的程序。該圖是設(shè)計(jì)的第一步,它確認(rèn)程序是什么,及這些程序中包含哪些處理過程。自動(dòng)化系統(tǒng)邊界程序邊界部分輸入、部分輸出的過程跨過邊界的數(shù)據(jù)流是I/O03二月2023第9章傳統(tǒng)設(shè)計(jì)方法11/109數(shù)據(jù)流可在系統(tǒng)內(nèi)部、外部,或穿過系統(tǒng)界線和程序界線。穿過系統(tǒng)界線的數(shù)據(jù)流是格外重要的,它們代表了系統(tǒng)的輸入和輸出。程序接口的設(shè)計(jì)(包括用戶界面設(shè)計(jì)和與其他系統(tǒng)的接口設(shè)計(jì))是由穿過邊界的數(shù)據(jù)流定義的。在最終系統(tǒng)中,數(shù)據(jù)流將是用戶界面中的表單、報(bào)表,或者是與其他系統(tǒng)進(jìn)行轉(zhuǎn)換的文件或通信。穿過邊界的數(shù)據(jù)流,表示程序間的通信。在最終系統(tǒng)中,這些數(shù)據(jù)流仍是程序之間轉(zhuǎn)換的文件或通信。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法12/1099.3系統(tǒng)流程圖對(duì)組成一個(gè)完整系統(tǒng)的各計(jì)算機(jī)程序、文件、DB,以及相關(guān)手工過程的表示。表達(dá)系統(tǒng)執(zhí)行過程;描述所有I/O和與之有關(guān)的處理;包括所有文件的建立過程;表達(dá)數(shù)據(jù)在系統(tǒng)中的流向。生成時(shí)應(yīng)考慮:信息處理的步驟和內(nèi)容;每一步驟所涉及的物理過程;各步驟間的物理和邏輯關(guān)系。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法13/109根據(jù)相似特點(diǎn)把處理過程分:程序組和子系統(tǒng)。相似特點(diǎn):時(shí)間間隔相同(如按月執(zhí)行的處理)、存取數(shù)據(jù)相同(如更新員工信息的所有處理)、用戶相同(如生成市場(chǎng)部報(bào)表的所有處理)等。產(chǎn)生的程序組和子系統(tǒng)有:數(shù)據(jù)流、控制流、永久存儲(chǔ)數(shù)據(jù)間的交互等復(fù)雜的依賴關(guān)系。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法14/109

系統(tǒng)流程圖用圖形的方式描述哪些子系統(tǒng)是系統(tǒng)自動(dòng)完成的,哪些需要人工的參與,畫出數(shù)據(jù)流和控制流。其標(biāo)出整個(gè)系統(tǒng)的文件、程序及人工處理部分。通過確認(rèn)文件媒介(磁盤、磁帶)來增加物理實(shí)現(xiàn)的描述。提供整個(gè)系統(tǒng)的總體情況。描述多層系統(tǒng)中層與層之間的交互。其重點(diǎn)放在物理對(duì)象的實(shí)現(xiàn)上(如可執(zhí)行的程序、文件和文檔等)(與DFD不同)。系統(tǒng)流程圖的常用符號(hào)工資系統(tǒng)的系統(tǒng)流程圖樣例該圖是工資系統(tǒng)的系統(tǒng)流程圖,在前面給出它的DFD。RMO的系統(tǒng)流程圖該圖增加了在RMO子系統(tǒng)的事件圖沒有出現(xiàn)的子系統(tǒng)。RMO決定采用更高的自動(dòng)化程度,以取得幾個(gè)銷售分析報(bào)告。該實(shí)例中,項(xiàng)目組定義一個(gè)新的子系統(tǒng)而不是把報(bào)表增加到己存在的子系統(tǒng)上。RMO子系統(tǒng)和對(duì)應(yīng)每個(gè)子系統(tǒng)的事件

03二月2023第9章傳統(tǒng)設(shè)計(jì)方法19/1099.4結(jié)構(gòu)圖9.4.1

概念9.4.2

開發(fā)一個(gè)結(jié)構(gòu)圖9.4.3

評(píng)價(jià)結(jié)構(gòu)圖的質(zhì)量03二月2023第9章傳統(tǒng)設(shè)計(jì)方法20/1099.4.1概念1.結(jié)構(gòu)圖2.程序調(diào)用3.數(shù)據(jù)耦合03二月2023第9章傳統(tǒng)設(shè)計(jì)方法21/1091.結(jié)構(gòu)圖結(jié)構(gòu)圖的層次描述系統(tǒng)每部分的功能和子功能。例如,某程序有計(jì)算工資總額的功能函數(shù),它可能的子功能函數(shù)是計(jì)算基本工資、計(jì)算加班費(fèi)和計(jì)算稅費(fèi)。在結(jié)構(gòu)圖上用矩形框表示功能,每個(gè)矩形框代表一個(gè)模塊。結(jié)構(gòu)圖:用來展示一個(gè)計(jì)算機(jī)程序模塊間關(guān)系的層次圖。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法22/109一個(gè)計(jì)算工資總額的簡(jiǎn)單結(jié)構(gòu)圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法23/109建立結(jié)構(gòu)圖的規(guī)則和方針程序是分層的,而且模塊按高內(nèi)聚、低耦合的方式組織在一起。模塊之間的連線表示高層模塊對(duì)低層模塊調(diào)用的某種結(jié)構(gòu),其上的小箭頭表示在模塊間傳遞的數(shù)據(jù),以及各個(gè)模塊的輸入和輸出。從結(jié)構(gòu)圖上不能了解模塊內(nèi)部的內(nèi)容,但可知道模塊以何種方式實(shí)現(xiàn)其名稱所表示的功能,如何使用輸入數(shù)據(jù),以及如何產(chǎn)生輸出數(shù)據(jù)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法24/109結(jié)構(gòu)圖符號(hào)03二月2023第9章傳統(tǒng)設(shè)計(jì)方法25/109模塊結(jié)構(gòu)圖的標(biāo)準(zhǔn)形式⑴變換型結(jié)構(gòu)⑵事務(wù)型結(jié)構(gòu)03二月2023第9章傳統(tǒng)設(shè)計(jì)方法26/109⑴變換型結(jié)構(gòu)變換型系統(tǒng)由三部分組成:輸入、數(shù)據(jù)加工(中心變換)和輸出;功能:將輸入的數(shù)據(jù)經(jīng)過加工后輸出。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法27/109⑵事務(wù)型結(jié)構(gòu)事務(wù)型系統(tǒng)由三層組成:事務(wù)層、操作層和細(xì)節(jié)層;功能:對(duì)接收的事務(wù),按其類型選擇某一類事務(wù)處理。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法28/1092.程序調(diào)用當(dāng)一個(gè)模塊激活一個(gè)低層模塊以便執(zhí)行所需的服務(wù)或計(jì)算時(shí),就發(fā)生程序調(diào)用。每一次調(diào)用中,控制由調(diào)用模塊傳向被調(diào)用模塊,被調(diào)用模塊接著執(zhí)行一系列程序語(yǔ)句,當(dāng)調(diào)用過程結(jié)束后,被調(diào)用模塊立即把控制權(quán)返回給調(diào)用模塊,程序緊接著執(zhí)行下面的聲明或指令。不同的編程語(yǔ)言中,程序調(diào)用的方式不同。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法29/109從高層模塊到低層模塊的箭頭表示程序調(diào)用,調(diào)用的順序總是從左到右的。結(jié)構(gòu)圖在表示調(diào)用結(jié)構(gòu)時(shí)仍是具有嚴(yán)格的層次。一個(gè)低層的模塊永遠(yuǎn)不會(huì)調(diào)用高層模塊。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法30/1093.數(shù)據(jù)耦合數(shù)據(jù)耦合:在一個(gè)程序調(diào)用中,模塊間傳遞數(shù)據(jù)項(xiàng)個(gè)數(shù)。帶空心圓的箭頭叫數(shù)據(jù)耦合,表示I/O模塊的數(shù)據(jù)。數(shù)據(jù)耦合可以是一個(gè)單獨(dú)的數(shù)據(jù)項(xiàng)(如一個(gè)客戶的賬號(hào)),也可以是更高層次的數(shù)據(jù)結(jié)構(gòu)(如一個(gè)數(shù)組、記錄或其他數(shù)據(jù)結(jié)構(gòu))。結(jié)構(gòu)圖中每一層所用耦合類型,往往與細(xì)節(jié)分層的有關(guān)原則相一致。靠近結(jié)構(gòu)圖頂端的模塊,它們的耦合往往使用高度集中的數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)圖底端的耦合往往是一些單獨(dú)的數(shù)據(jù)項(xiàng)、標(biāo)記和相對(duì)較小的數(shù)據(jù)結(jié)構(gòu)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法31/109控制耦合帶實(shí)心圓的箭頭。在模塊間使用的標(biāo)識(shí)是一個(gè)表示某種結(jié)果的內(nèi)部信息。經(jīng)常使用低層模塊產(chǎn)生的標(biāo)識(shí)來表示結(jié)果(如通過有效性測(cè)試的結(jié)果)。另一常用作用:標(biāo)識(shí)文件已經(jīng)到了結(jié)尾。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法32/109整個(gè)工資系統(tǒng)的結(jié)構(gòu)圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法33/109

該圖所示的完整結(jié)構(gòu)圖是基于“產(chǎn)生工資表事件”這個(gè)臨時(shí)事件之后的系統(tǒng)活動(dòng)的。在工資系統(tǒng)的分析階段,分析員要確認(rèn)結(jié)算職工工資這一事件每周末要發(fā)生一次,即系統(tǒng)每周運(yùn)行一次。當(dāng)然同時(shí)還要確認(rèn)許多其他的事件。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法34/109注意結(jié)構(gòu)圖還必須與系統(tǒng)流程圖相一致。如果在開發(fā)中結(jié)構(gòu)圖發(fā)生了改變,項(xiàng)目組也要相應(yīng)地更新系統(tǒng)流程圖。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法35/1099.4.2開發(fā)一個(gè)結(jié)構(gòu)圖設(shè)計(jì)結(jié)構(gòu)圖是為給程序建立模塊層次結(jié)構(gòu)。結(jié)構(gòu)圖是樹型結(jié)構(gòu),有根模塊和分支模塊。逐一地建立結(jié)構(gòu)圖,再組成完整的結(jié)構(gòu)圖。結(jié)構(gòu)圖開發(fā)方法:

1.事務(wù)分析

2.變換分析系統(tǒng)流程圖對(duì)應(yīng)每個(gè)子系統(tǒng)的事件表系統(tǒng)流程圖中每個(gè)主要程序?qū)?yīng)按事件劃分的子系統(tǒng),每個(gè)程序有自己的結(jié)構(gòu)圖。事件表中每個(gè)程序,即子系統(tǒng)包含若干個(gè)事件。每個(gè)事件對(duì)應(yīng)按事件劃分的DFD中的一個(gè)處理。每個(gè)處理進(jìn)一步描述在基于事件表的DFD片段。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法37/109兩種方法事務(wù)分析使用作為輸入的系統(tǒng)流程圖和事件表建立樹型結(jié)構(gòu)的頂端模塊,即產(chǎn)生主程序的主模塊和第一層被調(diào)用模塊。變換分析使用作為輸入的數(shù)據(jù)流片段去建立子樹,程序中的每個(gè)事件建立一棵子樹。每棵子樹的主模塊對(duì)應(yīng)于主程序結(jié)構(gòu)圖的第一層分支。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法38/1091.事務(wù)分析

事務(wù)分析使用作為輸入的系統(tǒng)流程圖和事件表建立樹型結(jié)構(gòu)的頂端模塊,即產(chǎn)生主程序的主模塊和第一層被調(diào)用模塊。事務(wù)分析:基于DFD的結(jié)構(gòu)圖開發(fā),用來描述多種事務(wù)類型的處理。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法39/109事務(wù)分析過程檢查系統(tǒng)流程圖和每一個(gè)大的程序塊。識(shí)別每個(gè)獨(dú)立的事務(wù),這些事務(wù)必須由程序支持且必須為每一個(gè)單獨(dú)的事務(wù)建立一個(gè)分支。該程序至少在最高層有一個(gè)簡(jiǎn)單的用戶界面,并允許用戶選擇一種事務(wù)處理方式,然后激活相應(yīng)的模塊來執(zhí)行這個(gè)處理。每個(gè)按其完成的功能來命名的處理模塊都是這些功能子樹的主模塊。每個(gè)子樹都是根據(jù)該事件的DFD片段建立的。訂單輸入子系統(tǒng)的事件劃分?jǐn)?shù)據(jù)流圖發(fā)送03二月2023第9章傳統(tǒng)設(shè)計(jì)方法41/109用戶訂單程序的高層結(jié)構(gòu)圖數(shù)據(jù)耦合較少。所傳遞的惟一信息來自于事務(wù)處理選擇模塊的事務(wù)選擇??刂颇K用這個(gè)信息來選擇正確的處理模塊。在處理模塊下的子樹將顯示一個(gè)適當(dāng)?shù)慕缑鎭斫邮蘸蛡鬟f所要求的細(xì)化的信息。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法42/109事務(wù)型的DFD確定事務(wù)類型編輯A類事務(wù)原始事務(wù)記錄編輯B類事務(wù)編輯C類事務(wù)A類事務(wù)B類事務(wù)C類事務(wù)合格B類事務(wù)合格A類事務(wù)合格C類事務(wù)03二月2023第9章傳統(tǒng)設(shè)計(jì)方法43/1092.變換分析變換分析使用作為輸入的數(shù)據(jù)流片段去建立子樹,程序中的每個(gè)事件建立一棵子樹。每棵子樹的主模塊對(duì)應(yīng)于主程序結(jié)構(gòu)圖的第一層分支。變換分析:基于DFD的結(jié)構(gòu)圖開發(fā),用來描述輸入-處理-輸出數(shù)據(jù)流。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法44/109

變換分析建立在計(jì)算機(jī)程序?qū)⑤斎霐?shù)據(jù)“轉(zhuǎn)化”成輸出信息之上。用變換分析建立的結(jié)構(gòu)圖通常有三棵主要的子樹:輸入子樹:獲得數(shù)據(jù)計(jì)算子樹:執(zhí)行算法輸出子樹:顯示結(jié)果03二月2023第9章傳統(tǒng)設(shè)計(jì)方法45/109注意:DFD片斷通常按“輸入-處理-輸出”的模式建立,結(jié)構(gòu)圖把基于這些DFD片斷的處理轉(zhuǎn)化為自項(xiàng)向下結(jié)構(gòu)的程序模塊。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法46/109從DFD開發(fā)結(jié)構(gòu)圖的基本思想結(jié)構(gòu)圖中的葉模塊是從DFD更細(xì)化的處理轉(zhuǎn)化而來;結(jié)構(gòu)圖中的中間層的主模塊來自于中間處理層的處理過程,由其可分解得到底層模塊。結(jié)構(gòu)圖的結(jié)構(gòu)直接受DFD的層次和嵌套的影響。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法47/109用變換分析方法開發(fā)的結(jié)構(gòu)圖其一般格式為:“輸入-處理-輸出”。確定DFD的中心變換、輸入和輸出功能中心變換:數(shù)據(jù)流中的中心處理。傳入數(shù)據(jù)流:向一系列處理輸入的數(shù)據(jù)流。傳出數(shù)據(jù)流:從一系列處理傳出的數(shù)據(jù)流。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法48/109變換型的DFD原始數(shù)據(jù)機(jī)內(nèi)數(shù)據(jù)正確數(shù)據(jù)解已格式化的解讀入數(shù)據(jù)編輯數(shù)據(jù)求解編排解的格式顯示解主加工輸入輸出輸入至此從此輸出03二月2023第9章傳統(tǒng)設(shè)計(jì)方法49/109從DFD片斷建立結(jié)構(gòu)圖的步驟⑴確定主要的信息流。⑵找出輸入流到輸出流之間最基本變化過程(中心變換)。⑶重畫DFD,將輸入放在左邊,輸出放在右邊,轉(zhuǎn)換中心處理放在中間。⑷根據(jù)重畫的數(shù)據(jù)流建立結(jié)構(gòu)圖的第一個(gè)草案,其中包括調(diào)用階層和所需的數(shù)據(jù)對(duì)。⑸必要時(shí)增加其他模塊,以便實(shí)現(xiàn)通過用戶界面獲得輸入數(shù)據(jù)、讀寫數(shù)據(jù)存儲(chǔ)、輸出數(shù)據(jù)或報(bào)表的功能。⑹使用結(jié)構(gòu)化英語(yǔ)和決策表,在它們的基礎(chǔ)上加入部分所要求的中間模塊間的關(guān)系。⑺對(duì)結(jié)構(gòu)圖做最后的改進(jìn)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法50/109“創(chuàng)建新訂單”DFD片段03二月2023第9章傳統(tǒng)設(shè)計(jì)方法51/109創(chuàng)建新訂單DFD的分解圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法52/109創(chuàng)建新訂單DFD

的重組圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法53/109結(jié)構(gòu)圖的第一個(gè)草圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法54/109創(chuàng)建新訂單程序的結(jié)構(gòu)圖用變化分析建立的低層子樹結(jié)構(gòu)圖合并事務(wù)分析建立的頂層結(jié)構(gòu)圖

合并后的結(jié)構(gòu)圖該圖沒有標(biāo)出數(shù)據(jù)耦合標(biāo)志03二月2023第9章傳統(tǒng)設(shè)計(jì)方法57/1099.4.3評(píng)價(jià)結(jié)構(gòu)圖的質(zhì)量檢測(cè)結(jié)構(gòu)圖質(zhì)量的兩個(gè)標(biāo)準(zhǔn)1.模塊耦合2.模塊內(nèi)聚3.模塊結(jié)構(gòu)設(shè)計(jì)的原則03二月2023第9章傳統(tǒng)設(shè)計(jì)方法58/1091.模塊耦合耦合:程序中模塊與其他模塊間的相關(guān)程度。目標(biāo):使模塊盡可能相互獨(dú)立。獨(dú)立的模塊可在任何環(huán)境下執(zhí)行。它有一個(gè)嚴(yán)格定義的接口,包括預(yù)先定義好的數(shù)據(jù)域。模塊會(huì)在這些預(yù)先定義好的數(shù)據(jù)域中傳回結(jié)果。模塊無(wú)須知道哪個(gè)模塊會(huì)調(diào)用它。它可由任何其他模塊調(diào)用,只要其他模塊與這個(gè)模塊的輸入輸出數(shù)據(jù)結(jié)構(gòu)相符合。(可復(fù)用)模塊耦合:模塊與其他模塊的相關(guān)程度,較好的耦合是數(shù)據(jù)耦合。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法59/1092.模塊內(nèi)聚內(nèi)聚:在一個(gè)完成良好任務(wù)的模塊中的所有代碼的凝聚程度。具有高度內(nèi)聚的模塊只執(zhí)行一個(gè)單一功能。模塊中的所有指令都是該功能的一部分,都是為這個(gè)功能服務(wù)的。低內(nèi)聚模塊可完成多個(gè)、松散關(guān)系的功能。模塊內(nèi)聚:模塊內(nèi)部的凝聚程度。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法60/109模塊內(nèi)聚的示例

在低層模塊結(jié)構(gòu)圖中傳遞標(biāo)記是低內(nèi)聚表現(xiàn)。通常使用傳遞給模塊的標(biāo)記來選擇將要執(zhí)行該模塊的哪部分代碼。通過將模塊分成幾個(gè)小模塊來提高內(nèi)聚程度。

03二月2023第9章傳統(tǒng)設(shè)計(jì)方法61/1093.模塊結(jié)構(gòu)設(shè)計(jì)的原則⑴盡量降低模塊之間的耦合度⑵盡量提高模塊的聚合度⑶模塊的分解⑷模塊的扇入和扇出03二月2023第9章傳統(tǒng)設(shè)計(jì)方法62/109⑴

盡量降低模塊之間的耦合度耦合:指模塊與模塊之間聯(lián)系的程度。模塊間的耦合度越低,模塊的獨(dú)立性就越高。模塊間的耦合形式:

①數(shù)據(jù)耦合

②控制耦合

③公共偶合

④內(nèi)容耦合

03二月2023第9章傳統(tǒng)設(shè)計(jì)方法63/109模塊間的聯(lián)系越多或越復(fù)雜則模塊間的相互依賴程度就越高,如果對(duì)某一模塊進(jìn)行修改則必將影響到其他的模塊,因此模塊的獨(dú)立性就越低。所謂兩個(gè)模塊彼此完全獨(dú)立是指其中任意一個(gè)模塊運(yùn)行時(shí),與另一個(gè)模塊存在與否根本無(wú)關(guān),相應(yīng)地對(duì)某一模塊進(jìn)行修改也與另一模塊無(wú)關(guān)。模塊耦合程度越低,說明模塊間的聯(lián)系越少,相互間的影響也就越小,產(chǎn)生連鎖反映的概率就越低,在對(duì)一個(gè)模塊進(jìn)行修改和維護(hù)時(shí),對(duì)其他模塊的影響程度就越少,系統(tǒng)可修改性就越高。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法64/109模塊間耦合程度低,說明系統(tǒng)分解得好,有助于消除系統(tǒng)內(nèi)各種不必要的關(guān)系,加強(qiáng)必要的聯(lián)系,減少系統(tǒng)的復(fù)雜性,使系統(tǒng)盡量簡(jiǎn)單,易于理解。影響模塊間耦合程度的主要因素是模塊的接口復(fù)雜度和模塊間的耦合形式。模塊的接口復(fù)雜度是用進(jìn)入或訪問一個(gè)模塊的入口點(diǎn)個(gè)數(shù)和通過接口的數(shù)據(jù)多少來衡量的。進(jìn)入一個(gè)模塊的入口點(diǎn)個(gè)數(shù)越多,通過接口的數(shù)據(jù)越多,則模塊的接口復(fù)雜度越大。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法65/109①數(shù)據(jù)耦合兩個(gè)模塊間通過調(diào)用,相互傳遞的信息是數(shù)據(jù),則兩模塊間的聯(lián)系是一種數(shù)據(jù)耦合。數(shù)據(jù)偶合聯(lián)系簡(jiǎn)單,耦合程度低,對(duì)系統(tǒng)的執(zhí)行過程沒有大的影響,是一種較為理想的耦合形式。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法66/109②控制耦合控制耦合指兩個(gè)模塊間除了傳遞數(shù)據(jù)信息外,還傳遞控制信息??刂岂詈蠈?duì)系統(tǒng)的影響比較大,它直接影響到接受該控制信號(hào)模塊的內(nèi)部運(yùn)行,因此,這種模塊不是一個(gè)嚴(yán)格意義上的“黑箱”,對(duì)系統(tǒng)的修改工作很不利,尤其是自上而下傳遞控制信號(hào),影響面更大。一般控制偶合出現(xiàn)在模塊的中上層。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法67/109③公共偶合當(dāng)兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí),它們之間的耦合稱為公共耦合。公共耦合可以是全程變量,內(nèi)存的公共覆蓋區(qū),存儲(chǔ)介質(zhì)上的文件等。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法68/109④內(nèi)容耦合指一個(gè)模塊,不經(jīng)調(diào)用直接使用或修改另一個(gè)模塊中的數(shù)據(jù)。是一種病態(tài)聯(lián)結(jié),在設(shè)計(jì)時(shí)應(yīng)避免。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法69/109⑵盡量提高模塊的聚合度聚合:指模塊內(nèi)部各組成部分之間的聯(lián)系程度。模塊的聚合度越高,其獨(dú)立性也就越高。模塊的聚合度分為七個(gè)等級(jí):

①功能聚合

②順序聚合

③通訊聚合

④過程聚合

⑤時(shí)間聚合

⑥邏輯聚合

⑦偶然聚合03二月2023第9章傳統(tǒng)設(shè)計(jì)方法70/109指一個(gè)模塊內(nèi)部的各個(gè)組成部分,其處理動(dòng)作的組合強(qiáng)度。它是決定系統(tǒng)結(jié)構(gòu)的重要因素。所謂模塊的內(nèi)部的“組成部分”是指該模塊運(yùn)行程序中的一條指令、一組指令或一個(gè)調(diào)用其他模塊的語(yǔ)句。模塊的聚合性03二月2023第9章傳統(tǒng)設(shè)計(jì)方法71/109一般來說一個(gè)模塊內(nèi)部應(yīng)該具有很強(qiáng)的內(nèi)聚性,它的各個(gè)組成部分都是密切相關(guān)的,是為完成一個(gè)共同的功能而組合在一起。內(nèi)聚性是度量模塊功能強(qiáng)度的一個(gè)相對(duì)指標(biāo),主要表現(xiàn)在模塊內(nèi)部各組成部分為了執(zhí)行處理功能而組合在一起的相關(guān)程度。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法72/109①功能聚合一個(gè)模塊只完成一個(gè)單獨(dú)的、能夠確切定義的功能。它對(duì)確定的輸入進(jìn)行處理后,輸出確定的結(jié)果,如計(jì)算機(jī)語(yǔ)言中的一個(gè)函數(shù)。這是一種理想的聚合方式,獨(dú)立性最強(qiáng),具有“黑箱”特征,使得模塊便于修改,便于分塊設(shè)計(jì)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法73/109②順序聚合一個(gè)模塊內(nèi)部各個(gè)組成部分執(zhí)行幾個(gè)處理功能,且一個(gè)處理功能所產(chǎn)生的輸出數(shù)據(jù)直接成為下一處理功能的輸入數(shù)據(jù)。其聚合程度較高。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法74/109③通訊聚合也稱數(shù)據(jù)聚合。一個(gè)模塊內(nèi)各個(gè)組成部分的處理功能,都使用相同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù),且其中各個(gè)處理功能是無(wú)序的。通訊聚合能合理地定義模塊功能,結(jié)構(gòu)比較清晰,聚合程度中等偏上。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法75/109④過程聚合一個(gè)模塊內(nèi)各個(gè)組成部分的處理功能各不相同,彼此也沒有什么關(guān)系,但它們都受同一個(gè)控制流支配,決定它們的執(zhí)行次序。其聚合程度中等。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法76/109⑤時(shí)間聚合也稱暫時(shí)聚合。一個(gè)模塊內(nèi)各個(gè)組成部分的處理功能和時(shí)間有關(guān),即在同一時(shí)間內(nèi)執(zhí)行。典型的有初始化模塊和結(jié)束模塊。其聚合程度中等偏下。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法77/109⑥邏輯聚合一個(gè)模塊內(nèi)各個(gè)組成部分的處理功能彼此無(wú)關(guān),但處理邏輯相似。邏輯聚合模塊的調(diào)用,常常有一個(gè)功能控制開關(guān),根據(jù)上層模塊的控制信號(hào),功能控制開關(guān)控制選擇某一個(gè)功能。其聚合程度較差。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法78/109⑦偶然聚合一個(gè)模塊由若干個(gè)并不相關(guān)的功能偶然地組合在一起,這種模塊內(nèi)部組織結(jié)構(gòu)的規(guī)律性最差,無(wú)法確定其功能。其聚合程度最低。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法79/109⑶模塊的分解指把一個(gè)模塊分解成若干個(gè)從屬于它的新模塊。模塊大其內(nèi)部組成部分必定比較復(fù)雜,或者它與其他模塊之間的耦合程度可能較高。應(yīng)采取分解的方法把它分解成若干個(gè)功能單一的較小的模塊。在分解模塊時(shí),主要是按功能進(jìn)行分解。在分解時(shí)既要考慮到模塊的聚合度,又要考慮到模塊之間的耦合程度,在這兩者之間選擇一個(gè)最佳的方案。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法80/109⑷模塊的扇入和扇出模塊的扇入表達(dá)了一個(gè)模塊與其直屬上級(jí)模塊的關(guān)系。扇入系數(shù):指其直接上級(jí)模塊的個(gè)數(shù)。模塊的扇出表達(dá)了一個(gè)模塊對(duì)它的直屬下級(jí)模塊的控制范圍。扇出系數(shù):指其直屬下級(jí)模塊的個(gè)數(shù)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法81/109模塊的扇入系數(shù)越大,表明它要被多個(gè)上級(jí)模塊所調(diào)用,其公用性很強(qiáng)說明模塊分解得較好,在系統(tǒng)維護(hù)時(shí)能夠減少對(duì)同一功能的修改因此要盡量提高模塊的扇入系數(shù)03二月2023第9章傳統(tǒng)設(shè)計(jì)方法82/109模塊的扇出系數(shù)大,說明模塊的直屬下級(jí)模塊多,表明它要控制的模塊多,要做的事情也就多,它的聚合度可能較低。故應(yīng)把模塊的直屬下級(jí)模塊控制在較小范圍內(nèi),即模塊的扇出系數(shù)不要太大,一般應(yīng)控制在7以內(nèi),若超過7則出錯(cuò)的概率可能會(huì)加大。若一個(gè)模塊較大而它的扇出系數(shù)卻很小,一般表明或者是其上級(jí)模塊仍然很大,或者是其下級(jí)模塊很大,故要適當(dāng)?shù)丶哟笊瘸鱿禂?shù),簡(jiǎn)化模塊的結(jié)構(gòu)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法83/109模塊結(jié)構(gòu)圖能表示系統(tǒng)總體邏輯構(gòu)成,表明了模塊的外部屬性,但沒有說明其內(nèi)部屬性,即模塊是如何實(shí)現(xiàn)其邏輯功能的。為便于后面的程序設(shè)計(jì),還必須要為每一個(gè)模塊撰寫相應(yīng)的說明書,即模塊說明書。目的是使程序設(shè)計(jì)人員能夠根據(jù)說明書的內(nèi)容進(jìn)行程序設(shè)計(jì)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法84/1099.5模塊算法設(shè)計(jì):偽碼系統(tǒng)流程圖和結(jié)構(gòu)圖,提供整個(gè)系統(tǒng)的結(jié)構(gòu)和每個(gè)程序的內(nèi)部結(jié)構(gòu)。描述模塊內(nèi)部邏輯方法:流程圖(描述程序邏輯的可視化方法)、結(jié)構(gòu)化英語(yǔ)和偽碼。偽碼更像是程序設(shè)計(jì)語(yǔ)言的結(jié)構(gòu)化語(yǔ)言的變體。通常用與目標(biāo)語(yǔ)言相近的語(yǔ)句寫偽碼。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法85/109計(jì)算付款部分的偽碼工資系統(tǒng)產(chǎn)生工資模塊、計(jì)算總量模塊、計(jì)算工資模塊,以及計(jì)算稅收模塊的偽碼語(yǔ)句。三種控制語(yǔ)句:順序語(yǔ)句;選擇語(yǔ)句(if-Then-else);循環(huán)語(yǔ)句(do-until或do-while)。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法86/109計(jì)算付款部分的偽碼03二月2023第9章傳統(tǒng)設(shè)計(jì)方法87/1099.6結(jié)構(gòu)化應(yīng)用程序設(shè)計(jì)與其他設(shè)計(jì)任務(wù)集成在結(jié)構(gòu)圖完整建立前,必須調(diào)整用戶界面、DB、網(wǎng)絡(luò)設(shè)計(jì)的關(guān)系,使之更全面。

1.從三個(gè)方面評(píng)估結(jié)構(gòu)圖

2.三個(gè)方面對(duì)DB進(jìn)行評(píng)價(jià)

3.檢查確保結(jié)構(gòu)圖與其它設(shè)計(jì)協(xié)調(diào)一致03二月2023第9章傳統(tǒng)設(shè)計(jì)方法88/1091.從三個(gè)方面評(píng)估結(jié)構(gòu)圖用戶界面應(yīng)包括:輸入表單、輸出表單和報(bào)表。每個(gè)表單都需要顯示并且用到數(shù)據(jù)都能從結(jié)構(gòu)圖中的某個(gè)模塊獲得。在建立這些表單的同時(shí)評(píng)估結(jié)構(gòu)圖:是否需要加入其他的用戶界面模塊;接口模塊的偽碼是否需要修改;是否需要加入其他的數(shù)據(jù)耦合。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法89/1092.三個(gè)方面對(duì)數(shù)據(jù)庫(kù)進(jìn)行評(píng)價(jià)ERD必須與在DFD中的數(shù)據(jù)存儲(chǔ)相一致。數(shù)據(jù)存儲(chǔ)與DB不需要一一對(duì)應(yīng),但數(shù)據(jù)存儲(chǔ)中的信息必須能在DB中找到。DB的表和字段也要在數(shù)據(jù)存儲(chǔ)中表示出來。對(duì)DB的評(píng)價(jià):模塊、偽碼和數(shù)據(jù)耦合。如果正在使用一個(gè)DBMS,需要提供一個(gè)接口,使得在調(diào)用DB接口模塊及在偽碼中嵌入SQL語(yǔ)言時(shí)均可對(duì)DB進(jìn)行操作。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法90/1093.檢查確保結(jié)構(gòu)圖與其它設(shè)計(jì)協(xié)調(diào)一致因?yàn)榻Y(jié)構(gòu)設(shè)計(jì)通常和詳細(xì)的軟件設(shè)計(jì)同時(shí)進(jìn)行,在恰當(dāng)?shù)木W(wǎng)絡(luò)結(jié)構(gòu)的假設(shè)的基礎(chǔ)上一般都會(huì)得到正確的系統(tǒng)流程圖和結(jié)構(gòu)圖。隨著更多細(xì)節(jié)的不斷加入,要對(duì)其進(jìn)行不斷的調(diào)整,這時(shí)又會(huì)產(chǎn)生新的問題。在詳細(xì)設(shè)計(jì)中,最后一步非常重要,即重新評(píng)估它與網(wǎng)絡(luò)結(jié)構(gòu)的一致性,特別是在所需協(xié)議、容量和安全性等方面。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法91/1099.7三層設(shè)計(jì)結(jié)構(gòu)圖和系統(tǒng)流程圖可用來描述基于三層結(jié)構(gòu)的設(shè)計(jì)決策和軟件結(jié)構(gòu)。

1.系統(tǒng)流程圖

2.結(jié)構(gòu)圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法92/1091.系統(tǒng)流程圖例:RMO客戶訂單程序的系統(tǒng)流程圖按視圖、業(yè)務(wù)邏輯,及數(shù)據(jù)訪問三層結(jié)構(gòu)劃分處理過程。層與層之間用系統(tǒng)流程圖上定義好的協(xié)議進(jìn)行通信,可使各層在需要時(shí)候建立在不同的機(jī)器上。協(xié)議的選擇(如HTTPS,SQL)及開發(fā)環(huán)境的選擇(如IE,Java組件和OracleDBMS)都是設(shè)計(jì)階段早期做出的結(jié)構(gòu)設(shè)計(jì)決定。用開發(fā)環(huán)境的詳細(xì)說明給系統(tǒng)流程圖做注釋可對(duì)決策進(jìn)行記錄歸檔,并與項(xiàng)目中其他參與人員就重要的約束進(jìn)行交流??蛻粲唵纬绦蛉龑咏Y(jié)構(gòu)的系統(tǒng)流程圖03二月2023第9章傳統(tǒng)設(shè)計(jì)方法94/109例可視層運(yùn)行在用戶工作站上,但它并沒有指出業(yè)務(wù)邏輯及數(shù)據(jù)訪問層的具體運(yùn)行位置。它們可運(yùn)行在用戶工作站上,也可都運(yùn)行在一個(gè)單獨(dú)的服務(wù)器上,或者各自運(yùn)行在獨(dú)立的服務(wù)器或服務(wù)器群上。除非加入專門的位置信息,否則系統(tǒng)流程圖應(yīng)按程序或模塊分組,而不是計(jì)算機(jī)系統(tǒng)給出處理功能的分布情況。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法95/1092.結(jié)構(gòu)圖結(jié)構(gòu)圖包含了處理所有可操作的應(yīng)用程序任務(wù)的模塊。包括:輸入/輸出(可視層)、業(yè)務(wù)邏輯,以及與存儲(chǔ)在文件或數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行交互(數(shù)據(jù)訪問層)。RMO客戶訂單程序結(jié)構(gòu)圖該圖描述了可以用傳統(tǒng)程序設(shè)計(jì)語(yǔ)言,如C或COBOL來實(shí)現(xiàn);并且在集中式硬件體系結(jié)構(gòu)中展開的程序?!爱a(chǎn)生新訂單”活動(dòng)三層結(jié)構(gòu)的結(jié)構(gòu)圖該結(jié)構(gòu)圖基于面向窗體對(duì)話框??梢晫幽K:用戶調(diào)用業(yè)務(wù)邏輯層模塊。業(yè)務(wù)邏輯層模塊:產(chǎn)生適當(dāng)?shù)腄B訪問命令和處理響應(yīng)的代碼。數(shù)據(jù)層模塊:DBMS。03二月2023第9章傳統(tǒng)設(shè)計(jì)方法98/109RMO中查找、添加或更新客戶數(shù)據(jù)用戶窗體03二月2023第9章傳統(tǒng)設(shè)計(jì)方法99/109窗體的VB代碼03二月2023第9章

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論