軟件工程方法課件_第1頁
軟件工程方法課件_第2頁
軟件工程方法課件_第3頁
軟件工程方法課件_第4頁
軟件工程方法課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件工程方法軟件工程方法方法的作用方法的作用 雖然沒有銀彈軟件工程方法本章內容本章內容v 5.1 5.1 軟件方法論軟件方法論v 5.2 5.2 用戶需求的獲取方法用戶需求的獲取方法v 5.3 5.3 軟件工程的分析方法軟件工程的分析方法v 5.4 5.4 軟件工程的設計方法軟件工程的設計方法v 5.5 5.5 軟件測試方法軟件測試方法 軟件工程方法本章內容本章內容v 5.1 5.1 軟件方法論軟件方法論v 5.2 用戶需求的獲取方法v 5.3 軟件工程的分析方法v 5.4 軟件工程的設計方法v 5.5 軟件測試方法 軟件工程方法什么是工程的方法?什么是工程的方法? 軟件工程方法5.1 5.1

2、 軟件方法論軟件方法論 5.1.1 系統工程方法論系統工程方法論5.1.2 軟系統方法論軟系統方法論5.1.3 軟件工程方法體系軟件工程方法體系軟件工程方法系統工程方法論系統工程方法論v 系統工程方法論是針對復雜多變和不確定性的特點,系統工程方法論是針對復雜多變和不確定性的特點,綜合應用運籌學、系統動力學、控制論、信息論等有綜合應用運籌學、系統動力學、控制論、信息論等有關學科的理論和方法,將數理統計、概率論、線性代關學科的理論和方法,將數理統計、概率論、線性代數、模糊數學等作為定性分析和定量分析的有效工具數、模糊數學等作為定性分析和定量分析的有效工具,深入地分析問題,尋求問題解決的最優(yōu)策略,深

3、入地分析問題,尋求問題解決的最優(yōu)策略v 動態(tài)系統理論、自動機理論動態(tài)系統理論、自動機理論 、霍爾三維結構、系統、霍爾三維結構、系統分析法、成本效益分析、計劃協調技術、關鍵路線法分析法、成本效益分析、計劃協調技術、關鍵路線法等等 問題定義確定目標系統綜合系統分析系統評價系統創(chuàng)建 系統實施軟件工程方法軟系統方法論軟系統方法論 v 是一項運用系統思維方法解決非系統問題的定性研究的技術,目的是解決那些包含有大量社會的、政治的以及人為因素的問題 軟件工程方法軟系統方法的邏輯軟系統方法的邏輯 軟件工程方法豐富圖的一個示例豐富圖的一個示例 軟件工程方法軟件工程方法體系軟件工程方法體系 v 抽象原則給出軟件工

4、程問題求解全過程的最基本原則 v 體系規(guī)范原則是規(guī)范整體解題思路及解決方案的驗證v 局部規(guī)范原則是規(guī)范解決模塊、組件等局部問題的原則 發(fā)現現實問題發(fā)現現實問題 抽象抽象 模型模型 解決問題解決問題 軟件工程方法方法方法 v 結構化程序設計方法v 面向對象方法v 面向構件方法v 面向服務方法v 基于凈室思想的方法v 基于敏捷思想的方法v 自適應開發(fā)方法v 動態(tài)系統開發(fā)方法v 測試驅動方法v 軟件工程方法示例示例軟件工程方法本章內容本章內容v 5.1 軟件方法論v 5.2 5.2 用戶需求的獲取方法用戶需求的獲取方法v 5.3 軟件工程的分析方法v 5.4 軟件工程的設計方法v 5.5 軟件測試方

5、法 軟件工程方法需求訪談需求訪談 哪些人將會使用這個軟件系統?哪些人將會使用這個軟件系統? 他們希望該軟件系統達到什么樣的效果他們希望該軟件系統達到什么樣的效果? 以前使用過其它類似的軟件系統嗎以前使用過其它類似的軟件系統嗎? 從一組語境無關的問題開始 然后,站在用戶的角度展開要詢問的問題,尋求更多的需求信息,挖掘用戶潛在的功能需求 軟件工程方法便利的應用規(guī)約技術便利的應用規(guī)約技術 v在中立的地點舉行會議v建立籌備和參與會議的規(guī)則v建議一個議程,能夠覆蓋需求范圍所有的要點,但不鼓勵思維的任意流動v一個“協調者控制會議v使用一種“定義機制”v目標是標識問題、提出解決方案的元素、評估不同的方法以及

