軟件工程 課件 3.1 軟件過程模型_第1頁
軟件工程 課件 3.1 軟件過程模型_第2頁
軟件工程 課件 3.1 軟件過程模型_第3頁
軟件工程 課件 3.1 軟件過程模型_第4頁
軟件工程 課件 3.1 軟件過程模型_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

軟件過程模型軟件工程內(nèi)容何為軟件過程模型基本概念和特點有哪些軟件過程模型有什么類別,各有什么優(yōu)缺點3.如何來選擇軟件過程模型軟件過程模型的選擇方式和策略1.1軟件開發(fā)的特點基于智力的協(xié)作過程智力活動:基于邏輯思維來構(gòu)造軟件交流協(xié)作:多方參與、相互間的交流和討論軟件項目實施復(fù)雜性介入的人多、涉及的內(nèi)容多、產(chǎn)生的制品多不同要素間存在關(guān)聯(lián)循序漸進(jìn)的開發(fā)過程開展有序的開發(fā)活動,如編碼、分析、設(shè)計體現(xiàn)了工程的思想:按步驟、分階段、循序漸進(jìn)按照什么樣的過程和步驟來有序地開發(fā)軟件?1.2軟件過程過程(Process)活動:明確要做哪些事情,包括具體的活動關(guān)系:活動間存在邏輯關(guān)系,如依賴和先后次序示例:考研的過程軟件過程(SoftwareProcess)按照項目進(jìn)度、成本和質(zhì)量要求,遵循用戶需求,開發(fā)和維護(hù)軟件、管理軟件項目的一系列有序軟件開發(fā)活動軟件開發(fā)活動:技術(shù)活動和管理活動1.3軟件過程模型軟件過程模型(SoftwareProcessModel)定義了軟件開發(fā)的具體活動以及活動間的邏輯關(guān)系開發(fā)活動1開發(fā)活動2開發(fā)活動3開發(fā)活動n任務(wù)、目標(biāo)、輸入和輸出投入人員、工具、資源和成本等軟件制品思考和討論:軟件開發(fā)應(yīng)該按照什么樣的過程?先做什么,然后再做什么,最后做什么為什么要按照這樣的過程?內(nèi)容何為軟件過程模型基本概念和特點有哪些軟件過程模型有什么類別,各有什么特點和優(yōu)缺點如何來選擇軟件過程模型軟件過程模型的選擇方式和策略2.1軟件過程模型的產(chǎn)生背景作坊式的個人創(chuàng)作聚焦于編寫代碼關(guān)注時空利用,精雕細(xì)琢程序規(guī)模小且功能單一依靠個體技能,缺乏合作無系統(tǒng)性方法和標(biāo)準(zhǔn)流程軟件工程產(chǎn)生之前的軟件開發(fā)軟件過程模型的產(chǎn)生背景IBMOS/360超大型軟件項目(1963年-1965年)通用系統(tǒng),支持多道程序,最多可同時運行15道程序軟件工程師超2000人,花費超5億美元,工作量超5000人年有史以來最可怕的軟件開發(fā)泥潭Brooks,《人月神話》TheMythicalMan-Month作者、圖靈獎獲得者凸顯了軟件過程及其管理的重要性典型的軟件過程模型瀑布模型增量模型迭代模型原型模型螺旋模型基于構(gòu)件的過程模型UP模型需要系統(tǒng)、規(guī)范性的軟件過程模型的指導(dǎo)每種軟件過程模型有其各自的特點和適用場所2.2瀑布模型(WaterfallModel)需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)集成測試確認(rèn)測試特點與軟件生命周期相互一致每個活動結(jié)束后需要評審相鄰活動間存在因果關(guān)系優(yōu)點簡單,一目了然,易理解、掌握、應(yīng)用和管理適合于需求易于定義、不易變動的軟件系統(tǒng)1970提出的第一個軟件過程模型需求分析(RequirementAnalysis)活動任務(wù):定義軟件需求,包括功能、非功能需求關(guān)注點:要做什么?(What,Problem)層次和視角:用戶角度,僅描述問題和需求方法依據(jù):用戶的期望和要求不斷與用戶進(jìn)行交流和商討,抽象、問題分解、多視點等技術(shù)產(chǎn)出軟件需求模型、軟件需求文檔、軟件確認(rèn)測試計劃產(chǎn)生文檔類的軟件制品明確問題是什么?概要設(shè)計(ArchitectureDesign)活動任務(wù):建立軟件總體架構(gòu)、制定集成測試計劃關(guān)注點:軟件高層設(shè)計?(How,Solution)層次和視角:宏觀、全局、整體、戰(zhàn)略性方法依據(jù):軟件需求文檔自頂向下,逐步求精,抽象,模塊化,局部化,信息隱藏…...產(chǎn)出軟件概要設(shè)計模型、軟件概要設(shè)計文檔、軟件集成測試計劃產(chǎn)生文檔類的軟件制品明確問題如何解決?詳細(xì)設(shè)計(DetailedDesign)活動任務(wù):設(shè)計模塊內(nèi)部細(xì)節(jié)(算法、數(shù)據(jù)結(jié)構(gòu)),制訂單元測試計劃關(guān)注點:詳細(xì)設(shè)計?(How,Solution)層次和視角:微觀、局部、細(xì)節(jié)性方法依據(jù):概要設(shè)計文檔、軟件需求文檔高質(zhì)量的軟件設(shè)計原則,如單入口單出口產(chǎn)出軟件詳細(xì)設(shè)計模型、軟件詳細(xì)設(shè)計文檔、單元測試計劃產(chǎn)生文檔類的軟件制品明確問題如何解決?編程實現(xiàn)(Implementation)活動任務(wù):編寫程序代碼并進(jìn)行單元測試和調(diào)試關(guān)注點:如何最終做出這個東西?(How,Code)層次和視角:最終的實現(xiàn)代碼方法依據(jù):軟件概要和詳細(xì)設(shè)計文檔、單元測試計劃采用某種程序設(shè)計語言(如C、C++、Java)產(chǎn)出經(jīng)過單元測試的源程序代碼產(chǎn)生程序類的軟件制品明確如何實際解決問題集成測試(IntegrationTest)活動任務(wù):組裝軟件模塊并進(jìn)行測試以發(fā)現(xiàn)問題關(guān)注點:集成后軟件中的缺陷(Bug)層次和視角:自底向上組裝、全局

