




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