軟件工程教學(xué)課件:5-第五講(0)_第1頁
軟件工程教學(xué)課件:5-第五講(0)_第2頁
軟件工程教學(xué)課件:5-第五講(0)_第3頁
軟件工程教學(xué)課件:5-第五講(0)_第4頁
軟件工程教學(xué)課件:5-第五講(0)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、毛新軍毛新軍 教授教授計算機(jī)科學(xué)與技術(shù)系計算機(jī)科學(xué)與技術(shù)系602教研室教研室 0731-(45)73649軟件工程導(dǎo)論軟件工程導(dǎo)論 之之Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)21.軟件設(shè)計任務(wù)和過程2.軟件設(shè)計原則3.軟件設(shè)計結(jié)果描述工具4.軟件設(shè)計規(guī)格說明書及評審Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)3n依據(jù)和基礎(chǔ) 軟件需求規(guī)格說明書SRS,描述了欲解決的問題(用戶需求)。 What?n 任務(wù) 以SRS為基礎(chǔ)設(shè)計出滿足用戶需求的軟件(軟件結(jié)構(gòu),),給出軟件實現(xiàn)的解決方案,生成軟件設(shè)計的規(guī)格說明書 How?Copyright Xinjun M

2、ao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)4n總體結(jié)構(gòu)設(shè)計 設(shè)計和定義軟件的整體實現(xiàn)框架,模塊以及模塊間關(guān)系 “黑盒子” 高層抽象、全局角度n 過程設(shè)計 模塊內(nèi)部細(xì)節(jié) 低抽象、局部角度n 數(shù)據(jù)設(shè)計 信息描述 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)庫,數(shù)據(jù)文件(配置文件),網(wǎng)絡(luò)消息包Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)5 設(shè)設(shè)計計 編編碼碼 信信息息描描述述 功功能能描描述述 行行為為描描述述 其其它它需需求求 數(shù)數(shù)據(jù)據(jù)設(shè)設(shè)計計 過過程程設(shè)設(shè)計計 總總體體結(jié)結(jié)構(gòu)構(gòu)設(shè)設(shè)計計 軟軟件件需需求求規(guī)規(guī)格格說說明明書書 軟軟件件設(shè)設(shè)計計規(guī)規(guī)格格說說明明書書 Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)

3、計基礎(chǔ)6n什么是軟件總體結(jié)構(gòu) 確立了目標(biāo)軟件系統(tǒng)的整體實現(xiàn)框架:那些模塊?每個模塊的功能?他們間相互控制關(guān)系? 框架,各個模塊是一個“黑盒子”n什么是模塊 結(jié)構(gòu)化:過程、函數(shù)n什么是模塊間的關(guān)系 結(jié)構(gòu)化:調(diào)用關(guān)系Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)7 模模塊塊1 1 模模塊塊2 2 模模塊塊3 3 模模塊塊4 4 模模塊塊5 5 模模塊塊6 6 結(jié)構(gòu)化結(jié)構(gòu)化模塊模塊:過程、函數(shù)、關(guān)系關(guān)系:函數(shù)和過程調(diào)用Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)8n把需求規(guī)格說明書中的各種信息描述轉(zhuǎn)換為計算機(jī)可識別和處理的數(shù)據(jù)結(jié)構(gòu)如表、數(shù)組n數(shù)據(jù)設(shè)計的內(nèi)容: 數(shù)

4、據(jù)庫設(shè)計(如庫、表、字段、屬性) 數(shù)據(jù)類型(如堆棧、隊列等) 數(shù)據(jù)文件的設(shè)計(如配置文件) 通訊協(xié)議(如網(wǎng)絡(luò)消息包)n總體結(jié)構(gòu)設(shè)計和數(shù)據(jù)設(shè)計屬于概要設(shè)計Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)9n數(shù)據(jù)庫n數(shù)據(jù)結(jié)構(gòu)n通訊協(xié)議n數(shù)據(jù)文件n 模模塊塊1 1 模模塊塊2 2 模模塊塊3 3 模模塊塊4 4 模模塊塊5 5 模模塊塊6 6 數(shù)數(shù)據(jù)據(jù)庫庫 數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu) 數(shù)數(shù)據(jù)據(jù)文文件件 通通訊訊協(xié)協(xié)議議 概概要要設(shè)設(shè)計計 Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)10n任務(wù) 描述每個模塊內(nèi)部的具體內(nèi)容(算法、數(shù)據(jù)結(jié)構(gòu)) 結(jié)構(gòu)化:過程和函數(shù)內(nèi)部算法n屬于詳細(xì)

