




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 軟件設計3.1 軟件設計的基本概念軟件設計就是把需求規(guī)格說明書里歸納的需求轉換為可行的解決方案,并把解決方案反映到設計說明書里 3.1.1 軟件設計的意義和目標軟件設計在軟件開發(fā)過程中處于核心地位,它是保證質量的關鍵步驟 指導評價良好設計演化的3個特征設計必須實現所有包含在分析模型中的明確需求,而且必須滿足用戶期望的所有隱含需求 設計必須是可讀的、可理解的指南 設計必須提供軟件的全貌,從實現的角度說明數據域、功能域和行為域 3.1 軟件設計的基本概念3.1.2軟件設計原則3.1.2.1 模塊化模塊:由邊界元素限定的相鄰的程序元素的序列 模塊化:把程序劃分成可獨立命名且獨立訪問的模塊,每
2、個模塊完成一個子功能 3.1 軟件設計的基本概念模塊化和軟件成本 3.1 軟件設計的基本概念評價設計方法定義有效的模塊系統(tǒng)能力的標準模塊可分解性 模塊可組裝性模塊可理解性模塊連續(xù)性模塊保護性3.1 軟件設計的基本概念3.1.2.2 抽象抽象就是抽出事物的本質特性而暫時不考慮它們的細節(jié)3.1.2.3 逐步求精為了能集中精力解決主要問題而盡量推遲對問題細節(jié)的考慮 3.1.2.4 信息隱藏一個模塊的實現細節(jié)對于其他模塊來說,是不能訪問的 3.1 軟件設計的基本概念3.1.3軟件設計分類從活動任務來看數據設計 體系結構設計接口設計構件設計部署設計 從工程管理角度來看 概要設計詳細設計3.1 軟件設計的
3、基本概念概要設計目標系統(tǒng)的總體架構每個模塊的功能描述、數據接口描述及模塊之間的調用關系數據庫、數據定義和數據結構等詳細設計過程設計:描述系統(tǒng)中每個模塊的實現算法和細節(jié) 數據設計:對各模塊所用到的數據結構的進一步細化接口設計:軟件系統(tǒng)各模塊之間的關系或通信方式以及目標系統(tǒng)與外部系統(tǒng)之間的聯系 3.1 軟件設計的基本概念3.1.4 模塊獨立開發(fā)具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊 模塊的獨立程度可以由兩個定性標準來度量內聚耦合3.1 軟件設計的基本概念3.1.4.1 耦合耦合是對各個模塊之間互連程度的度量,不同模塊之間互相依賴得越緊密則耦合程度越高 為了提高模塊的獨立性,應該盡量
4、降低模塊之間的耦合程度 3.1 軟件設計的基本概念耦合的等級劃分 3.1 軟件設計的基本概念3.1.4.2 內聚內聚是指模塊內部各個元素之間彼此結合的緊密程度模塊的高內聚通常意味著低耦合在軟件設計時,應該盡量提高模塊的內聚程度 3.1 軟件設計的基本概念內聚的等級劃分 3.1 軟件設計的基本概念3.1.5 啟發(fā)規(guī)則改進軟件結構提高模塊獨立性模塊規(guī)模應該適中深度、寬度、扇出和扇入都應適當 模塊的作用域應該在控制域之內力爭降低模塊接口的復雜程度設計單入口單出口的模塊 模塊功能應該可以預測 3.2 結構化軟件設計方法3.2.1 表示軟件結構的圖形工具3.2.1.1 層次圖和HIPO圖通常使用層次圖描
5、繪軟件的層次結構 一個矩形框代表一個模塊框間的連線表示調用關系 HIPO圖是美國IBM公司發(fā)明的“層次圖加輸入/處理/輸出圖”的英文縮寫 3.2 結構化軟件設計方法正文加工系統(tǒng)的層次圖 3.2 結構化軟件設計方法正文加工系統(tǒng)的H圖 3.2 結構化軟件設計方法IPO圖的一個例 3.2 結構化軟件設計方法改進的IPO圖(IPO表)的形式 3.2 結構化軟件設計方法3.2.1.2 結構圖一個方框代表一個模塊,框內注明模塊的名字或主要功能 方框之間的箭頭(或直線)表示模塊的調用關系 帶注釋的箭頭表示模塊調用過程中來回傳遞的信息 箭頭尾部是空心圓表示傳遞的是數據,實心圓表示傳遞的是控制信息3.2 結構化
6、軟件設計方法結構圖的例子產生最佳解的一般結構 3.2 結構化軟件設計方法3.2.2 面向數據流的設計方法依據一定的映射規(guī)則,將需求分析階段得到的數據描述從系統(tǒng)的輸入端到輸出端所經歷的一系列變換或處理的數據流圖轉換為目標系統(tǒng)的結構描述 數據流變換型數據流事務性數據流3.2 結構化軟件設計方法變換型數據流 事務型數據流 3.2 結構化軟件設計方法針對變換型數據流的設計可以分為以下幾個步驟 區(qū)分變換型數據流中的輸入數據、變換中心和輸出數據,并在數據流圖上用虛線標明分界線分析得到系統(tǒng)的初始結構圖對系統(tǒng)結構圖進行優(yōu)化 3.2 結構化軟件設計方法學生檔案管理系統(tǒng)的數據流圖 3.2 結構化軟件設計方法學生檔
7、案管理系統(tǒng)的具有邊界的數據流圖 3.2 結構化軟件設計方法學生檔案管理系統(tǒng)的系統(tǒng)結構圖 3.2 結構化軟件設計方法學生檔案管理系統(tǒng)優(yōu)化的系統(tǒng)結構圖 3.2 結構化軟件設計方法針對事務型數據流的設計可以分為以下幾個步驟 確定以事務為中心的結構,找出事務中心、接收數據、處理路徑三個部分將數據流圖轉換為初始的系統(tǒng)結構圖分解和細化接收分支和處理分支 3.2 結構化軟件設計方法產品管理系統(tǒng)的數據流示意圖3.2 結構化軟件設計方法產品管理系統(tǒng)的系統(tǒng)結構圖 3.2 結構化軟件設計方法3.2.3 面向數據結構的設計方法3.2.3.1 Jackson圖數據元素的邏輯關系:順序,選擇和重復 順序結構 選擇結構 重
8、復結構3.2 結構化軟件設計方法Jackson圖的優(yōu)點便于表示層次結構,而且是對結構進行自頂向下分解的有力工具形象直觀可讀性好既能表示數據結構也能表示程序結構(因為結構程序設計也只使用上述3種基本結構) 3.2 結構化軟件設計方法3.2.3.2 改進的Jackson圖改進的Jackson圖 3.2 結構化軟件設計方法Jackson圖和層次圖區(qū)別層次圖中的一個方框通常代表一個模塊,Jackson圖中一個方框只代表幾條語句 層次圖表現的是調用關系,Jackson圖表現的是組成關系 3.2 結構化軟件設計方法3.2.3.3 Jackson方法Jackson結構程序設計方法的步驟 分析并確定輸入數據和
9、輸出數據的邏輯結構,并用Jackson圖描繪這些數據結構找出輸入數據結構和輸出數據結構中有對應關系的數據單元3.2 結構化軟件設計方法用下述3條規(guī)則從描繪數據結構的Jackson圖導出描繪程序結構的Jackson圖為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程序結構圖的相應層次畫一個處理框 根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框 根據輸出數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框列出所有操作和條件,并且把它們分配到程序結構圖的適當位置 用偽碼表示程序 3.3 結構化軟件設計的工
10、具3.3.1 流程圖 程序流程圖順序型、選擇型、先判定型循環(huán)(WHILE-DO)、后判定型循環(huán)(DO-WHILE)和多分支選擇型 程序流程圖的基本符號 3.3 結構化軟件設計的工具程序流程圖的控制結構 程序流程圖示例 3.3 結構化軟件設計的工具程序流程圖的主要優(yōu)點 采用簡單規(guī)范的符號,畫法簡單結構清晰,邏輯性強便于描述,容易理解 程序流程圖的主要缺點 不利于逐步求精的設計圖中可用箭頭隨意地對控制進行轉移,與結構化程序設計精神相悖不易于表示系統(tǒng)中所含的數據結構當目標系統(tǒng)比較復雜時,流程圖會變得很繁雜、不清晰 3.3 結構化軟件設計的工具3.3.2 盒圖(N-S圖)N-S圖的基本符號 3.3 結
11、構化軟件設計的工具N-S圖的主要特點 不允許隨意的控制轉移,有利于嚴格的結構化程序設計可以很方便地確定一個特定控制結構的作用域,以及局部數據和全局數據的作用域可以很方便地表示嵌套關系以及模塊之間的層次關系 N-S圖示例 3.3 結構化軟件設計的工具3.3.3 PAD圖(問題分析圖)一條豎線代表一個層次,最左邊的豎線是第一層控制結構,隨著層次的加深,圖形不斷地向右展 PAD圖的基本控制符號 3.3 結構化軟件設計的工具PAD圖的主要特點表示的程序結構的執(zhí)行順序是自最左邊的豎線的上端開始,自上而下,自左向右表示的程序片斷結構清晰、層次分明支持自頂向下、逐步求精的設計方法只能用于結構化的程序設計不僅
12、可以表示程序邏輯,還能表示數據結構 3.3 結構化軟件設計的工具3.3.4 判定表判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系 判定表的組成左上部列出所有條件左下部是所有可能做的動作右上部是表示各種條件組合的一個矩陣右下部是和每種條件組合相對應的動作 3.3 結構化軟件設計的工具3.3 結構化軟件設計的工具3.3.5 判定樹判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系判定樹的優(yōu)點在于,它的形式簡單到不需任何說明,一眼就可以看出其含義,因此易于掌握和使用 3.3 結構化軟件設計的工具用判定樹表示計算行李費的算法 3.3 結構化軟件設計的工具3.3.
13、6 過程設計語言(PDL,偽碼)PDL應該具有下述特點 關鍵字的固定語法,它提供了結構化控制結構、數據說明和模塊化的特點 自然語言的自由語法,它描述處理特點 數據說明的手段 模塊定義和調用的技術,應該提供各種接口描述模式 3.3 結構化軟件設計的工具PDL的優(yōu)點可以作為注釋直接插在源程序中間 可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作 已經有自動處理程序存在,而且可以自動由PDL生成程序代碼 PDL的缺點不如圖形工具形象直觀 描述復雜的條件組合與動作間的對應關系時,不如判定表清晰簡單 3.4 數據庫結構設計數據庫結構設計包括概念結構設計、邏輯結構設計和物理結構
14、設計 概念結構:描述系統(tǒng)最基礎的數據結構 邏輯結構:提供比較接近數據庫內部構造的邏輯描述物理結構:數據庫的物理數據模型 數據庫結構設計 3.4 數據庫結構設計數據庫的概念結構通常用ER圖 “學生”與“課程”的E-R圖 3.4 數據庫結構設計設計數據庫的邏輯結構的過程中,首先要將概念結構中的實體、屬性、聯系映射為數據表結構 映射規(guī)則將數據庫概念結構中的“實體”映射為邏輯結構中的“數據表”,實體的屬性可以用數據表中的字段來表示,實體的主關鍵字作為數據表的主鍵數據庫概念結構中的1:1聯系可以映射為一個獨立的數據表,也可以與跟它相連的任意一端或兩端的實體合并組成數據表數據庫結構中的1:n聯系可以映射為一個獨立的數據表,也可以與跟它相連的n端實體合并組成數據表數據庫結構中的m:n關系可以映射為一個獨立的數據表,各實體的主關鍵字的組合形成數據表的主鍵 3.4 數據庫結構設計關系型數據庫范式第一范式:所有關系中的每一個分量都必須是不可分的數據項。第一范式是建立關系型數據表的最基本的要求第二范式:滿足第一范式的條件,并且每個非鍵屬性都由整個鍵決定第三范式:滿足第二范式的條件,并且每個非鍵屬性不依賴于其他非鍵屬性值 3.5 人機界面設計界面設計的“黃金原則”置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲行業(yè)員工加班費與調休合同
- 紅薯種植承包協(xié)議書范本
- 油氣輸送管道配套廠房土建施工及安全監(jiān)測合同
- 標準化反擔保合同樣本跨境并購項目風險控制協(xié)議
- 茶樓茶文化體驗館合作合同
- 綠植產品攝影保密協(xié)議及電商合作合同
- 車輛購置擔保與貸款發(fā)放協(xié)議
- 畫廊場地租賃及水電費藝術品交易服務合同
- 【課件】重力教學課件2024-2025學年初中物理人教版(2024)八年級下冊
- 綜合實踐活動案例設計與實施
- 精裝修施工的監(jiān)理細則
- 醫(yī)療質量和醫(yī)療安全培訓
- 口腔解剖生理學-第八章(動脈)
- 裝修施工項目投標書模板
- 人體發(fā)育學練習題(選擇題)
- 梅尼埃綜合征
- DB11-T 1446-2017 回彈法、超聲回彈綜合法檢測泵送混凝土抗壓強度技術規(guī)程
- Unit8Birthdays(Storytime)(教學設計)譯林版英語五年級下冊
- 合肥市45中2023-2024學年英語七下期末經典模擬試題含答案
- 2024年度中學階段漢字聽寫大會競賽練習題庫
- 網絡安全攻防演練護網工作報告
評論
0/150
提交評論