




已閱讀5頁(yè),還剩112頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1 軟件危機(jī)在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題 幾乎所有的軟件 都不同程度地存在著這些問題 軟件危機(jī)主要包括如下兩方面的問題 如何開發(fā)軟件 滿足增長(zhǎng)需求 如何維護(hù)軟件 2 解決軟件軟件危機(jī)的途徑解決軟件危機(jī)的途徑是軟件工程 按工程化的原則和方法組織軟件開發(fā)工作是有效的 是擺脫軟件危機(jī)的一個(gè)主要出路 第一章軟件工程學(xué)概述 3 軟件軟件是程序 數(shù)據(jù)及文檔的完整集合 其中 程序是能夠完成預(yù)定功能和性能的可執(zhí)行的指令序列 數(shù)據(jù)是使程序能夠適當(dāng)?shù)靥幚硇畔⒌臄?shù)據(jù)結(jié)構(gòu) 文檔是開發(fā) 使用和維護(hù)程序的圖文資料 4 軟件工程軟件工程是采用工程的概念 原理 技術(shù)和方法來(lái)開發(fā)與維護(hù)軟件一門工程學(xué)科 從而經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它 5 軟件工程方法學(xué)在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為軟件工程方法學(xué) 軟件工程第一章 6 方法學(xué)三要素 工程方法學(xué)包含3個(gè)要素 方法 工具和過程 方法 是完成軟件開發(fā)的各項(xiàng)任務(wù)的技術(shù)方法 回答 怎樣做 的問題 工具 是為運(yùn)用方法而提供的自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境 過程 是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架 它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟 軟件工程第一章 7 傳統(tǒng)方法學(xué) 面向?qū)ο蠓椒▽W(xué) 1 傳統(tǒng)方法學(xué) 生命周期方法學(xué)或結(jié)構(gòu)化范型 強(qiáng)調(diào)自頂向下 2 面向?qū)ο蠓椒▽W(xué) 強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代 3 面向?qū)ο蠓椒▽W(xué)4個(gè)要點(diǎn) 對(duì)象 類 繼承 消息 軟件工程第一章 8 軟件生命周期軟件孕育 誕生 成長(zhǎng) 成熟 衰亡的生存過程 軟件工程第一章 軟件生命周期 各階段具體任務(wù) 1 問題定義 必須回答的關(guān)鍵問題是 要解決的問題是什么 2 可行性研究 階段回答的關(guān)鍵問題是 對(duì)于上一個(gè)階段所確定的問題有行得通的解決辦法嗎 3 需求分析 目標(biāo)系統(tǒng)必須做什么 確定目標(biāo)系統(tǒng)必須具備哪些功能 4 總體設(shè)計(jì) 必須回答的關(guān)鍵問題是 概括地說(shuō) 應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng) 總體設(shè)計(jì)又稱為概要設(shè)計(jì) 5 詳細(xì)設(shè)計(jì) 關(guān)鍵問題是 應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢 6 編碼和單元測(cè)試 關(guān)鍵任務(wù)是寫出正確的容易理解 容易維護(hù)的程序模塊 7 綜合測(cè)試 關(guān)鍵任務(wù)是通過各種類型的測(cè)試使軟件達(dá)到預(yù)定的要求 8 軟件維護(hù) 通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要 8 軟件過程為獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架 它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟 是軟件工程三要素之一的過程 9 軟件生命周期模型軟件過程通常用軟件生命周期模型來(lái)描述 它規(guī)定了把生命周期劃分成哪些階段以及各個(gè)階段執(zhí)行的順序 也稱為過程模型 10 典型的生命周期模型瀑布模型 快速原型模型增量模型 螺旋模型噴泉模型 軟件工程第一章 11 瀑布模型 軟件工程第一章 實(shí)際的瀑布模型 傳統(tǒng)的瀑布模型 12 快速原型模型 軟件工程第一章 實(shí)線箭頭表示開發(fā)過程虛線箭頭表示維護(hù)過程 13 增量模型 軟件工程第一章 增量模型 風(fēng)險(xiǎn)更大的增量模型 14 螺旋模型 增加了風(fēng)險(xiǎn)分析過程的快速原型 軟件工程第一章 簡(jiǎn)單得螺旋模型 完整的螺旋模型 15 噴泉模型 面向?qū)ο筌浖_發(fā)迭代和無(wú)縫的特性 軟件工程第一章 噴泉模型 16 各模型特點(diǎn)瀑布模型的特點(diǎn) 1 階段間具有順序性和依賴性 2 推遲實(shí)現(xiàn)的觀點(diǎn) 3 質(zhì)量保證的觀點(diǎn) 快速原型 是快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序 它所能完成的功能往往是最終產(chǎn)品能完成功能的一個(gè)子集 增量模型 它分批地逐步向用戶提交產(chǎn)品 整個(gè)軟件產(chǎn)品被分解成許多個(gè)增量構(gòu)件 開發(fā)人員一個(gè)構(gòu)件一個(gè)構(gòu)件地向用戶提交產(chǎn)品 螺旋模型 基本思想是使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn) 理解這種模型的一個(gè)簡(jiǎn)單方法 是把它看作在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型 使用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目 噴泉模型 強(qiáng)調(diào)的是 迭代 和 無(wú)縫 的特性 是典型的面向?qū)ο蟮能浖^程模型之一 復(fù)習(xí)重點(diǎn) 軟件危機(jī)軟件工程軟件工程三要素軟件生命周期包含的過程 3個(gè)時(shí)期 8個(gè)階段 及各過程的任務(wù)瀑布模型快速還原模型 1 可行性研究的目的 就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決 必須記住 可行性研究的目的不是解決問題 而是確定問題是否值得去解決 從下述3個(gè)方面研究每種解法的可行性 1 技術(shù)可行性2 經(jīng)濟(jì)可行性3 操作可行性其他方面 運(yùn)行可行性 法律可行性2 典型的可行性研究有下述一些步驟 1 復(fù)查系統(tǒng)規(guī)模和目標(biāo) 2 研究目前正在使用的系統(tǒng)3 導(dǎo)出新系統(tǒng)的高層邏輯模型4 進(jìn)一步定義問題5 導(dǎo)出和評(píng)價(jià)供選擇的解法6 推薦行動(dòng)方針7 草擬開發(fā)計(jì)劃8 書寫文檔提交審查 第二章可行性研究 3 系統(tǒng)流程圖 是概括性地描繪物理系統(tǒng)的傳統(tǒng)工具 它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件 系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況 而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過程 因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同 但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖 基本符號(hào)如下 第二章可行性研究 庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖 4 數(shù)據(jù)流圖 DFD 是一種圖形化技術(shù) 它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過程中所經(jīng)受的變換 在數(shù)據(jù)流圖中沒有任何具體的物理部件 它只是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過程 基本符號(hào)如下 第二章可行性研究 附加符號(hào) 星號(hào) 表示 與 關(guān)系 加號(hào) 表示 或 關(guān)系異或 表示互斥關(guān)系 第二章可行性研究 5 畫數(shù)據(jù)流圖的步驟 1 從問題描述中提取數(shù)據(jù)流圖的4種成分 數(shù)據(jù)的源點(diǎn) 終點(diǎn)處理 處于靜止?fàn)顟B(tài)的數(shù)據(jù)數(shù)據(jù)流 處于運(yùn)動(dòng)中的數(shù)據(jù)數(shù)據(jù)存儲(chǔ) 2 畫基本系統(tǒng)模型 3 細(xì)化 描繪系統(tǒng)的主要功能 功能級(jí)數(shù)據(jù)流圖 4 對(duì)系統(tǒng)主要功能進(jìn)一步細(xì)化 6 畫數(shù)據(jù)流圖舉例 銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過程大致如下 儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng) 如果是存款則系統(tǒng)記錄存款人姓名 住址 或電話號(hào)碼 身份證號(hào)碼 存款類型 存款日期 到期日期 利率及密碼 可選 等信息 并印出存單給儲(chǔ)戶 如果是取款而且存款時(shí)留有密碼 則系統(tǒng)首先核對(duì)儲(chǔ)戶密碼 若密碼正確或存款時(shí)未留密碼 則系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶 第一步 提取數(shù)據(jù)流圖的四種成分 數(shù)據(jù)源點(diǎn)和終點(diǎn) 業(yè)務(wù)員 儲(chǔ)戶處理 1 事物處理 2 處理存款 3 處理取款數(shù)據(jù)存儲(chǔ) 1 存款信息 2 取款信息數(shù)據(jù)流 事物 存款單 存單密碼 取款單 利息清單 頂層數(shù)據(jù)流圖 第二步 畫基本數(shù)據(jù)流圖 功能級(jí)數(shù)據(jù)流圖 第三步 畫功能級(jí)數(shù)據(jù)流圖 細(xì)化的數(shù)據(jù)流圖 第四步 對(duì)系統(tǒng)主要功能進(jìn)一步細(xì)化 7 數(shù)據(jù)字典 數(shù)據(jù)的信息的集合 也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合 可行性研究階段 數(shù)據(jù)流圖與數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型 沒有數(shù)據(jù)字典 數(shù)據(jù)流圖就不嚴(yán)格 然而沒有數(shù)據(jù)流圖 數(shù)據(jù)字典也難于發(fā)揮作用 數(shù)據(jù)字典應(yīng)該由對(duì)下列4類元素的定義組成 數(shù)據(jù)流 數(shù)據(jù)流分量 數(shù)據(jù)元素 數(shù)據(jù)存儲(chǔ)和處理 由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述3種基本類型 順序 選擇 重復(fù)和可選 數(shù)據(jù)定義符號(hào) 等價(jià)于 和即連接 選擇一個(gè) 重復(fù) 可選 8 定義數(shù)據(jù)的方法 數(shù)據(jù)組成方式 三種基本類型 順序選擇重復(fù)附加類型 可選數(shù)據(jù)定義符號(hào) 含義 意思是等價(jià)于 或定義為 意思是和 即 連接兩個(gè)分量 意思是或 即 從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè) 通常用 號(hào)隔開供選擇的分量 意思是重復(fù) 即 重復(fù)花括弧內(nèi)的分量 常常使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧 意思是可選 即 圓括弧里的分量可有可無(wú) 電話定義 應(yīng)用舉例 北京某高??捎玫碾娫捥?hào)碼有以下幾類 校內(nèi)電話號(hào)碼由4位數(shù)字組成 第1位數(shù)字不是0 校外電話又分為本市電話和外地電話兩類 a 撥校外電話需先撥0 若是本市電話則再接著撥8位數(shù)字 第1位不是0 b 若是外地電話則撥3位區(qū)碼再撥8位電話號(hào)碼 第1位不是0 請(qǐng)用定義數(shù)據(jù)字典的方法 定義上述的電話號(hào)碼 電話號(hào)碼 校內(nèi)電話號(hào)碼 校外電話號(hào)碼 校內(nèi)電話號(hào)碼 非零數(shù)字 3位數(shù)字 后面繼續(xù)定義校外電話號(hào)碼 本市號(hào)碼 外地號(hào)碼 本市號(hào)碼 數(shù)字零 8位數(shù)字外地號(hào)碼 數(shù)字零 3位數(shù)字 8位數(shù)字非零數(shù)字 1 2 3 4 5 6 7 8 9 數(shù)字零 03位數(shù)字 3 數(shù)字 3 3至3個(gè)數(shù)字8位數(shù)字 非零數(shù)字 7位數(shù)字7位數(shù)字 7 數(shù)字 7數(shù)字 0 1 2 3 4 5 6 7 8 9 9 成本 效益分析的目標(biāo) 正式要從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算 從而幫助客戶組織的負(fù)責(zé)人正確地做出是否投資于這項(xiàng)開發(fā)工程的決定 第二章可行性研究 復(fù)習(xí)重點(diǎn) 可行性研究的目的可行性研究的內(nèi)容數(shù)據(jù)流圖的畫法數(shù)據(jù)字典的實(shí)現(xiàn) 第二章可行性研究 1 需求分析的任務(wù) 準(zhǔn)確地回答 系統(tǒng)必須做什么 這個(gè)問題 而不必研究 如何做 需求分析的結(jié)果 是提供準(zhǔn)確完整的軟件需求規(guī)格說(shuō)明書 2 軟件系統(tǒng)的綜合要求功能需求 性能需求 可靠性和可用性需求 出錯(cuò)處理需求接口需求 約束 逆向需求 將來(lái)可能提出的要求3 分析系統(tǒng)的數(shù)據(jù)要求 1 建立數(shù)據(jù)模型 E R圖 2 描繪數(shù)據(jù)結(jié)構(gòu) 層次方框圖和Warnier圖 3 數(shù)據(jù)結(jié)構(gòu)規(guī)范化 第三章需求分析 4 需求分析過程建立三種模型數(shù)據(jù)模型 實(shí)體 聯(lián)系圖功能模型 數(shù)據(jù)流圖行為模型 狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典是分析模型的核心 第三章需求分析 5 實(shí)體 聯(lián)系圖數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息 數(shù)據(jù)對(duì)象 數(shù)據(jù)對(duì)象的屬性 數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系 聯(lián)系可分為以下三種類型 一對(duì)一 一對(duì)多和多對(duì) 6 范式 第一范式 第二范式 第三范式 第三章需求分析 7 狀態(tài)轉(zhuǎn)換圖通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件 來(lái)表示系統(tǒng)的行為 8 層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu) 第三章需求分析 9 Warnier圖Warnier圖也用樹形結(jié)構(gòu)描繪信息 但是這種圖形工具比層次方框圖提供了更豐富的描繪手段 第三章需求分析 軟件產(chǎn)品的Warnier圖 10 IPO圖是輸入 處理 輸出圖的簡(jiǎn)稱 能夠方便地描繪輸入數(shù)據(jù) 對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系 第三章需求分析 主文件更新處理的IPO圖 第三章需求分析 復(fù)習(xí)重點(diǎn) 需求分析的任務(wù)需求分析階段建立3種模型 數(shù)據(jù)模型功能模型行為模型實(shí)體 聯(lián)系圖 E R圖 的畫法 第四章形式化說(shuō)明技術(shù) 第五章總體設(shè)計(jì) 1 總體設(shè)計(jì)的目的 概括地說(shuō) 系統(tǒng)應(yīng)當(dāng)如何實(shí)現(xiàn) 因此總體設(shè)計(jì)又稱為概要設(shè)計(jì)或者初步設(shè)計(jì) 2 總體設(shè)計(jì)的過程 由兩個(gè)主要階段組成 系統(tǒng)設(shè)計(jì)階段 確定系統(tǒng)的具體實(shí)現(xiàn)方案 包括 設(shè)想供選擇的方案 選取合理的方案 推薦最佳方案 結(jié)構(gòu)設(shè)計(jì)階段 確定軟件結(jié)構(gòu) 包括 功能分解 設(shè)計(jì)軟件結(jié)構(gòu) 設(shè)計(jì)數(shù)據(jù)庫(kù) 制定測(cè)試文檔 書寫文檔 審查和復(fù)查 3 模塊 是由邊界元素限定的相鄰程序元素的序列 而且有一個(gè)總體標(biāo)識(shí)符代表它 第五章總體設(shè)計(jì) 4 模塊化 就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊 每個(gè)模塊完成一個(gè)子功能 把這些模塊集成起來(lái)夠成一個(gè)整體 可以完成指定的功能滿足用戶的需求 每個(gè)程序都相應(yīng)地有一個(gè)最適當(dāng)?shù)哪K數(shù)目M 使得系統(tǒng)的開發(fā)成本最小 5 模塊化的作用 模塊化可以使軟件結(jié)構(gòu)清晰 不僅容易設(shè)計(jì)也容易閱讀和理解 模塊化使軟件容易測(cè)試和調(diào)試 因而有助于提高軟件的可靠性 模塊化能夠提高軟件的可修改性 模塊化也有助于軟件開發(fā)工程的組織管理 第五章總體設(shè)計(jì) 6 抽象 抽象就是抽出事物本質(zhì)特性而暫時(shí)不考慮細(xì)節(jié) 是人類處理復(fù)雜問題的基本方法之一 7 逐步求精 為了能集中精力解決主要問題而盡量推遲對(duì)問題細(xì)節(jié)的考慮 8 信息隱藏 設(shè)計(jì)和確定模塊 使得一個(gè)模塊內(nèi)包含的信息 過程和數(shù)據(jù) 對(duì)于不需要這些信息的模塊來(lái)說(shuō) 是不能訪問的 9 局部化 指把一些關(guān)系密切的軟件元素物理地放得彼此靠近 顯然 局部化有助于實(shí)現(xiàn)信息隱藏 第五章總體設(shè)計(jì) 10 模塊獨(dú)立性 使得每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能 并且和其他模塊之間的關(guān)系很簡(jiǎn)單 即功能專一 模塊之間無(wú)過多的相互作用的模塊 11 模塊獨(dú)立程度的兩個(gè)定性標(biāo)準(zhǔn)度量 兩個(gè)標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合 12 耦合 是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量 耦合要低 即每個(gè)模塊和其他模塊之間的關(guān)系要簡(jiǎn)單 13 內(nèi)聚 是衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度 內(nèi)聚要高 每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能 理想內(nèi)聚的模塊只做一件事情 14 耦合的種類 6種 1 非直接耦合 完全獨(dú)立 兩個(gè)模塊中的每一個(gè)都能獨(dú)立地工作而不需要另一個(gè)模塊的存在 2 數(shù)據(jù)耦合 兩個(gè)模塊彼此間通過參數(shù)交換信息 而且交換的信息僅僅是數(shù)據(jù) 3 控制耦合 兩個(gè)模塊彼此間傳遞的信息中有控制信息 4 特征耦合 把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素時(shí) 就出現(xiàn)了特征耦合 5 公共環(huán)境耦合 兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用時(shí) 它們之間的耦合稱為公共環(huán)境耦合 6 內(nèi)容耦合 最高程度的耦合是內(nèi)容耦合 如果出現(xiàn)下列情況之一 兩個(gè)模塊間就發(fā)生了內(nèi)容耦合 一個(gè)模塊訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù) 一個(gè)模塊不通過正常入口轉(zhuǎn)到另一個(gè)模塊的內(nèi)部 兩個(gè)模塊有一部分程序代碼重疊 一個(gè)模塊有多個(gè)入口 設(shè)計(jì)原則 盡量使用數(shù)據(jù)耦合 少用控制耦合和特征耦合 限制公共環(huán)境耦合的范圍 完全不用內(nèi)容耦合 15 內(nèi)聚的種類 7種 1 偶然內(nèi)聚 一個(gè)模塊完成一組任務(wù) 這些任務(wù)彼此間即使有關(guān)系 關(guān)系也是很松散的 就叫做偶然內(nèi)聚 2 邏輯內(nèi)聚 一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類 則稱為邏輯內(nèi)聚 3 時(shí)間內(nèi)聚 一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行 就叫時(shí)間內(nèi)聚 4 過程內(nèi)聚 一個(gè)模塊內(nèi)的處理元素是相關(guān)的 而且必須以特定次序執(zhí)行 則稱為過程內(nèi)聚 5 通信內(nèi)聚 模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和 或 產(chǎn)生同一個(gè)輸出數(shù)據(jù) 則稱為通信內(nèi)聚 即在同一個(gè)數(shù)據(jù)結(jié)構(gòu)上操作 6 順序內(nèi)聚 一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān) 而且這些處理必須順序執(zhí)行 則稱為順序內(nèi)聚 7 功能內(nèi)聚 如果模塊內(nèi)所有處理元素屬于一個(gè)整體 完成一個(gè)單一的功能 則稱為功能內(nèi)聚 功能內(nèi)聚是最高程度的內(nèi)聚 高內(nèi)聚 功能內(nèi)聚 順序內(nèi)聚中內(nèi)聚 通信內(nèi)聚 過程內(nèi)聚低內(nèi)聚 時(shí)間內(nèi)聚 邏輯內(nèi)聚 偶然內(nèi)聚 15 啟發(fā)性規(guī)則 7條 1 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性 通過模塊分解或合并 降低耦合提高內(nèi)聚 2 模塊規(guī)模應(yīng)該適中 過大的模塊往往是由于分解不充分 過小的模塊將導(dǎo)致模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜 3 深度 寬度 扇出和扇入都應(yīng)適當(dāng) 深度 軟件結(jié)構(gòu)中控制的層數(shù) 寬度 軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值 扇出 一個(gè)模塊直接控制 調(diào)用 的模塊數(shù)目 扇入 有多少個(gè)上級(jí)模塊直接調(diào)用它 15 啟發(fā)性規(guī)則 7條 4 模塊的作用域應(yīng)該在控制域之內(nèi) 模塊的作用域 定義為受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合 模塊的控制域 是這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合 5 力爭(zhēng)降低模塊接口的復(fù)雜程度 6 設(shè)計(jì)單入口單出口的模塊 7 模塊功能應(yīng)該可以預(yù)測(cè) 功能可預(yù)測(cè) 如果一個(gè)模塊可以當(dāng)做一個(gè)黑盒子 只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出 這個(gè)模塊的功能就是可以預(yù)測(cè)的 16 層次圖 H圖 層次圖用來(lái)描繪軟件的層次結(jié)構(gòu) 很適于在自頂向下設(shè)計(jì)軟件的過程中使用 與層次方框圖的區(qū)別是 層次方框圖描繪的是數(shù)據(jù)結(jié)構(gòu) 17 HIPO圖 HIPO圖是 層次圖 輸入 處理 輸出圖 的英文縮寫 為了能使HIPO圖具有可追蹤性 在H圖 層次圖 里除了最頂層的方框之外 每個(gè)方框都加了編號(hào) 和H圖中每個(gè)方框相對(duì)應(yīng) 應(yīng)該有一張IPO圖描繪這個(gè)方框代表的模塊的處理過程 18 面向數(shù)據(jù)流的設(shè)計(jì)方法 面向數(shù)據(jù)流的設(shè)計(jì)方法可以把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu) 通常所說(shuō)的結(jié)構(gòu)化設(shè)計(jì)方法 簡(jiǎn)稱SD方法 也就是基于數(shù)據(jù)流的設(shè)計(jì)方法 19 信息流有兩種類型 變換流 事務(wù)流 20 變換分析 把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu) 21 變換分析設(shè)計(jì)步驟 1 復(fù)查基本系統(tǒng)模型 確保系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)符合實(shí)際 2 復(fù)查并精化數(shù)據(jù)流圖 確保數(shù)據(jù)流圖給出了正確的邏輯模型 使數(shù)據(jù)流圖中每個(gè)處理都代表一個(gè)相對(duì)獨(dú)立的子功能 3 確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性 4 確定輸入流和輸出流的邊界 從而孤立出變換中心 21 變換分析設(shè)計(jì)步驟 5 完成 第一級(jí)分解 最頂層的控制模塊協(xié)調(diào)下述從屬的控制功能 輸入信息處理控制模塊Ca 協(xié)調(diào)對(duì)所有輸入數(shù)據(jù)的接收 變換中心控制模塊Ct 管理對(duì)內(nèi)部形式的數(shù)據(jù)的所有處理操作 輸出信息處理控制模塊Ce 協(xié)調(diào)輸出信息的產(chǎn)生過程 21 變換分析設(shè)計(jì)步驟 6 完成 第二級(jí)分解 輸入部分 轉(zhuǎn)換部分 輸出部分分別映射成接收模塊 處理模塊 輸出模塊 從變換中心的邊界開始沿輸入通路向外移動(dòng) 把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中Ca控制下的一個(gè)低層模塊 然后沿輸出通路向外移動(dòng) 把輸出通路中每個(gè)處理映射成直接或間接受模塊Ce控制的一個(gè)低層模塊 最后把變換中心內(nèi)的每個(gè)處理映射成受Ct控制的一個(gè)處理模塊 21 變換分析設(shè)計(jì)步驟 6 完成 第二級(jí)分解 7 使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化 22 事物分析 23 舉例 根據(jù)儲(chǔ)蓄系統(tǒng)的數(shù)據(jù)流圖利用面向數(shù)據(jù)流的設(shè)計(jì)方法設(shè)計(jì)其軟件結(jié)構(gòu) 23 舉例 根據(jù)儲(chǔ)蓄系統(tǒng)的數(shù)據(jù)流圖利用面向數(shù)據(jù)流的設(shè)計(jì)方法設(shè)計(jì)其軟件結(jié)構(gòu) 第五章總體設(shè)計(jì) 復(fù)習(xí)重點(diǎn) 總體設(shè)計(jì)的目的模塊化模塊獨(dú)立及度量標(biāo)準(zhǔn)耦合 內(nèi)聚及其種類啟發(fā)性規(guī)則面向數(shù)據(jù)流的設(shè)計(jì)方法 第六章詳細(xì)設(shè)計(jì)設(shè)計(jì) 1 總體設(shè)計(jì)的目的 確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng) 2 結(jié)構(gòu)程序設(shè)計(jì) 經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì) 只允許使用順序 IF THEN ELSE型分支和DO WHILE型循環(huán)這3種基本控制結(jié)構(gòu) 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì) 如果除了上述3種基本控制結(jié)構(gòu)之外 還允許使用DO CASE型多分支結(jié)構(gòu)和DO UNTIL型循環(huán)結(jié)構(gòu) 修正的結(jié)構(gòu)程序設(shè)計(jì) 再加上允許使用LEAVE 或BREAK 結(jié)構(gòu) 描述程序處理過程的工具叫程序設(shè)計(jì)工具 分為圖形 表格 和語(yǔ)言3類 必須提供對(duì)設(shè)計(jì)的無(wú)歧義的描述 包括 程序流程圖 程序框圖 盒圖 N S圖 PAD圖 判定表 判定樹 過程設(shè)計(jì)語(yǔ)言 偽碼 3 過程設(shè)計(jì)工具 4 程序流程圖 程序流程圖又稱為程序框圖 它是歷史最悠久 使用最廣泛描述過程設(shè)計(jì)的方法 也是用的最混亂的一種方法 5 盒圖 N S圖 出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計(jì)精神的圖形工具的考慮 Nassi和Shneiderman提出了盒圖 又稱為N S圖 6 PAD圖 是問題分析圖 problemanalysisdiagram 的英文縮寫 它用二維樹形結(jié)構(gòu)的圖來(lái)表示程序的控制流 將這種圖翻譯成程序代碼比較容易 7 判定表 判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系 8 判定樹 是判定表的變種 用樹形的方式清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系 畫判定樹時(shí)分枝的次序可能對(duì)最終畫出的判定樹的簡(jiǎn)潔程度有較大影響 9 過程設(shè)計(jì)語(yǔ)言 過程設(shè)計(jì)語(yǔ)言 PDL 也稱為偽碼 它是用正文形式表示數(shù)據(jù)和處理過程的設(shè)計(jì)工具 偽代碼的基本控制結(jié)構(gòu) 簡(jiǎn)單陳述句結(jié)構(gòu) 避免復(fù)合語(yǔ)句 判定結(jié)構(gòu) IF THEN ELSE或CASE OF結(jié)構(gòu) 選擇結(jié)構(gòu) WHILE DO或REPEAT UNTIL結(jié)構(gòu) 例題 某程序流程圖如下圖所示 請(qǐng)分別用N S圖和PAD圖表示 a j b i c e d x2 x3 x4 f g h xi PAD圖 x8 a j x1 b T F f x6 T F x7 i g h CASExi x2 x4 x3 x5 c d e N S圖 例題 某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn) 對(duì)于各種性質(zhì)的講座 無(wú)論教師是什么職稱 每課時(shí)津貼費(fèi)一律是50元 對(duì)于一般的授課 則根據(jù)教師的職稱來(lái)決定每課時(shí)津貼費(fèi) 教授30元 副教授25元 講師20元 助教15元 請(qǐng)分別用判定表 判定樹表示津貼標(biāo)準(zhǔn) 10 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的根據(jù)數(shù)據(jù)結(jié)構(gòu)最終得出對(duì)程序處理過程的描述 最適合在詳細(xì)階段使用 11 Jackson方法 面Jackson結(jié)構(gòu)程序設(shè)計(jì)方法由5個(gè)步驟組成 1 分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu) 用Jackson圖描繪數(shù)據(jù)結(jié)構(gòu) 2 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元 3 用下述規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖 第一 為每對(duì)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元 按照它們?cè)跀?shù)據(jù)結(jié)構(gòu)圖中的層次 在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框 層次不同時(shí)與圖中層次低的那個(gè)對(duì)應(yīng) 第二 根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次 在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框 第三 根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次 在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對(duì)應(yīng)的處理框 改進(jìn)的Jackson圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素 因此可能需要增加中間層次的處理框 4 列出所有操作和條件 包括分支條件和循環(huán)結(jié)束條件 并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置 5 用偽碼表示程序 12 程序復(fù)雜程度的定量度量 定量度量程序復(fù)雜程度 McCabe方法 Halstead方法 13 McCabe方法 根據(jù)程序控制流的復(fù)雜程度定量度量程序的復(fù)雜程度 這樣度量出的結(jié)果稱為程序的環(huán)形復(fù)雜度 為了突出表示程序的控制流 通常使用流圖 14 計(jì)算環(huán)形復(fù)雜度的方法 有了描繪程序控制流的流圖之后 可以用下述3種方法中的任何 第六章詳細(xì)設(shè)計(jì) 復(fù)習(xí)重點(diǎn) 程序的3種基本控制結(jié)構(gòu) 程序流程圖 N S圖 盒圖 PAD圖的基本符號(hào)會(huì)畫程序流程圖 N S圖 PAD圖和判定表 判定樹計(jì)算環(huán)形復(fù)雜度的方法 第七章實(shí)現(xiàn) 1 軟件實(shí)現(xiàn) 通常把編碼和測(cè)試統(tǒng)稱為實(shí)現(xiàn) 所謂編碼 就是把軟件設(shè)計(jì)結(jié)果翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序 源程序代碼的邏輯簡(jiǎn)明清晰 易讀易懂是好程序的一個(gè)重要標(biāo)準(zhǔn) 測(cè)試的目的 就是在軟件投入生產(chǎn)性運(yùn)行之前 盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤 2 軟件測(cè)試的目標(biāo) 測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程 好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案 成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試 注意 測(cè)試決不能證明程序是正確的 即使經(jīng)過了最嚴(yán)格的測(cè)試之后 仍然可能還有沒被發(fā)現(xiàn)的錯(cuò)誤潛藏在程序中 測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成 窮舉測(cè)試是不可能的 3 軟件測(cè)試方法 1 黑盒測(cè)試 功能測(cè)試 把程序看作一個(gè)黑盒子 完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程 是在程序接口進(jìn)行的測(cè)試 2 白盒測(cè)試 結(jié)構(gòu)測(cè)試 把程序看成裝在一個(gè)透明的盒子里 測(cè)試者完全知道程序的結(jié)構(gòu)和處理算法 按照程序內(nèi)部的邏輯測(cè)試程序 檢測(cè)程序中的主要執(zhí)行通路是否都能按預(yù)定要求正確工作 白盒測(cè)試 黑盒測(cè)試都不可能實(shí)現(xiàn)窮盡測(cè)試 4 軟件測(cè)試步驟 模塊測(cè)試 子系統(tǒng)測(cè)試 系統(tǒng)測(cè)試 驗(yàn)收測(cè)試 平行運(yùn)行 1 模塊測(cè)試 單元測(cè)試 模塊測(cè)試又稱單元測(cè)試 它把每個(gè)模塊作為單獨(dú)的實(shí)體來(lái)測(cè)試 保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行 發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤 單元測(cè)試主要使用白盒測(cè)試技術(shù) 2 子系統(tǒng)測(cè)試把經(jīng)過單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試 著重測(cè)試模塊的接口 3 系統(tǒng)測(cè)試把經(jīng)過測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試 發(fā)現(xiàn)的往往是軟件設(shè)計(jì)編碼中的錯(cuò)誤 也可能發(fā)現(xiàn)需求說(shuō)明中的錯(cuò)誤 不論是子系統(tǒng)測(cè)試還是系統(tǒng)測(cè)試 都兼有檢測(cè)和組裝兩重含義 稱為集成測(cè)試 4 驗(yàn)收測(cè)試 確認(rèn)測(cè)試 把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試 它是在用戶積極參與下進(jìn)行的 而且可能主要使用實(shí)際數(shù)據(jù) 系統(tǒng)將來(lái)要處理的信息 進(jìn)行測(cè)試 發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書中的錯(cuò)誤 驗(yàn)收測(cè)試也稱為確認(rèn)測(cè)試 5 平行運(yùn)行 同時(shí)運(yùn)行新開發(fā)出來(lái)的系統(tǒng)和將被它取代的舊系統(tǒng) 6 驅(qū)動(dòng)程序 存根程序 單元測(cè)試可以應(yīng)用人工測(cè)試和計(jì)算機(jī)測(cè)試這樣兩種不同類型的測(cè)試方法 在計(jì)算機(jī)測(cè)試中 模塊不是一個(gè)獨(dú)立的程序 不能獨(dú)立運(yùn)行 它可能調(diào)用其它模塊或被其它模塊調(diào)用 因此必須為每個(gè)單元測(cè)試開發(fā)驅(qū)動(dòng)程序和 或 存根程序 驅(qū)動(dòng)程序是一個(gè) 主程序 它接收測(cè)試數(shù)據(jù) 傳送給被測(cè)試的模塊 存根程序代替被測(cè)試的模塊所調(diào)用的模塊 相當(dāng)于 虛擬子程序 7 集成測(cè)試的集成策略 模塊組裝成程序時(shí)有兩種方法 1 非漸增式測(cè)試方法 先分別測(cè)試每個(gè)模塊 再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序 2 漸增式測(cè)試 把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的那些模塊結(jié)合起來(lái)進(jìn)行測(cè)試 測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)測(cè)試 當(dāng)使用漸增方式把模塊結(jié)合到程序中去時(shí) 有自頂向下和自底向上兩種集成策略 當(dāng)使用自頂向下集成時(shí)有深度優(yōu)先和寬度優(yōu)先的策略 7 回歸測(cè)試 回歸測(cè)試 是指重新執(zhí)行已經(jīng)做過的測(cè)試的某個(gè)子集 以保證測(cè)試過程中的變化沒有帶來(lái)非預(yù)期的副作用 回歸測(cè)試就是用于保證由于調(diào)試或其他原因引起的變化 不會(huì)導(dǎo)致非預(yù)期的軟件行為或額外錯(cuò)誤的測(cè)試活動(dòng) 8 Alpha和Beta測(cè)試 Alpha測(cè)試由用戶在開發(fā)者的場(chǎng)所進(jìn)行 并且在開發(fā)者對(duì)用戶的 指導(dǎo) 下進(jìn)行測(cè)試 是在受控的環(huán)境中進(jìn)行的 Beta測(cè)試由軟件的最終用戶們?cè)谝粋€(gè)或多個(gè)客戶場(chǎng)所進(jìn)行 開發(fā)者通常不在測(cè)試的現(xiàn)場(chǎng) Beta測(cè)試是軟件在開發(fā)者不能控制的環(huán)境中的 真實(shí) 應(yīng)用 9 白盒測(cè)試技術(shù) 10 邏輯覆蓋 1 語(yǔ)句覆蓋 選擇足夠多的測(cè)試數(shù)據(jù) 使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次 2 判定覆蓋 不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次 而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次 比語(yǔ)句覆蓋強(qiáng) 但對(duì)程序邏輯的覆蓋程度仍不高 3 條件覆蓋 不僅每個(gè)語(yǔ)句至少執(zhí)行一次 而且使判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果 判定覆蓋不一定包含條件覆蓋 條件覆蓋也不一定包含判定覆蓋 4 判定 條件覆蓋 使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值 每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果 有時(shí)判定 條件覆蓋也并不比條件覆蓋更強(qiáng) 5 條件組合覆蓋 要求選取足夠多的測(cè)試數(shù)據(jù) 使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次 條件組合覆蓋標(biāo)準(zhǔn)的測(cè)試數(shù)據(jù)并不一定能使程序中的每條路徑都執(zhí)行到 6 點(diǎn)覆蓋 程序執(zhí)行路徑至少經(jīng)過流圖的每個(gè)結(jié)點(diǎn)一次 語(yǔ)句覆蓋標(biāo)準(zhǔn)相同 7 邊覆蓋 使得程序執(zhí)行路徑至少經(jīng)過流圖中每條邊一次 判定覆蓋一致 8 路徑覆蓋 選取足夠多測(cè)試數(shù)據(jù) 使程序的每條可能路徑都至少執(zhí)行一次 如果程序圖中有環(huán) 則要求每個(gè)環(huán)至少經(jīng)過一次 語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定 條件覆蓋 條件組合覆蓋 路徑覆蓋 點(diǎn)覆蓋 邊覆蓋 11 控制結(jié)構(gòu)測(cè)試 1 基本路徑測(cè)試 2 條件測(cè)試 3 循環(huán)測(cè)試 12 黑盒測(cè)試技術(shù) 1 等價(jià)劃分 2 邊界值分析 3 錯(cuò)誤推測(cè) 13 等價(jià)劃分 等價(jià)劃分是一種黑盒測(cè)試技術(shù) 把程序的輸入域劃分成若干個(gè)數(shù)據(jù)類 每類中的一個(gè)典型值在測(cè)試中的作用與這一類中所有其他值的作用相同 使用等價(jià)劃分法設(shè)計(jì)測(cè)試方案首先需要?jiǎng)澐州斎霐?shù)據(jù)的等價(jià)類 常常還需要分析輸出數(shù)據(jù)的等價(jià)類 以便根據(jù)輸出數(shù)據(jù)的等價(jià)類導(dǎo)出對(duì)應(yīng)的輸入數(shù)據(jù)等價(jià)類 14 等價(jià)劃分原則 如果規(guī)定了輸入數(shù)據(jù)的個(gè)數(shù) 則類似地也可以劃分出一個(gè)有效的等價(jià)類和兩個(gè)無(wú)效的等價(jià)類 如果規(guī)定了輸入數(shù)據(jù)的一組值 而且程序?qū)Σ煌斎胫底霾煌幚?則每個(gè)允許的輸入值是一個(gè)有效的等價(jià)類 此外還有一個(gè)無(wú)效的等價(jià)類 任一個(gè)不允許的輸入值 如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則 則可以劃分出一個(gè)有效的等價(jià)類 符合規(guī)則 和若干個(gè)無(wú)效的等價(jià)類 從各種不同角度違反規(guī)則 如果規(guī)定了輸入數(shù)據(jù)為整型 則可以劃分出正整數(shù) 零和負(fù)整數(shù)等3個(gè)有效類 如果程序的處理對(duì)象是表格 則應(yīng)該使用空表 以及含一項(xiàng)或多項(xiàng)的表 15 等價(jià)劃分設(shè)計(jì)測(cè)試方案時(shí)步驟 為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào) 設(shè)計(jì)一個(gè)新的測(cè)試方案以盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類 重復(fù)這一步驟直到所有有效等價(jià)類都被覆蓋為止 設(shè)計(jì)一個(gè)新的測(cè)試方案 使它覆蓋一個(gè)而且只覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類 重復(fù)這一步驟直到所有無(wú)效等價(jià)類都被覆蓋為止 注意 通常程序發(fā)現(xiàn)一類錯(cuò)誤后就不再檢查是否還有其他錯(cuò)誤 因此 應(yīng)該使每個(gè)測(cè)試方案只覆蓋一個(gè)無(wú)效的等價(jià)類 例子 某城市的電話號(hào)碼由3個(gè)部分組成 地區(qū)碼 空白或四位數(shù)字 前綴 非0或1開頭的四位數(shù)字 后綴 四位數(shù)字 使用等價(jià)類劃分方法進(jìn)行測(cè)試用例設(shè)計(jì) 16 邊界值分析 驗(yàn)表明 處理邊界情況時(shí)程序最容易發(fā)生錯(cuò)誤 使用邊界值分析方法設(shè)計(jì)測(cè)試方案首先應(yīng)該確定邊界情況 選取的測(cè)試數(shù)據(jù)應(yīng)該剛好等于 剛剛小于和剛剛大于邊界值 通常設(shè)計(jì)測(cè)試方案時(shí)總是聯(lián)合使用等價(jià)劃分和邊界值分析兩種技術(shù) 例 測(cè)試計(jì)算平方根的函數(shù) 輸入 實(shí)數(shù) 輸出 實(shí)數(shù)需求說(shuō)明 當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候 返回其正平方根 輸入一個(gè)小于0的數(shù)時(shí) 顯示錯(cuò)誤信息 輸入值小于0非法 并返回0 劃分 1 邊界為0和最大正實(shí)數(shù) 劃分 2 邊界為最小負(fù)實(shí)數(shù)和0 由此得到以下測(cè)試用例 a 輸入 最小負(fù)實(shí)數(shù) b 輸入 絕對(duì)值很小的負(fù)數(shù) c 輸入0d 輸入 絕對(duì)值很小的正數(shù) e 輸入 最大正實(shí)數(shù) 17 調(diào)試 調(diào)試是在測(cè)試發(fā)現(xiàn)錯(cuò)誤之后排除錯(cuò)誤的過程 有下列3種調(diào)試途徑可以采用 蠻干法回溯法原因排除法 對(duì)分查找法歸納法演繹法 17 軟件可靠性 程序在給定的時(shí)間間隔內(nèi) 按照規(guī)格說(shuō)明書的規(guī)定成功地運(yùn)行的概率 平均無(wú)故障時(shí)間MTTF是衡量軟件可靠性的重要指標(biāo) 18 軟件可用性 軟件可用性是程序在給定的時(shí)間點(diǎn) 按照規(guī)格說(shuō)明書的規(guī)定 成功地運(yùn)行的概率 第七章實(shí)現(xiàn) 復(fù)習(xí)重點(diǎn) 測(cè)試的目的 任務(wù) 步驟及方法 黑盒測(cè)試和白盒測(cè)試 Alpha和Beta測(cè)試掌握邏輯覆蓋法掌握等價(jià)劃分法和邊界值分析法調(diào)試的概念 第八章維護(hù) 1 維護(hù)定義 所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后 為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程 2 維護(hù)的種類 可分為4項(xiàng)活動(dòng) 改正性維護(hù) 把診斷和改正錯(cuò)誤的過程稱為改正性維護(hù) 適應(yīng)性維護(hù) 為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動(dòng) 完善性維護(hù) 為了滿足在用戶提出的增加新功能或修改已有功能的要求和一般性的改進(jìn)要求 需要進(jìn)行完善性維護(hù) 預(yù)防性維護(hù) 把今天的方法學(xué)應(yīng)用于昨天的系統(tǒng)以滿足明天的需要 采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分 主動(dòng)地進(jìn)行重新設(shè)計(jì) 編碼和測(cè)試 注意 只有預(yù)防性維護(hù)是主動(dòng)的 其他維護(hù)都是被動(dòng)的 3 軟件的可維護(hù)性定性 維護(hù)人員理解 改正 改動(dòng)或改進(jìn)這個(gè)軟件的難易程度 4 決定軟件的可維護(hù)性定性的因素 可理解性可測(cè)試性可修改性可移植性可重用性文檔是影響軟件可維護(hù)性的決定因素 5 軟件再工程過程 典型的軟件再工程過程模型定義了 庫(kù)存目錄分析文檔重構(gòu)逆向工程代碼重構(gòu)數(shù)據(jù)重構(gòu)正向工程6類活動(dòng) 第八章維護(hù) 復(fù)習(xí)重點(diǎn) 維護(hù)的定義維護(hù)的類型決定軟件的可維護(hù)性定性的因素 第九章面向?qū)ο蠓椒▽W(xué)論 1 向?qū)ο蠓椒▽W(xué)要點(diǎn) 1 面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的 軟件中的任何元素都是對(duì)象 復(fù)雜的軟件對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成 2 把所有對(duì)象都劃分成各種對(duì)象類 簡(jiǎn)稱為類 class 每個(gè)對(duì)象類都定義了一組數(shù)據(jù)和一組方法 數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性 是對(duì)象的狀態(tài)信息 3 按照子類 或稱為派生類 與父類 或稱為基類 的關(guān)系 把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng) 也稱為類等級(jí) 4 對(duì)象彼此之間僅能通過傳遞消息互相聯(lián)系 面向?qū)ο?oo 對(duì)象 objects 類 classes 繼承 inheritance 通信 communicationwithmessages 2 面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn) 與人們習(xí)慣的思維方法一致 穩(wěn)定性好 可重用性好 較易開發(fā)大型軟件產(chǎn)品 可維護(hù)性好 3 對(duì)象 是客觀事物或概念的抽象表述 即對(duì)客觀存在的事物的描述統(tǒng)稱為對(duì)象 對(duì)象可以是事 物 或抽象概念 是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實(shí)體 對(duì)象的特點(diǎn) 1 以數(shù)據(jù)為中心 2 對(duì)象是主動(dòng)的 3 實(shí)現(xiàn)了數(shù)據(jù)封裝 4 本質(zhì)上具有并行性 5 模塊獨(dú)立性好 4 類 類就是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義 類 好比是一個(gè)對(duì)象模板 用它可以產(chǎn)生多個(gè)對(duì)象 5 實(shí)例 實(shí)例就是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象 6 消息 對(duì)象之間通信的手段 是一個(gè)對(duì)象要求另一對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說(shuō)明 通常一個(gè)消息由三部分組成 接收消息的對(duì)象消息標(biāo)識(shí)符 即消息名 零個(gè)或多個(gè)變?cè)狹yCircle Show Green 7 其他概念 方法 方法就是對(duì)象所能執(zhí)行的操作 也就是類中所定義的服務(wù) 屬性 屬性就是類中所定義的數(shù)據(jù) 它是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象 封裝 封裝就是指把對(duì)象的數(shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來(lái)放在對(duì)象內(nèi)部 繼承 繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制 單重繼承 子類僅從一個(gè)父類繼承屬性和方法 多重繼承 子類可從多個(gè)父類繼承屬性和方法 多態(tài)性 是指子類對(duì)象可以像父類對(duì)象那樣使用 同樣的消息既可以發(fā)送給父類對(duì)象也可以發(fā)送給子類對(duì)象 即不同等級(jí)的類 可以公用一個(gè)方法的名字 不同層次中的每個(gè)類卻各自按自己的需要來(lái)實(shí)現(xiàn)這個(gè)行為 重載 有兩種重載 1 函數(shù)重載 指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字 2 運(yùn)算符重載 指同一運(yùn)算符可以施加于不同類型的操作數(shù)上面 當(dāng)被操作數(shù)類型不同時(shí) 運(yùn)算符的含義是不同的 8 面向?qū)ο蠼?面向?qū)ο箝_發(fā)軟件 需要建立3種形式的模型 對(duì)象模型 描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu) 動(dòng)態(tài)模型 描述系統(tǒng)控制結(jié)構(gòu) 執(zhí)行操作 功能模型 描述系統(tǒng)功能 數(shù)值變化 對(duì)象模型始終都是最重要 最基本 最核心 功能模型指明了系統(tǒng)應(yīng)該 做什么 動(dòng)態(tài)模型明確規(guī)定了 什么時(shí)候做 對(duì)象模型則定義了做事情的實(shí)體 即 對(duì)誰(shuí)做 9 類圖的基本符號(hào) 1 定義類 類的圖形符號(hào)為長(zhǎng)方形 用兩條橫線把長(zhǎng)方形分成上 中 下3個(gè)區(qū)域 別放類的名字 屬性和服務(wù) 2 定義屬性 可見性屬性名 類型 缺省值 性質(zhì)串 3 定義方法 可見性操作名 參數(shù)表 返回類型 性質(zhì)串 10 表示關(guān)系的符號(hào) 1 普通關(guān)聯(lián) 2 限定關(guān)聯(lián) 3 關(guān)聯(lián)類 關(guān)聯(lián)中的每個(gè)連接與關(guān)聯(lián)類的一個(gè)對(duì)象相聯(lián)系 關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接 11 聚集 聚集是一種特殊的關(guān)聯(lián) 聚集表示類與類之間是整體與部分的關(guān)系 除了一般聚集之外 還有兩種特殊的聚集關(guān)系 分別是共享聚集和組合聚集 1 共享聚集如果在聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成 則該聚集稱為共享聚集 一般聚集和共享聚集的關(guān)聯(lián)關(guān)系用空心菱形表示 2 組合聚集如果部分類完全隸屬于整體類 部分與整體共存 整體不存在了部分也會(huì)隨之消失 則該聚集稱為組合聚集 組合聚集的組成關(guān)系用實(shí)心菱形表示 12 泛化 泛化關(guān)系就是通常所說(shuō)的繼承關(guān)系 它是通用元素和具體元素之間的一種分類關(guān)系 用一端為空心三角形的連線表示泛化關(guān)系 三角形的頂角緊挨著通用元素 注意 泛化針對(duì)類型而不針對(duì)實(shí)例 泛化可進(jìn)一步劃分成普通泛化和受限泛化 受限泛化 給泛化關(guān)系附加約束條件 分為 多重 不相交 完全 不完全 13 依賴和細(xì)化 1 依賴關(guān)系依賴關(guān)系表示 描述兩個(gè)模型元素 類 用例 之間的關(guān)系 其中一個(gè)模型元素是獨(dú)立的 另一個(gè)模型元素不是獨(dú)立的 它依賴于獨(dú)立的模型元素 如果獨(dú)立的模型元素改變了 將影響依賴于它的模型元素 2 細(xì)化關(guān)系當(dāng)對(duì)同一個(gè)事物在不同抽象層次上描述時(shí) 這些描述之間具有細(xì)化關(guān)系 假設(shè)兩個(gè)模型元素A和B描述同一個(gè)事物 它們的區(qū)別是抽象層次不同 如果B是在A的基礎(chǔ)上的更詳細(xì)的描述 則稱B細(xì)化了A 或稱A細(xì)化成了B 注意是虛線 實(shí)線就成了泛化 14 動(dòng)態(tài)模型 動(dòng)態(tài)模型描述系統(tǒng)控制結(jié)構(gòu) 通常用狀態(tài)圖表示 狀態(tài)圖 略 15 功能模型 用例圖 一幅用例圖包含的模型元素有系統(tǒng) 行為者 用例及用例之間的關(guān)系 使用用例模型代替?zhèn)鹘y(tǒng)的功能說(shuō)明 往往能夠更好地獲取用戶需求 它所回答的問題是 系統(tǒng)應(yīng)該為每個(gè) 或每類 用戶做什么 復(fù)習(xí)重點(diǎn) 類與對(duì)象的基本概念3種形式的模型 對(duì)象模型動(dòng)態(tài)模型功能模型 第九章面向?qū)ο蠓椒▽W(xué)論 1 面向?qū)ο蠓治?面向?qū)ο蠓治?就是抽取和整理用戶需求并建
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國(guó)自動(dòng)無(wú)人機(jī)飛行軟件行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)自動(dòng)化光學(xué)檢查行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)膝關(guān)節(jié)軟骨修復(fù)與再生行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030中國(guó)胰島素德特米爾行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)肉鴨配合料行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2025至2030中國(guó)聚氯乙烯電纜行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030中國(guó)羊膜穿刺針行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國(guó)網(wǎng)球拍線行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 環(huán)保工程應(yīng)急響應(yīng)及風(fēng)險(xiǎn)控制措施
- 2025至2030中國(guó)細(xì)胞破壞器設(shè)備行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- GB/T 20946-2007起重用短環(huán)鏈驗(yàn)收總則
- GB/T 18391.3-2009信息技術(shù)元數(shù)據(jù)注冊(cè)系統(tǒng)(MDR)第3部分:注冊(cè)系統(tǒng)元模型與基本屬性
- GB/T 10610-2009產(chǎn)品幾何技術(shù)規(guī)范(GPS)表面結(jié)構(gòu)輪廓法評(píng)定表面結(jié)構(gòu)的規(guī)則和方法
- 熠搜家庭戶用光伏電站推介
- 濟(jì)源幼兒園等級(jí)及管理辦法
- 房地產(chǎn)開發(fā)全流程培訓(xùn)講義課件
- DB44-T 2163-2019山地自行車賽場(chǎng)服務(wù) 基本要求-(高清現(xiàn)行)
- 云南省特種設(shè)備檢驗(yàn)檢測(cè)收費(fèi)標(biāo)準(zhǔn)
- DB15T 933-2015 內(nèi)蒙古地區(qū)極端高溫、低溫和降雨標(biāo)準(zhǔn)
- 工傷責(zé)任保險(xiǎn)單
- 固體廢物采樣培訓(xùn)
評(píng)論
0/150
提交評(píng)論