5、設(shè)計Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)11 內(nèi)內(nèi)部部算算法法和和數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu) I In nt t n nL Le en n i if f ( (s st tr r 為為空空字字符符串串) ) t th he en n n nL Le en n = =0 0; ; e el ls se e 返返回回n nL Le en n; ; 模模塊塊1 1 模模塊塊2 2 模模塊塊3 3 模模塊塊4 4 模模塊塊5 5 模模塊塊6 6 數(shù)數(shù)據(jù)據(jù)庫庫 數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu) 數(shù)數(shù)據(jù)據(jù)文文件件 通通訊訊協(xié)協(xié)議議 概概要要設(shè)設(shè)計計 Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟

6、件設(shè)計基礎(chǔ)121.軟件設(shè)計任務(wù)和過程2.軟件設(shè)計原則3.軟件設(shè)計結(jié)果描述工具4.軟件設(shè)計規(guī)格說明書及評審Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)13n軟件設(shè)計原則60年代后陸續(xù)提出,指導(dǎo)軟件設(shè)計決策以開發(fā)高質(zhì)量的軟件系統(tǒng) 抽象 逐步求精 模塊化 信息隱藏Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)14n什么是抽象思想? 在認(rèn)識事物、分析和解決問題的過程中,忽略那些與當(dāng)前研究目標(biāo)不相關(guān)的部分, 以便將注意力集中于與當(dāng)前目標(biāo)相關(guān)的方面n軟件開發(fā)實際上就是一個從高層次抽象到低層次抽象逐步過渡的過程Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計

7、基礎(chǔ)15形體形體衣著衣著性格性格抽象抽象外表外表Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)16n 什么是逐步求精思想? 對一個事物的認(rèn)識是一個從高層次抽象向低層次抽象逐步轉(zhuǎn)化和過渡的過程, 首先一般性、抽象的,然后才是具體和詳細(xì)的Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)17逐步求精逐步求精外表外表形體形體衣著衣著性格性格頭發(fā)頭發(fā)臉形臉形領(lǐng)帶領(lǐng)帶抽象抽象Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)18n軟件開發(fā)的抽象和逐步求精 軟件的設(shè)計過程應(yīng)當(dāng)是在不同的抽象級別上, 逐步求精尋求問題基于計算機(jī)解的過程n計算機(jī)軟件的二種不同類型的

8、抽象 過程抽象(計算) 數(shù)據(jù)抽象(表示)Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)19n什么是過程抽象 把完成一個特定功能的動作序列抽象為一個函數(shù)名和參數(shù)表(模塊) 例子: 計算字符串的長度, 比較字符串n int Comare (CString, CString)n int GetLength(Cstring ) Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)20n什么是數(shù)據(jù)抽象 把諸多數(shù)據(jù)對象的定義(描述)抽象為一個數(shù)據(jù)類型名,以后可通過該數(shù)據(jù)類型名來定義多個具有相同性質(zhì)的數(shù)據(jù)對象 例子n1, 2, 3 Integern軟件工程書,人工智能書 書 類

9、Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)21n抽象1.用問題域本身的語言來描述問題及其解 CAD圖形軟件包可畫各種直線和曲線,能完成所有幾何圖形的計算。圖形設(shè)計的結(jié)果存于圖形文件中,圖形文件可是幾何的、正文的和其他各種設(shè)計信息Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)22n抽象2.總體結(jié)構(gòu)層次上的抽象 圖形軟件包軟件任務(wù) 圖形用戶界面 創(chuàng)建二維圖形任務(wù) 顯示圖形任務(wù) 管理圖形文件任務(wù) End 圖形軟件包Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)23n抽象. 過程層次抽象(以管理圖形文件任務(wù)為例)Procedure 管理圖形文件