6、刻畫初步解決方案的需求集合鼓勵建立客戶和開發(fā)者的聯合團隊,一起工作以標識問題、提出解決方案的元素、刻畫初步解決方案的需求集合 軟件工程方法本章內容本章內容v 5.1 軟件方法論v 5.2 用戶需求的獲取方法v 5.3 5.3 軟件工程的分析方法軟件工程的分析方法v 5.4 軟件工程的設計方法v 5.5 軟件測試方法 軟件工程方法如何分析問題?如何分析問題? 軟件工程方法5.3 5.3 軟件工程的分析方法軟件工程的分析方法5.3.1 系統分析方法系統分析方法5.3.2 問題分析方法問題分析方法5.3.3 根本原因分析根本原因分析5.3.4 決策分析決策分析軟件工程方法系統分析方法系統分析方法v

7、整體分析整體分析 v 結構分析結構分析 v 層次分析層次分析 v 相關分析相關分析 軟件工程方法問題分析方法問題分析方法 v 問題說明階段問題說明階段: 提出目標,確定評價指標和約束條件 v 分析研究階段分析研究階段: 提出各種備選方案并預計一旦實施后可能產生的結果 v 評估結果評估結果 :將各方案的評價比較結果提供給決策者,作為判斷抉擇的依據 軟件工程方法根本原因分析根本原因分析 v 在開發(fā)周期的每個階段實施根本原因分析,為有效開展缺陷預防活動提供依據v 應用在解決各個方面的問題的過程中 v 得到提倡,形成一種文化或一種機制,而對每個人應形成一種處理問題的習慣 問題問題 根本原因根本原因 解

8、決方案解決方案 軟件工程方法決策分析決策分析v 選擇決策技術和結構層次,制訂決策分析與決定的計選擇決策技術和結構層次,制訂決策分析與決定的計劃劃v 建立作為決策基礎的評價準則。建立作為決策基礎的評價準則。v 建立并運用決策分析指導原則,確定推薦的候選方案建立并運用決策分析指導原則,確定推薦的候選方案。v 依據評價準則進行綜合分析、討論和審查,然后選擇依據評價準則進行綜合分析、討論和審查,然后選擇相應的評價方法,依據準則來評價候選方案。相應的評價方法,依據準則來評價候選方案。v 最終選擇的候選方案應附有所選擇的技術、準則和作最終選擇的候選方案應附有所選擇的技術、準則和作出選擇的依據出選擇的依據

9、軟件工程方法本章內容本章內容v 5.1 軟件方法論v 5.2 用戶需求的獲取方法v 5.3 軟件工程的分析方法v 5.4 5.4 軟件工程的設計方法軟件工程的設計方法v 5.5 軟件測試方法 軟件工程方法設計中最關鍵的問題?設計中最關鍵的問題? 軟件工程方法軟件危機軟件危機v 5.4.1 原型設計方法原型設計方法v 5.4.2 結構化方法結構化方法v 5.4.3 面向對象方法面向對象方法v 5.4.4 面向構件設計方法面向構件設計方法v 5.4.5 面向服務方法面向服務方法v 5.4.6 可視化方法可視化方法 軟件工程方法原型設計方法原型設計方法v 在獲取基本的需求定義后,利用可視化的開發(fā)環(huán)境

10、或工具,快速地建立一個目標系統的粗線條版本v 基于可視化原型,用戶更能清楚地表達自己的需求,提供反饋意見v 原型分為拋棄式原型和演化式原型 拋棄式原型不作為最終產品,具有探索和實驗目的,或只是作為需求確認的工具 演化式原型,最終軟件系統是在原型的基礎上逐步形成、修改、完善和完成的 軟件工程方法原型設計方法的實現過程原型設計方法的實現過程 軟件工程方法結構化方法結構化方法 v 面向數據結構的軟件設計方法面向數據結構的軟件設計方法 v 問題分析法問題分析法 v 系統關聯圖系統關聯圖 v 信息隱蔽方法信息隱蔽方法 采用自頂向下、逐步求精設計過程,將系統分解為若干功采用自頂向下、逐步求精設計過程,將系

