資源描述:
《軟件過程與軟件開發(fā)模型x》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件過程與軟件開發(fā)模型演講人崔琳娜生存周期與軟件過程的關(guān)系什么是過程?廣義的說,人們隨時(shí)間的流逝而進(jìn)行的各種活動(dòng)均可稱為過程(process,流程)因此,軟件過程可理解為圍繞軟件開發(fā)所進(jìn)行的一系列活動(dòng)。在早些時(shí)候,人們常常把軟件過程譯為“軟件開發(fā)模型”按照早期軟件工程的觀點(diǎn),軟件開發(fā)模型包含的階段與活動(dòng)軟件生存周期劃分的階段與活動(dòng)基本上是一致的。它們共同的特點(diǎn)是將整個(gè)“過程”嚴(yán)格的劃分階段,各階段的活動(dòng)分步完成;前一階段的活動(dòng)沒有結(jié)束,下一階段的活動(dòng)就不能進(jìn)行,恰如奔流不息、拾級(jí)而下的瀑布。軟件過程的演變在第一代軟件工程期間,瀑布開發(fā)模型在軟件的開發(fā)與維護(hù)中被普遍采用
2、。到了20世紀(jì)80年代中期,人們終于發(fā)現(xiàn),這種線性開發(fā)模型不適合于大型復(fù)雜系統(tǒng)的開發(fā)。軟件開發(fā)模型開始演變。除傳統(tǒng)的線性開發(fā)模型外,又陸續(xù)涌現(xiàn)了一批新的、允許在開發(fā)過程中任意回溯和迭代的過程模型。軟件過程涵義軟件過程是軟件開發(fā)與維護(hù)的工作流程和工藝流程,是軟件工程的重要組成部分。?軟件過程指軟件生存周期中所涉及的一系列相關(guān)過程。過程是活動(dòng)的集合,活動(dòng)是任務(wù)的集合,任務(wù)是把輸入轉(zhuǎn)換為輸出的操作。軟件過程是動(dòng)態(tài)的,它動(dòng)態(tài)地產(chǎn)生、推進(jìn)(執(zhí)行),動(dòng)態(tài)地消亡。?軟件過程模型是對(duì)軟件過程靜態(tài)的、抽象的描述,是軟件過程執(zhí)行的依據(jù)。軟件過程-ISO/IEC12207主要過程類獲取過程
3、供應(yīng)過程開發(fā)過程運(yùn)行過程維護(hù)過程支持過程類文檔編制過程配置管理過程質(zhì)量保證過程驗(yàn)證過程確認(rèn)過程聯(lián)合評(píng)審過程審核過程問題解決過程組織過程類管理過程基礎(chǔ)設(shè)施過程改進(jìn)過程培訓(xùn)過程軟件開發(fā)模型與軟件工程常見的開發(fā)模型:瀑布模型、演化模型、螺旋模型、XP開發(fā)模型、快速開發(fā)模型等。由于現(xiàn)在還沒有任何一種方法能夠解決軟件危機(jī)中的所有問題,所以在軟件開發(fā)的各個(gè)階段采用綜合治理的方法。軟件開發(fā)模型直接影響軟件開發(fā)的周期和軟件質(zhì)量,是軟件開發(fā)的組織管理形式,是軟件工程最重要的內(nèi)容之一。瀑布模型的概念瀑布模型是將軟件生存周期各活動(dòng)規(guī)定為依線性順序聯(lián)接的若干階段的模型。它包括需求分析、概要設(shè)
4、計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試和維護(hù)。它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。瀑布模型的特點(diǎn)特征:從上一階段承接的成果物作為本階段的工作對(duì)象;對(duì)上一階段成果實(shí)施本階段的活動(dòng);給出本階段的成果,作為下一階段的輸入;對(duì)本階段的工作進(jìn)行評(píng)審,若本階段的工作得到確認(rèn),則繼續(xù)下階段的工作,否則返回前一階段或更前一階段。優(yōu)點(diǎn):提供了一個(gè)模板,使得分析、設(shè)計(jì)、編碼、測試、運(yùn)行維護(hù)可以在該模板的指導(dǎo)下應(yīng)用。瀑布模型的特點(diǎn)缺點(diǎn):缺乏靈活性,不能適應(yīng)用戶需求的改變開始階段的小錯(cuò)誤被逐級(jí)放大,可能導(dǎo)致軟件產(chǎn)品報(bào)廢返回上一級(jí)的開發(fā)需要十分昂貴的代價(jià)隨著軟件規(guī)模和復(fù)雜性的增加,
5、對(duì)于需求不能完全確定的軟件開發(fā)項(xiàng)目將產(chǎn)生很大的風(fēng)險(xiǎn)。通常使用場合:需求分析做得比較好的系統(tǒng)二次開發(fā)系統(tǒng)原型模型在項(xiàng)目開發(fā)的初始階段,人們對(duì)軟件的需求認(rèn)識(shí)往往不夠清楚,因而使得開發(fā)項(xiàng)目難以做到一次開發(fā)成功,出現(xiàn)返工再開發(fā)在所難免。在獲得用戶基本需求說明的基礎(chǔ)上,投入少量人力和物力,快速建立一個(gè)原始模型,使用戶及時(shí)運(yùn)行和看到模型的概貌和使用效果,并對(duì)需求說明進(jìn)行補(bǔ)充和精化,提出改進(jìn)意見,開發(fā)人員進(jìn)一步修改完善,如此循環(huán)迭代,直到得到一個(gè)用戶滿意的模型為止。原型模型的內(nèi)容原型模型的特點(diǎn)優(yōu)點(diǎn):開發(fā)者與用戶充分交流,可以澄清模糊需求,需求定義比其他模型好得多為用戶需求的改變提供
6、了充分的余地缺點(diǎn):開發(fā)者為了使一個(gè)原型快速運(yùn)行起來,往往在實(shí)現(xiàn)過程中采用折衷的手段。軟件系統(tǒng)的組成部分可能會(huì)打折扣;資源規(guī)劃和管理較為困難,隨時(shí)更新文檔也帶來麻煩。一般使用場合:開發(fā)者在不了解的應(yīng)用領(lǐng)域開發(fā)客戶不清楚其所開發(fā)軟件項(xiàng)目的最終目標(biāo)軟件演化模型-增量模型系統(tǒng)設(shè)計(jì)時(shí)分片交付,可使用戶在使用某些基本功能的同時(shí),開發(fā)剩余的功能。這樣通常會(huì)并行地存在兩個(gè)系統(tǒng):生產(chǎn)系統(tǒng)和開發(fā)系統(tǒng)。運(yùn)行或生產(chǎn)系統(tǒng)是當(dāng)前被客戶或用戶所使用的系統(tǒng)。而開發(fā)系統(tǒng)是準(zhǔn)備用于替代當(dāng)前生產(chǎn)系統(tǒng)的下一個(gè)版本。增量模型是一種非整體開發(fā)的模型。是瀑布模型的順序特征和快速原型模型的迭代特征相結(jié)合的產(chǎn)物。該模
7、型具有較大的靈活性,適合于軟件需求不明確、設(shè)計(jì)方案有一定風(fēng)險(xiǎn)的軟件項(xiàng)目。軟件演化模型-螺旋模型軟件開發(fā)幾乎總要冒一定的風(fēng)險(xiǎn),例如,產(chǎn)品交付給用戶之后用戶可能對(duì)產(chǎn)品不滿意,到了預(yù)定的交付日期軟件可能還未開發(fā)出來,實(shí)際的開發(fā)成本可能超過了預(yù)算,產(chǎn)品完成之前一些關(guān)鍵的開發(fā)人員可能“跳槽”了,產(chǎn)品投入市場之前競爭對(duì)手發(fā)布了一個(gè)功能相近、價(jià)格更低的軟件等等。軟件風(fēng)險(xiǎn)是任何軟件開發(fā)項(xiàng)目中都普遍存在的實(shí)際問題,項(xiàng)目越大,軟件產(chǎn)品越復(fù)雜,承擔(dān)該項(xiàng)目所冒的風(fēng)險(xiǎn)也越大。軟件風(fēng)險(xiǎn)可能在不同程度上損害軟件開發(fā)過程和軟件產(chǎn)品質(zhì)量。因此,在軟件開發(fā)過程中必須及時(shí)識(shí)別和分析風(fēng)險(xiǎn),