

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程導論(5) 軟件工程方法,盧軍jlu@cuit.edu.cnuvgelab.cuit.edu.cn,方法的作用,http://blog.csdn.net/Kerryzhu,雖然沒有銀彈,本章內(nèi)容,5.1 軟件方法論5.2 用戶需求的獲取方法5.3 軟件工程的分析方法5.4 軟件工程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,本章內(nèi)容,5.1 軟件方法論5.2 用戶需
2、求的獲取方法5.3 軟件工程的分析方法5.4 軟件工程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,什么是工程的方法?,http://blog.csdn.net/Kerryzhu,5.1 軟件方法論,http://blog.csdn.net/Kerryzhu,5.1.1 系統(tǒng)工程方法論5.1.2 軟系統(tǒng)方法論5.1.3 軟件工程方法體系,系統(tǒng)工程方法論,系統(tǒng)工程方法論是針對復雜多
3、變和不確定性的特點,綜合應用運籌學、系統(tǒng)動力學、控制論、信息論等有關學科的理論和方法,將數(shù)理統(tǒng)計、概率論、線性代數(shù)、模糊數(shù)學等作為定性分析和定量分析的有效工具,深入地分析問題,尋求問題解決的最優(yōu)策略動態(tài)系統(tǒng)理論、自動機理論 、霍爾三維結構、系統(tǒng)分析法、成本效益分析、計劃協(xié)調技術、關鍵路線法等,http://blog.csdn.net/Kerryzhu,,問題定義?確定目標?系統(tǒng)綜合?系統(tǒng)分析?系統(tǒng)評價?系統(tǒng)創(chuàng)建? 系統(tǒng)實施,軟系統(tǒng)方法
4、論,http://blog.csdn.net/Kerryzhu,是一項運用系統(tǒng)思維方法解決非系統(tǒng)問題的定性研究的技術,目的是解決那些包含有大量社會的、政治的以及人為因素的問題,軟系統(tǒng)方法的邏輯,http://blog.csdn.net/Kerryzhu,豐富圖的一個示例,http://blog.csdn.net/Kerryzhu,,軟件工程方法體系,http://blog.csdn.net/Kerryzhu,抽象原則給出軟件工程問題求解
5、全過程的最基本原則 體系規(guī)范原則是規(guī)范整體解題思路及解決方案的驗證局部規(guī)范原則是規(guī)范解決模塊、組件等局部問題的原則,發(fā)現(xiàn)現(xiàn)實問題 ? 抽象? 模型 ? 解決問題,方法,http://blog.csdn.net/Kerryzhu,結構化程序設計方法面向對象方法面向構件方法面向服務方法基于凈室思想的方法基于敏捷思想的方法自適應開發(fā)方法動態(tài)系統(tǒng)開發(fā)方法測試驅動方法……,示例,本章內(nèi)容,5.1 軟件方法論5.2 用戶需求
6、的獲取方法5.3 軟件工程的分析方法5.4 軟件工程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,需求訪談,哪些人將會使用這個軟件系統(tǒng)?他們希望該軟件系統(tǒng)達到什么樣的效果?以前使用過其它類似的軟件系統(tǒng)嗎?,http://blog.csdn.net/Kerryzhu,從一組語境無關的問題開始,然后,站在用戶的角度展開要詢問的問題,尋求更多的需求信息,挖掘用戶潛在的功能需求,便利的應用
7、規(guī)約技術,http://blog.csdn.net/Kerryzhu,在中立的地點舉行會議建立籌備和參與會議的規(guī)則建議一個議程,能夠覆蓋需求范圍所有的要點,但不鼓勵思維的任意流動一個“協(xié)調者控制會議使用一種“定義機制”目標是標識問題、提出解決方案的元素、評估不同的方法以及刻畫初步解決方案的需求集合,鼓勵建立客戶和開發(fā)者的聯(lián)合團隊,一起工作以標識問題、提出解決方案的元素、刻畫初步解決方案的需求集合,本章內(nèi)容,5.1 軟件方法論
8、5.2 用戶需求的獲取方法5.3 軟件工程的分析方法5.4 軟件工程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,如何分析問題?,http://blog.csdn.net/Kerryzhu,5.3 軟件工程的分析方法,5.3.1 系統(tǒng)分析方法5.3.2 問題分析方法5.3.3 根本原因分析5.3.4 決策分析,系統(tǒng)分析方法,整體分析 結構分析 層次分析 相關分析,http:
9、//blog.csdn.net/Kerryzhu,問題分析方法,http://blog.csdn.net/Kerryzhu,問題說明階段: 提出目標,確定評價指標和約束條件 分析研究階段: 提出各種備選方案并預計一旦實施后可能產(chǎn)生的結果 評估結果 :將各方案的評價比較結果提供給決策者,作為判斷抉擇的依據(jù),根本原因分析,http://blog.csdn.net/Kerryzhu,在開發(fā)周期的每個階段實施根本原因分析,為有效開展缺陷
10、預防活動提供依據(jù)應用在解決各個方面的問題的過程中 得到提倡,形成一種文化或一種機制,而對每個人應形成一種處理問題的習慣,問題? 根本原因 ? 解決方案,決策分析,選擇決策技術和結構層次,制訂決策分析與決定的計劃建立作為決策基礎的評價準則。建立并運用決策分析指導原則,確定推薦的候選方案。依據(jù)評價準則進行綜合分析、討論和審查,然后選擇相應的評價方法,依據(jù)準則來評價候選方案。最終選擇的候選方案應附有所選擇的技術、準則和作出選擇的依
11、據(jù),http://blog.csdn.net/Kerryzhu,本章內(nèi)容,5.1 軟件方法論5.2 用戶需求的獲取方法5.3 軟件工程的分析方法5.4 軟件工程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,設計中最關鍵的問題?,http://blog.csdn.net/Kerryzhu,軟件危機,5.4.1 原型設計方法5.4.2 結構化方法5.4.3 面向對象方法5.4.4
12、面向構件設計方法5.4.5 面向服務方法5.4.6 可視化方法,http://blog.csdn.net/Kerryzhu,原型設計方法,在獲取基本的需求定義后,利用可視化的開發(fā)環(huán)境或工具,快速地建立一個目標系統(tǒng)的粗線條版本 基于可視化原型,用戶更能清楚地表達自己的需求,提供反饋意見原型分為拋棄式原型和演化式原型 拋棄式原型不作為最終產(chǎn)品,具有探索和實驗目的,或只是作為需求確認的工具演化式原型,最終軟件系統(tǒng)是在原型的基礎上逐
13、步形成、修改、完善和完成的,http://blog.csdn.net/Kerryzhu,原型設計方法的實現(xiàn)過程,http://blog.csdn.net/Kerryzhu,結構化方法,http://blog.csdn.net/Kerryzhu,面向數(shù)據(jù)結構的軟件設計方法 問題分析法 系統(tǒng)關聯(lián)圖 信息隱蔽方法,采用自頂向下、逐步求精設計過程,將系統(tǒng)分解為若干功能模塊,然后逐個實現(xiàn)每一個具體的功能模塊,問題分析法,http://bl
14、og.csdn.net/Kerryzhu,先分解再合成,根據(jù)輸入、輸出數(shù)據(jù)結構指導系統(tǒng)的分解,在系統(tǒng)分析指導下再逐步合成系統(tǒng),系統(tǒng)關聯(lián)圖,http://blog.csdn.net/Kerryzhu,用于定義系統(tǒng)與系統(tǒng)外部實體間的界限和接口的簡單模型,可以明確外部實體和系統(tǒng)之間通過接口傳遞的數(shù)據(jù)流和信息流,面向對象方法,http://blog.csdn.net/Kerryzhu,面向對象方法從所處理的數(shù)據(jù)入手,以數(shù)據(jù)為中心來描述系統(tǒng) 充
15、分挖掘了“關系”的表達方式,可以盡可能的將事物之間復雜的關系予以體現(xiàn) 軟件的開發(fā)可以視為“類”的抽象及其關聯(lián)的建模過程軟件的運行是對象的實例化及其狀態(tài)的演變過程,對象與對象之間通過發(fā)送消息相互聯(lián)系,對象與類,http://blog.csdn.net/Kerryzhu,對象的行為通過操作展示,外界不可以直接訪問其內(nèi)部屬性(封裝性),操作的實現(xiàn)對用戶透明 類是對具有相同內(nèi)部狀態(tài)和外部行為對象結構的描述,它定義了表示對象狀態(tài)的實例變量集
16、和表示對象行為的方法集。子類可以繼承父類的實例變量和方法、重載父類的某個行為(虛函數(shù)),同時還可以定義新的變量和方法 消息傳遞是對象間惟一的交互方式,示例,http://blog.csdn.net/Kerryzhu,面向對象分析,http://blog.csdn.net/Kerryzhu,分析是提取和整理用戶需求,并建立問題域精確模型的過程 面向對象分析一般需要建立3個模型(功能模型、對象模型和動態(tài)模型)并定義相應的服務,面向對象設
17、計,http://blog.csdn.net/Kerryzhu,開-閉原則 單一職責原則里氏代換原則 依賴倒轉原則 接口隔離原則 合成/聚合復用原則 迪米特法則,把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統(tǒng)實現(xiàn)方案的過程,面向構件設計方法,就是用“構件”取代“代碼”,構件成為軟件產(chǎn)品或系統(tǒng)的基本結構單元 構件可以完成一個或多個功能的特定服務,并為用戶提供標準接口 系統(tǒng)構件可以分為業(yè)務構件、服務構件、展現(xiàn)構件
18、、邏輯構件、運算構件等 從傳統(tǒng)的關注點分離到構件組裝業(yè)務構件是軟件過程的主線索,并基于業(yè)務構件來識別出服務構件 ,然后就是業(yè)務構件的實現(xiàn)、驗證和部署,http://blog.csdn.net/Kerryzhu,構件的層次,http://blog.csdn.net/Kerryzhu,基于構件的網(wǎng)狀結構,http://blog.csdn.net/Kerryzhu,面向服務方法,http://blog.csdn.net/Kerryzhu,
19、SOA 架構模式,http://blog.csdn.net/Kerryzhu,SOA模式在三個主要參與者——“服務提供者、服務消費者和服務代理”之間定義了交互模型,SOA 系統(tǒng)架構的層次,http://blog.csdn.net/Kerryzhu,SOA 系統(tǒng)服務層實現(xiàn),http://blog.csdn.net/Kerryzhu,SOD的建模和架構方法,http://blog.csdn.net/Kerryzhu,可視化方法,http:/
20、/blog.csdn.net/Kerryzhu,借助可視開發(fā)工具,直接在圖形用戶界面上來完成絕大部分的軟件設計和編程工作,可以自定義、修改和拖拽各項操作界面元素可視開發(fā)工具能實現(xiàn)程序代碼的自動生成,示例,http://blog.csdn.net/Kerryzhu,可視化IDE,http://blog.csdn.net/Kerryzhu,本章內(nèi)容,5.1 軟件方法論5.2 用戶需求的獲取方法5.3 軟件工程的分析方法5.4 軟件工
21、程的設計方法5.5 軟件測試方法,http://blog.csdn.net/Kerryzhu,為什么要進行軟件測試?,http://blog.csdn.net/Kerryzhu,5.5.1 白盒和黑盒的測試方法5.5.2 靜態(tài)和動態(tài)的測試方法5.5.3 ALAC測試和隨機測試5.5.4 自動化測試方法,5.5 軟件測試方法,黑盒方法和白盒方法,黑盒測試方法(Blake-box Testing),是把程序看作一個不能打開的黑盒子,
22、不考慮程序內(nèi)部結構和內(nèi)部特性,而是考察數(shù)據(jù)的輸入、條件限制和數(shù)據(jù)輸出,完成測試 白盒測試方法(White-box Testing),也稱結構測試或邏輯驅動測試。白盒測試方法是根據(jù)模塊內(nèi)部結構了解,基于內(nèi)部邏輯結構,針對程序語句、路徑、變量狀態(tài)等來進行測試,檢驗程序中的各個分支條件是否得到滿足、每條執(zhí)行路徑是否按預定要求正確的工作。,黑盒測試 vs. 白盒測試,功能測試數(shù)據(jù)驅動(Data-driven)測試,結構測試邏輯驅動(L
23、ogic-driven)測試,,需求,事件驅動,輸入,輸出,,方法,靜態(tài)測試 和 動態(tài)測試,靜態(tài)測試就是靜態(tài)分析,對模塊的源代碼進行研讀,查找錯誤或收集一些度量數(shù)據(jù),并不需要對代碼進行編譯和仿真運行。靜態(tài)測試采用人工檢測和計算機輔助靜態(tài)分析手段進行檢測 動態(tài)測試是通過觀察代碼運行時的動作,來提供執(zhí)行跟蹤、時間分析,以及測試覆蓋度方面的信息。動態(tài)測試通過真正運行程序發(fā)現(xiàn)錯誤。通過有效的測試用例,對應的輸入/輸出關系來分析被測程序的運行情
24、況,http://blog.csdn.net/Kerryzhu,靜態(tài)測試 vs. 動態(tài)測試,,運行程序,ALAC測試,ALAC( Act-like-a-customer,象客戶那樣做 )測試是基于客戶使用產(chǎn)品的知識而進行測試其出發(fā)點是著名的Pareto 80/20規(guī)律,隨機測試,可以作為熟悉新開發(fā)產(chǎn)品的功能特性,完善軟件測試用例,獲得一舉兩得的效果為對計劃測試的補充,使測試人員不受已有測試用例的限制,無拘無束、思維活躍,能發(fā)現(xiàn)一些隱
25、藏比較深的缺陷,自動化測試的特點,自動運行的速度快,是手工無法相比的。測試結果準確。例如搜索用時及時是0.33秒或0.24秒,系統(tǒng)都會發(fā)現(xiàn)問題,不會忽視任何差異高復用性。一旦完成所用的測試腳本,可以一勞永逸運行很多遍永不疲勞 可靠 獨特的能力,自動化測試帶來的好處,測試周期縮短更高質量的產(chǎn)品軟件過程更規(guī)范高昂的團隊士氣節(jié)省人力資源,降低企業(yè)成本充分利用硬件資源,降低企業(yè)成本。,手工測試,發(fā)現(xiàn)缺陷率高 容易實施
26、創(chuàng)造性、靈活性 覆蓋率量化困難 重復測試效率低 不一致性、可靠性低 依賴人力資源,高效率(速度) 高復用性 覆蓋率容易度量 準確、可靠 不知疲勞 激勵團隊士氣 機械、難以發(fā)現(xiàn)缺陷 一次性投入大,手工測試 vs.自動測試,,http://blog.csdn.net/Kerryzhu,兩者相互補充,在系統(tǒng)功能邏輯測試、驗收測試、適用性測試、涉及交互性測試時,多采用手工測試方法;單元測試、集成測試、系統(tǒng)負載或性能、可靠
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論