11、統分解為若干功能模塊,然后逐個實現每一個具體的功能模塊能模塊,然后逐個實現每一個具體的功能模塊軟件工程方法問題分析法問題分析法 先分解再合成,根據輸入、輸出數據結構指導系統的分解,先分解再合成,根據輸入、輸出數據結構指導系統的分解,在系統分析指導下再逐步合成系統在系統分析指導下再逐步合成系統 軟件工程方法系統關聯圖系統關聯圖 v 用于定義系統與系統外部實體間的界限和接口的簡單模用于定義系統與系統外部實體間的界限和接口的簡單模型,可以明確外部實體和系統之間通過接口傳遞的數據型,可以明確外部實體和系統之間通過接口傳遞的數據流和信息流流和信息流 軟件工程方法面向對象方法面向對象方法 v 面向對象方法

12、從所處理的數據入手,以數據為中心來描述系統 v 充分挖掘了“關系”的表達方式,可以盡可能的將事物之間復雜的關系予以體現 v 軟件的開發(fā)可以視為“類”的抽象及其關聯的建模過程v 軟件的運行是對象的實例化及其狀態(tài)的演變過程,對象與對象之間通過發(fā)送消息相互聯系 軟件工程方法對象與類對象與類 v 對象的行為通過操作展示,外界不可以直接訪問其內部屬性(封裝性),操作的實現對用戶透明 v 類是對具有相同內部狀態(tài)和外部行為對象結構的描述,它定義了表示對象狀態(tài)的實例變量集和表示對象行為的方法集。子類可以繼承父類的實例變量和方法、重載父類的某個行為(虛函數),同時還可以定義新的變量和方法 v 消息傳遞是對象間惟

13、一的交互方式 軟件工程方法示例示例 軟件工程方法面向對象分析面向對象分析 v 分析是提取和整理用戶需求,并建立問題域精確模型的過程 v 面向對象分析一般需要建立3個模型(功能模型、對象模型和動態(tài)模型)并定義相應的服務 軟件工程方法面向對象設計面向對象設計 v 開-閉原則 v 單一職責原則v 里氏代換原則 v 依賴倒轉原則 v 接口隔離原則 v 合成/聚合復用原則 v 迪米特法則 把分析階段得到的需求轉變成符合成本和質量要求把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統實現方案的過程的、抽象的系統實現方案的過程軟件工程方法面向構件設計方法面向構件設計方法v 就是用就是用“構件構件”取

14、代取代“代碼代碼”,構件成為軟件產品,構件成為軟件產品或系統的基本結構單元或系統的基本結構單元 v 構件可以完成一個或多個功能的特定服務,并為用構件可以完成一個或多個功能的特定服務,并為用戶提供標準接口戶提供標準接口 v 系統構件可以分為業(yè)務構件、服務構件、展現構件系統構件可以分為業(yè)務構件、服務構件、展現構件、邏輯構件、運算構件等、邏輯構件、運算構件等 v 從傳統的關注點分離到構件組裝從傳統的關注點分離到構件組裝v 業(yè)務構件是軟件過程的主線索,并基于業(yè)務構件來業(yè)務構件是軟件過程的主線索,并基于業(yè)務構件來識別出服務構件識別出服務構件 ,然后就是業(yè)務構件的實現、驗,然后就是業(yè)務構件的實現、驗證和部

15、署證和部署 軟件工程方法構件的層次構件的層次 軟件工程方法基于構件的網狀結構基于構件的網狀結構 軟件工程方法面向服務方法面向服務方法 軟件工程方法SOA 架構模式架構模式 v SOA模式在三個主要參與者模式在三個主要參與者“服務提供者、服服務提供者、服務消費者和服務代理務消費者和服務代理”之間定義了交互模型之間定義了交互模型 軟件工程方法SOA 系統架構的層次系統架構的層次 軟件工程方法SOA 系統服務層實現系統服務層實現 軟件工程方法SOD的建模和架構方法的建模和架構方法 軟件工程方法可視化方法可視化方法 v 借助可視開發(fā)工具,直接在圖形用戶界面上來完成絕大部分的軟件設計和編程工作,可以自定