方法依據(jù):軟件概要設(shè)計文檔、軟件集成測試計劃軟件集成測試工具產(chǎn)出經(jīng)過集成測試、修復(fù)缺陷的源程序代碼,集成測試報告產(chǎn)生數(shù)據(jù)、文檔和代碼類的軟件制品明確問題解決如何?軟件有缺陷嗎?確認(rèn)測試(ValidationTest)活動任務(wù):測試軟件是否滿足用戶需求關(guān)注點:軟件在滿足用戶需求方面是否存在缺陷層次和視角:從用戶角度,聚焦需求是否得以正確實現(xiàn)方法依據(jù):軟件確認(rèn)測試計劃、軟件需求文檔軟件測試支撐工具產(chǎn)出經(jīng)過確認(rèn)測試、修復(fù)缺陷后的代碼,軟件確認(rèn)測試報告產(chǎn)生數(shù)據(jù)、文檔和代碼類的軟件制品明確問題解決如何?軟件有缺陷嗎?思考和討論:瀑布模型的局限性?需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)集成測試確認(rèn)測試優(yōu)點是什么有何不足需求確定,過于理想化缺乏變通,難應(yīng)對變化軟件需求具有易變、多變的特點怎么辦?2.3改進(jìn)的瀑布模型:帶反饋和回溯需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)集成測試確認(rèn)測試回溯后期活動發(fā)現(xiàn)有問題后,可返回到前面活動加以解決提高了過程模型的靈活性不足軟件開發(fā)處于動蕩之中需等到所有功能實現(xiàn)后,才能得到可運行軟件2.4增量模型(IncrementalModel)需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)集成測試確認(rèn)測試詳細(xì)設(shè)計編碼實現(xiàn)集成測試增量1增量n漸進(jìn)式、增量式地實現(xiàn)軟件功能優(yōu)點:漸進(jìn)快速交付,并行開發(fā),提高效率增量模型的局限性?結(jié)合課程綜合實踐思考不足軟件需求可確定且不易于變化增量1增量n2.5迭代模型(IterativeModel)需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)軟件測試迭代1需求分析概要設(shè)計詳細(xì)設(shè)計編碼實現(xiàn)軟件測試迭代2迭代n每次迭代完成部分可確定的軟件需求迭代模型的特點每次迭代是一完整過程體現(xiàn)了小步快跑的開發(fā)理念適合需求難導(dǎo)出、不易確定且持續(xù)變動的軟件迭代模型的局限性?結(jié)合課程綜合實踐思考不足迭代多少次不確定管理較為復(fù)雜思考和討論:增量模型與迭代模型二者有何共性和區(qū)別?增量模型迭代模型增量1增量n軟件需求獲取是關(guān)鍵和瓶頸問題軟件需求非常關(guān)鍵軟件開發(fā)的基礎(chǔ)、驗收的依據(jù)用戶講不清楚軟件需求有哪些、是什么?說不清、道不明,尤其當(dāng)軟件較為復(fù)雜和龐大之時用戶與軟件工程師對軟件需求理解存在偏差對軟件需求描述的歧義性、二義性、不準(zhǔn)確等造成的“應(yīng)該是這樣的”、“實際是這樣的”如果軟件需求分析結(jié)果不正確、不完整、有歧義,會帶來什么樣的問題?軟件需求的偏差需求偏差有多大如何來解決軟件需求偏差問題?2.6原型模型(PrototypeModel)特點軟件原型作為交流載體和媒介支持用戶參與到軟件開發(fā)中持續(xù)、漸進(jìn)地導(dǎo)出用戶要求適合于需求難導(dǎo)出、不易確定且持續(xù)變動的軟件快速設(shè)計采集和細(xì)化需求建造原型客戶使用評價原型獲得反饋開發(fā)軟件系統(tǒng)何為軟件原型?用戶界面執(zhí)行流程2.7螺旋模型(SpiralModel)集成迭代模型和原型模型引入風(fēng)險分析,風(fēng)險驅(qū)動的過程模型每個迭代四個階段,若干活動適合于需求不明確、開發(fā)風(fēng)險高、開發(fā)過程中需求變更大的軟件項目不足:管理復(fù)雜軟件風(fēng)險使軟件開發(fā)受到影響和損失、甚至導(dǎo)致失敗的、可能會發(fā)生的事件不同軟件過程模型的特點模型名稱指導(dǎo)思想關(guān)注點適合軟件管理難度瀑布模型提供系統(tǒng)性指導(dǎo)與軟件生命周期相一致需求變動不大、較為明確、可預(yù)先定義的應(yīng)用易原型模型以原型為媒介指導(dǎo)用戶的需求導(dǎo)出和評價需求獲取、導(dǎo)出和確認(rèn)理解需求難以表述清楚、不易導(dǎo)出和獲取的應(yīng)用易增量模型快速交付和并行開發(fā)軟件詳細(xì)設(shè)計、編碼和測試的增量式完成需求變動不大、較為明確、可預(yù)先定義的應(yīng)用易迭代模型多次迭代,每次僅針對部分明確軟件需求分多次迭代來開發(fā)軟件,每次僅關(guān)注部分需求需求變動大、難以一次性說清楚的應(yīng)用中等螺旋模型集成迭代模型和原型模型,引入風(fēng)險分析軟件計劃制定和實施,軟件風(fēng)險管理,基于原型的迭代式開發(fā)開發(fā)風(fēng)險大,需求難以確定的應(yīng)用難內(nèi)容何為軟件過程模型基本概念和特點有哪些軟件過程模型有什么類別,各有什么特點和優(yōu)缺點3.如何來選擇軟件過程模型軟件過程模型的選擇方式和策略如何為軟件項目開發(fā)選擇合適的軟件過程模型軟件項目及開發(fā)團(tuán)隊的具體特點軟件過程模型特點、優(yōu)點和局限分析和對比3.1軟件過程模型的選擇考慮軟件項目的特點尤其是所開發(fā)軟件的業(yè)務(wù)特點,如業(yè)務(wù)領(lǐng)域是否明確、軟件需求是否易于確定、用戶需求是否會經(jīng)常性變化等等是否可以預(yù)估到潛在的軟件開發(fā)風(fēng)險考慮開發(fā)團(tuán)隊的水平需要結(jié)合軟件開發(fā)團(tuán)隊的能力和水平來選擇過程模型,以防開發(fā)團(tuán)隊和管理人員無法掌控和駕馭過程模型結(jié)合軟件過程模型特點優(yōu)缺點以及適合的場所示例:如何選擇合適的過程互聯(lián)網(wǎng)應(yīng)用軟件的開發(fā)過程模型特點:軟件需求不確定且快速變化如:12306APP軟件,微信軟件,淘寶軟件選用瀑布模型不合適,迭代模型較為合適裝備軟件的開發(fā)過程模型特點:軟件需求確定且較為穩(wěn)定,質(zhì)量要求高如:飛行控制軟件可考慮選用瀑布模型,用迭代模型不是很合適思考和討論結(jié)合課程綜合實踐的具體特點和要求,思考選用什么樣的軟件過程模型較為合適,為什么?軟件有創(chuàng)意:問題及基于軟件的解決方法有新意軟件上規(guī)模:軟件具有一定規(guī)模,代碼量>15000+LOC如空巢老人看護(hù)軟件、多無人機(jī)聯(lián)合搜尋軟件課程實踐軟件項目有何特點?軟件項目開發(fā)團(tuán)隊有何特點?3.2傳統(tǒng)軟件過程模型的特點和不足軟件開發(fā)和運維的大量工作用于撰寫軟件文檔,而非去編寫程序代碼軟件開發(fā)過程中會花費大量時間和精力用于軟件文檔的評審,以確保軟件質(zhì)量一旦軟件需求發(fā)生變化,開發(fā)人員需要修改軟件需求文檔,并據(jù)此來調(diào)整其他的一系列文檔,最后再修改程序代碼等較長時間才能得到可運行軟件系統(tǒng)以文檔為中心的重型軟件開發(fā)方法,非常笨重瀑布模型增量模型迭代模型原型模型螺旋模型……軟件文檔敏捷軟件開發(fā)方法(AgileMethod)的產(chǎn)生重視人和交互、重視可運行軟件系統(tǒng)、重視客戶合作、重視響應(yīng)用戶需求變化少寫軟件文檔,以代碼為中心,快速響應(yīng)變化拓展閱讀軟件科學(xué)與工程-學(xué)科發(fā)展戰(zhàn)略,梅宏等著,高等教育出版社,2021.課后作業(yè)和課程實訓(xùn)訪問/paths/1944完成第四章“軟件過程模型和開發(fā)方法”的實訓(xùn)闖關(guān)任務(wù)本章知識圖譜小結(jié)軟件開發(fā)需要過程指導(dǎo)明確步驟、活動、次序、關(guān)系多樣化的軟件過程模型瀑布、增量、迭代、原型、螺旋等,各自有其優(yōu)缺點選擇合適軟件過程模型考慮軟件項目特點和要求、團(tuán)隊的經(jīng)驗和水平及各個軟件過程模型的優(yōu)缺點傳統(tǒng)軟件過程模型不足以文檔是中心,非常笨重,難以快速應(yīng)對需求變化,

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論