




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5講軟件相關(guān)設(shè)計基礎(chǔ)第5講軟件相關(guān)設(shè)計基礎(chǔ)2本講內(nèi)容 軟件設(shè)計任務(wù)和過程 軟件設(shè)計原則 軟件設(shè)計結(jié)果描述工具 軟件設(shè)計規(guī)格說明書及評審第5講軟件相關(guān)設(shè)計基礎(chǔ)3軟件設(shè)計的任務(wù)依據(jù)和基礎(chǔ)軟件需求規(guī)格說明書SRS,描述了欲解決的問題(用戶需求)。What? 任務(wù)以SRS為基礎(chǔ)設(shè)計出滿足用戶需求的軟件(軟件結(jié)構(gòu),),給出軟件實現(xiàn)的解決方案,生成軟件設(shè)計的規(guī)格說明書 How?第5講軟件相關(guān)設(shè)計基礎(chǔ)4軟件設(shè)計的過程總體結(jié)構(gòu)設(shè)計設(shè)計和定義軟件的整體實現(xiàn)框架,模塊以及模塊間關(guān)系“黑盒子”高層抽象、全局角度 過程設(shè)計模塊內(nèi)部細(xì)節(jié)低抽象、局部角度 數(shù)據(jù)設(shè)計信息描述 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫,數(shù)據(jù)文件(配置文件),網(wǎng)絡(luò)消息
2、包第5講軟件相關(guān)設(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ī)格格說說明明書書 軟件需求分析與軟件設(shè)計之間的關(guān)系第5講軟件相關(guān)設(shè)計基礎(chǔ)6總體結(jié)構(gòu)設(shè)計什么是軟件總體結(jié)構(gòu)確立了目標(biāo)軟件系統(tǒng)的整體實現(xiàn)框架:那些模塊?每個模塊的功能?他們間相互控制關(guān)系?框架,各個模塊是一個“黑盒子”什么是模塊結(jié)構(gòu)化:過程、函數(shù)什么是模塊間的關(guān)系結(jié)構(gòu)化:調(diào)用關(guān)系第5講軟件相關(guān)設(shè)計基礎(chǔ)7軟件總體結(jié)構(gòu)示意圖 模模塊塊1 1 模模塊塊2 2 模模塊塊
3、3 3 模模塊塊4 4 模模塊塊5 5 模模塊塊6 6 結(jié)構(gòu)化結(jié)構(gòu)化模塊模塊:過程、函數(shù)、關(guān)系關(guān)系:函數(shù)和過程調(diào)用第5講軟件相關(guān)設(shè)計基礎(chǔ)8數(shù)據(jù)設(shè)計把需求規(guī)格說明書中的各種信息描述轉(zhuǎn)換為計算機可識別和處理的數(shù)據(jù)結(jié)構(gòu)如表、數(shù)組數(shù)據(jù)設(shè)計的內(nèi)容:數(shù)據(jù)庫設(shè)計(如庫、表、字段、屬性)數(shù)據(jù)類型(如堆棧、隊列等)數(shù)據(jù)文件的設(shè)計(如配置文件)通訊協(xié)議(如網(wǎng)絡(luò)消息包)總體結(jié)構(gòu)設(shè)計和數(shù)據(jù)設(shè)計屬于概要設(shè)計第5講軟件相關(guān)設(shè)計基礎(chǔ)9數(shù)據(jù)設(shè)計示意圖數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)通訊協(xié)議數(shù)據(jù)文件 模模塊塊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ù)文文件件
4、通通訊訊協(xié)協(xié)議議 概概要要設(shè)設(shè)計計 第5講軟件相關(guān)設(shè)計基礎(chǔ)10過程設(shè)計任務(wù) 描述每個模塊內(nèi)部的具體內(nèi)容(算法、數(shù)據(jù)結(jié)構(gòu)) 結(jié)構(gòu)化:過程和函數(shù)內(nèi)部算法屬于詳細(xì)設(shè)計第5講軟件相關(guān)設(shè)計基礎(chǔ)11過程設(shè)計示意圖 內(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ù)庫庫
5、 數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu) 數(shù)數(shù)據(jù)據(jù)文文件件 通通訊訊協(xié)協(xié)議議 概概要要設(shè)設(shè)計計 第5講軟件相關(guān)設(shè)計基礎(chǔ)12本講內(nèi)容 軟件設(shè)計任務(wù)和過程 軟件設(shè)計原則 軟件設(shè)計結(jié)果描述工具 軟件設(shè)計規(guī)格說明書及評審第5講軟件相關(guān)設(shè)計基礎(chǔ)13軟件設(shè)計的基本原則軟件設(shè)計原則60年代后陸續(xù)提出,指導(dǎo)軟件設(shè)計決策以開發(fā)高質(zhì)量的軟件系統(tǒng)抽象逐步求精模塊化信息隱藏第5講軟件相關(guān)設(shè)計基礎(chǔ)14抽象什么是抽象思想?在認(rèn)識事物、分析和解決問題的過程中,忽略那些與當(dāng)前研究目標(biāo)不相關(guān)的部分, 以便將注意力集中于與當(dāng)前目標(biāo)相關(guān)的方面軟件開發(fā)實際上就是一個從高層次抽象到低層次抽象逐步過渡的過程第5講軟件相關(guān)設(shè)計基礎(chǔ)15形體形體衣著衣著性格性格抽
6、象抽象抽象例子外表外表第5講軟件相關(guān)設(shè)計基礎(chǔ)16逐步求精(1/2) 什么是逐步求精思想?對一個事物的認(rèn)識是一個從高層次抽象向低層次抽象逐步轉(zhuǎn)化和過渡的過程, 首先一般性、抽象的,然后才是具體和詳細(xì)的第5講軟件相關(guān)設(shè)計基礎(chǔ)17逐步求精逐步求精外表外表形體形體衣著衣著性格性格頭發(fā)頭發(fā)臉形臉形領(lǐng)帶領(lǐng)帶抽象抽象逐步求精的例子第5講軟件相關(guān)設(shè)計基礎(chǔ)18逐步求精(2/2)軟件開發(fā)的抽象和逐步求精軟件的設(shè)計過程應(yīng)當(dāng)是在不同的抽象級別上, 逐步求精尋求問題基于計算機解的過程計算機軟件的二種不同類型的抽象過程抽象(計算)數(shù)據(jù)抽象(表示)第5講軟件相關(guān)設(shè)計基礎(chǔ)19過程抽象什么是過程抽象把完成一個特定功能的動作序列
7、抽象為一個函數(shù)名和參數(shù)表(模塊)例子: 計算字符串的長度, 比較字符串 int Comare (CString, CString) int GetLength(Cstring ) 第5講軟件相關(guān)設(shè)計基礎(chǔ)20數(shù)據(jù)抽象什么是數(shù)據(jù)抽象把諸多數(shù)據(jù)對象的定義(描述)抽象為一個數(shù)據(jù)類型名,以后可通過該數(shù)據(jù)類型名來定義多個具有相同性質(zhì)的數(shù)據(jù)對象例子1, 2, 3 Integer軟件工程書,人工智能書 書 類第5講軟件相關(guān)設(shè)計基礎(chǔ)21抽象和逐步求精例子(1/3)抽象1.用問題域本身的語言來描述問題及其解CAD圖形軟件包可畫各種直線和曲線,能完成所有幾何圖形的計算。圖形設(shè)計的結(jié)果存于圖形文件中,圖形文件可是幾何
8、的、正文的和其他各種設(shè)計信息第5講軟件相關(guān)設(shè)計基礎(chǔ)22抽象和逐步求精例子(2/3)抽象2.總體結(jié)構(gòu)層次上的抽象圖形軟件包軟件任務(wù)圖形用戶界面創(chuàng)建二維圖形任務(wù)顯示圖形任務(wù)管理圖形文件任務(wù)End 圖形軟件包第5講軟件相關(guān)設(shè)計基礎(chǔ)23抽象和逐步求精例子(3/3)抽象. 過程層次抽象(以管理圖形文件任務(wù)為例)Procedure 管理圖形文件任務(wù)If OpenFile Then詢問打開的文件名打開文件顯示文件內(nèi)容Else if SaveFile Then詢問存儲文件名存儲文件End if End Procedure第5講軟件相關(guān)設(shè)計基礎(chǔ)24模塊化 什么是模塊化思想?把軟件劃分為一組具有相對獨立功能的部件
9、,每個部件稱為一個模塊,當(dāng)把所有的模塊組裝一起時,便可獲得滿足用戶需求的軟件系統(tǒng)模塊化體現(xiàn)了“分而治之”的問題分析和解決方法 模模塊塊1 1 模模塊塊2 2 模模塊塊3 3 模模塊塊 4 4 模模塊塊5 5 模模塊塊6 6 第5講軟件相關(guān)設(shè)計基礎(chǔ)25 模模塊塊總總數(shù)數(shù) 最最小小成成本本區(qū)區(qū) 軟軟件件總總耗耗費費 用用于于接接口口的的開開銷銷 成成本本/每每個個模模塊塊 成成本本或或工工作作量量 軟件開發(fā)成本與模塊間關(guān)系示意圖如何設(shè)計模塊使得軟件開發(fā)成本最???軟件設(shè)計準(zhǔn)則: 信息隱藏、高內(nèi)聚度、低耦合度第5講軟件相關(guān)設(shè)計基礎(chǔ)26內(nèi)聚度什么是內(nèi)聚度指該模塊內(nèi)各成分間彼此結(jié)合的緊密程度內(nèi)聚度分類偶然
10、性內(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)各成分對數(shù)據(jù)結(jié)構(gòu)的同一區(qū)域操作順序性內(nèi)聚: 模塊內(nèi)各成分與同一功能相關(guān)且順序執(zhí)行功能性內(nèi)聚: 模塊內(nèi)各成分是一整體,完成單個功能第5講軟件相關(guān)設(shè)計基礎(chǔ)27耦合度什么是耦合度模塊間的相關(guān)程度,越低越好耦合度分類非直接耦合: 二個模塊都不依賴對方而獨立存在數(shù)據(jù)耦合: 二個模塊通過參數(shù)交換信息且僅限于數(shù)據(jù)控制耦合: 二個模塊通過參數(shù)交換信息包含控制信息特征耦合: 介于數(shù)據(jù)耦合和控制耦合之
11、間外部耦合: 二個模塊與同一外部環(huán)境相關(guān)聯(lián)(文件等)公共耦合: 模塊間通過全局?jǐn)?shù)據(jù)環(huán)境相互作用內(nèi)容耦合: 一個模塊使用另一模塊內(nèi)的數(shù)據(jù)和控制信息,或者直接轉(zhuǎn)移到另一模塊內(nèi)執(zhí)行第5講軟件相關(guān)設(shè)計基礎(chǔ)28信息隱藏(1/2)什么是信息隱藏模塊應(yīng)該設(shè)計得使其所含的信息(過程和數(shù)據(jù))對那些不需要這些信息的模塊不可訪問,模塊之間僅僅交換那些為完成系統(tǒng)功能所必需交換的信息例子 int nGetLen(char string) int i, iLen; .第5講軟件相關(guān)設(shè)計基礎(chǔ)29信息隱藏(2/2)優(yōu)點模塊的獨立性更好支持模塊的并行開發(fā)(設(shè)計和編碼)便于測試和維護,減少錯誤向外傳播便于增加新的功能第5講軟件相
12、關(guān)設(shè)計基礎(chǔ)30本講內(nèi)容 軟件設(shè)計任務(wù)和過程 軟件設(shè)計原則 軟件設(shè)計結(jié)果描述工具 軟件設(shè)計規(guī)格說明書及評審第5講軟件相關(guān)設(shè)計基礎(chǔ)31軟件總體設(shè)計軟件總體設(shè)計的任務(wù)耦合度和內(nèi)聚度是判斷總體設(shè)計好壞主要標(biāo)準(zhǔn)結(jié)構(gòu)化軟件總體結(jié)構(gòu)的表示工具 層次圖 HIPO圖 結(jié)構(gòu)圖面向?qū)ο筌浖傮w結(jié)構(gòu)的表示工具類圖第5講軟件相關(guān)設(shè)計基礎(chǔ)32軟件結(jié)構(gòu)的層次圖第5講軟件相關(guān)設(shè)計基礎(chǔ)33 書名書名 I 根據(jù)書名查根據(jù)書名查詢書的詳細(xì)詢書的詳細(xì)信息信息 P 書的詳細(xì)書的詳細(xì)信息信息 O 根據(jù)書名查詢書的詳細(xì)信息根據(jù)書名查詢書的詳細(xì)信息 軟件結(jié)構(gòu)的HIPO圖HIPO圖 = 層次圖 + 輸入/處理/輸出采用IPO圖方式說明層次圖中
13、各模塊的處理功能第5講軟件相關(guān)設(shè)計基礎(chǔ)34軟件結(jié)構(gòu)的結(jié)構(gòu)圖結(jié)構(gòu)圖 層次圖 調(diào)用信息第5講軟件相關(guān)設(shè)計基礎(chǔ)35數(shù)據(jù)設(shè)計為SRS中定義的數(shù)據(jù)對象進行組織和設(shè)計數(shù)據(jù)的組織外部數(shù)據(jù)庫的設(shè)計相關(guān)文件的安排數(shù)據(jù)類型的設(shè)計第5講軟件相關(guān)設(shè)計基礎(chǔ)36數(shù)據(jù)設(shè)計的例子1一個配置文件的設(shè)計(acd.ini)SystemSocketPortNo = 800; /the port no of the listening socketDSN = data; /the data source nameLog = system.log; /the system log 第5講軟件相關(guān)設(shè)計基礎(chǔ)37數(shù)據(jù)設(shè)計的例子2 數(shù)據(jù)庫中讀者
14、信息表的設(shè)計(TReader) Id char10 key unique not null name char10 not null type int not null department int not null1. birthdate date第5講軟件相關(guān)設(shè)計基礎(chǔ)38過程設(shè)計過程設(shè)計的任務(wù)涉及二個方面的問題:如何進行過程設(shè)計技術(shù)和原則如何描述過程設(shè)計的內(nèi)容-表示方法或者描述語言第5講軟件相關(guān)設(shè)計基礎(chǔ)39過程設(shè)計技術(shù)結(jié)構(gòu)化過程設(shè)計結(jié)構(gòu)化過程設(shè)計主要思想自頂向下、逐步求精的設(shè)計方法和單入口單出口的控制結(jié)構(gòu)結(jié)構(gòu)化設(shè)計的基本控制結(jié)構(gòu): 順序,分枝,循環(huán)用三種基本結(jié)構(gòu)可構(gòu)造任何單入口單出口程序優(yōu)
15、點確保軟件具有良好的結(jié)構(gòu)第5講軟件相關(guān)設(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 表示工具流程圖第5講軟件相關(guān)設(shè)計基礎(chǔ)41 循循環(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) 盒圖第5講軟件相關(guān)設(shè)計基礎(chǔ)42 a b F X1 T F X2 T e d c X3 盒圖例子第5講軟件相關(guān)設(shè)計基礎(chǔ)43判定表第5講軟件相關(guān)設(shè)計基礎(chǔ)44過程
16、設(shè)計語言(PDL)(1/2)以正文形式表示軟件設(shè)計信息的表示工具關(guān)鍵字語法:定義模塊內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)自然語言的形式:靈活自由表示模塊內(nèi)工作流程數(shù)據(jù)結(jié)構(gòu)的說明手段:說明簡單和復(fù)雜的數(shù)據(jù)結(jié)構(gòu)模塊的定義和調(diào)用描述:接口描述優(yōu)點可作為注釋插入到源程序中, 簡便,易于自動處理第5講軟件相關(guān)設(shè)計基礎(chǔ)45過程設(shè)計語言(2/2)Integer nGetLen(char s1)int nLen;if s1為空 then nLen = 0end if返回nLen;第5講軟件相關(guān)設(shè)計基礎(chǔ)46各種表示工具比較表示工具的好壞主要看:表示能力強弱、簡便、易于理解等模塊化:支持模塊化的軟件開發(fā)并提供接口描述機制整體簡潔:易學(xué)、易用、易于理解便于編輯, 機器可讀性可維護性強制結(jié)構(gòu)化:有助于得到好的軟件設(shè)計自動產(chǎn)生報告數(shù)據(jù)結(jié)構(gòu)的表示第5講軟件相關(guān)設(shè)計基礎(chǔ)47本講內(nèi)容 軟件設(shè)計任務(wù)和過程 軟件設(shè)計原則 軟件設(shè)計結(jié)果描述工具 軟件設(shè)計規(guī)格說明書及評審第5講軟件相關(guān)設(shè)計基礎(chǔ)48軟件設(shè)計規(guī)格說明書軟件設(shè)計規(guī)格說明書的主要內(nèi)容1. 軟件總體結(jié)構(gòu)描述2. 模塊描述 處理過程描述, 接口描述, 數(shù)據(jù)描述3. 數(shù)據(jù)設(shè)計描述 全局?jǐn)?shù)據(jù), 全局?jǐn)?shù)據(jù)庫 , 外部文
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力行業(yè)員工學(xué)習(xí)劉永坦先進事跡心得體會
- 學(xué)??萍紕?chuàng)新實驗室教育工作計劃
- 幼兒園疫情期間小班活動安排班務(wù)計劃
- 合成樹脂瓦施工排氣工藝流程他
- 施工期間客戶服務(wù)措施
- 新聞媒體疫情防控應(yīng)急預(yù)案及工作措施
- 副校長后勤管理年度個人工作總結(jié)范文
- 模擬法庭基本流程介紹
- 以對話之鑰啟哲學(xué)之思:高中政治《生活與哲學(xué)》模塊教學(xué)新探
- 醫(yī)院院感宣傳教育工作計劃
- GB/T 4909.3-2009裸電線試驗方法第3部分:拉力試驗
- GB/T 41093-2021機床安全車床
- GB/T 31158-2014電離層電子總含量(TEC)擾動分級
- 新教材北師大版高中英語必修第二冊全冊重點單詞短語句型歸納總結(jié)
- 電解加工和電解磨削課件
- 小紅書運營方案
- 深藍科技風(fēng)智能醫(yī)療衛(wèi)生系統(tǒng)模板課件整理
- 中藥奄包-外源性熱敷療法課件
- 造價咨詢作難點解決辦法及措施
- 商務(wù)禮儀3-2辦公室禮儀 中職高職《商務(wù)禮儀》教學(xué)教案
- 沈陽機床并購德國希斯公司的臺前幕后
評論
0/150
提交評論