




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 總體設計4.1 總體設計的任務411 目的 確定系統(tǒng)怎么做,也就是確定系統(tǒng)應該由哪些部份組成,它們是如何聯(lián)結在一起的。412 主要內容 1.系統(tǒng)結構設計 確定系統(tǒng)的具體物理實現(xiàn)方案,也就是劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等等。 2.軟件結構設計 確定組成每一個程序的模塊,以及模塊間的關系。注對于給定的系統(tǒng)邏輯要求,往往存在著若干種不同的物理實現(xiàn)方案,都能滿足這個邏輯。總體設計首先要找出實現(xiàn)目標系統(tǒng)的各種不同物理方案,從中選取合理的方案,并在綜合分析比較的基礎上選出一個最佳方案向用戶推薦,如果用戶接受了推薦的方案,分析員應該為這個最佳方案設計軟件結構,進行必要的
2、數(shù)據(jù)庫設計,確定測試要求并制定測試計劃。4.2 總體設計的過程設想供選擇的方案書寫文檔推薦最佳的方案選取合理的方案功能分解設計軟件結構數(shù)據(jù)庫設計制定組裝測試計劃計劃成本 審查和復審進入“軟件結構”設計:設計出組成這個系統(tǒng)的所有程序、文件和數(shù)據(jù)庫,以及它們之間的聯(lián)系。軟件結構:由模塊組成的層次系統(tǒng)。模塊:數(shù)據(jù)說明、可執(zhí)行語句等程序對象的集合。例:過程,函數(shù),宏等注教材2.4例子圖2.5定貨系統(tǒng)的基本系統(tǒng)模型(DFD1)圖2.6定貨系統(tǒng)的功能級數(shù)據(jù)流圖(DFD2)圖2.7把處理事務的功能進一步分解后的數(shù)據(jù)流圖(DFD3)圖2.8這種劃分自動化邊界的方法暗示以批量方式更新庫存清單圖2.9這種劃分自動
3、化邊界的方法建議以聯(lián)機方式更新庫存清單注 (1)C/S(Client/Server)結構C/S(Client/Server)結構(又稱客戶/服務器模式),即客戶機和服務器結構。它是軟件系統(tǒng)體系結構,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。C/S結構軟件分為客戶機和服務器兩層,客戶機不是毫無運算能力的輸入、輸出設備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲能力,通過把應用軟件的計算和數(shù)據(jù)合理地分配在客戶機和服務器兩端,可以有效地降低網(wǎng)絡通信量和服務器運算量。由于服務器連接個數(shù)和數(shù)據(jù)通信量的限制,這種結構的軟件適于在用戶數(shù)目不多的
4、局域網(wǎng)內使用。C/S 結構的基本原則是將計算機應用任務分解成多個子任務,由多臺計算機分工完成,即采用“功能分布”原則??蛻舳送瓿蓴?shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務器端完成DBMS的核心功能,是一種客戶請求服務、服務器提供服務的處理方式。C/S結構中服務器通常采用高性能的PC、工作站或小型機,并采用大型數(shù)據(jù)庫系統(tǒng),如ORACLE、SYBASE、InfORMix或 SQL Server??蛻舳诵枰惭b專用的客戶端軟件。C/S技術從上世紀90年代初出現(xiàn)至今已經(jīng)相當成熟,并得到了非常廣泛的應用,其結構經(jīng)歷了二層C/S、三層C/S的更迭。(2)B/S(Browser/Server)結構B/S(Br
5、owser/Server)結構,即瀏覽器/服務器結構,是WEB興起后的一種網(wǎng)絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務器上,簡化了系統(tǒng)的開發(fā)、維護和使用??蛻魴C上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互。 B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件,只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系
6、統(tǒng)的擴展非常容易。B/S技術是伴隨著Internet的普及而來的。需要說明的是,B/S最早并不叫“B/S”,此類應用國外通常叫Web應用,是國內一些公司“創(chuàng)造”了“B/S”這個詞。 圖:B/S結構示意圖4.3 結構化設計(Structured Design)張海藩書中在本階段所用的方法就是所謂的SD方法:1974年美國的康斯坦?。↙.Constantine)、斯蒂文斯(W.Stevens)、梅約斯(G.Myers)三人聯(lián)名在IBM系統(tǒng)雜志(IBM System Journal,Vol.13,NO.2)上發(fā)表了一篇題為“結構化設計(Structured Design)”的論文,第一次提出了結構化
7、設計的思想,“結構化設計”概括地說就是:用一組標準的工具和準則來確定系統(tǒng)應該由哪些模塊、用什么方式聯(lián)結在一起,才能構成一個最好的軟件結構。工具我們在前面已經(jīng)介紹,下面我們就來學習這些準則,這就是書中所介紹的“5.2 設計原理(P94)”和“5.3 啟發(fā)規(guī)則(P99)”,我們把它概括為:4.4 軟件結構設計的基本概念4.4.1 模塊化(1)模塊 具有四種屬性的一組程序語句稱為一個模塊,這四種屬性分別是:輸入和輸出、邏輯功能、運行程序、內部數(shù)據(jù)。注(1)輸入和輸出:輸入來源和輸出去處都是同一個調用者,也就是一個模塊從調用者那里獲得輸入,然后再把產(chǎn)生的輸出返回給調用者;(2)邏輯功能:邏輯功能是指它
8、能夠做什么事情,表達了它把輸入轉換成輸出的功能;(3)運行程序:運行程序是指它如何用程序設計語言(PDL)實現(xiàn)這種邏輯功能的;(4)內部數(shù)據(jù):內部數(shù)據(jù)是指屬于該模塊自己的數(shù)據(jù)。(5)輸入和輸出、邏輯功能是模塊的外部屬性;運行程序、內部數(shù)據(jù)是模塊的內部屬性。在“總體設計”階段僅完成模塊的外部屬性設計,下一階段“詳細設計”才完成模塊的內部屬性設計。(2)模塊化 模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。注模塊及模塊間關系的圖形表示:(1)模塊的圖形表示:名稱(動詞+名詞)表達這個模塊的功能(2)模塊間聯(lián)結的圖形表示:
9、AB模塊A中含有調用模塊B的邏輯:Call B(3)模塊間通訊的圖形表示: 模塊間的通訊分兩種類型:1)數(shù)據(jù)通訊:它表示一個經(jīng)過處理的數(shù)據(jù)從一個模塊傳向另一個模塊;2)控制通訊:它只傳送一個標志·,此標志表達了處理工作的某種狀態(tài),而不是由發(fā)送模塊真正進行過處理的數(shù)據(jù)。獲得庫存記錄檢索庫存記錄(4)模塊間判斷調用的圖形表示:BCBD(5)模塊間循環(huán)調用的圖形表示:ABCD4.4.2 模塊獨立 開發(fā)具有獨立功能而且和其它模塊之間沒有過多相互作用的模塊。 那么,怎么來做到模塊獨立呢?換句話說:影響模塊獨立的因素主要有哪些?4.4.2.1 Coupling聯(lián)結(耦合)是對一個軟件結構內不同模
10、塊之間互連程度的度量(或指兩個模塊之間的相互依賴關系)。(1) 數(shù)據(jù)聯(lián)結 如果兩個模塊之間的通訊信息僅僅是一個個數(shù)據(jù)元素,那么這種聯(lián)結稱為數(shù)據(jù)聯(lián)結。開發(fā)票計算金額注1)盡量減少兩個模塊間不必要的數(shù)據(jù)傳輸; 2)必須消除所有的“游離數(shù)據(jù)”。(2) 特征聯(lián)結 如果兩個模塊都與同一個數(shù)據(jù)結構有關,那么這種聯(lián)結稱為特征聯(lián)結。計算水費和電費計算水費計算電費注1)特征聯(lián)結會使本應毫無關系的模塊產(chǎn)生相互依賴性,應盡可能的把不需要的數(shù)據(jù)去掉,最好修改成數(shù)據(jù)聯(lián)結; 2)嚴禁“捆綁”。(3) 控制聯(lián)結 如果模塊A向模塊B所傳遞的信息控制了模塊B的內部邏輯,那么模塊A和模塊B之間的聯(lián)結稱為控制聯(lián)結。獲得庫存記錄檢索
11、庫存記錄注1)控制聯(lián)結的形式:b)描述性標志:描述數(shù)據(jù)的狀態(tài)或性質形容詞+名詞a)控制性標志:要求執(zhí)行非正常的動作或與該模塊功能不相關的事情動詞 2)使用控制聯(lián)結的原則:a)使用描述性標志b)消除控制性標志 (4) 公共聯(lián)結 如果兩個模塊都和同一個公用數(shù)據(jù)域有關,那么這兩個模塊之間的聯(lián)結稱為公共聯(lián)結。ACEBD公用數(shù)據(jù)碼相機注1)“公用數(shù)據(jù)域”的概念來自FORTRAN中的公用語句COMMON。所有程序和函數(shù)都能夠存取公用數(shù)據(jù)域,比如:Pascal中的全程變量,PowerBuilder中全局變量、共享變量、例子變量; 2)如果有n個公用數(shù)據(jù)元素存在于m個模塊中,那么總的“公共聯(lián)結”關系個數(shù)R:(
12、5) 內容聯(lián)結 如果一個模塊和另一個模塊的內部屬性有關,那么這種聯(lián)結稱為內容聯(lián)結(也稱病態(tài)聯(lián)結)。注Coupling設計原則:1)應以數(shù)據(jù)聯(lián)結為主,特征聯(lián)結為輔,必要時才建立控制聯(lián)結和公共聯(lián)結,完全不用內容聯(lián)結;2)在建立模塊間的數(shù)據(jù)聯(lián)結時,要消除“游離數(shù)據(jù)”;在建立模塊間的特征聯(lián)結時,要嚴禁“捆綁”;在建立模塊間的控制聯(lián)結時,要避免使用控制性標志,而使用描述性標志;3)盡量少用混合形式。4.4.2.2 Cohesion 組合(內聚)是指一個模塊內各個元素彼此結合的緊密程度。(1) 功能組合 如果一個模塊內部所有組成部分全部為執(zhí)行同一功能而存在,并且只執(zhí)行一個功能,那么這種組合稱為功能組合。注
13、1)判斷一個模塊是不是功能組合,可從它的名稱看它是否執(zhí)行一個簡單的功能:a)名稱:動詞+單數(shù)名詞;b)為上級模塊完成單一的任務; 2)例:讀庫存記錄、打印發(fā)貨單、確定事務類型、計算實發(fā)工資; 3)功能組合模塊是一個純“暗盒”模塊。(2) 順序組合 受同一個數(shù)據(jù)流支配,執(zhí)行順序重要 如果一個模塊內部所有組成部分執(zhí)行的幾個功能有這樣的特征,前一個功能所產(chǎn)生的輸出數(shù)據(jù)是下一個功能的輸入數(shù)據(jù),那么這種組合稱為順序組合。ABC注1)順序組合模塊維護不太容易,它不完全是一個 “暗盒”; 2)順序組合模塊的內容包含了一個線性、有序的數(shù)據(jù)轉換鏈。(3) 通訊組合受同一個數(shù)據(jù)流支配,執(zhí)行順序不重要如果一個模塊內
14、部所有組成部分都使用相同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù),那么這種組合稱為順序組合。獲得配件價格和庫存量注1)通訊組合模塊往往和輸入輸出有關:讀文件記錄、排列、打印、寫記錄記錄等等。 2)通訊組合模塊的缺點:產(chǎn)生多余聯(lián)結、產(chǎn)生重復功能等。(4) 過程組合受同一個控制流支配,執(zhí)行順序重要如果一個模塊內部的若干個功能各不相同,彼此也沒有什么關系,但它們都受同一個控制流支配來決定它們的執(zhí)行次序,那么這種組合稱為過程組合。(因若干個功能受同一個控制流支配而聚集在一個模塊里。一般是若干個處理動作的公共過程單元,比如循環(huán)體、判斷過程。)銷售事務處理計算累積銷售統(tǒng)計設初值(5)時間組合受同一個控制流支配,執(zhí)行
15、順序不重要如果一個模塊內部的若干個處理動作必須在同一時間段內執(zhí)行完成,那么這種組合稱為時間組合。例宏定義、函數(shù)聲明、數(shù)據(jù)結構聲明、*.h文件。(6) 邏輯組合如果一個模塊內部的若干個處理動作在邏輯上相似,但功能卻彼此不同或無關,那么這種組合稱為邏輯組合。(7) 偶然組合如果一個模塊內部的若干個處理動作彼此沒有任何關系,那么這種組合稱為偶然組合。注力求高內聚,低耦合。4.4.3 模塊的分解(Factoring) 僅有模塊化和模塊獨立這兩項原則還是不夠的,但是我們已經(jīng)知道高內聚低耦合是我們設計軟件結構的指路明燈;當你設計出初步的軟件結構后,應該審查分析這個結構,運用各種手段,力求降低耦合提高內聚。
16、(1) 模塊分解的作用:1)模塊太大; 2)使模塊容易理解; 3)避免產(chǎn)生相同功能的模塊; 4)提供通用性強的模塊; 5)簡化程序設計。 (2) 模塊分解的原則:按功能分解直到無法作出明確的功能定義為止。(3) 經(jīng)驗分解數(shù)據(jù):一個模塊內包含的語句條數(shù)在 30條左右,不應超過60條。4.4.4 模塊的扇出與扇入(1)模塊的扇出(Fan-Out)模塊的扇出系數(shù) 模塊的扇出是指一個模塊擁有的直接下級模塊的個數(shù)。注統(tǒng)計規(guī)律:模塊的扇出系數(shù)應控制在7以內,平均扇出系數(shù)是3或4。(2)模塊的扇入(Fan-In)模塊的扇入系數(shù) 模塊的扇入是指一個模塊的直接上級模塊的個數(shù)。注盡可能的加大模塊的扇入系數(shù)。4.4
17、.5 模塊的控制域和作用域(1)模塊的控制域(控制范圍):是指這個模塊本身以及所有直接或間接從屬于它的模塊的集合。(2)模塊的作用域(判斷作用范圍):是指受該模塊內一個判斷影響的所有模塊的集合。(也就是該模塊內存在著判斷調用語句,而所有受到該判斷邏輯影響的模塊,就是該模塊的作用域。)注E.Yourdon 和L.Constantine設計原則: 1)作用域應該是控制域的子集;E控制域作用域ABFCGDE 2)存在作用域的模塊所在的層次,不要與那些屬于作用域的模塊所在的層次相隔過遠理想的是作用域都是直接下屬模塊。4.5 面向數(shù)據(jù)流的設計方法4.5.1 數(shù)據(jù)流類型數(shù)據(jù)在DFD中流徑特征(1)變換流進入系統(tǒng)中的數(shù)據(jù)所流經(jīng)的路徑幾乎是一樣的。(2)事務流進入系統(tǒng)中的數(shù)據(jù)所流經(jīng)的路徑不完全是一樣的。4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國集線器市場運行動態(tài)與發(fā)展前景分析報告
- 2025-2030年中國鋁板帶箔材行業(yè)運營狀況及發(fā)展規(guī)劃分析報告
- 2025-2030年中國造影劑行業(yè)市場運行狀況及前景趨勢分析報告
- 重慶師范大學《酒水與酒吧管理》2023-2024學年第二學期期末試卷
- 寧夏大學新華學院《植物細胞工程》2023-2024學年第二學期期末試卷
- 濟南大學《管理研究方法導讀》2023-2024學年第二學期期末試卷
- 湖北工業(yè)大學《中學思想政治教育學科教育學》2023-2024學年第二學期期末試卷
- 天津體育職業(yè)學院《勘查地球物理方法及應用》2023-2024學年第二學期期末試卷
- 新疆機電職業(yè)技術學院《現(xiàn)場總線技術》2023-2024學年第二學期期末試卷
- 忻州職業(yè)技術學院《戰(zhàn)略與公司管理》2023-2024學年第二學期期末試卷
- 專題17 物質結構與性質綜合題-五年(2020-2024)高考化學真題分類匯編(解析版)
- 語文學習任務群的解讀及設計要領
- 光伏發(fā)電站項目安全技術交底資料
- 富血小板血漿(PRP)臨床實踐與病例分享課件
- 光伏工程施工組織設計
- 《護理科研》課件
- 人教版(2024新版)八年級上冊物理《開啟科學探索之旅》教學設計
- 年產(chǎn)1萬噸的二氧化碳捕集及資源化利用全流程示范項目可行性研究報告模板-立項拿地
- 部編版語文四年級下冊第六單元大單元作業(yè)設計
- 小學二年級上冊數(shù)學思維訓練題100道及答案解析
- 2024至2030年中國細胞農(nóng)業(yè)動向追蹤與發(fā)展前景現(xiàn)狀探索報告
評論
0/150
提交評論