16、義、修改和拖拽各項操作界面元素v 可視開發(fā)工具能實現程序代碼的自動生成 軟件工程方法示例示例 軟件工程方法可視化可視化IDE 軟件工程方法本章內容本章內容v 5.1 軟件方法論v 5.2 用戶需求的獲取方法v 5.3 軟件工程的分析方法v 5.4 軟件工程的設計方法v 5.5 5.5 軟件測試方法軟件測試方法 軟件工程方法為什么要進行軟件測試?為什么要進行軟件測試? 軟件工程方法v 5.5.1 白盒和黑盒的測試方法白盒和黑盒的測試方法v 5.5.2 靜態(tài)和動態(tài)的測試方法靜態(tài)和動態(tài)的測試方法v 5.5.3 ALAC測試和隨機測試測試和隨機測試v 5.5.4 自動化測試方法自動化測試方法v5.5

17、軟件測試方法軟件測試方法軟件工程方法黑盒方法和白盒方法黑盒方法和白盒方法 v 黑盒測試方法黑盒測試方法(Blake-box Testing),是把程序看作一個不能打開的黑盒子,不考慮程序內部結構和內部特性,而是考察數據的輸入、條件限制和數據輸出,完成測試 v 白盒測試方法白盒測試方法(White-box Testing),也稱結構測試或邏輯驅動測試。白盒測試方法是根據模塊內部結構了解,基于內部邏輯結構,針對程序語句、路徑、變量狀態(tài)等來進行測試,檢驗程序中的各個分支條件是否得到滿足、每條執(zhí)行路徑是否按預定要求正確的工作。 軟件工程方法黑盒測試黑盒測試 vs. 白盒測白盒測試試功能測試功能測試數據

18、驅動(數據驅動(Data-driven)測試)測試結構測試結構測試邏輯驅動(邏輯驅動(Logic-driven)測試)測試 需求事件驅動事件驅動輸入輸入輸出輸出軟件工程方法方法方法黑盒測試方法黑盒測試方法白盒測試方法白盒測試方法等價類劃分邊界值分析因果圖 錯誤推測法決策表方法正交試驗法 語句覆蓋分支覆蓋條件覆蓋條件組合覆蓋循環(huán)覆蓋基本路徑測試軟件工程方法靜態(tài)測試靜態(tài)測試 和和 動態(tài)測試動態(tài)測試v 靜態(tài)測試靜態(tài)測試就是靜態(tài)分析,對模塊的源代碼進行研讀,查找錯誤或收集一些度量數據,并不需要對代碼進行編譯和仿真運行。靜態(tài)測試采用人工檢測和計算機輔助靜態(tài)分析手段進行檢測 v 動態(tài)測試動態(tài)測試是通過觀察

19、代碼運行時的動作,來提供執(zhí)行跟蹤、時間分析,以及測試覆蓋度方面的信息。動態(tài)測試通過真正運行程序發(fā)現錯誤。通過有效的測試用例,對應的輸入/輸出關系來分析被測程序的運行情況 軟件工程方法靜態(tài)測試靜態(tài)測試 vs. 動態(tài)測試動態(tài)測試主持人作者記錄員列席會議內審員技術專家用戶代表非正式正式同行評審同行評審 走查走查 評審會議評審會議運行程序運行程序軟件工程方法ALAC測試測試v ALAC( Act-like-a-customer,象客戶那樣,象客戶那樣做做 )測試是基于客戶使用產品的知識而進行)測試是基于客戶使用產品的知識而進行測試測試v 其出發(fā)點是著名的其出發(fā)點是著名的Pareto 80/20規(guī)律規(guī)律 軟件工程方法隨機測試隨機測試 v 可以作為熟悉新開發(fā)產品的功能特性,完善軟件測試可以作為熟悉新開發(fā)產品的功能特性,完善軟件測試用例,獲得一舉兩得的效果用例,獲得一舉兩得的效果v 為對計劃測試的補充,使測試人員不受已有測試用例為對計劃測試的補充,使測試人員不受已有測試用例的限制,無拘無束、思維活躍,能發(fā)現一些隱藏比較的限制,無拘無束、思維活躍,能發(fā)現一些隱藏比較深的缺陷深的缺陷軟件工程方法自動化測試的特點自動化測試的特點v 自動運行的速度快自動運行的速度快,是手工無法相比的。v 測試結果準確測試結果準確。例如搜索用時及時是0.33秒或0.24秒,系統都會發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論