10、任務(wù)If OpenFile Then詢問打開的文件名打開文件顯示文件內(nèi)容Else if SaveFile Then詢問存儲文件名存儲文件End if End ProcedureCopyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)24n 什么是模塊化思想? 把軟件劃分為一組具有相對獨立功能的部件,每個部件稱為一個模塊,當(dāng)把所有的模塊組裝一起時,便可獲得滿足用戶需求的軟件系統(tǒng) 模塊化體現(xiàn)了“分而治之”的問題分析和解決方法 模模塊塊1 1 模模塊塊2 2 模模塊塊3 3 模模塊塊 4 4 模模塊塊5 5 模模塊塊6 6 Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)25

11、 模模塊塊總總數(shù)數(shù) 最最小小成成本本區(qū)區(qū) 軟軟件件總總耗耗費費 用用于于接接口口的的開開銷銷 成成本本/每每個個模模塊塊 成成本本或或工工作作量量 n如何設(shè)計模塊使得軟件開發(fā)成本最??? 軟件設(shè)計準(zhǔn)則: 信息隱藏、高內(nèi)聚度、低耦合度Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)26n什么是內(nèi)聚度 指該模塊內(nèi)各成分間彼此結(jié)合的緊密程度n內(nèi)聚度分類 偶然性內(nèi)聚: 模塊內(nèi)各成分為完成一組功能而結(jié)合在一起,關(guān)系松散 邏輯性內(nèi)聚: 模塊完成的諸任務(wù)邏輯上相關(guān) 時間性內(nèi)聚: 模塊內(nèi)諸任務(wù)必須在同一時間段內(nèi)執(zhí)行 過程性內(nèi)聚: 模塊內(nèi)各成分相關(guān)且必須按特定次序執(zhí)行 通訊性內(nèi)聚: 模塊內(nèi)各成分對

12、數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域操作 順序性內(nèi)聚: 模塊內(nèi)各成分與同一功能相關(guān)且順序執(zhí)行 功能性內(nèi)聚: 模塊內(nèi)各成分是一整體,完成單個功能Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)27n什么是耦合度 模塊間的相關(guān)程度,越低越好n耦合度分類 非直接耦合: 二個模塊都不依賴對方而獨立存在 數(shù)據(jù)耦合: 二個模塊通過參數(shù)交換信息且僅限于數(shù)據(jù) 控制耦合: 二個模塊通過參數(shù)交換信息包含控制信息 特征耦合: 介于數(shù)據(jù)耦合和控制耦合之間 外部耦合: 二個模塊與同一外部環(huán)境相關(guān)聯(lián)(文件等) 公共耦合: 模塊間通過全局?jǐn)?shù)據(jù)環(huán)境相互作用 內(nèi)容耦合: 一個模塊使用另一模塊內(nèi)的數(shù)據(jù)和控制信息,或者直接轉(zhuǎn)移到另一

13、模塊內(nèi)執(zhí)行Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)28n什么是信息隱藏 模塊應(yīng)該設(shè)計得使其所含的信息(過程和數(shù)據(jù))對那些不需要這些信息的模塊不可訪問,模塊之間僅僅交換那些為完成系統(tǒng)功能所必需交換的信息n例子 int nGetLen(char string) int i, iLen; . Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)29n優(yōu)點 模塊的獨立性更好 支持模塊的并行開發(fā)(設(shè)計和編碼) 便于測試和維護(hù),減少錯誤向外傳播 便于增加新的功能Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)301.軟件設(shè)計任務(wù)和過程2.軟件設(shè)計原則3.

