版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件設(shè)計的任務(wù),就是把需求階段產(chǎn)生的軟件說明
轉(zhuǎn)換為用適當(dāng)手段表示的軟件設(shè)計文檔。按照軟件生存
周期的劃分,設(shè)計任務(wù)通常分為兩個階段完成,第一個
階段是總體設(shè)計階段,用來確定軟件的結(jié)構(gòu),即軟件的
組成,以及各組成成分(子系統(tǒng)模塊)之間的相互關(guān)系。
第二階段是詳細設(shè)計階段,其任務(wù)是確定模塊內(nèi)部的算
法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細設(shè)計文
檔。也就是說,軟件設(shè)計的全過程可以歸結(jié)為:總體設(shè)
計——總體設(shè)計復(fù)審——詳細設(shè)計——詳細設(shè)計復(fù)審。
7.1軟件總體設(shè)計的基本任務(wù)
總體設(shè)計又稱為概要設(shè)計或初步設(shè)計,它
的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何
實現(xiàn)?”這個問題。在總體設(shè)計階段,應(yīng)劃分出組
成系統(tǒng)的物理元素——程序、文件、數(shù)據(jù)庫、人
工過程和文檔等,并確定系統(tǒng)中每個程序由哪些
模塊組成以及這些模塊相互間的關(guān)系。
7.2總體設(shè)計的基本任務(wù)
?軟件系統(tǒng)設(shè)計
把DFD中的處理分組,從各種可能的分組情況中選擇一
個作為最佳方案,該過程即為系統(tǒng)設(shè)計。
。軟件結(jié)構(gòu)設(shè)計
1.從系統(tǒng)設(shè)計方案所對應(yīng)的DFD導(dǎo)出系統(tǒng)模塊結(jié)構(gòu),并修
功能需求分配給各模塊。
2.確定每個模塊的功能及模塊間的調(diào)用關(guān)系。
3.確定模塊之間的接口,即模塊之間傳遞的信息。
4.評價模塊結(jié)構(gòu)的質(zhì)量?!獜S—
?數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計包括:概念設(shè)計、邏輯設(shè)計、物理設(shè)計
4
5
7.2總體設(shè)計的基本任務(wù)
?編寫概要設(shè)計文檔
1.概要設(shè)計說明書
2.數(shù)據(jù)庫設(shè)計說明書
3.用戶手冊:對需求分析、交互設(shè)計階段所編寫、
修改的用戶手冊進行補充。
4.修訂測試計劃:對測試策略、方法和步驟提出
明確要求。
?評審:
對是否完整地實現(xiàn)了需求中規(guī)定的功能、性能
等要求,設(shè)計方案的可行性、關(guān)鍵的處理及內(nèi)外
部接口定義正確性、有效性以及各部分之間的一
致性等,進行評審。
6
7.3軟件設(shè)計的基本概念和基本原理
一、模塊化設(shè)計
1、相關(guān)概念
把大型軟件按照規(guī)定的原則劃分為一個個較小的、
相對獨立但又相關(guān)的模塊的設(shè)計方法,叫做模塊化設(shè)計
(modulardesign)。
模塊(module)是數(shù)據(jù)說明和可執(zhí)行語句等程序
對象的集合,每個模塊單獨命名并且可以通過名字對模
塊進行訪問。
模塊的概念
在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和
更換的單元,具有以下幾種基本屬性:
接口:指模塊的輸入輸出。
功能:模塊實現(xiàn)的功能。
邏輯:內(nèi)部如何實現(xiàn)及所需數(shù)據(jù)。
狀態(tài):模塊的運行環(huán)境,調(diào)用與被調(diào)用關(guān)系。
邏輯屬性反映內(nèi)部特性,其它屬性反映模塊的
外部特性。
8
2.理想模塊(黑箱模塊)
理想模塊的特點:
⑴每個理想模塊只解決一個問題。
⑵每個理想模塊的功能都應(yīng)該明確,使人容易理
解。
⑶理想模塊之間的聯(lián)結(jié)關(guān)系簡單,具有獨立性。
⑷由理想模塊構(gòu)成的系統(tǒng),容易使人理解,易于
編程,易于測試,易于修改和維護。
對用戶來說,其感興趣是模塊的功能,而不必去理
解模塊內(nèi)部的結(jié)構(gòu)和原理。
3.模塊的理論根據(jù)
設(shè)函數(shù)C(x)定義問題x的復(fù)雜程度,函數(shù)
E(x)確定解決問題x需要的工作量。對于兩
個問題P1和P2,如果:C(P1)>C(P2),則顯
然有:
E(P1)>E(P2)
根據(jù)人類解決一般問題的經(jīng)驗,有:
C(P1+P2)>C(P1)+C(P2)
進而獲得:E(P1+P2)>E(P1)+E(P2)
E(P1+P2)>E(P1)+E(P2)
這個不等式表明:單獨解決問題Pl和P2
所需的工作量之和,比把P1和P2合起來作為
一個問題來解決時所需的工作量要少。
這種“分而治之”的思想提供了模塊化的
根據(jù):把復(fù)雜的問題分解成許多容易解決的
小問題,原來的問題也就容易解決了。
模塊化和軟件成本的關(guān)系
軟件總成本
模塊數(shù)目
4.模塊的圖形及符號
⑴模塊的圖形:用矩形表示。
修改庫存一個作為賓語的名詞組成
⑵模塊間通訊的圖形
模塊間通訊有兩種:數(shù)據(jù)通訊、控制通訊。
■數(shù)據(jù)通訊是一個數(shù)據(jù)流,它表示了一個經(jīng)過處理
的數(shù)據(jù)從一個模塊傳向另一個模塊。
■控制通訊,只傳送一個標(biāo)志,該標(biāo)志只表達了處
理工作的某種狀態(tài),而不是由被發(fā)送模塊真正進
行過處理的數(shù)據(jù)。
獲得配件庫存量
0庫存量
配件編號6
■無此配件
讀庫存記錄
模塊間的聯(lián)結(jié)模塊間的通訊
⑶模塊間判斷調(diào)用的圖形
一個模塊是否調(diào)用某一個從屬模塊,
依賴于調(diào)用模塊中判斷的條件。如果條件
成立,則產(chǎn)生調(diào)用命令。
⑷模塊間循環(huán)調(diào)用的圖形
■指一個模塊需要循環(huán)調(diào)用某一個或若干個
從屬模塊。
軟件設(shè)計的基本原理
◎抽象:
?是認識復(fù)雜現(xiàn)象過程中使用的思維工具。
?軟件結(jié)構(gòu)頂層模塊控制系統(tǒng)主要功能并影響全局,
底層模塊完成具體的處理。
◎在進行軟件設(shè)計時,抽象與逐步求精、模塊化密
切相關(guān),可提高軟件的可理解性。
17
(1)過程的抽象
在軟件工程中,從系統(tǒng)定義到實現(xiàn),每進
展一步都可以看做是對軟件解決方法的抽
象化過程的一次細化。
⑵數(shù)據(jù)抽象
在不同層次上描述數(shù)據(jù)對象的細節(jié),定義
與該數(shù)據(jù)對象相關(guān)的操作。
軟件設(shè)計的基本原理
◎信息隱蔽
是指在設(shè)計和確定模塊時,使得一個模塊內(nèi)包含
的信息(過程和數(shù)據(jù)),對于不需要這些信息的
其他模塊來說,是不可訪問的。它為軟件系統(tǒng)的
修改、測試及以后的維護都帶來好處。
19
模塊獨立性
◎模塊的獨立性:指每個模塊只完成系統(tǒng)要求的獨
立的子功能,并且與其它模塊的聯(lián)系量最少且接
□簡單。
e包括兩個度量準(zhǔn)則
㈱耦合性(Coupling):指軟件系統(tǒng)結(jié)構(gòu)中各模專
間相互聯(lián)系緊密程度的一種度量。模塊間耦合:
高低取決于接口的復(fù)雜性、調(diào)用的方式及傳遞'
的信息。
洸內(nèi)聚性(Cohesion):指模塊的功能強度的度堇/
即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度'
的度量。;
■r-r-HA
■XL工r
的
-sz
*<tr
THj+■
玨
金
K$ZC
inr,A
mfF早
累看
*<tc
fiT"O
J&■±&~4
§中仁.百
域旬*
<^ZI
TI『I十a(chǎn)
一n[u一4
但
^?rt.,―lA
喀
-<tl
rr-r?-1?■
■?■人,r.
中K?
皓
4「?1
11111
非直接耦合(NondirectCoupling)
兩個模塊之間
沒有直接關(guān)系)它
們之間的聯(lián)系完全
是通過主模塊的控
制和調(diào)用來實現(xiàn)的。
非直接耦合的模塊
獨立性最強。
數(shù)據(jù)耦合(DataCoupling)
一個模塊訪問另一個模塊時,彼此之間是通過簡
單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外
部變量)來交換輸入、輸出信息的。
標(biāo)記耦合(StampCoupling)
一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦
合。這個記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是
簡單變量。
pO(xO,yO)pl(xl,yl)
數(shù)據(jù)耦合LINE(xO,yO,xl,yl)
標(biāo)記耦合LINE(pO,pl)
控制耦合(ControlCoupling)
如果一個模
塊通過傳送開關(guān)、
標(biāo)志、名字等控
制信息,明顯地
控制選擇另一模
塊的功能,就是
控制耦合。
公共耦合(CommonCoupling)
若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們
之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可
以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共
覆蓋區(qū)等。
ABAB
common公共數(shù)據(jù)區(qū)common公共數(shù)據(jù)區(qū)
(a)松散的公共耨合何緊密的公共耦合
內(nèi)容根合(ContentCoupling)
如果發(fā)生下列情形,兩個模塊之間就
發(fā)生了內(nèi)容耦合
(1)一個模塊直接訪問另一個模塊的
內(nèi)部
(2)一個模塊不通過正常人口轉(zhuǎn)到另
一模塊內(nèi)部;
(3)兩個模塊有一部分程序代碼重迭
(只可能出現(xiàn)在匯編語言中);
(4)一個模塊有多個入口。
內(nèi)容耦合(ContentCoupling)
AABA
(a)進入另一模塊內(nèi)部
應(yīng)該采取下述設(shè)計原則:盡量使用數(shù)
據(jù)耦合,少用控制耦合,限制公共環(huán)境耦
合的范圍,完全不用內(nèi)容耦合。
標(biāo)記耦合舉例
:模塊之間的恃征聯(lián)結(jié)
住戶詳情中包含了“本月用電量”和“本月用水量”
兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡單數(shù)據(jù),而是記
錄、數(shù)組等)加以聯(lián)系
29
將標(biāo)記耦合改為數(shù)據(jù)耦合
30
控制耦合舉例
平均/最高|)成績
B
計算平均分或最高分
、'
1BK----------------
讀入分?jǐn)?shù)
分析B模塊11、,
1計算平均分計算最高分
11
1輸出結(jié)果
1------------
L
31
將控制耦合改為數(shù)據(jù)耦合
⑴將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進行
⑵被調(diào)用模塊分解成若干單一功能模塊
32
將控制耦合改為數(shù)據(jù)耦合
被調(diào)用模塊內(nèi)
處理邏輯模式
33
將控制耦合改為數(shù)據(jù)耦合
34
公共耦合舉例
ABA
common公共數(shù)據(jù)區(qū)common公共數(shù)據(jù)區(qū)
(a)松散的公共耦合(b)緊密的公共耦合
(1)系統(tǒng)可理解性降低
(模塊間存在錯綜復(fù)雜的連系)
(2)系統(tǒng)可維護性差
(修改變量名或?qū)傩岳щy)
(3)系統(tǒng)可靠性差
(公共數(shù)據(jù)區(qū)及全程變量無保護措施)
慎用公共數(shù)據(jù)區(qū)和全程變量?。?!
模塊A、B、C間存在錯綜復(fù)雜的聯(lián)系
35
如何降低模塊間耦合度:
(1)如模塊必須存在耦合,選擇適當(dāng)?shù)鸟詈项愋?/p>
原貝人盡量使用數(shù)據(jù)耦合
少用控制耦合
限制公共耦合的范圍
堅決避免使用內(nèi)容耦合
(2)降低模塊間接口的復(fù)雜性
接口復(fù)雜性與耦合類型的關(guān)系:
,直接引用--------------內(nèi)容耦合
接口方式
/、過程調(diào)用語句----------其它耦合
,數(shù)據(jù)項作參數(shù)----------數(shù)據(jù)耦合
接
口
數(shù)據(jù)結(jié)構(gòu),變
復(fù)----------標(biāo)記耦合
量名作參數(shù)
雜接口數(shù)據(jù)
性的復(fù)雜性
開關(guān)量,起控制耦合
控制變量作用
全程變量,
公共耦合
,公用數(shù)據(jù)區(qū)
無接口關(guān)系非直接耦合
內(nèi)聚嵯
衡量一個模塊內(nèi)部各成分之間彼此結(jié)合的
緊密程度
設(shè)計目標(biāo):高聚合(一模塊的所有成分都直
接參與并且對于完成同一功能來說都是最
基本的)
38
模塊內(nèi)聚
檄
雕醵虢醵腥醵啊醵瞬醵胎械
BSitt
璇牌-脆楠
內(nèi)聚性
?偶然內(nèi)聚:指一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)
系。
?邏輯內(nèi)聚:指模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過
參數(shù)確定該模塊完成哪一個功能。例如把編輯各種輸入數(shù)
據(jù)的功能放在一個模塊中。
?時間內(nèi)聚:把需要同時執(zhí)行的動作組合在一起形成的模
塊。例如程序設(shè)計中的初始化模塊。
■通信內(nèi)聚:指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結(jié)構(gòu)
上操作,或指各處理使用相同的輸入數(shù)據(jù)或者產(chǎn)生相同的
輸出數(shù)據(jù)。
?順序內(nèi)聚:指一個模塊中各個處理元素都密切相關(guān)于同
一功能且必須順序執(zhí)行,前一功能元素的輸出是后一功能
元素的輸入。
?功能內(nèi)聚:指模塊內(nèi)所有元素共同完成一個功能,缺一
不可。40
功能內(nèi)聚舉例
內(nèi)聚一個模塊內(nèi)的所有成分的處理動作全部為完
成某個功能,且只執(zhí)行一個功能,缺一不可,稱為功
能聚合。
聚合性最強
如:計算實發(fā)工資,打印發(fā)票等
41
順序內(nèi)聚舉例
一個模塊能完成多個操作,前一個操作處理的輸出
數(shù)據(jù)是下一個操作處理的輸入數(shù)據(jù),模塊中各成份
的工作是有次序的,各成份的關(guān)系也較緊密,則稱
為順序聚合。
模塊142模塊2
通信內(nèi)聚舉例
配件編號J庫存量模塊內(nèi)各部分使用
相同的輸入數(shù)據(jù),或產(chǎn)
J單價生相同的輸出結(jié)果,稱為
獲得配件單通信聚合逋者,逋信向
價和庫存量聚模塊是通過微據(jù)流囹
來是文的。
43
通信內(nèi)聚舉例
函數(shù)A
函數(shù)B
函數(shù)C
查找登錄刪除修改
通信內(nèi)聚舉例
產(chǎn)生職工工資報表并計算平均工資模塊
45
過程內(nèi)聚舉例
一個模塊內(nèi)各處理成分的動作各不相同,彼此也沒
什么關(guān)系,但它們都受一個土逖流的支配,且決定了它
們的執(zhí)行次序。
函數(shù)A
函數(shù)B
函數(shù)C
例如,把流程結(jié)構(gòu)中的循環(huán)部分、判定部分、
計算部分分成一個模塊,這三個任務(wù)組成的模塊
是過程內(nèi)聚模塊。
46
過程內(nèi)聚舉例
全部任務(wù)納入一^個
模塊,得到一過程
性模塊
高斯消去法解題流程
47
時間內(nèi)聚舉例
時間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為
多功能模塊,但模塊的各個功能的執(zhí)行與時間有
關(guān),通常要求所有功能必須在同一時間段內(nèi)執(zhí)行
o這些功能只因時間因素關(guān)聯(lián)在一起。
函數(shù)A(T時間)
函數(shù)B(T+t時間)
函數(shù)CfTt時間)
例如初始化模塊、終止模塊、緊急故障處理模塊
48
邏輯內(nèi)聚舉例
調(diào)用模塊
這種模塊把幾種
相關(guān)的功能組合
在一起,每次被
調(diào)用時,由傳送被
調(diào)
給模塊的判定參用
數(shù)來確定該模塊模
應(yīng)執(zhí)行哪一種功塊
49
邏輯內(nèi)聚舉例
缺點:增強了耦合程度(控制耦合)
不易修改,效率低
50
偶然內(nèi)聚舉例
當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,
這種聯(lián)系也很松散,則稱這種模塊為巧合內(nèi)聚模塊,
它是內(nèi)聚程度最低的模塊。
,做雜事,
模塊M中的三個語句沒有任何聯(lián)系
缺點:可理解性差,可修改性差
51
7.4軟件結(jié)構(gòu)圖形工具
◎軟件結(jié)構(gòu)圖
目軟件結(jié)構(gòu)設(shè)計優(yōu)化準(zhǔn)則
◎表示軟件結(jié)構(gòu)的HIPO圖
(HierarchyPlus
Input/Processing/Output)
52
軟件結(jié)構(gòu)圖(StructureChart)
模塊:用方框表示,名字體現(xiàn)該模塊的功能
模塊間的控制關(guān)系:統(tǒng)率、從屬;
模塊間的信息傳遞:
兩個附加符號:
模塊選擇調(diào)用或循環(huán)調(diào)用。
注意事項:模塊唯一、從上到下調(diào)用、調(diào)用次序不
ABC
結(jié)構(gòu)圖的形態(tài)特征
■深度、寬度、扇入、扇出。
扇入
T
寬度
54
SC7F的皿種模塊
55
sc中的選擇調(diào)用
A根據(jù)內(nèi)部判斷A按另一判定結(jié)果
決定是否調(diào)用B選擇調(diào)用C或D
y、A
1~BIIC1I~~DI
56
sc中的循環(huán)調(diào)用
A根據(jù)循環(huán)條件重復(fù)調(diào)用B、C等模塊
57
軟件結(jié)構(gòu)圖舉例
讀輸入編輯輸入結(jié)果格式化顯示輸出
產(chǎn)生最佳解
58
7.5面向數(shù)據(jù)流的設(shè)計方法
(一)概念
1.變換流
2.事務(wù)流
3.設(shè)計過程
L變換流
參看圖形,信息沿輸入通
路進入系統(tǒng),同時由外部
形式變換成內(nèi)部形式,進
入系統(tǒng)的信息通過變換中
心,經(jīng)過加工處理以后再
沿輸出通路變換成外部形
式離開軟件系統(tǒng)。
當(dāng)數(shù)據(jù)流具有這些特征時,
這種信息流稱為變換流。
2.事務(wù)流
數(shù)據(jù)沿輸入通路到達一
個處理T,這個處理根
據(jù)輸入數(shù)據(jù)的類型在若
干個動作序列中選出一
個來執(zhí)行。這種“以事
務(wù)為中心的''的數(shù)據(jù)流,
稱為“事務(wù)流”。
處理T稱為事務(wù)中心,完成以下任務(wù):接收輸入數(shù)
據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類
型選取一條活動通路。
3、面向數(shù)據(jù)流的設(shè)計精化數(shù)據(jù)流程圖
過程
詳細設(shè)計
(二)變換分析設(shè)計方法
(TransformAnalysis)
步驟:
1找出主加工、邏輯輸入和邏輯輸出
2設(shè)計模塊結(jié)構(gòu)的頂層和第一層
3設(shè)計中、下層模塊
1分輸入、主加工、輸出部分,在DFD
上標(biāo)明分界線
⑴確定邏那就人——離物理輸入端最遠
的,但仍可被看作系統(tǒng)輸入的那個數(shù)據(jù)
流
方法:從物理輸入端開始,一步步向系
統(tǒng)的中間移動,直至達到這樣一個數(shù)據(jù)
流:它已不能再被看作為系統(tǒng)的輸入,
則其前一個數(shù)據(jù)流就是系統(tǒng)的邏輯輸入O
1:分輸入、主加工、輸出部分,在DFD
上標(biāo)明分界線(續(xù))
⑵確定邏輯輸出——離物理輸出端最遠的,
但仍可被看作系統(tǒng)輸出的那個數(shù)據(jù)流
方法:從物理輸出端開始,一步步向系統(tǒng)
的中間反方向移動,直至達到這樣一個數(shù)
據(jù)流:它已不能再被看作為系統(tǒng)的輸出,
則其后一個數(shù)據(jù)流就是系統(tǒng)的邏輯輸出。
1:分輸入、主加工、輸出部分,在DFD
上標(biāo)明分界線(續(xù))
⑶對系統(tǒng)的每一股輸入和輸出,都用上面的
方法找出相應(yīng)的邏輯輸入、輸出
(4)確定主加工----位于邏輯輸入和邏輯輸出
之間的加工)就是系統(tǒng)的主加工
⑸幾點說明:
?有的系統(tǒng)只有輸入和輸出兩部分,沒有主加工
>根據(jù)經(jīng)驗,幾股數(shù)據(jù)流的匯合處往往是系統(tǒng)的主加工
?每個人都可以有自己的看法,找出來的主加工可能也不
同,但一般不會相差太遠。
變換中心
輸入
部分
B■■
輸入鼬IX
2設(shè)計SC的頂層和第一層模塊:
(1)設(shè)計一個頂層模塊(主模塊),它的功能是完成整個
程序要做的工作。
(2)設(shè)計結(jié)構(gòu)的第一層:
?為邏輯輸入設(shè)計一個輸入模塊,它的功能是向主模塊
提供數(shù)據(jù)
?為邏輯輸出設(shè)計一個輸出模塊,它的功能是輸出主模
塊提供的數(shù)據(jù)
?為主加工設(shè)計一個變換模塊,它的功能是號邏輯輸入
變換成邏輯輸出
第一層模塊同頂層主模塊之間傳送的數(shù)據(jù)應(yīng)與數(shù)據(jù)流圖相對
應(yīng)。這里主模塊控制并協(xié)調(diào)一層的輸入、變換、輸出模塊的工
作,注意識別出選擇或循環(huán)調(diào)用以及調(diào)用條件。
第一級分解后的sc
3第二級分解(分解SC各分支)自頂向下分解,設(shè)計
出每個分支(輸入、加工、輸出)的中、下層模塊:
⑴為每一個輸入模塊設(shè)計兩個下層模塊,一個是輸入模
塊,接受數(shù)據(jù)來源;另一個是變換模塊,模塊調(diào)用時傳
送的參數(shù)應(yīng)同數(shù)據(jù)流圖相對應(yīng)
⑵輸出模塊也有兩部分組成,一部分是變換模塊,將數(shù)
據(jù)變換成輸出的形式;另一部分是輸出模塊
上述設(shè)計過程由頂向下遞歸進行,直至達到系統(tǒng)的輸
入端或輸出端
(3)變換模塊的下層模塊,根據(jù)數(shù)據(jù)流圖中相應(yīng)加工的組
成情況而定。
輸
入
分
GetCGetE
支
7/bN
的
B||Btoj)
分GetReadDDtoE:
解a
ReadA。to
w,u
DFD1
加工分支的分解
不換分析舉例-DFD
變換分析舉例一轉(zhuǎn)換后的SC
匯款處理系統(tǒng)
合格的
匯款單各格的[處屆聯(lián)
匯款單:匯款單業(yè)務(wù)數(shù)據(jù)
匯款單處理后用
業(yè)務(wù)數(shù)據(jù)
取得合格輸出處理后
計舁費記賬
匯款單/L的匯款單
處理后的
合格的匯款單1收據(jù)
匯款于匯款單匯款單
產(chǎn)生收據(jù)打印收據(jù)
輸入格式檢查
匯款單
變換分析設(shè)計
4.設(shè)計的優(yōu)化——根據(jù)設(shè)計準(zhǔn)則
(1)輸入部分的求精
?對每個物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外
部接口;其他輸入模塊并非真正輸入,當(dāng)它與轉(zhuǎn)
換數(shù)據(jù)的模塊都很簡單時,可修它們合并成一個
(2)輸出部分的求精
?為每個物理輸出設(shè)置專門模塊,同時注意把相
同或類似的物理輸出模塊合并在一起,以減低
耦合度。
78
(3)變換部分的求精:根據(jù)設(shè)計準(zhǔn)則,對模塊進
行合并和調(diào)整。
軟件結(jié)構(gòu)的求精,具有很大的經(jīng)驗性。
追求“高內(nèi)聚,低耦合”方法:
?設(shè)計有獨立功能的模塊
?模塊間傳遞數(shù)據(jù)型的參數(shù)
?模塊間共享信息盡量少
79
C合法性檢奄)
分房申請A2,3尊分房<調(diào)厲產(chǎn)生分房一3退房處理80
、和分類J飛者務(wù)數(shù)J
(ra)事務(wù)分析設(shè)計方法
任何情況下都可使用變換分析方
法設(shè)計軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明
顯的事務(wù)特點時(有一個明顯的事務(wù)中
心),以采用事務(wù)分析方法為宜。
事務(wù)分析設(shè)計
?事務(wù)分析的設(shè)計步驟和變換分析的設(shè)計步驟大部分
相同或類似,主要差別僅在由數(shù)據(jù)流程圖到軟件結(jié)構(gòu)
的映射方法不同。由事務(wù)流映射成的軟件結(jié)構(gòu)包括一
個接收分支和一個發(fā)送分支。
?映射出接收分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)
構(gòu)的方法相似,即從事務(wù)中心的邊界開始,把沿著接
收流通路的處理邏輯映射成模塊。
?發(fā)送分支的結(jié)構(gòu)包含一個調(diào)度模塊,它控制下層的所
有活動模塊;然后把數(shù)據(jù)流程圖中的每一個活動流通
路映射成與它的特征相對應(yīng)的結(jié)構(gòu)。
82
C通路
事務(wù)分析的映射方法83
5杳詢處理—一詢問信息用戶
空房信息----?房租文件住歷信息
3退房處理Y_______調(diào)用"生退房
2分房處理分房申請
工一i崗房產(chǎn)生分房----------
退房申請
居住條件和單
位面積房租4調(diào)房處理
住房分配單口合法性檢)
、杳和分類,調(diào)房申記
用
6更改信息怔
壬
1/
——分房系統(tǒng)
/7生成住、
**——統(tǒng)計表〔房統(tǒng)計表J
更改信耍求一
房產(chǎn)科
更改信息合法性檢查
分房處理
84
圖書管理,1.2
新書入庫
要求/入庫單
目錄文件
、注銷1.5
1.1注銷圖書罰款單
;(要求類
1.3
借書
借書文件
中,C?無效輸入
1.4
事務(wù)分析舉例-DFD還書罰款單
事務(wù)分析舉例一轉(zhuǎn)換后的SC
圖書處理系統(tǒng)
圖書管
注銷單
還由單
取得圖書新書入庫借書還書注銷圖書
處理要求
操作層修改借打印
錄文件書文件罰款單
細節(jié)層
軟件結(jié)構(gòu)圖注意事項
(1)同一名字的模塊在結(jié)構(gòu)圖中僅能出現(xiàn)一次。
(2)調(diào)用關(guān)系只能從上到下。
(3)不嚴(yán)格表示模塊的調(diào)用次序,習(xí)慣上從左到右,
有時為了減少連線的交叉,適當(dāng)?shù)卣{(diào)整同一層模塊
的左右位置,以保證結(jié)構(gòu)圖的清晰。
(4)結(jié)構(gòu)圖并不指明什么時候調(diào)用下層模塊,只表明
一個模塊調(diào)用哪些模塊,至于模塊內(nèi)還有沒有其他
成分則完全沒有表示。
87
綜合數(shù)據(jù)流圖的映射
您確定DFD整體上的類型:除明顯有事務(wù)類型
的,都可認為是變換型。事務(wù)型用于高層
DFD變換有平行處理的優(yōu)點。
您把與全局特性不同的局部區(qū)域孤立出來)確
定類型。
您按整體與局部的DFD特性,設(shè)計軟件結(jié)構(gòu)。
88
混合型的結(jié)構(gòu)設(shè)計
89
練習(xí):
請給出下列DFD圖對應(yīng)的結(jié)構(gòu)圖:
90
設(shè)計優(yōu)化
將初始sc根據(jù)模塊獨立性原則進行精化
,對模塊進行合并、分解修改、調(diào)整,得到
高內(nèi)聚、俅耦合模塊,得到易于實現(xiàn)、易于
測試和易于維護的軟件結(jié)構(gòu),產(chǎn)生設(shè)計文檔
的最終SC。
91
改進軟件結(jié)構(gòu)設(shè)計的指導(dǎo)原則
⑴程序結(jié)構(gòu)盡可能與問題結(jié)構(gòu)相對應(yīng)
⑵模塊功能的完整
(3)消除重復(fù)功能
(4)作用范圍應(yīng)在控制范圍內(nèi)
⑸減少高扇出爭取高扇入
(6)模塊大小適中
⑺降低模塊接口的復(fù)雜性
(8)模塊功能可預(yù)測92
(1)程序結(jié)構(gòu)盡可能與問題結(jié)構(gòu)相對應(yīng)
兩種典型的程序結(jié)構(gòu):
■變換型程序
■事務(wù)型程序
兩種程序結(jié)構(gòu)的共同特征:
上層模塊只負責(zé)控制、協(xié)調(diào)
下層模塊完成具體的操作
93
(2)模塊功能的完整
完整的模塊應(yīng)包括三部分:
■執(zhí)行規(guī)定功能部分
■出錯處理部分
■需返回一系列數(shù)據(jù)時,應(yīng)返回是否正確結(jié)束(
即“文件完/EOF”)標(biāo)志。
94
(3)消除重復(fù)功能
幾個模塊中含有重復(fù)的部分,應(yīng)設(shè)法消去
o因為同一功能重復(fù)多處,不僅浪費編程、測
試時間,還會給修改帶來麻煩。
但消除重復(fù)功能并不是簡單的合并。正確的方
法是:先分析幾個模塊中相同功能的部分;然
后把這個功能分離出來,構(gòu)成它們的一個公共
的下層模塊。
95
例子:消除重復(fù)功能
96
例子:消除重復(fù)功能
說明:如果A、B抽去公共部分C之后余下的模塊A
B'比較簡單,則可以同它們的調(diào)用模塊X、Y合并,
所以改進后圖2、圖3都有可能。
97
(4)作用范圍應(yīng)在控制范圍內(nèi)(作用域
應(yīng)在控制域內(nèi))
■模塊的控制范圍(控制域):
包括模塊本身和其下屬模塊的集合。
■模塊的作用范圍(作用域):
指受該模塊內(nèi)一個條件判定影響的所有模塊的集
合。只要模塊中含有一些依賴于這個判定的語句
,那么就稱該模塊在這個判定的作用范圍內(nèi)。
■控制域是從結(jié)構(gòu)方面考慮的;作用域是從功能方
面考慮的
98
■控制范圍與作用范圍之間的準(zhǔn)則:
一個模塊的作用范圍應(yīng)在其控制范圍之
內(nèi),且條件判定所在的模塊應(yīng)與受其影
響的模塊在層次上盡量靠近。
99
模塊的控制范圍和作用范圍(例)
模塊A的控制范圍:
A、B、C、
D、E、F
A的作用范圍:
A、C、F
:條件判定
?----1:受判定影響的模塊
100
圖A:判定位置違反作用范圍/控制范圍原則
條件
G——?D判定
1)將判定所需數(shù)據(jù)從G向上傳送到D、B,再向下傳給C,C用
這些數(shù)據(jù)再次作出判定。從而增加塊間數(shù)據(jù)量
2)將判定的結(jié)果(是/不是)從G向上傳送到D、B,再向下傳給C
,C用這些開關(guān)量決定執(zhí)行那些操作。這樣也增加塊間數(shù)據(jù)量,
而且傳送控制信息。
101
圖B:符合作用范圍/控制范圍原則,但判定位置
太高
TOP
TOP
102
圖C:符合作用范圍/控制范圍原則,判定位置
適中
B—?C
B>D—?G
103
圖D:符合作用范圍/控制范圍的理想判定位置
TOP
DE
D—?G
104
修改模塊結(jié)構(gòu)方法:
■將包含條件判定的模塊合并到它的調(diào)用模塊
中,使判定處于較高位置
■將接受判定影響的模塊下移到控制范圍內(nèi)
■把判定上移到足夠的位置
可以歸結(jié)為:
使判定同受其影響的操作盡可能靠近。
105
(5)減少高扇出,爭取高扇入
■模塊調(diào)用的直接下層模塊的個數(shù),稱為扇出(Fanout)
■模塊被其他各模塊調(diào)用的個數(shù),稱為扇入(Fanin)
■原則:扇出不宜過大,<二7;扇人盡可能大些。但
CASE(分類)型模塊扇出可>7,因為屬自然分類情況,易理
解
符號:
(扇出,扇人)
(5)減少高扇出,爭取高扇入(續(xù))
相關(guān)技巧:
■良好的結(jié)構(gòu)圖往往呈“清真狀”,即“頂為尖一下層逐
漸加寬一底層收窄”
■結(jié)構(gòu)圖的形態(tài)應(yīng)該均衡,即從頂?shù)降讓拥穆窂介L短不該
過于懸殊
107
(6)模塊大小適中
■模塊過大:可理解程度下降
考慮對該模塊分解
■模塊過小:開銷大于有效操作,系統(tǒng)接口復(fù)雜
考慮是否同它的調(diào)用模塊合并
幾種情況下的小模塊不合并:
e模塊具有獨立的功能
e模塊功能可能會發(fā)生變化
&模塊的復(fù)用性好,或者其調(diào)用模塊很復(fù)雜
108
(7)降低模塊接口的復(fù)雜性
接口傳遞信息應(yīng)簡單且和模塊功能一致。
例:求一元二次方程的根
設(shè)求根模塊調(diào)用形式為:
(1)QUAD—ROOT(TBL,X)
傳遞系數(shù)的數(shù)組存放根的數(shù)組
(2)QUAD-ROOT(A,B,C,ROOT1,ROOT2)
A,B,C為方程系數(shù)
ROOT1,ROOT2是兩個才艮
109
(8)模塊功能可預(yù)測
■可將模塊看成黑盒子,相同輸入可產(chǎn)生相同
輸出,稱其功能為可預(yù)測的。
■模塊帶有內(nèi)部狀態(tài),其功能可能是不可預(yù)測
的。這樣的模塊難理解、難測試、難維護。
110
詳細設(shè)計的基本任務(wù)
?算法設(shè)計
?數(shù)據(jù)結(jié)構(gòu)設(shè)計
?數(shù)據(jù)庫物理設(shè)計
?其他設(shè)計:代碼設(shè)計、輸入/輸出設(shè)計、界面設(shè)計
■編寫詳細設(shè)計說明書:
?評審
詳細設(shè)計是根據(jù)每個模塊的功能設(shè)計其邏輯
描述、實現(xiàn)其法以及實現(xiàn)這些算法的邏輯控制流
程,并設(shè)計這些模塊所需的局部數(shù)據(jù)結(jié)構(gòu)。
111
詳細設(shè)計說明書
■引言:包括編寫目的、背景、定義、參考資料
■程序系統(tǒng)的組織結(jié)構(gòu)。
?程序1(標(biāo)識符)設(shè)計說明,包括功能、性能、輸
入、輸出、算法、流程邏輯、接口。
■程序2(標(biāo)識符)設(shè)計說明
■程序N(標(biāo)識符)設(shè)計說明
112
詳細設(shè)計方法-結(jié)構(gòu)化程序設(shè)計
?詳細設(shè)計結(jié)果基本上決定了最終程序代碼的質(zhì)量。
?不僅要邏輯正確,性能滿足,還要簡明易懂。
1.采用自頂向下,逐步求精的程序設(shè)計方法。
2.使用三種基本控制結(jié)構(gòu)構(gòu)造程序:順序、選擇、循
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端住宅小區(qū)物業(yè)保安勞務(wù)服務(wù)合同范本
- 2025年度購房貸款個人信息保護合同
- 2025年度游樂園項目場地使用權(quán)及設(shè)施維護合作協(xié)議
- 2025年度水田承包與農(nóng)業(yè)品牌建設(shè)合作協(xié)議
- 二零二五年度白蟻防治服務(wù)合同-城市綠化帶白蟻防治
- 二零二五年度游艇俱樂部船舶租賃代理合同
- 二零二五年度餐飲企業(yè)員工勞動合同法律服務(wù)與保障
- 2025年度互聯(lián)網(wǎng)簽訂方協(xié)議詳細流程與網(wǎng)絡(luò)安全責(zé)任追究協(xié)議
- 二零二五年度二手電腦及配件交易合同
- 二零二五年度綠色能源股份轉(zhuǎn)讓合同
- 2024年人教版小學(xué)三年級信息技術(shù)(下冊)期末試卷附答案
- TB 10012-2019 鐵路工程地質(zhì)勘察規(guī)范
- 新蘇教版三年級下冊科學(xué)全冊知識點(背誦用)
- 鄉(xiāng)鎮(zhèn)風(fēng)控維穩(wěn)應(yīng)急預(yù)案演練
- 腦梗死合并癲癇病人的護理查房
- 蘇教版四年級上冊脫式計算300題及答案
- 犯罪現(xiàn)場保護培訓(xùn)課件
- 扣款通知單 采購部
- 電除顫操作流程圖
- 湖北教育出版社三年級下冊信息技術(shù)教案
- 設(shè)計基礎(chǔ)全套教學(xué)課件
評論
0/150
提交評論