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