14、軟件設(shè)計結(jié)果描述工具4.軟件設(shè)計規(guī)格說明書及評審Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)31n軟件總體設(shè)計的任務(wù)n耦合度和內(nèi)聚度是判斷總體設(shè)計好壞主要標(biāo)準(zhǔn)n結(jié)構(gòu)化軟件總體結(jié)構(gòu)的表示工具 層次圖 HIPO圖 結(jié)構(gòu)圖n面向?qū)ο筌浖傮w結(jié)構(gòu)的表示工具 類圖Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)32Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)33 書名書名 I 根據(jù)書名查根據(jù)書名查詢書的詳細(xì)詢書的詳細(xì)信息信息 P 書的詳細(xì)書的詳細(xì)信息信息 O 根據(jù)書名查詢書的詳細(xì)信息根據(jù)書名查詢書的詳細(xì)信息 nHIPO圖 = 層次圖 + 輸入/處理

15、/輸出n采用IPO圖方式說明層次圖中各模塊的處理功能Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)34n結(jié)構(gòu)圖 層次圖 調(diào)用信息Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)35n為SRS中定義的數(shù)據(jù)對象進(jìn)行組織和設(shè)計 數(shù)據(jù)的組織 外部數(shù)據(jù)庫的設(shè)計 相關(guān)文件的安排 數(shù)據(jù)類型的設(shè)計Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)36n一個配置文件的設(shè)計(acd.ini)SystemSocketPortNo = 800; /the port no of the listening socketDSN = data; /the data sourc

16、e nameLogFileName = system.log; /the system log file nameCopyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)37n數(shù)據(jù)庫中讀者信息表的設(shè)計(TReader)1. Id char10 key unique not null2. name char10 not null 3. type int not null4. department int not null5. birthdate dateCopyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)38n過程設(shè)計的任務(wù)n涉及二個方面的問題: 如何進(jìn)行過程設(shè)計技術(shù)和原則

17、如何描述過程設(shè)計的內(nèi)容-表示方法或者描述語言Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)39n結(jié)構(gòu)化過程設(shè)計主要思想 自頂向下、逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu) 結(jié)構(gòu)化設(shè)計的基本控制結(jié)構(gòu): 順序,分枝,循環(huán) 用三種基本結(jié)構(gòu)可構(gòu)造任何單入口單出口程序n優(yōu)點 確保軟件具有良好的結(jié)構(gòu)Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)40 a b x 1 x 2 d c e X 3 0 tr u e tr u e tr u e f a ls e f a ls e f a ls e n流程圖Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)41

18、循循環(huán)環(huán)條條件件 do-while 部部分分 Repeat 部部分分 循循環(huán)環(huán)條條件件 任任務(wù)務(wù) 任任務(wù)務(wù) 任任務(wù)務(wù) 順順序序 F 條條件件 T Else then 部部分分 部部分分 選選擇擇 循循環(huán)環(huán) Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)42 a b F X1 T F X2 T e d c X3 Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)43Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)44n以正文形式表示軟件設(shè)計信息的表示工具 關(guān)鍵字語法:定義模塊內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu) 自然語言的形式:靈活自由表示模塊內(nèi)工作流程 數(shù)據(jù)結(jié)

19、構(gòu)的說明手段:說明簡單和復(fù)雜的數(shù)據(jù)結(jié)構(gòu) 模塊的定義和調(diào)用描述:接口描述n優(yōu)點 可作為注釋插入到源程序中, 簡便,易于自動處理Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)45Integer nGetLen(char s1)int nLen;if s1為空 then nLen = 0end if返回nLen;Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基礎(chǔ)46n表示工具的好壞主要看:表示能力強(qiáng)弱、簡便、易于理解等 模塊化:支持模塊化的軟件開發(fā)并提供接口描述機(jī)制 整體簡潔:易學(xué)、易用、易于理解 便于編輯, 機(jī)器可讀性 可維護(hù)性 強(qiáng)制結(jié)構(gòu)化:有助于得到好的軟件設(shè)計 自動產(chǎn)生報告 數(shù)據(jù)結(jié)構(gòu)的表示Copyright Xinjun Mao軟件設(shè)計基礎(chǔ)軟件設(shè)計基

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論