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