《公共基礎(chǔ)3-軟件工程基礎(chǔ).pptx》由會員分享,可在線閱讀,更多相關(guān)《公共基礎(chǔ)3-軟件工程基礎(chǔ).pptx(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟件工程基礎(chǔ),公共基礎(chǔ)知識,軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境。 結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。 結(jié)構(gòu)化設(shè)計方法,總體設(shè)計與詳細(xì)設(shè)計。 軟件測試的方法,白盒測試與黑盒測試,測試用例設(shè)計,軟件測試的實施,單元測試、集成測試和系統(tǒng)測試。 程序的調(diào)試,2,內(nèi)容提要,3.1 軟件工程基本概念,軟件的定義和組成 計算機軟件(Software)是計算機系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)、文檔。 軟件分成三類: 應(yīng)用軟件 系統(tǒng)軟件(操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、編譯程序、設(shè)備驅(qū)動程序等) 支撐軟件(介于應(yīng)用軟件與系統(tǒng)軟件間,協(xié)助用戶開發(fā)軟件的工具性軟
2、件,比如需求分析工具軟件、編碼工具軟件、測試/維護(hù)工具軟件),4,3.1.1 軟件定義與軟件特點,軟件危機 落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機軟件需求,從而導(dǎo)致軟件開發(fā)與維護(hù)過程中出現(xiàn)一系列嚴(yán)重問題的現(xiàn)象。 嚴(yán)重問題歸結(jié)為成本、質(zhì)量和生產(chǎn)率等問題 為了解決軟件危機,1968年提出了軟件工程這一概念,并逐漸形成了軟件工程學(xué)。(軟件工程源自于軟件危機),5,3.1.2 軟件危機與軟件工程,軟件工程 將工程化應(yīng)用到軟件開發(fā)過程中(在軟件的開發(fā)工程中應(yīng)用工程化原則) 軟件工程學(xué)工程學(xué)的新興領(lǐng)域 軟件工程3個要素: 方法: 完成工程項目的技術(shù)手段 工具:支持軟件開發(fā)、管理、文檔生成的工具 過程:
3、對開發(fā)的各個環(huán)節(jié)進(jìn)行控制和管理,6,3.1.2 軟件危機與軟件工程,軟件工程過程 軟件開發(fā)過程:把用戶的要求轉(zhuǎn)變?yōu)檐浖a(chǎn)品的過程。,7,3.1.3 軟件工程過程與軟件生命周期,3.1.3 軟件工程過程與軟件生命周期,軟件的生命周期 軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)、停止使用到退役的過程 3個階段 軟件定義 軟件開發(fā) 軟件運行維護(hù) 6個階段工作,8,可行性報告,軟件規(guī)格說明書,測試分析報告,3.1.3 軟件工程過程與軟件生命周期,定義階段 可行性研究與計劃指定:能做嗎? 需求分析:做什么? 開發(fā)階段: 軟件設(shè)計:如何做?,分為概要設(shè)計和詳細(xì)設(shè)計兩個階段。 軟件實現(xiàn):實現(xiàn),編碼。 軟件測試:做的怎么
4、樣? 運行維護(hù)階段 使用,不斷維護(hù),9,可行性報告,軟件規(guī)格說明書,測試分析報告,概要設(shè)計說明書,詳細(xì)設(shè)計說明書,完成編碼及面向用戶的手冊,軟件工程的目標(biāo) 在給定成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品 軟件工程學(xué)的范疇,10,3.1.4 軟件工程的目標(biāo)與原則,軟件工程原則 抽象 抽取事物最基本的特性和行為,忽略非本質(zhì)細(xì)節(jié) 信息隱蔽 采用封裝技術(shù),將程序模塊的實現(xiàn)細(xì)節(jié)隱藏起來 模塊化 解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊 局部化 確定性 一致性 完備性 可驗證性,11,3.1.4
5、軟件工程的目標(biāo)與原則,,,軟件開發(fā)工具 協(xié)助開發(fā)人員進(jìn)行軟件開發(fā)活動所使用的軟件或環(huán)境 需求分析工具、設(shè)計工具、編碼工具、排錯工具、測試工具等。 軟件開發(fā)環(huán)境 全面支持軟件開發(fā)全過程的軟件工具的集合 計算機輔助軟件工程:CASE,12,3.1.5 軟件開發(fā)工具與軟件開發(fā)環(huán)境,3.2 結(jié)構(gòu)化分析方法,1需求分析 定義: 任務(wù):導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型 全面理解用戶的各項要求,準(zhǔn)確地表達(dá)各項要求 主要工作: 需求獲取需求分析編寫需求規(guī)格說明書需求審評(驗證需求文檔的一致性、可行性、完整性和有效性) 2.需求分析方法: 結(jié)構(gòu)化分析方法 面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方
6、法(JSD)、面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD) 面向?qū)ο蠓治龇椒ǎ∣OA) 靜態(tài)分析方法、動態(tài)分析方法,14,3.2.1 需求分析與需求分析方法,需求分析:解決“做什么”問題,1關(guān)于結(jié)構(gòu)化分析方法 結(jié)構(gòu)化程序設(shè)計理論在需求分析階段的運用 面向數(shù)據(jù)流進(jìn)行需求分析的方法 自頂向下、逐層分解 主要工具:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定樹、判定表,15,3.2.2 結(jié)構(gòu)化分析方法,2結(jié)構(gòu)化分析的常用工具 數(shù)據(jù)流圖(DFD) 數(shù)據(jù)字典(DD) 結(jié)構(gòu)化分析方法的核心 對數(shù)據(jù)流圖(DFD)中出現(xiàn)的被命名的圖形元素的確切解釋 判定樹、判定表 以圖形形式描述數(shù)據(jù)流圖(DFD
7、)的加工邏輯,16,3.2.2 結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖(DFD):,17,3.2.2 結(jié)構(gòu)化分析方法,,基本圖形元素,軟件需求規(guī)格說明書 是需求分析階段的最后成果 特點: 正確性;無歧義性;完整性;可驗證性;一致性;可理解性;可修改性;可追蹤性。 最重要的是正確性,18,3.2.3 軟件需求規(guī)格說明書,3.3 結(jié)構(gòu)化設(shè)計方法,1軟件設(shè)計的基礎(chǔ) 開發(fā)階段包括了軟件設(shè)計、實現(xiàn)(編碼)和軟件測試三部分,軟件設(shè)計是開發(fā)階段最重要的步驟。 從工程管理角度來看,軟件設(shè)計分兩步完成:概要設(shè)計和詳細(xì)設(shè)計,20,3.3.1 軟件設(shè)計的基本概念,需求分析:解決“做什么”問題 軟件設(shè)計:解決“怎么做”問題,2軟件
8、設(shè)計的基本原理 抽象 抽出事物本質(zhì)的共同特點 模塊化 信息隱蔽 每個模塊的實現(xiàn)細(xì)節(jié)對于其它模塊來說是隱蔽的 模塊獨立性 每個模塊只涉及軟件要求的具體的子功能和軟件系統(tǒng)中其它的模塊的接口是簡單的 衡量指標(biāo): 耦合性:模塊間互相連接的緊密程序的度量 內(nèi)聚性:模塊內(nèi)部各個元素之間彼此結(jié)合的緊密程度的度量 應(yīng)做到:高內(nèi)聚,低耦合,21,3.3.1 軟件設(shè)計的基本概念,1概要設(shè)計的基本任務(wù) 系統(tǒng)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫的設(shè)計編寫概要設(shè)計文檔概要設(shè)計的評審 常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)(SC)圖,22,3.3.2 概要設(shè)計,3面向數(shù)據(jù)流的設(shè)計方法 數(shù)據(jù)流圖(DFD):需求分析工具 系統(tǒng)結(jié)構(gòu)圖(SC):概要
9、設(shè)計工作 主要任務(wù):數(shù)據(jù)流圖變換成結(jié)構(gòu)圖 數(shù)據(jù)流的類型:變換流/事務(wù)流 實施要點與設(shè)計過程 分析、確認(rèn)數(shù)據(jù)流圖的類型,區(qū)分是事務(wù)型還是變換型 說明數(shù)據(jù)流的邊界 數(shù)據(jù)流圖映射為程序結(jié)構(gòu) 根據(jù)設(shè)計準(zhǔn)則把數(shù)據(jù)流轉(zhuǎn)換成程序結(jié)構(gòu)圖,23,3.3.2 概要設(shè)計(續(xù)),,,,詳細(xì)設(shè)計的任務(wù): 確定實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu) 不同于編碼或編程 常用過程設(shè)計工具: 圖形工具:程序流程圖、N-S、PAD(問題分析圖)和HIPO 表格工具:判定表; 語言工具:PDL(偽碼),24,3.3.3 詳細(xì)設(shè)計,3.3.3 詳細(xì)設(shè)計(續(xù)),程序流程圖 圖形元素: 方框:處理步驟 菱形:邏輯條件 箭頭:控制流 5種控制結(jié)構(gòu) 順序型
10、 選擇型 先判斷重復(fù)型 后判斷重復(fù)型 多分支選擇型。,25,,3.4 軟件測試,測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,沒有改正錯誤 一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試 準(zhǔn)則: 所有的測試都應(yīng)該追溯到需求 程序員應(yīng)避免檢查自己的程序 測試用例(Test Case):為測試設(shè)計的數(shù)據(jù),包含兩部分:輸入值集和輸出值集。,27,3.4 軟件測試,從是否需要執(zhí)行被檢測的軟件的角度,分為靜態(tài)測試與動態(tài)測試 靜態(tài)測試 人工評審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯誤 主要方法:代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量 動態(tài)測試 上機測試 關(guān)鍵:設(shè)計高效、合理的測試用
11、例 分兩類:白盒測試方法和黑盒測試方法,28,3.4 軟件測試,按照功能劃分,分為白盒測試和黑盒測試 白盒測試 也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試 在程序內(nèi)部進(jìn)行,主要用于完成軟件內(nèi)部操作的驗證。 測試用例是根據(jù)程序的內(nèi)部邏輯來設(shè)計 主要用于單元測試 基本原則 保證所測模塊中每一個獨立路徑至少執(zhí)行一次 保證所測模塊所有判斷的每一個分支至少執(zhí)行一次 保證所測模塊每一個循環(huán)都在邊界條件和一般條件至少執(zhí)行一次 驗證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性 主要方法:邏輯覆蓋、基本路徑測試,29,3.4 軟件測試,按照功能劃分,分為白盒測試和黑盒測試 黑盒測試 也稱功能測試或數(shù)據(jù)驅(qū)動測試 對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)行
12、測試和驗證 根據(jù)程序的功能說明來設(shè)計測試用例 主要用于確認(rèn)測試 主要方法 等價類劃分法 邊界值分析法 錯誤推測法,30,3.4 軟件測試,31,,軟件測試步驟: 單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試,3.4 軟件測試,1單元測試 對象:針對程序模塊,進(jìn)行正確性檢驗的測試 目的:發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯 依據(jù):從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,其依據(jù)是詳細(xì)的設(shè)計說明書和源程序 方法:以白盒測試為主,輔以黑盒測試 在編碼階段進(jìn)行 驅(qū)動模塊(相當(dāng)于被測模塊的主程序,將測試數(shù)據(jù)傳遞給被測試的模塊)樁模塊(代替被測模塊調(diào)用的其他模塊),32,,3.4 軟件測試,1單元測試 驅(qū)動模塊:相當(dāng)于被測
13、模塊的主程序,將測試數(shù)據(jù)傳遞給被測試的模塊 樁模塊:代替被測模塊調(diào)用的其他模塊,33,,3.4 軟件測試,2集成測試 任務(wù):把模塊在按照設(shè)計要求組裝起來的同時進(jìn)行測試 目的:發(fā)現(xiàn)與接口有關(guān)的錯誤 依據(jù):集成測試的依據(jù)是概要設(shè)計說明書 內(nèi)容:軟件單元的接口測試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)測試、邊界條件和非法輸入的測試 方式:非增量方式組裝與增量方式組裝。,34,,,3.4 軟件測試,3確認(rèn)測試 又稱有效性測試 目的:驗證軟件的功能和性能及其它特性是否與用戶的要求一致 依據(jù):軟件需求規(guī)格說明書 方法:黑盒測試法 4系統(tǒng)測試 任務(wù):在實際運行(使用)環(huán)境下,對計算機系統(tǒng)進(jìn)行一系列的組裝測試和確認(rèn)測試 目的:在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方 依據(jù): 需求分析規(guī)格說明來設(shè)計 內(nèi)容:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試,35,,,,3.4 軟件測試,3.5 程序的調(diào)試,程序調(diào)試 任務(wù):診斷和改正程序中的錯誤 時機:調(diào)試主要在開發(fā)階段進(jìn)行 基本步驟:錯誤定位、糾正錯誤、回歸測試,37,3.5.1 基本概念,1強行排錯法 通過內(nèi)存全部打印來排錯(Memory Dump) 在程序特定部位設(shè)置打印語句 自動調(diào)試工具 2回溯法 3原因排除法 演繹法 歸納法 二分法,38,3.5.2 軟件調(diào)試方法,