版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程與測(cè)試基礎(chǔ)
——軟件過(guò)程與方法
林大經(jīng)管學(xué)院瞿華軟件工程與測(cè)試基礎(chǔ)
——軟件過(guò)程與方法
林大經(jīng)管學(xué)院瞿華引子:羅馬不是一天建成的2013年IT界最大的新聞是什么?引子:羅馬不是一天建成的2013年IT界最大的新聞是什么?22010年9月,面對(duì)蘋果iphone的威脅,Nokia董事會(huì)任命埃洛普為新的CEO。此前,埃洛普任微軟的BusinessDivision部門的總管,負(fù)責(zé)Office2010的開(kāi)發(fā)。2010年9月,面對(duì)蘋果iphone的威脅,Nokia董事會(huì)3第一步:自廢武功?埃洛普上任后就做出了很多備受爭(zhēng)議的決策:宣布徹底放棄經(jīng)典的Symbian系統(tǒng)中止了前任諾基亞CEO規(guī)劃的諾基亞Android手機(jī)計(jì)劃放棄了與intel合作開(kāi)發(fā)的MeeGo系統(tǒng)(搭載此系統(tǒng)的N9手機(jī)已經(jīng)研發(fā)成功并上市)第一步:自廢武功?埃洛普上任后就做出了很多備受爭(zhēng)議的決策:4第二步:執(zhí)子之手2011年,宣布諾基亞與微軟公司達(dá)成戰(zhàn)略合作伙伴,將在所有智能手機(jī)上都采用WindowsPhone7操作系統(tǒng)。第二步:執(zhí)子之手2011年,宣布諾基亞與微軟公司達(dá)成戰(zhàn)略合作5微軟坑我千百遍但由于:微軟在WP7的研發(fā)和發(fā)布等發(fā)面,并未給予Nokia特別的優(yōu)待;微軟的WindowsPhone系統(tǒng)與原有的Symbian系統(tǒng)并不兼容(連導(dǎo)入/導(dǎo)出通訊錄都很麻煩);微軟在2011年推出WindowsPhone7后不久,就正式宣布運(yùn)行WP7的手機(jī)無(wú)法升級(jí)到即將發(fā)行的WP8系統(tǒng)。到2013年1季度,WP手機(jī)的市場(chǎng)占有率只有2.9%(Anroid74%,iOS14%)微軟坑我千百遍但由于:6據(jù)說(shuō)是微軟的WP8發(fā)布會(huì)邀請(qǐng)函。為什么主角不是Nokia?據(jù)說(shuō)是微軟的WP8發(fā)布會(huì)邀請(qǐng)函。7我待微軟如初戀一直到收購(gòu)前,Nokia一直堅(jiān)持WP獨(dú)占的戰(zhàn)略(WP全部銷量中Nokia占70%以上)。相比之下,其他主要的競(jìng)爭(zhēng)對(duì)手三星、HTC及Sony等都采取了多頭下注(同時(shí)開(kāi)發(fā)Android和WP手機(jī))的策略。我待微軟如初戀一直到收購(gòu)前,Nokia一直堅(jiān)持WP獨(dú)占的戰(zhàn)略8結(jié)局:如愿以償?從2010年埃洛普擔(dān)任CEO以來(lái),Nokia的手機(jī)市場(chǎng)占有率從30%以上一路下跌到不到2%,股價(jià)從10.1美元一路下跌到3.9美元。9月3日,微軟正式宣布將收購(gòu)Nokia手機(jī)部門。在此之前(8月底),微軟CEO鮑爾默正式宣布將于一年內(nèi)退休。埃洛普隨著Nokia的收購(gòu)回到了微軟,并成為了下一任CEO的有力競(jìng)爭(zhēng)者……結(jié)局:如愿以償?從2010年埃洛普擔(dān)任CEO以來(lái),Nokia9軟件過(guò)程與方法一、軟件過(guò)程二、軟件過(guò)程模型三、敏捷開(kāi)發(fā)與統(tǒng)一過(guò)程四、軟件工程方法五、小結(jié)軟件過(guò)程與方法一、軟件過(guò)程10一、軟件過(guò)程過(guò)程與過(guò)程管理軟件過(guò)程定義軟件過(guò)程要素核心軟件活動(dòng)普適性軟件活動(dòng)一、軟件過(guò)程過(guò)程與過(guò)程管理11還記得嗎?軟件工程的構(gòu)成?以質(zhì)量為中心過(guò)程方法工具質(zhì)量和過(guò)程是“道”,方法和工具是“術(shù)”!還記得嗎?軟件工程的構(gòu)成?以質(zhì)量為中心過(guò)程方法工具質(zhì)量和過(guò)程121.1過(guò)程與過(guò)程管理過(guò)程:也稱業(yè)務(wù)過(guò)程,指為客戶創(chuàng)造價(jià)值的一系列相互關(guān)聯(lián)、有組織的活動(dòng)或任務(wù)的集合。管理學(xué)意義上的過(guò)程是有明確目的性的:為客戶(或企業(yè))創(chuàng)造價(jià)值過(guò)程的特點(diǎn):可確定性:有明確的輸入、輸出和邊界;順序:構(gòu)成過(guò)程的活動(dòng),必須在時(shí)間和空間里具有確定的順序;客戶:過(guò)程的結(jié)果必須有接收者——客戶。增值:在過(guò)程中發(fā)生的轉(zhuǎn)換必須為接收者增加價(jià)值,無(wú)論接收者是在過(guò)程的上游還是下游。1.1過(guò)程與過(guò)程管理過(guò)程:也稱業(yè)務(wù)過(guò)程,指為客戶創(chuàng)造價(jià)值的131.1過(guò)程與過(guò)程管理過(guò)程管理:辨識(shí)出一連串的商業(yè)活動(dòng),并針對(duì)這些活動(dòng)的作業(yè)流程進(jìn)行管理。過(guò)程管理的目標(biāo):確保企業(yè)中各種商業(yè)活動(dòng)的執(zhí)行成果能具有一定的水平和精確度,確保能持續(xù)改善活動(dòng)的進(jìn)行方式,串連活動(dòng)的作業(yè)流程讓企業(yè)能保持市場(chǎng)上的競(jìng)爭(zhēng)力。1.1過(guò)程與過(guò)程管理過(guò)程管理:辨識(shí)出一連串的商業(yè)活動(dòng),并針141.1過(guò)程與過(guò)程管理過(guò)程管理的任務(wù):發(fā)現(xiàn)、去除非增值活動(dòng),簡(jiǎn)化過(guò)程通過(guò)合理安排活動(dòng)順序提高過(guò)程效率適當(dāng)改變過(guò)程以適應(yīng)環(huán)境變化對(duì)過(guò)程執(zhí)行情況加以監(jiān)控,尋找過(guò)程中的錯(cuò)誤、薄弱、低效環(huán)節(jié)并加予以糾正1.1過(guò)程與過(guò)程管理過(guò)程管理的任務(wù):151.2軟件過(guò)程定義軟件過(guò)程:構(gòu)建、維護(hù)軟件產(chǎn)品時(shí)所執(zhí)行的一系列活動(dòng)、動(dòng)作和任務(wù)的集合?;顒?dòng)動(dòng)作任務(wù)過(guò)程1.2軟件過(guò)程定義軟件過(guò)程:構(gòu)建、維護(hù)軟件產(chǎn)品時(shí)所執(zhí)行的一161.3軟件過(guò)程要素活動(dòng):組成軟件過(guò)程的最主要的宏觀步驟。例如:需求分析、設(shè)計(jì)、編碼、發(fā)布等。動(dòng)作:對(duì)活動(dòng)進(jìn)一步細(xì)分的得到的步驟。例如設(shè)計(jì)活動(dòng),可以細(xì)分分為總體設(shè)計(jì)、模塊設(shè)計(jì)等多個(gè)動(dòng)作。任務(wù):具體的工作步驟。例如:編寫一個(gè)具體的軟件模塊等。1.3軟件過(guò)程要素活動(dòng):組成軟件過(guò)程的最主要的宏觀步驟。171.4核心軟件活動(dòng)所有合理的軟件過(guò)程都包含一些共同的必要的活動(dòng)(步驟),這些活動(dòng)我們稱為核心軟件活動(dòng)。應(yīng)該有哪些核心軟件活動(dòng)呢?如果讓我們來(lái)幫某個(gè)人A蓋一棟房子,會(huì)怎么做呢?:決定要不要蓋?能不能蓋?了解A想要什么樣的房子?制定計(jì)劃(什么時(shí)候開(kāi)始設(shè)計(jì),什么時(shí)候開(kāi)始施工,什么等等設(shè)計(jì)房屋(外觀、結(jié)構(gòu)等等)施工與監(jiān)理(有沒(méi)有偷工減料?是否按照設(shè)計(jì)施工?)交付1.4核心軟件活動(dòng)所有合理的軟件過(guò)程都包含一些共同的必要的181.4核心軟件活動(dòng)軟件過(guò)程通常包括下列六個(gè)核心軟件活動(dòng):溝通需求:通過(guò)與客戶的溝通協(xié)作,了解客戶的真實(shí)需要,決定軟件特性和功能,制定項(xiàng)目目標(biāo)。策劃:創(chuàng)建軟件項(xiàng)目的“地圖”,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程。通常包括:需要執(zhí)行的具體任務(wù)、每個(gè)任務(wù)需要的資源分配,每個(gè)任務(wù)的具體產(chǎn)品,以及工作計(jì)劃等建模(設(shè)計(jì)):通過(guò)構(gòu)造軟件模型(通常是圖形形式的模型)的方法來(lái)研究、理解具體問(wèn)題,(向客戶和其他開(kāi)發(fā)人員)展現(xiàn)具體解決方案。1.4核心軟件活動(dòng)軟件過(guò)程通常包括下列六個(gè)核心軟件活動(dòng):191.4核心軟件活動(dòng)核心軟件活動(dòng)(續(xù)):編碼與測(cè)試:實(shí)際編寫代碼、驗(yàn)證代碼的正確性運(yùn)行與部署:將軟件交付用戶使用。通常用戶會(huì)對(duì)軟件進(jìn)行一段時(shí)間的試用,并給出反饋意見(jiàn)維護(hù):修復(fù)用戶使用過(guò)程中發(fā)現(xiàn)的軟件缺陷,或者根據(jù)用戶使用意見(jiàn)對(duì)軟件進(jìn)行改進(jìn)上述活動(dòng)之間并不一定是簡(jiǎn)單的線性關(guān)系,而是可能存在反復(fù)的迭代。1.4核心軟件活動(dòng)核心軟件活動(dòng)(續(xù)):201.5普適性軟件活動(dòng)除了上述活動(dòng)外,在實(shí)際軟件過(guò)程中往往還存在一些貫穿整個(gè)過(guò)程的普適性活動(dòng),以幫助軟件團(tuán)隊(duì)管理和控制項(xiàng)目進(jìn)度、質(zhì)量、變化和風(fēng)險(xiǎn)。常見(jiàn)的普適性軟件活動(dòng)包括:項(xiàng)目跟蹤和控制:定期評(píng)估項(xiàng)目進(jìn)度情況,采取必要措施確保項(xiàng)目按期完成風(fēng)險(xiǎn)管理:對(duì)可能影響項(xiàng)目進(jìn)度和產(chǎn)品質(zhì)量的風(fēng)險(xiǎn)進(jìn)行評(píng)估,并采取必要措施來(lái)降低風(fēng)險(xiǎn)1.5普適性軟件活動(dòng)除了上述活動(dòng)外,在實(shí)際軟件過(guò)程中往往還211.5普適性軟件活動(dòng)普適性軟件活動(dòng)(續(xù)):測(cè)量:定義和采集關(guān)于過(guò)程、項(xiàng)目和產(chǎn)品的度量數(shù)據(jù),以幫助管理和改進(jìn)其他活動(dòng)。例如:開(kāi)發(fā)人員的生產(chǎn)率等軟件質(zhì)量保證:確保軟件質(zhì)量的措施和活動(dòng)軟件配置管理:管理軟件(代碼、配置信息及其文檔)的版本變化歷史可復(fù)用管理:建立產(chǎn)品(代碼等)復(fù)用的機(jī)制和標(biāo)準(zhǔn)(如公用函數(shù)庫(kù)等)人員培訓(xùn):對(duì)相關(guān)人員進(jìn)行必要的培訓(xùn),使其具備必要的知識(shí)和技能,掌握相關(guān)工具的使用方法1.5普適性軟件活動(dòng)普適性軟件活動(dòng)(續(xù)):22二、軟件過(guò)程模型軟件過(guò)程模型與過(guò)程流瀑布模型原型開(kāi)發(fā)模型螺旋模型增量過(guò)程模型二、軟件過(guò)程模型軟件過(guò)程模型與過(guò)程流232.1軟件過(guò)程模型與過(guò)程流
軟件過(guò)程模型是從一特定角度提出的軟件過(guò)程的簡(jiǎn)化描述。“模型的本質(zhì)在于簡(jiǎn)化”軟件過(guò)程模型就是對(duì)描述的實(shí)際過(guò)程的抽象,它包括構(gòu)成軟件過(guò)程的各種活動(dòng)、軟件產(chǎn)品及軟件工程人員參與的不同角色。2.1軟件過(guò)程模型與過(guò)程流
軟件過(guò)程模型是從一特定角度提出242.1軟件過(guò)程模型與過(guò)程流過(guò)程流(模型)是最主要的一類軟件過(guò)程模型。過(guò)程流描述了如何在執(zhí)行順序和執(zhí)行時(shí)間這一層面上,組織軟件過(guò)程中(除維護(hù)之外的)的活動(dòng)。幾種主要的過(guò)程流及典型過(guò)程模型:線性過(guò)程流:瀑布模型迭代過(guò)程流:原型開(kāi)發(fā)模型演化過(guò)程流:螺旋模型并行過(guò)程流:混合過(guò)程流:增量模型2.1軟件過(guò)程模型與過(guò)程流過(guò)程流(模型)是最主要的一類軟件252.1軟件過(guò)程模型與過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行線性過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行迭代過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行演化過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行并行過(guò)程流2.1軟件過(guò)程模型與過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行262.2瀑布模型瀑布模型(waterfallmodel)是由W.Royce于1970年提出來(lái)的。又稱為軟件生存周期模型。瀑布模型嚴(yán)格按照軟件生存周期各個(gè)階段來(lái)進(jìn)行開(kāi)發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔)進(jìn)行評(píng)審,通過(guò)后才能開(kāi)始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。2.2瀑布模型瀑布模型(waterfallmodel)是272.2瀑布模型軟件生存周期:軟件從定義開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最終退役的全過(guò)程稱為軟件生存周期。瀑布模型將軟件生命周期分成軟件定義、軟件開(kāi)發(fā)、運(yùn)行、維護(hù)及退役五個(gè)時(shí)期組成。而每個(gè)時(shí)期又可以進(jìn)一步劃分成若干階段。2.2瀑布模型軟件生存周期:軟件從定義開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用282.2瀑布模型的結(jié)構(gòu)可行性研究特點(diǎn):階段間具有順序性和依賴性推遲實(shí)現(xiàn)質(zhì)量保證需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)組裝測(cè)試驗(yàn)收測(cè)試使用與維護(hù)退役2.2瀑布模型的結(jié)構(gòu)可行性研究特點(diǎn):需求分析概要設(shè)計(jì)詳細(xì)設(shè)292.2瀑布模型的變形-V模型可行性研究需求分析(驗(yàn)收測(cè)試計(jì)劃)概要設(shè)計(jì)(組裝測(cè)試計(jì)劃)詳細(xì)設(shè)計(jì)(單元測(cè)試計(jì)劃)編碼與調(diào)試單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試運(yùn)行與維護(hù)V模型強(qiáng)調(diào)了質(zhì)量保證活動(dòng),特別是測(cè)試與其它動(dòng)作之間的關(guān)系2.2瀑布模型的變形-V模型可行性研究需求分析概要設(shè)計(jì)詳細(xì)302.2瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開(kāi)發(fā)人員采用的規(guī)范方法;嚴(yán)格規(guī)定了每一階段必須提交的文檔;要求每一階段交付之產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)審查;清晰區(qū)分了邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)?!耙环N文檔驅(qū)動(dòng)的模型”提供了軟件開(kāi)發(fā)的基本框架,有利于大型軟件開(kāi)發(fā)過(guò)程中人員的組織、管理,有利于軟件開(kāi)發(fā)方法和工具的研究與使用,因此,在軟件工程中占有重要的地位。2.2瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開(kāi)發(fā)人員采用的規(guī)范方法;312.2瀑布模型的不足
瀑布模型要求在項(xiàng)目開(kāi)始的需求分析階段就能夠完整的得到客戶的所有需求。但在實(shí)際中客戶通常難以清楚地描述出所有的需求;同時(shí),客戶自身的需求也可能會(huì)隨著時(shí)間的變化而發(fā)生變化。1988年的發(fā)表的一份關(guān)于軟件項(xiàng)目的研究報(bào)告指出,平均每個(gè)項(xiàng)目有25%左右的需求功能點(diǎn)變化;1997年的另一份研究報(bào)告中,需求功能點(diǎn)的變化率則達(dá)到了35%-50%??蛻粢巾?xiàng)目接近尾聲的驗(yàn)收階段才能夠看到實(shí)際的程序執(zhí)行效果。如果這時(shí)才發(fā)現(xiàn)程序和客戶實(shí)際要求有重大偏差,就可能會(huì)造成重大的損失。這兩個(gè)問(wèn)題構(gòu)成了瀑布模型的致命弱點(diǎn)。2.2瀑布模型的不足
瀑布模型要求在項(xiàng)目開(kāi)始的需求分析階段322.2瀑布模型的不足2001年發(fā)表的一份論文,對(duì)1027個(gè)失敗軟件項(xiàng)目的失敗原因作了研究。其中82%的項(xiàng)目認(rèn)為采用瀑布模型是導(dǎo)致失敗的罪魁禍?zhǔn)祝『芏嗖捎闷俨寄P偷捻?xiàng)目在開(kāi)發(fā)時(shí)為了應(yīng)對(duì)可能的變化,采取了在軟件產(chǎn)品中盡可能包含更多功能的方法,這構(gòu)成了極大的浪費(fèi)。在一份研究發(fā)現(xiàn),在采用瀑布模型的開(kāi)發(fā)項(xiàng)目中,有45%以上的功能最終根本就沒(méi)有被使用,有19%以上的功能幾乎沒(méi)有被使用。也就是說(shuō),為了開(kāi)發(fā)這將近65%的功能而所作的工作完全是浪費(fèi)!不過(guò),當(dāng)需求非常明確時(shí)(比如,山寨某個(gè)已知的軟件),瀑布模型還是個(gè)很有用的模型。2.2瀑布模型的不足2001年發(fā)表的一份論文,對(duì)1027個(gè)332.3原型開(kāi)發(fā)模型針對(duì)瀑布模型的下列缺陷,提出了原型開(kāi)發(fā)模型:在瀑布模型中,項(xiàng)目開(kāi)發(fā)者在需求分析階段只能通過(guò)文字和圖形來(lái)向用戶展示軟件功能,不夠直觀,很容易造成誤解用戶直到最后階段才能看到軟件操作界面和實(shí)際功能。所謂原型,就是軟件的一個(gè)模擬的可執(zhí)行界面。用戶可在原型上進(jìn)行操作,直觀的感受軟件的執(zhí)行效果。原型開(kāi)發(fā)就是軟件開(kāi)發(fā)人員根據(jù)用戶提出的軟件基本需求快速開(kāi)發(fā)一個(gè)原型,向用戶展示軟件界面和功能。在征求用戶對(duì)原型的評(píng)價(jià)意見(jiàn)后,進(jìn)一步改進(jìn)、完善原型,如此迭代,直到軟件開(kāi)發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測(cè)試等以后的各個(gè)開(kāi)發(fā)步驟。2.3原型開(kāi)發(fā)模型針對(duì)瀑布模型的下列缺陷,提出了原型開(kāi)發(fā)模342.3原型開(kāi)發(fā)模型的優(yōu)點(diǎn)原型的開(kāi)發(fā)和評(píng)審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過(guò)程,這種迭代過(guò)程有利于雙方的充分理解和溝通。原型開(kāi)發(fā)模型比瀑布模型更符合人們認(rèn)識(shí)事物的過(guò)程和規(guī)律,項(xiàng)目成員能夠更清晰的理解用戶實(shí)際需求。如果原型的開(kāi)發(fā)語(yǔ)言和實(shí)際軟件相同,那么它的若干高質(zhì)量的程序片段和開(kāi)發(fā)工具也可被用于工作程序的開(kāi)發(fā)。2.3原型開(kāi)發(fā)模型的優(yōu)點(diǎn)原型的開(kāi)發(fā)和評(píng)審是系統(tǒng)分析員和用戶352.3原型開(kāi)發(fā)建造/修改原型用戶測(cè)試運(yùn)行原型聽(tīng)取用戶意見(jiàn)2.3原型開(kāi)發(fā)建造/修改原型用戶測(cè)試聽(tīng)取用戶意見(jiàn)362.3原型開(kāi)發(fā)初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工開(kāi)發(fā)產(chǎn)品開(kāi)始結(jié)束用戶/客戶給出軟件產(chǎn)品的一般需求開(kāi)發(fā)小組和用戶共同定義軟件總體目標(biāo),標(biāo)識(shí)已知需求對(duì)界面、功能、人機(jī)交互方式等,進(jìn)行設(shè)計(jì)并建造原型強(qiáng)調(diào)“快速”,釆用基于構(gòu)件的軟件開(kāi)發(fā)方法,盡量縮短軟件開(kāi)發(fā)周期,不宜釆用過(guò)多的新技術(shù)用戶/客戶對(duì)原型進(jìn)行評(píng)估修改需求、更新設(shè)計(jì)、完善原型直至確定需求。2.3原型開(kāi)發(fā)初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新372.3快速原型的開(kāi)發(fā)途徑原型僅僅是需求分析的一部分,因此必須盡可能快速的開(kāi)發(fā)原型:僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。開(kāi)發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。利用一個(gè)或幾個(gè)類似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。建造原型應(yīng)盡量采用相應(yīng)的軟件工具和環(huán)境,并盡量采用軟件重用技術(shù),在運(yùn)行效率方面可做出讓步,以便盡快提供。同時(shí),原型應(yīng)充分展示軟件系統(tǒng)的可見(jiàn)部分,如人機(jī)界面、數(shù)據(jù)的輸入方式和輸出格式等。2.3快速原型的開(kāi)發(fā)途徑原型僅僅是需求分析的一部分,因此必382.3采用原型模型的軟件生命周期生成原型測(cè)試分析定義系統(tǒng)需求系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)含原型化的軟件生存期原型化運(yùn)行和維護(hù)編碼2.3采用原型模型的軟件生命周期生成測(cè)試分析定義系統(tǒng)程序含392.3原型開(kāi)發(fā)模型的缺點(diǎn)
原型開(kāi)發(fā)模型要求開(kāi)發(fā)者和用戶在一段時(shí)間內(nèi)緊密配合、共同參與完成原型系統(tǒng)的開(kāi)發(fā),特別是需要用戶的及時(shí)反饋。如果用戶對(duì)此不夠重視,那么原型開(kāi)發(fā)的意義也就大打折扣了。原型的快速構(gòu)造容易讓用戶誤以為實(shí)際軟件的開(kāi)發(fā)也是可以很容易、很快就完成的,或者要求開(kāi)發(fā)者直接將原型稍加修改使之成為實(shí)際運(yùn)行的產(chǎn)品。而實(shí)際上,為了快速開(kāi)發(fā)原型,開(kāi)發(fā)者往往會(huì)犧牲軟件質(zhì)量和可維護(hù)性而采取了最快速的開(kāi)發(fā)手段,因此實(shí)際的高質(zhì)量軟件產(chǎn)品需要拋棄原型從頭開(kāi)發(fā)。如果不能夠充分的向客戶解釋這一點(diǎn)的話,就容易導(dǎo)致軟件開(kāi)發(fā)人員和用戶之間產(chǎn)生矛盾。原型開(kāi)發(fā)模型最大的缺點(diǎn)在于,它仍然沒(méi)有解決需求變化的問(wèn)題。2.3原型開(kāi)發(fā)模型的缺點(diǎn)
原型開(kāi)發(fā)模型要求開(kāi)發(fā)者和用戶在一402.3原型開(kāi)發(fā)的意義原型開(kāi)發(fā)模型雖然存在無(wú)法適應(yīng)需求變化的缺陷,但原型開(kāi)發(fā)作為一種需求分析的方法,還是非常有價(jià)值的。要充分發(fā)揮原型開(kāi)發(fā)的價(jià)值,避免用戶的誤解,需要在項(xiàng)目開(kāi)始時(shí)就和用戶進(jìn)行充分的溝通和解釋,讓他們明白(或者說(shuō)承認(rèn))原型只是為了明確需求而服務(wù)的,用完后是要丟棄的,實(shí)際軟件系統(tǒng)則是要以質(zhì)量為第一目標(biāo)來(lái)進(jìn)行開(kāi)發(fā)。2.3原型開(kāi)發(fā)的意義原型開(kāi)發(fā)模型雖然存在無(wú)法適應(yīng)需求變化的412.4螺旋模型螺旋模型是一種演化式的軟件過(guò)程模型。它結(jié)合了原型開(kāi)發(fā)模型的迭代性和瀑布模型的系統(tǒng)性和可控性特點(diǎn)。它把軟件開(kāi)發(fā)過(guò)程轉(zhuǎn)化成了了軟件的版本演進(jìn)過(guò)程。通過(guò)多次的反復(fù)迭代演化,一個(gè)版本一個(gè)版本的逐步完善軟件,提高了軟件開(kāi)發(fā)對(duì)需求變化的適應(yīng)能力它在模型中明確加入了風(fēng)險(xiǎn)控制活動(dòng),每次迭代時(shí)都要考慮可能的風(fēng)險(xiǎn),并采取措施來(lái)降低風(fēng)險(xiǎn)。交付并不意味著軟件過(guò)程的結(jié)束,它只是上一次迭代的結(jié)束和下一次迭代的開(kāi)始。整個(gè)軟件過(guò)程貫穿軟件產(chǎn)品的整個(gè)生命周期。2.4螺旋模型螺旋模型是一種演化式的軟件過(guò)程模型。422.4螺旋模型評(píng)審提交線對(duì)目標(biāo)、可選方案和約束的確定制定計(jì)劃預(yù)估可選方案,明確并解決風(fēng)險(xiǎn)風(fēng)險(xiǎn)分析開(kāi)發(fā)驗(yàn)證下一級(jí)產(chǎn)品實(shí)施工程規(guī)劃下階段工作客戶評(píng)估第一圈產(chǎn)生產(chǎn)品規(guī)格說(shuō)明原型1風(fēng)險(xiǎn)分析需求計(jì)劃和生存周期計(jì)劃操作的概念需求評(píng)價(jià)第二圈產(chǎn)生一個(gè)用于開(kāi)發(fā)的原型原型2風(fēng)險(xiǎn)分析軟件需求需求有效性驗(yàn)證驗(yàn)收測(cè)試計(jì)劃建模需求精化計(jì)劃第三圈產(chǎn)生軟件產(chǎn)品的初始版本原型3風(fēng)險(xiǎn)分析組裝測(cè)試計(jì)劃設(shè)計(jì)驗(yàn)證與確認(rèn)產(chǎn)品設(shè)計(jì)模擬開(kāi)發(fā)計(jì)劃第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本風(fēng)險(xiǎn)分析操作原型詳細(xì)設(shè)計(jì)編碼單元測(cè)試組裝測(cè)試驗(yàn)收測(cè)試運(yùn)行維護(hù)評(píng)價(jià)實(shí)現(xiàn)計(jì)劃順時(shí)針為進(jìn)展方向2.4螺旋模型評(píng)審提交線對(duì)目標(biāo)、可選方案和約束的確定制定計(jì)432.4螺旋模型螺旋模型的每一個(gè)迭代周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段。計(jì)劃(需求定義)在第一輪迭代周期中,利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步用戶需求,制定項(xiàng)目開(kāi)發(fā)計(jì)劃(即整個(gè)軟件生命周期計(jì)劃)和需求分析計(jì)劃。在以后的每個(gè)迭代周期中,根據(jù)用戶和開(kāi)發(fā)人員對(duì)上一周期工作成果評(píng)價(jià)和評(píng)審,修改、完善需求,明確下一周期軟件開(kāi)發(fā)的目標(biāo)、約束條件,并據(jù)此制定新一輪的軟件開(kāi)發(fā)計(jì)劃。2.4螺旋模型螺旋模型的每一個(gè)迭代周期都包括計(jì)劃(需求定義442.4螺旋模型風(fēng)險(xiǎn)分析根據(jù)本輪制定的開(kāi)發(fā)計(jì)劃,進(jìn)行風(fēng)險(xiǎn)分析,評(píng)估可選方案,并構(gòu)造原型進(jìn)一步分析風(fēng)險(xiǎn),給出消除或減少風(fēng)險(xiǎn)的途徑。此時(shí)根據(jù)風(fēng)險(xiǎn)分析的結(jié)果決策項(xiàng)目是否繼續(xù)。所以,螺旋模型是一個(gè)風(fēng)險(xiǎn)驅(qū)動(dòng)的模型。工程實(shí)現(xiàn)在前幾輪迭代周期中,構(gòu)造的原型進(jìn)行需求建模或進(jìn)行系統(tǒng)模擬在后面的迭代周期中,逐步構(gòu)造、完善實(shí)際的軟件系統(tǒng)。2.4螺旋模型風(fēng)險(xiǎn)分析452.4螺旋模型用戶評(píng)價(jià)與階段評(píng)審將原型或者軟件產(chǎn)品提交用戶使用并征求改進(jìn)意見(jiàn)。開(kāi)發(fā)人員應(yīng)在用戶的密切配合下進(jìn)一步完善用戶需求,直到用戶認(rèn)為原型可滿足需求,或?qū)浖a(chǎn)品設(shè)計(jì)進(jìn)行評(píng)價(jià)或確認(rèn)等。就這樣,螺旋模型從第一個(gè)周期的計(jì)劃開(kāi)始,一個(gè)周期、一個(gè)周期地不斷迭代,直到整個(gè)軟件生命周期結(jié)束。螺旋模型中的每個(gè)迭代周期都不應(yīng)該太長(zhǎng)(一般是2-8周左右)。太短了則每輪實(shí)際工作量太少,無(wú)法得到有意義的結(jié)果太長(zhǎng)了,無(wú)法及時(shí)得到用戶的反饋,也就失去了迭代演化的意義。2.4螺旋模型用戶評(píng)價(jià)與階段評(píng)審462.4螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的可維護(hù)性,每次維護(hù)過(guò)程只是沿螺旋模型繼續(xù)多走一兩個(gè)周期。這符合人們認(rèn)識(shí)現(xiàn)實(shí)世界和軟件開(kāi)發(fā)的客觀規(guī)律。原型可看作形式的可執(zhí)行的需求規(guī)格說(shuō)明,易于為用戶和開(kāi)發(fā)人員共同理解,還可作為繼續(xù)開(kāi)發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。開(kāi)發(fā)者和用戶共同參與軟件開(kāi)發(fā),可盡早發(fā)現(xiàn)軟件中的錯(cuò)誤。螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的使用貫穿整個(gè)軟件生存周期,這將有助于提高目標(biāo)軟件的適應(yīng)能力。既保持瀑布模型的系統(tǒng)性、階段性,又可利用原型評(píng)估降低開(kāi)發(fā)風(fēng)險(xiǎn)。螺旋模型為項(xiàng)目管理人員及時(shí)調(diào)整管理決策提供了方便,進(jìn)而可降低開(kāi)發(fā)風(fēng)險(xiǎn)。2.4螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的472.4螺旋模型的缺點(diǎn)及適用范圍螺旋模型的缺點(diǎn):如果每次迭代的效率不高,致使迭代次數(shù)過(guò)多,將會(huì)增加成本并推遲提交時(shí)間;使用該模型需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),要求開(kāi)發(fā)隊(duì)伍水平較高。螺旋模型適用場(chǎng)合:支持需求不明確、特別是大型軟件系統(tǒng)的開(kāi)發(fā),并支持面向規(guī)格說(shuō)明、面向過(guò)程、面向?qū)ο蟮榷喾N軟件開(kāi)發(fā)方法,是一種具有廣闊前景的模型。2.4螺旋模型的缺點(diǎn)及適用范圍螺旋模型的缺點(diǎn):482.4增量過(guò)程模型增量過(guò)程模型是螺旋模型基礎(chǔ)上的改進(jìn)。前面講的幾種模型,過(guò)程流本質(zhì)都是順序執(zhí)行。也就是說(shuō),上一個(gè)活動(dòng)執(zhí)行完才能執(zhí)行下一個(gè)活動(dòng)這種順序執(zhí)行往往會(huì)導(dǎo)致項(xiàng)目中產(chǎn)生“阻塞狀態(tài)”,即由于任務(wù)之間的依賴性,項(xiàng)目的部分成員要等待另一些成員的工作完成。94年的一項(xiàng)研究表明,在很多項(xiàng)目中,花在等待上的時(shí)間反而超過(guò)了花在實(shí)際工作上的時(shí)間!增量開(kāi)發(fā)模型采用并行的方式來(lái)解決這種阻塞帶來(lái)的浪費(fèi)問(wèn)題。2.4增量過(guò)程模型增量過(guò)程模型是螺旋模型基礎(chǔ)上的改進(jìn)。492.4增量過(guò)程模型軟件功能和特征項(xiàng)目時(shí)間第一個(gè)增量第二個(gè)增量第三個(gè)增量第n個(gè)增量溝通策劃建模(分析、設(shè)計(jì))構(gòu)建(編碼、測(cè)試)部署(交付、反饋)2.4增量過(guò)程模型軟件功能和特征項(xiàng)目時(shí)間第一個(gè)增量第二個(gè)增50三、敏捷開(kāi)發(fā)與統(tǒng)一過(guò)程敏捷開(kāi)發(fā)的背景敏捷開(kāi)發(fā)宣言什么是敏捷敏捷開(kāi)發(fā)模型極限編程統(tǒng)一過(guò)程三、敏捷開(kāi)發(fā)與統(tǒng)一過(guò)程敏捷開(kāi)發(fā)的背景513.1敏捷開(kāi)發(fā)的背景在現(xiàn)代市場(chǎng)經(jīng)濟(jì)條件下,計(jì)算機(jī)軟件系統(tǒng)總是面臨著不斷的變化:市場(chǎng)環(huán)境變化新競(jìng)爭(zhēng)對(duì)手出現(xiàn)新技術(shù)涌現(xiàn)這就導(dǎo)致軟件開(kāi)發(fā)和實(shí)施過(guò)程中,用戶需求會(huì)不斷變化1988年的發(fā)表的一份關(guān)于軟件項(xiàng)目的研究報(bào)告指出,平均每個(gè)項(xiàng)目有25%左右的需求功能點(diǎn)變化;1997年的另一份研究報(bào)告中,這需求功能點(diǎn)的變化率則達(dá)到了35%-50%。3.1敏捷開(kāi)發(fā)的背景在現(xiàn)代市場(chǎng)經(jīng)濟(jì)條件下,計(jì)算機(jī)軟件系統(tǒng)總523.1敏捷開(kāi)發(fā)提出的背景傳統(tǒng)的過(guò)程開(kāi)發(fā)模型都是從管理者的角度來(lái)看待軟件開(kāi)發(fā)。因此,存在著重大缺陷:忽視變化的存在。過(guò)程階段劃分過(guò)細(xì)、過(guò)于死板,難于適應(yīng)實(shí)際情況的變化。忽視了軟件開(kāi)發(fā)是一個(gè)智力密集型的工作,過(guò)分強(qiáng)調(diào)紀(jì)律和文檔,導(dǎo)致人的創(chuàng)造性降低。忽視了人與人之間的直接交流。過(guò)多的書面交流既增加整個(gè)項(xiàng)目的時(shí)間成本,又導(dǎo)致了誤解和溝通障礙的增加。過(guò)分注重過(guò)程。認(rèn)為符合過(guò)程就能導(dǎo)致正確的結(jié)果。3.1敏捷開(kāi)發(fā)提出的背景傳統(tǒng)的過(guò)程開(kāi)發(fā)模型都是從管理者的角533.2敏捷開(kāi)發(fā)宣言敏捷開(kāi)發(fā)可以認(rèn)為是一場(chǎng)“革命”,開(kāi)發(fā)者對(duì)管理者的革命。敏捷開(kāi)發(fā)試圖將開(kāi)發(fā)者的視角也加入到軟件過(guò)程管理中來(lái)。2001年KentBeck等16位知名專家共同發(fā)起了敏捷聯(lián)盟,并發(fā)表了“敏捷開(kāi)發(fā)宣言”:個(gè)人與交流勝于開(kāi)發(fā)過(guò)程和工具可運(yùn)行的軟件勝于面面俱到的文檔客戶協(xié)作勝于合同談判響應(yīng)變化勝于按部就班遵循計(jì)劃注意,宣言中右邊的各項(xiàng)并非沒(méi)有價(jià)值,只是左邊的各項(xiàng)價(jià)值更大3.2敏捷開(kāi)發(fā)宣言敏捷開(kāi)發(fā)可以認(rèn)為是一場(chǎng)“革命”,開(kāi)發(fā)者對(duì)543.3什么是敏捷敏捷的基本推動(dòng)力:普遍存在的變化敏捷鼓勵(lì):使溝通更便利的團(tuán)隊(duì)結(jié)構(gòu)和協(xié)作態(tài)度快速交付可運(yùn)行產(chǎn)品而非中間文檔客戶以開(kāi)發(fā)團(tuán)隊(duì)中的一員的身份參與項(xiàng)目根據(jù)實(shí)際情況靈活調(diào)整項(xiàng)目計(jì)劃3.3什么是敏捷敏捷的基本推動(dòng)力:普遍存在的變化553.3敏捷對(duì)軟件開(kāi)發(fā)成本的影響研究表明,敏捷能明顯降低:由于需求變化導(dǎo)致的那部分軟件開(kāi)發(fā)成本開(kāi)發(fā)進(jìn)度日程變更成本使用傳統(tǒng)軟件過(guò)程的變更成本使用敏捷過(guò)程的理想變更成本使用敏捷過(guò)程的實(shí)際變更成本3.3敏捷對(duì)軟件開(kāi)發(fā)成本的影響研究表明,敏捷能明顯降低:開(kāi)563.3敏捷原則敏捷聯(lián)盟提出了實(shí)現(xiàn)敏捷的12條原則:最優(yōu)先要做的是通過(guò)盡早、持續(xù)的交付有價(jià)值的軟件來(lái)使客戶滿意即使在開(kāi)發(fā)的后期,也歡迎需求變更。敏捷過(guò)程利用變更為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)經(jīng)常交付可運(yùn)行的軟件,交付時(shí)間間隔越短越好在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員應(yīng)天天在一起工作圍繞有積極性的個(gè)人構(gòu)建項(xiàng)目。團(tuán)隊(duì)內(nèi)部最有效率的溝通方式是面對(duì)面交談3.3敏捷原則敏捷聯(lián)盟提出了實(shí)現(xiàn)敏捷的12條原則:573.3敏捷原則(續(xù))實(shí)現(xiàn)敏捷的12條原則(續(xù)):可運(yùn)行軟件是進(jìn)度的首要度量指標(biāo)提倡可持續(xù)的開(kāi)發(fā)速度不斷的關(guān)注優(yōu)秀技能和好的設(shè)計(jì)簡(jiǎn)單(使不必做的工作盡可能多的藝術(shù))是必要的。最好的架構(gòu)、需求和設(shè)計(jì)出自于自我組織的團(tuán)隊(duì)每隔一定時(shí)間,團(tuán)隊(duì)?wèi)?yīng)反省如何才能更有效的工作,并相應(yīng)調(diào)整自己的行為3.3敏捷原則(續(xù))實(shí)現(xiàn)敏捷的12條原則(續(xù)):583.3敏捷開(kāi)發(fā)中人的因素敏捷開(kāi)發(fā)非常強(qiáng)調(diào)人的因素在軟件項(xiàng)目開(kāi)發(fā)中的重要性。特別的,敏捷開(kāi)發(fā)強(qiáng)調(diào)團(tuán)隊(duì)及其成員應(yīng)該具備下列要素:基本能力。包括軟件開(kāi)發(fā)和正確實(shí)施敏捷開(kāi)發(fā)的能力。共同目標(biāo)。團(tuán)隊(duì)成員必須瞄準(zhǔn)同一個(gè)目標(biāo),即在承諾的時(shí)間內(nèi)向客戶提交能夠可靠運(yùn)行的軟件或其增量。精誠(chéng)合作。團(tuán)隊(duì)成員之間,以及團(tuán)隊(duì)和項(xiàng)目其他利益相關(guān)者(如用戶、客戶)之間必須精誠(chéng)合作3.3敏捷開(kāi)發(fā)中人的因素敏捷開(kāi)發(fā)非常強(qiáng)調(diào)人的因素在軟件項(xiàng)目593.3敏捷開(kāi)發(fā)中人的因素敏捷開(kāi)發(fā)強(qiáng)調(diào)團(tuán)隊(duì)及其成員應(yīng)該具備下列要素(續(xù)):決策能力。項(xiàng)目團(tuán)隊(duì)在項(xiàng)目問(wèn)題上必須有自主決策權(quán)。相互尊重和信任。具體體現(xiàn)就是良好、高效的溝通。不斷學(xué)習(xí)。團(tuán)隊(duì)?wèi)?yīng)從多種來(lái)源(包括過(guò)去的失?。┲袑W(xué)習(xí)到經(jīng)驗(yàn)。自我組織。團(tuán)隊(duì)自己組織自身、安排進(jìn)度來(lái)完成項(xiàng)目,并對(duì)此負(fù)責(zé)。3.3敏捷開(kāi)發(fā)中人的因素敏捷開(kāi)發(fā)強(qiáng)調(diào)團(tuán)隊(duì)及其成員應(yīng)該具備下603.3敏捷過(guò)程模型在敏捷開(kāi)發(fā)思想的指導(dǎo)下,業(yè)界提出了很多敏捷過(guò)程模型,其中影響較大的有:極限編程(eXtremeProgramming,XP)Scrum特征驅(qū)動(dòng)開(kāi)發(fā)(FDD)精益軟件開(kāi)發(fā)(LSD)敏捷統(tǒng)一過(guò)程(AUP)等等這里簡(jiǎn)要介紹一下極限編程3.3敏捷過(guò)程模型在敏捷開(kāi)發(fā)思想的指導(dǎo)下,業(yè)界提出了很多敏613.4極限編程策劃設(shè)計(jì)編碼測(cè)試測(cè)試驅(qū)動(dòng)開(kāi)發(fā)發(fā)布極限編程過(guò)程模型重構(gòu)用例KISS原則單元測(cè)試持續(xù)集成面向?qū)ο箝_(kāi)發(fā)方法3.4極限編程策劃設(shè)計(jì)編碼測(cè)試測(cè)試驅(qū)動(dòng)開(kāi)發(fā)發(fā)布極限編程過(guò)程623.4極限編程極限編程(XP)是使用最廣泛的一種敏捷軟件過(guò)程。XP定義了五個(gè)有重要意義的要素:溝通:強(qiáng)調(diào)口頭的、面對(duì)面的交流簡(jiǎn)明:為了簡(jiǎn)化設(shè)計(jì),只對(duì)當(dāng)前的需要做設(shè)計(jì)。當(dāng)設(shè)計(jì)需要改進(jìn)時(shí),使用重構(gòu)來(lái)實(shí)現(xiàn)。反饋:通過(guò)測(cè)試、增量交付和持續(xù)集成等手段,快速獲得反饋鼓勵(lì):鼓勵(lì)符合極限精神的實(shí)踐。例如,盡可能減少過(guò)度設(shè)計(jì)。尊重:敏捷團(tuán)隊(duì)?wèi)?yīng)在內(nèi)部成員之間,以及內(nèi)部成員與其他利益相關(guān)者之間,灌輸相互尊重的思想。減少推諉和扯皮,增加協(xié)作。3.4極限編程極限編程(XP)是使用最廣泛的一種敏捷軟件過(guò)633.4極限編程XP使用面向?qū)ο蠓椒ㄗ鳛橥扑]的開(kāi)發(fā)范型XP包含了4個(gè)框架活動(dòng)的規(guī)則和方法:策劃:開(kāi)始于傾聽(tīng),其目的是使團(tuán)隊(duì)成員理解軟件的背景以及感受主要需求。傾聽(tīng)產(chǎn)生一系列“用戶故事”(用例)。每個(gè)用例由客戶標(biāo)明權(quán)值(即用例的優(yōu)先級(jí))XP團(tuán)隊(duì)評(píng)估每個(gè)用例并估算期開(kāi)發(fā)時(shí)間成本(以周為單位)。成本過(guò)高的用例會(huì)被進(jìn)一步分成若干個(gè)子用例并重新賦予權(quán)值和計(jì)算成本。3.4極限編程XP使用面向?qū)ο蠓椒ㄗ鳛橥扑]的開(kāi)發(fā)范型643.4極限編程策劃(續(xù)):客戶和XP團(tuán)隊(duì)共同決定下一個(gè)要發(fā)布的軟件增量中應(yīng)包含哪些用例。通常應(yīng)該選擇優(yōu)先實(shí)現(xiàn)那些具有最高權(quán)值或風(fēng)險(xiǎn)最大的用例。XP團(tuán)隊(duì)根據(jù)之前迭代輪次中軟件增量的開(kāi)發(fā)速度來(lái)估計(jì)后續(xù)版本的開(kāi)發(fā)速度,并相應(yīng)調(diào)整開(kāi)發(fā)計(jì)劃。在開(kāi)發(fā)過(guò)程中,客戶可以隨時(shí)增加、修改、分解、合并或者刪除用例。XP團(tuán)隊(duì)根據(jù)用例的變化情況相應(yīng)修改開(kāi)發(fā)計(jì)劃。3.4極限編程策劃(續(xù)):653.4極限編程設(shè)計(jì):XP的設(shè)計(jì)活動(dòng)嚴(yán)格遵循KISS原則(Keep
It
Simple、Stupid,保持簡(jiǎn)潔)。設(shè)計(jì)應(yīng)恰好實(shí)現(xiàn)用例中的要求,不多也不少。不鼓勵(lì)額外(因?yàn)殚_(kāi)發(fā)者認(rèn)為將來(lái)可能會(huì)用到)的設(shè)計(jì)如果在某個(gè)用例設(shè)計(jì)中碰到困難,XP推薦立即針對(duì)這部分設(shè)計(jì)編寫可執(zhí)行的原型,以便及時(shí)對(duì)設(shè)計(jì)進(jìn)行評(píng)估,降低風(fēng)險(xiǎn)。3.4極限編程設(shè)計(jì):663.4極限編程設(shè)計(jì)(續(xù)):XP認(rèn)為設(shè)計(jì)可以與編碼同時(shí)進(jìn)行(設(shè)計(jì)一部分,編碼一部分)。編碼活動(dòng)本身就會(huì)給XP團(tuán)隊(duì)提供關(guān)于如何改進(jìn)設(shè)計(jì)的反饋。設(shè)計(jì)可以并且應(yīng)當(dāng)是在構(gòu)建過(guò)程中連續(xù)修改的中間臨時(shí)產(chǎn)品。(可執(zhí)行程序才是最終產(chǎn)品)。修改的方法是重構(gòu)。重構(gòu):以不改變代碼外部行為(接口)而改進(jìn)其內(nèi)部結(jié)構(gòu)(實(shí)現(xiàn))的方式來(lái)改進(jìn)軟件系統(tǒng)的過(guò)程(方法)。3.4極限編程設(shè)計(jì)(續(xù)):673.4極限編程編碼:XP推薦使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)方法來(lái)進(jìn)行編碼。測(cè)試驅(qū)動(dòng)開(kāi)發(fā):在編寫實(shí)際的功能實(shí)現(xiàn)代碼之前,先編寫接口和用于檢測(cè)接口行為的一系列單元測(cè)試。這樣,實(shí)際代碼編寫完成后,就可以立即進(jìn)行單元側(cè),從而向開(kāi)發(fā)者提供即時(shí)的反饋。XP推薦使用結(jié)對(duì)編程的方式進(jìn)行編碼。即兩個(gè)人同時(shí)面對(duì)同一臺(tái)計(jì)算機(jī)共同為同一個(gè)用例進(jìn)行編碼。這種編碼方式是否適合我國(guó)的文化還存在很大疑問(wèn)。3.4極限編程編碼:683.4極限編程測(cè)試:TDD,即在編碼開(kāi)始之前就建立單元測(cè)試是XP方法的關(guān)鍵之一。單元測(cè)試的另一個(gè)好處是為重構(gòu)提供一個(gè)安全網(wǎng)。XP推薦使用持續(xù)集成,即每天都進(jìn)行系統(tǒng)的集成和確認(rèn)測(cè)試。這樣既可以為團(tuán)隊(duì)和客戶實(shí)時(shí)提供項(xiàng)目的進(jìn)展情況,也可以在問(wèn)題發(fā)生時(shí)盡早提出預(yù)警。3.4極限編程測(cè)試:693.4極限編程的缺點(diǎn)要求客戶全程參與整個(gè)項(xiàng)目,這一點(diǎn)在實(shí)際中不容易做到不是所有的編程語(yǔ)言和工具都能良好的支持重構(gòu)要求團(tuán)隊(duì)保持長(zhǎng)期相對(duì)穩(wěn)定對(duì)團(tuán)隊(duì)成員的能力、素質(zhì)和自覺(jué)性要求較高對(duì)團(tuán)隊(duì)管理者的領(lǐng)導(dǎo)能力提出了很高的要求口頭交流和自組織在大規(guī)模的團(tuán)隊(duì)和項(xiàng)目中往往難以實(shí)現(xiàn)3.4極限編程的缺點(diǎn)要求客戶全程參與整個(gè)項(xiàng)目,這一點(diǎn)在實(shí)際703.5統(tǒng)一過(guò)程統(tǒng)一過(guò)程(UnifiedProcess,簡(jiǎn)稱UP)是一種流行的、構(gòu)造面向?qū)ο笙到y(tǒng)的、迭代式軟件開(kāi)發(fā)過(guò)程特別的,Rational統(tǒng)一過(guò)程(簡(jiǎn)稱RUP)是對(duì)UP的詳細(xì)精化,并且已經(jīng)被廣泛采用。UP試圖從傳統(tǒng)軟件過(guò)程中挖掘出最好的特性,把普遍認(rèn)可的最佳實(shí)踐結(jié)合起來(lái),成為聯(lián)系緊密并且具有良好文檔描述的過(guò)程。UP將開(kāi)發(fā)分成起始、細(xì)化、構(gòu)造和交付4個(gè)階段,每個(gè)階段都提出了若干可選的最佳實(shí)踐(方法)和制品(執(zhí)行方法得到的輸出)。團(tuán)隊(duì)可以根據(jù)項(xiàng)目實(shí)際需要選擇合適的最佳實(shí)踐和制品,并適當(dāng)調(diào)整過(guò)程。將敏捷開(kāi)發(fā)的思想應(yīng)用于統(tǒng)一過(guò)程,就形成了敏捷統(tǒng)一過(guò)程(AUP)3.5統(tǒng)一過(guò)程統(tǒng)一過(guò)程(UnifiedProcess,簡(jiǎn)713.5統(tǒng)一過(guò)程3.5統(tǒng)一過(guò)程72四、軟件工程方法軟件工程方法簡(jiǎn)介面向數(shù)據(jù)和功能的方法面向?qū)ο蟮姆椒ńy(tǒng)一建模語(yǔ)言(UML)四、軟件工程方法軟件工程方法簡(jiǎn)介734.1軟件工程方法簡(jiǎn)介軟件工程方法:軟件開(kāi)發(fā)活動(dòng)中具體問(wèn)題的解決方法。軟件工程方法是完成軟件工程項(xiàng)目的技術(shù)手段。它支持軟件開(kāi)發(fā)與維護(hù)的全部過(guò)程。軟件工程過(guò)程由方法的使用活動(dòng)組成。軟件工程方法劃分為:面向數(shù)據(jù)和功能的方法結(jié)構(gòu)化分析方法Jackson方法Warnier方法面向?qū)ο蠓椒?.1軟件工程方法簡(jiǎn)介軟件工程方法:軟件開(kāi)發(fā)活動(dòng)中具體問(wèn)題744.2面向數(shù)據(jù)和功能的方法這類方法以軟件系統(tǒng)所處理的數(shù)據(jù)或其功能為核心分析對(duì)象。其對(duì)應(yīng)于傳統(tǒng)對(duì)軟件的理解:“軟件=數(shù)據(jù)結(jié)構(gòu)+算法”4.2面向數(shù)據(jù)和功能的方法這類方法以軟件系統(tǒng)所處理的數(shù)據(jù)或754.2.1Jackson方法Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法首先分析數(shù)據(jù)的層次結(jié)構(gòu),生成輸入、輸出數(shù)據(jù)結(jié)構(gòu)圖,然后將處理模塊化,并在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計(jì)和編程。Jackson方法有JSP(JacksonStructureProgramming)和改進(jìn)的JSD(JacksonSystemdevelopment)方法。4.2.1Jackson方法Jackson方法是最典型的面764.2.1Jackson方法的發(fā)展二十世紀(jì)七十年代Jackson提出了軟件工程領(lǐng)域中著名的Jackson方法,當(dāng)時(shí)它只用于軟件設(shè)計(jì)。二十世紀(jì)八十年代初,Jackson又對(duì)它進(jìn)行了多方面的擴(kuò)充和完善,最終發(fā)展成為一種需求分析方法。Jackson方法的核心思想是:根據(jù)作用于數(shù)據(jù)的行為序列的結(jié)構(gòu)(順序、選擇與重復(fù)),建立目標(biāo)軟件系統(tǒng)的模型然后在軟件設(shè)計(jì)階段將模型演化為相應(yīng)的程序結(jié)構(gòu)。4.2.1Jackson方法的發(fā)展二十世紀(jì)七十年代Jack774.2.1Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu)。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖。列出所有的操作和條件,并把他們分配到程序結(jié)構(gòu)圖中去。4.2.1Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸784.2.1Jackson方法基本元素*表示重復(fù)O表示選擇一個(gè)分支重復(fù)結(jié)構(gòu)AB*順序結(jié)構(gòu)ABCD選擇結(jié)構(gòu)ABCDOOO順序結(jié)構(gòu)偽碼:AseqBCDAend重復(fù)結(jié)構(gòu)偽碼:Aiter
until(或while)condBAend選擇結(jié)構(gòu)偽碼:Aselectcond1BAorcond2CAorcond3DAend4.2.1Jackson方法基本元素*表示重復(fù)O表示選擇一個(gè)794.2.1Jaskson方法示例例:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串,即:要求:統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。輸出數(shù)據(jù)格式:每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。4.2.1Jaskson方法示例例:一個(gè)正文文件由若干個(gè)記804.2.1Jaskson方法示例例,輸入:HelloworldIamastudentTodayisafineday!輸出:Helloworld1Iamastudent3Todayisafineday!484.2.1Jaskson方法示例例,輸入:輸出:814.2.1Jaskson方法示例步驟1:繪制輸入和輸出數(shù)據(jù)結(jié)構(gòu)正文文件字符串*I字符*空格o非空格oIS輸出表格表格體空格總數(shù)串信息*I字符串空格數(shù)輸入結(jié)構(gòu)輸出結(jié)構(gòu)4.2.1Jaskson方法示例步驟1:繪制輸入和輸出數(shù)據(jù)824.2.1Jaskson方法示例步驟2:找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,然后,用Jackson圖表示按映射規(guī)則導(dǎo)出相應(yīng)的程序結(jié)構(gòu)。統(tǒng)計(jì)空格程序體打印總數(shù)處理字符串*打印字符串分析字符串打印空格數(shù)分析字符*I處理空格°處理非空格°S正文文件字符串*I字符*空格o非空格oIS輸出表格表格體空格總數(shù)串信息*I字符串空格數(shù)I4.2.1Jaskson方法示例步驟2:找出輸入數(shù)據(jù)結(jié)構(gòu)和834.2.1Jaskson方法示例步驟3:列出所有的操作和條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(1)停止(2)打開(kāi)文件(3)關(guān)閉文件(4)印出字符串(5)印出空格數(shù)(6)印出空格總數(shù)(7)sum:=sum+1(8)totalsum:=totalsum+sum(9)讀入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件結(jié)束I(2)字符串結(jié)束S(3)字符是空格統(tǒng)計(jì)空格程序體印總數(shù)處理字符串*印字符串分析字符串印空格數(shù)分析字符*I(2)處理空格°處理非空格°29113161012489571313I(1)S(3)4.2.1Jaskson方法示例步驟3:列出所有的操作和條844.2.1Jaskson方法示例步驟4:用Jackson偽代碼寫出與程序結(jié)構(gòu)圖對(duì)應(yīng)的過(guò)程性表示。打開(kāi)文件讀入字符串totalsum:=0程序體iteruntil文件結(jié)束處理字符串seq
打印字符串seq
印出字符串
打印字符串endsum:=0pointer:=1
分析字符串iteruntil字符串結(jié)束
分析字符select字符是空格處理空格seqsum:=sum+1pointer:=pointer+1
處理空格end
分析字符or字符不是空格處理非空格seqpointer:=pointer+1
處理非空格end
分析字符end分析字符串end
打印空格數(shù)seq
打印出空格數(shù)目
打印空格數(shù)endtotalsum:=totalsum+sum
讀入字符串處理字符串end
程序體end
打印總數(shù)seq
打印出空格總數(shù)
打印總數(shù)end
關(guān)閉文件停止統(tǒng)計(jì)空格end4.2.1Jaskson方法示例步驟4:用Jackson偽854.2.2結(jié)構(gòu)化分析方法該方法是一種面向數(shù)據(jù)流的開(kāi)發(fā)方法。圖形表示方法為數(shù)據(jù)流圖(DFD)和模塊層次結(jié)構(gòu)圖(SC)。是現(xiàn)有的軟件開(kāi)發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精,分解成若干個(gè)具有合適大小和功能的模塊并對(duì)各個(gè)模塊進(jìn)行定義和描述,其實(shí)質(zhì)就是功能分解和抽象。4.2.2結(jié)構(gòu)化分析方法該方法是一種面向數(shù)據(jù)流的開(kāi)發(fā)方法。864.2.2結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法SP法(StructuredProgram)70年代中結(jié)構(gòu)化設(shè)計(jì)方法SD法(StructuredDesign)70年代末結(jié)構(gòu)化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互銜接,形成了一整套開(kāi)發(fā)方法。若將SA,SD法結(jié)合起來(lái),又稱為結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù),即SDAT技術(shù)。4.2.2結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法874.2.2結(jié)構(gòu)化分析方法示例例:學(xué)生選課系統(tǒng)學(xué)生使用自己的學(xué)號(hào)和密碼,可以登錄系統(tǒng),查詢可選課程,選課,以及打印課表。4.2.2結(jié)構(gòu)化分析方法示例例:學(xué)生選課系統(tǒng)884.2.2結(jié)構(gòu)化分析方法示例步驟1:在需求分析階段,可以繪制數(shù)據(jù)流圖(DFD)如下:注意DFD要素:參與者、數(shù)據(jù)、處理、存儲(chǔ)4.2.2結(jié)構(gòu)化分析方法示例步驟1:在需求分析階段,可以繪894.2.2結(jié)構(gòu)化分析方法示例步驟2:設(shè)計(jì)階段,根據(jù)DFD繪制模塊結(jié)構(gòu)圖步驟2.1:劃分信息輸入、加工、輸出環(huán)節(jié)信息輸入信息加工信息輸出4.2.2結(jié)構(gòu)化分析方法示例步驟2:設(shè)計(jì)階段,根據(jù)DFD繪904.2.2結(jié)構(gòu)化分析方法示例步驟2.2:構(gòu)造頂層模塊選課主模塊系統(tǒng)登錄模塊選課處理模塊課表打印模塊合法身份合法身份課表課表4.2.2結(jié)構(gòu)化分析方法示例步驟2.2:構(gòu)造頂層模塊選課主914.2.2結(jié)構(gòu)化分析方法示例步驟2.3:逐級(jí)構(gòu)造剩下的層次選課主模塊系統(tǒng)登錄模塊選課處理模塊課表打印模塊合法身份合法身份課表課表身份輸入身份驗(yàn)證密碼密碼合法身份課表顯示課表打印課表課表課程查詢課程登記課程選課信息課表4.2.2結(jié)構(gòu)化分析方法示例步驟2.3:逐級(jí)構(gòu)造剩下的層次924.3面向?qū)ο蠓椒嫦驅(qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來(lái)的軟件分析設(shè)計(jì)方法。該方法把客觀世界的事物或?qū)嶓w都看成對(duì)象,把對(duì)象作為分析設(shè)計(jì)的基本元素。把所有對(duì)象都劃分成對(duì)象類類可以派生和繼承對(duì)每個(gè)對(duì)象類都定義一組數(shù)據(jù)和方法。面向?qū)ο蠓椒òǎ好嫦驅(qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)面向?qū)ο髮?shí)現(xiàn)面向?qū)ο蠓椒ㄊ墙陙?lái)取得迅速發(fā)展并具有強(qiáng)大生命力的軟件開(kāi)發(fā)方法,被譽(yù)為90年代軟件的核心技術(shù)之一。4.3面向?qū)ο蠓椒嫦驅(qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來(lái)934.4統(tǒng)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言(UML)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語(yǔ)言。這里的可視化就是圖形化。UML是圖形化表示法的事實(shí)標(biāo)準(zhǔn),用來(lái)繪制和展示與軟件(特別是面向?qū)ο筌浖┑南嚓P(guān)圖形(及文字)UML適用于各種軟件開(kāi)發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開(kāi)發(fā)工具,是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。4.4統(tǒng)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言(UML)是描述、構(gòu)造和文檔944.4UML圖型分類UML中有9種圖型,分為2大類4小類類圖:類以及類之間的相互關(guān)系對(duì)象圖:對(duì)象以及對(duì)象之間相互關(guān)系構(gòu)件圖:構(gòu)件及其相互依賴關(guān)系部署圖:構(gòu)件在各節(jié)點(diǎn)上的部署順序圖:強(qiáng)調(diào)時(shí)間順序的交互圖協(xié)作圖:強(qiáng)調(diào)對(duì)象協(xié)作的交互圖狀態(tài)圖:類所經(jīng)歷的各種狀態(tài)活動(dòng)圖:對(duì)工作流建模用例圖:需求捕獲,測(cè)試依據(jù)靜態(tài)結(jié)構(gòu)行為用例圖靜態(tài)圖實(shí)現(xiàn)圖交互圖行為圖4.4UML圖型分類UML中有9種圖型,分為2大類4小類靜954.4UML圖形舉例UML用例圖4.4UML圖形舉例UML用例圖96五、小結(jié)什么是過(guò)程?什么是過(guò)程管理?過(guò)程管理的目的是什么?什么是軟件過(guò)程?什么是軟件過(guò)程活動(dòng)軟件過(guò)程包含哪些關(guān)鍵活動(dòng)?本課介紹了哪幾種典型的軟件過(guò)程模型,其主要優(yōu)缺點(diǎn)是什么?什么是敏捷開(kāi)發(fā)?敏捷開(kāi)發(fā)注重哪四項(xiàng)要素?UP、XP、TDD這些詞都代表什么意思?本課介紹了哪些軟件工程方法?五、小結(jié)什么是過(guò)程?什么是過(guò)程管理?過(guò)程管理的目的是什么?97軟件工程與測(cè)試基礎(chǔ)
——軟件過(guò)程與方法
林大經(jīng)管學(xué)院瞿華軟件工程與測(cè)試基礎(chǔ)
——軟件過(guò)程與方法
林大經(jīng)管學(xué)院瞿華引子:羅馬不是一天建成的2013年IT界最大的新聞是什么?引子:羅馬不是一天建成的2013年IT界最大的新聞是什么?992010年9月,面對(duì)蘋果iphone的威脅,Nokia董事會(huì)任命埃洛普為新的CEO。此前,埃洛普任微軟的BusinessDivision部門的總管,負(fù)責(zé)Office2010的開(kāi)發(fā)。2010年9月,面對(duì)蘋果iphone的威脅,Nokia董事會(huì)100第一步:自廢武功?埃洛普上任后就做出了很多備受爭(zhēng)議的決策:宣布徹底放棄經(jīng)典的Symbian系統(tǒng)中止了前任諾基亞CEO規(guī)劃的諾基亞Android手機(jī)計(jì)劃放棄了與intel合作開(kāi)發(fā)的MeeGo系統(tǒng)(搭載此系統(tǒng)的N9手機(jī)已經(jīng)研發(fā)成功并上市)第一步:自廢武功?埃洛普上任后就做出了很多備受爭(zhēng)議的決策:101第二步:執(zhí)子之手2011年,宣布諾基亞與微軟公司達(dá)成戰(zhàn)略合作伙伴,將在所有智能手機(jī)上都采用WindowsPhone7操作系統(tǒng)。第二步:執(zhí)子之手2011年,宣布諾基亞與微軟公司達(dá)成戰(zhàn)略合作102微軟坑我千百遍但由于:微軟在WP7的研發(fā)和發(fā)布等發(fā)面,并未給予Nokia特別的優(yōu)待;微軟的WindowsPhone系統(tǒng)與原有的Symbian系統(tǒng)并不兼容(連導(dǎo)入/導(dǎo)出通訊錄都很麻煩);微軟在2011年推出WindowsPhone7后不久,就正式宣布運(yùn)行WP7的手機(jī)無(wú)法升級(jí)到即將發(fā)行的WP8系統(tǒng)。到2013年1季度,WP手機(jī)的市場(chǎng)占有率只有2.9%(Anroid74%,iOS14%)微軟坑我千百遍但由于:103據(jù)說(shuō)是微軟的WP8發(fā)布會(huì)邀請(qǐng)函。為什么主角不是Nokia?據(jù)說(shuō)是微軟的WP8發(fā)布會(huì)邀請(qǐng)函。104我待微軟如初戀一直到收購(gòu)前,Nokia一直堅(jiān)持WP獨(dú)占的戰(zhàn)略(WP全部銷量中Nokia占70%以上)。相比之下,其他主要的競(jìng)爭(zhēng)對(duì)手三星、HTC及Sony等都采取了多頭下注(同時(shí)開(kāi)發(fā)Android和WP手機(jī))的策略。我待微軟如初戀一直到收購(gòu)前,Nokia一直堅(jiān)持WP獨(dú)占的戰(zhàn)略105結(jié)局:如愿以償?從2010年埃洛普擔(dān)任CEO以來(lái),Nokia的手機(jī)市場(chǎng)占有率從30%以上一路下跌到不到2%,股價(jià)從10.1美元一路下跌到3.9美元。9月3日,微軟正式宣布將收購(gòu)Nokia手機(jī)部門。在此之前(8月底),微軟CEO鮑爾默正式宣布將于一年內(nèi)退休。埃洛普隨著Nokia的收購(gòu)回到了微軟,并成為了下一任CEO的有力競(jìng)爭(zhēng)者……結(jié)局:如愿以償?從2010年埃洛普擔(dān)任CEO以來(lái),Nokia106軟件過(guò)程與方法一、軟件過(guò)程二、軟件過(guò)程模型三、敏捷開(kāi)發(fā)與統(tǒng)一過(guò)程四、軟件工程方法五、小結(jié)軟件過(guò)程與方法一、軟件過(guò)程107一、軟件過(guò)程過(guò)程與過(guò)程管理軟件過(guò)程定義軟件過(guò)程要素核心軟件活動(dòng)普適性軟件活動(dòng)一、軟件過(guò)程過(guò)程與過(guò)程管理108還記得嗎?軟件工程的構(gòu)成?以質(zhì)量為中心過(guò)程方法工具質(zhì)量和過(guò)程是“道”,方法和工具是“術(shù)”!還記得嗎?軟件工程的構(gòu)成?以質(zhì)量為中心過(guò)程方法工具質(zhì)量和過(guò)程1091.1過(guò)程與過(guò)程管理過(guò)程:也稱業(yè)務(wù)過(guò)程,指為客戶創(chuàng)造價(jià)值的一系列相互關(guān)聯(lián)、有組織的活動(dòng)或任務(wù)的集合。管理學(xué)意義上的過(guò)程是有明確目的性的:為客戶(或企業(yè))創(chuàng)造價(jià)值過(guò)程的特點(diǎn):可確定性:有明確的輸入、輸出和邊界;順序:構(gòu)成過(guò)程的活動(dòng),必須在時(shí)間和空間里具有確定的順序;客戶:過(guò)程的結(jié)果必須有接收者——客戶。增值:在過(guò)程中發(fā)生的轉(zhuǎn)換必須為接收者增加價(jià)值,無(wú)論接收者是在過(guò)程的上游還是下游。1.1過(guò)程與過(guò)程管理過(guò)程:也稱業(yè)務(wù)過(guò)程,指為客戶創(chuàng)造價(jià)值的1101.1過(guò)程與過(guò)程管理過(guò)程管理:辨識(shí)出一連串的商業(yè)活動(dòng),并針對(duì)這些活動(dòng)的作業(yè)流程進(jìn)行管理。過(guò)程管理的目標(biāo):確保企業(yè)中各種商業(yè)活動(dòng)的執(zhí)行成果能具有一定的水平和精確度,確保能持續(xù)改善活動(dòng)的進(jìn)行方式,串連活動(dòng)的作業(yè)流程讓企業(yè)能保持市場(chǎng)上的競(jìng)爭(zhēng)力。1.1過(guò)程與過(guò)程管理過(guò)程管理:辨識(shí)出一連串的商業(yè)活動(dòng),并針1111.1過(guò)程與過(guò)程管理過(guò)程管理的任務(wù):發(fā)現(xiàn)、去除非增值活動(dòng),簡(jiǎn)化過(guò)程通過(guò)合理安排活動(dòng)順序提高過(guò)程效率適當(dāng)改變過(guò)程以適應(yīng)環(huán)境變化對(duì)過(guò)程執(zhí)行情況加以監(jiān)控,尋找過(guò)程中的錯(cuò)誤、薄弱、低效環(huán)節(jié)并加予以糾正1.1過(guò)程與過(guò)程管理過(guò)程管理的任務(wù):1121.2軟件過(guò)程定義軟件過(guò)程:構(gòu)建、維護(hù)軟件產(chǎn)品時(shí)所執(zhí)行的一系列活動(dòng)、動(dòng)作和任務(wù)的集合?;顒?dòng)動(dòng)作任務(wù)過(guò)程1.2軟件過(guò)程定義軟件過(guò)程:構(gòu)建、維護(hù)軟件產(chǎn)品時(shí)所執(zhí)行的一1131.3軟件過(guò)程要素活動(dòng):組成軟件過(guò)程的最主要的宏觀步驟。例如:需求分析、設(shè)計(jì)、編碼、發(fā)布等。動(dòng)作:對(duì)活動(dòng)進(jìn)一步細(xì)分的得到的步驟。例如設(shè)計(jì)活動(dòng),可以細(xì)分分為總體設(shè)計(jì)、模塊設(shè)計(jì)等多個(gè)動(dòng)作。任務(wù):具體的工作步驟。例如:編寫一個(gè)具體的軟件模塊等。1.3軟件過(guò)程要素活動(dòng):組成軟件過(guò)程的最主要的宏觀步驟。1141.4核心軟件活動(dòng)所有合理的軟件過(guò)程都包含一些共同的必要的活動(dòng)(步驟),這些活動(dòng)我們稱為核心軟件活動(dòng)。應(yīng)該有哪些核心軟件活動(dòng)呢?如果讓我們來(lái)幫某個(gè)人A蓋一棟房子,會(huì)怎么做呢?:決定要不要蓋?能不能蓋?了解A想要什么樣的房子?制定計(jì)劃(什么時(shí)候開(kāi)始設(shè)計(jì),什么時(shí)候開(kāi)始施工,什么等等設(shè)計(jì)房屋(外觀、結(jié)構(gòu)等等)施工與監(jiān)理(有沒(méi)有偷工減料?是否按照設(shè)計(jì)施工?)交付1.4核心軟件活動(dòng)所有合理的軟件過(guò)程都包含一些共同的必要的1151.4核心軟件活動(dòng)軟件過(guò)程通常包括下列六個(gè)核心軟件活動(dòng):溝通需求:通過(guò)與客戶的溝通協(xié)作,了解客戶的真實(shí)需要,決定軟件特性和功能,制定項(xiàng)目目標(biāo)。策劃:創(chuàng)建軟件項(xiàng)目的“地圖”,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程。通常包括:需要執(zhí)行的具體任務(wù)、每個(gè)任務(wù)需要的資源分配,每個(gè)任務(wù)的具體產(chǎn)品,以及工作計(jì)劃等建模(設(shè)計(jì)):通過(guò)構(gòu)造軟件模型(通常是圖形形式的模型)的方法來(lái)研究、理解具體問(wèn)題,(向客戶和其他開(kāi)發(fā)人員)展現(xiàn)具體解決方案。1.4核心軟件活動(dòng)軟件過(guò)程通常包括下列六個(gè)核心軟件活動(dòng):1161.4核心軟件活動(dòng)核心軟件活動(dòng)(續(xù)):編碼與測(cè)試:實(shí)際編寫代碼、驗(yàn)證代碼的正確性運(yùn)行與部署:將軟件交付用戶使用。通常用戶會(huì)對(duì)軟件進(jìn)行一段時(shí)間的試用,并給出反饋意見(jiàn)維護(hù):修復(fù)用戶使用過(guò)程中發(fā)現(xiàn)的軟件缺陷,或者根據(jù)用戶使用意見(jiàn)對(duì)軟件進(jìn)行改進(jìn)上述活動(dòng)之間并不一定是簡(jiǎn)單的線性關(guān)系,而是可能存在反復(fù)的迭代。1.4核心軟件活動(dòng)核心軟件活動(dòng)(續(xù)):1171.5普適性軟件活動(dòng)除了上述活動(dòng)外,在實(shí)際軟件過(guò)程中往往還存在一些貫穿整個(gè)過(guò)程的普適性活動(dòng),以幫助軟件團(tuán)隊(duì)管理和控制項(xiàng)目進(jìn)度、質(zhì)量、變化和風(fēng)險(xiǎn)。常見(jiàn)的普適性軟件活動(dòng)包括:項(xiàng)目跟蹤和控制:定期評(píng)估項(xiàng)目進(jìn)度情況,采取必要措施確保項(xiàng)目按期完成風(fēng)險(xiǎn)管理:對(duì)可能影響項(xiàng)目進(jìn)度和產(chǎn)品質(zhì)量的風(fēng)險(xiǎn)進(jìn)行評(píng)估,并采取必要措施來(lái)降低風(fēng)險(xiǎn)1.5普適性軟件活動(dòng)除了上述活動(dòng)外,在實(shí)際軟件過(guò)程中往往還1181.5普適性軟件活動(dòng)普適性軟件活動(dòng)(續(xù)):測(cè)量:定義和采集關(guān)于過(guò)程、項(xiàng)目和產(chǎn)品的度量數(shù)據(jù),以幫助管理和改進(jìn)其他活動(dòng)。例如:開(kāi)發(fā)人員的生產(chǎn)率等軟件質(zhì)量保證:確保軟件質(zhì)量的措施和活動(dòng)軟件配置管理:管理軟件(代碼、配置信息及其文檔)的版本變化歷史可復(fù)用管理:建立產(chǎn)品(代碼等)復(fù)用的機(jī)制和標(biāo)準(zhǔn)(如公用函數(shù)庫(kù)等)人員培訓(xùn):對(duì)相關(guān)人員進(jìn)行必要的培訓(xùn),使其具備必要的知識(shí)和技能,掌握相關(guān)工具的使用方法1.5普適性軟件活動(dòng)普適性軟件活動(dòng)(續(xù)):119二、軟件過(guò)程模型軟件過(guò)程模型與過(guò)程流瀑布模型原型開(kāi)發(fā)模型螺旋模型增量過(guò)程模型二、軟件過(guò)程模型軟件過(guò)程模型與過(guò)程流1202.1軟件過(guò)程模型與過(guò)程流
軟件過(guò)程模型是從一特定角度提出的軟件過(guò)程的簡(jiǎn)化描述。“模型的本質(zhì)在于簡(jiǎn)化”軟件過(guò)程模型就是對(duì)描述的實(shí)際過(guò)程的抽象,它包括構(gòu)成軟件過(guò)程的各種活動(dòng)、軟件產(chǎn)品及軟件工程人員參與的不同角色。2.1軟件過(guò)程模型與過(guò)程流
軟件過(guò)程模型是從一特定角度提出1212.1軟件過(guò)程模型與過(guò)程流過(guò)程流(模型)是最主要的一類軟件過(guò)程模型。過(guò)程流描述了如何在執(zhí)行順序和執(zhí)行時(shí)間這一層面上,組織軟件過(guò)程中(除維護(hù)之外的)的活動(dòng)。幾種主要的過(guò)程流及典型過(guò)程模型:線性過(guò)程流:瀑布模型迭代過(guò)程流:原型開(kāi)發(fā)模型演化過(guò)程流:螺旋模型并行過(guò)程流:混合過(guò)程流:增量模型2.1軟件過(guò)程模型與過(guò)程流過(guò)程流(模型)是最主要的一類軟件1222.1軟件過(guò)程模型與過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行線性過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行迭代過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行演化過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行并行過(guò)程流2.1軟件過(guò)程模型與過(guò)程流溝通需求策劃建模編碼測(cè)試部署運(yùn)行1232.2瀑布模型瀑布模型(waterfallmodel)是由W.Royce于1970年提出來(lái)的。又稱為軟件生存周期模型。瀑布模型嚴(yán)格按照軟件生存周期各個(gè)階段來(lái)進(jìn)行開(kāi)發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔)進(jìn)行評(píng)審,通過(guò)后才能開(kāi)始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。2.2瀑布模型瀑布模型(waterfallmodel)是1242.2瀑布模型軟件生存周期:軟件從定義開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最終退役的全過(guò)程稱為軟件生存周期。瀑布模型將軟件生命周期分成軟件定義、軟件開(kāi)發(fā)、運(yùn)行、維護(hù)及退役五個(gè)時(shí)期組成。而每個(gè)時(shí)期又可以進(jìn)一步劃分成若干階段。2.2瀑布模型軟件生存周期:軟件從定義開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用1252.2瀑布模型的結(jié)構(gòu)可行性研究特點(diǎn):階段間具有順序性和依賴性推遲實(shí)現(xiàn)質(zhì)量保證需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)組裝測(cè)試驗(yàn)收測(cè)試使用與維護(hù)退役2.2瀑布模型的結(jié)構(gòu)可行性研究特點(diǎn):需求分析概要設(shè)計(jì)詳細(xì)設(shè)1262.2瀑布模型的變形-V模型可行性研究需求分析(驗(yàn)收測(cè)試計(jì)劃)概要設(shè)計(jì)(組裝測(cè)試計(jì)劃)詳細(xì)設(shè)計(jì)(單元測(cè)試計(jì)劃)編碼與調(diào)試單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試運(yùn)行與維護(hù)V模型強(qiáng)調(diào)了質(zhì)量保證活動(dòng),特別是測(cè)試與其它動(dòng)作之間的關(guān)系2.2瀑布模型的變形-V模型可行性研究需求分析概要設(shè)計(jì)詳細(xì)1272.2瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開(kāi)發(fā)人員采用的規(guī)范方法;嚴(yán)格規(guī)定了每一階段必須提交的文檔;要求每一階段交付之產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)審查;清晰區(qū)分了邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)?!耙环N文檔驅(qū)動(dòng)的模型”提供了軟件開(kāi)發(fā)的基本框架,有利于大型軟件開(kāi)發(fā)過(guò)程中人員的組織、管理,有利于軟件開(kāi)發(fā)方法和工具的研究與使用,因此,在軟件工程中占有重要的地位。2.2瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開(kāi)發(fā)人員采用的規(guī)范方法;1282.2瀑布模型的不足
瀑布模型要求在項(xiàng)目開(kāi)始的需求分析階段就能夠完整的得到客戶的所有需求。但在實(shí)際中客戶通常難以清楚地描述出所有的需求;同時(shí),客戶自身的需求也可能會(huì)隨著時(shí)間的變化而發(fā)生變化。1988年的發(fā)表的一份關(guān)于軟件項(xiàng)目的研究報(bào)告指出,平均每個(gè)項(xiàng)目有25%左右的需求功能點(diǎn)變化;1997年的另一份研究報(bào)告中,需求功能點(diǎn)的變化率則達(dá)到了35%-50%??蛻粢巾?xiàng)目接近尾聲的驗(yàn)收階段才能夠看到實(shí)際的程序執(zhí)行效果。如果這時(shí)才發(fā)現(xiàn)程序和客戶實(shí)際要求有重大偏差,就可能會(huì)造成重大的損失。這兩個(gè)問(wèn)題構(gòu)成了瀑布模型的致命弱點(diǎn)。2.2瀑布模型的不足
瀑布模型要求在項(xiàng)目開(kāi)始的需求分析階段1292.2瀑布模型的不足2001年發(fā)表的一份論文,對(duì)1027個(gè)失敗軟件項(xiàng)目的失敗原因作了研究。其中82%的項(xiàng)目認(rèn)為采用瀑布模型是導(dǎo)致失敗的罪魁禍?zhǔn)祝『芏嗖捎闷俨寄P偷捻?xiàng)目在開(kāi)發(fā)時(shí)為了應(yīng)對(duì)可能的變化,采取了在軟件產(chǎn)品中盡可能包含更多功能的方法,這構(gòu)成了極大的浪費(fèi)。在一份研究發(fā)現(xiàn),在采用瀑布模型的開(kāi)發(fā)項(xiàng)目中,有45%以上的功能最終根本就沒(méi)有被使用,有19%以上的功能幾乎沒(méi)有被使用。也就是說(shuō),為了開(kāi)發(fā)這將近65%的功能而所作的工作完全是浪費(fèi)!不過(guò),當(dāng)需求非常明確時(shí)(比如,山寨某個(gè)已知的軟件),瀑布模型還是個(gè)很有用的模型。2.2瀑布模型的不足2001年發(fā)表的一份論文,對(duì)1027個(gè)1302.3原型開(kāi)發(fā)模型針對(duì)瀑布模型的下列缺陷,提出了原型開(kāi)發(fā)模型:在瀑布模型中,項(xiàng)目開(kāi)發(fā)者在需求分析階段只能通過(guò)文字和圖形來(lái)向用戶展示軟件功能,不夠直觀,很容易造成誤解用戶直到最后階段才能看到軟件操作界面和實(shí)際功能。所謂原型,就是軟件的一個(gè)模擬的可執(zhí)行界面。用戶可在原型上進(jìn)行操作,直觀的感受軟件的執(zhí)行效果。原型開(kāi)發(fā)就是軟件開(kāi)發(fā)人員根據(jù)用戶提出的軟件基本需求快速開(kāi)發(fā)一個(gè)原型,向用戶展示軟件界面和功能。在征求用戶對(duì)原型的評(píng)價(jià)意見(jiàn)后,進(jìn)一步改進(jìn)、完善原型,如此迭代,直到軟件開(kāi)發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測(cè)試等以后的各個(gè)開(kāi)發(fā)步驟。2.3原型開(kāi)發(fā)模型針對(duì)瀑布模型的下列缺陷,提出了原型開(kāi)發(fā)模1312.3原型開(kāi)發(fā)模型的優(yōu)點(diǎn)原型的開(kāi)發(fā)和評(píng)審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過(guò)程,這種迭代過(guò)程有利于雙方的充分理解和溝通。原型開(kāi)發(fā)模型比瀑布模型更符合人們認(rèn)識(shí)事物的過(guò)程和規(guī)律,項(xiàng)目成員能夠更清晰的理解用戶實(shí)際需求。如果原型的開(kāi)發(fā)語(yǔ)言和實(shí)際軟件相同,那么它的若干高質(zhì)量的程序片段和開(kāi)發(fā)工具也可被用于工作程序的開(kāi)發(fā)。2.3原型開(kāi)發(fā)模型的優(yōu)點(diǎn)原型的開(kāi)發(fā)和評(píng)審是系統(tǒng)分析員和用戶1322.3原型開(kāi)發(fā)建造/修改原型用戶測(cè)試運(yùn)行原型聽(tīng)取用戶意見(jiàn)2.3原型開(kāi)發(fā)建造/修改原型用戶測(cè)試聽(tīng)取用戶意見(jiàn)1332.3原型開(kāi)發(fā)初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工開(kāi)發(fā)產(chǎn)品開(kāi)始結(jié)束用戶/客戶給出軟件產(chǎn)品的一般需求開(kāi)發(fā)小組和用戶共同定義軟件總體目標(biāo),標(biāo)識(shí)已知需求對(duì)界面、功能、人機(jī)交互方式等,進(jìn)行設(shè)計(jì)并建造原型強(qiáng)調(diào)“快速”,釆用基于構(gòu)件的軟件開(kāi)發(fā)方法,盡量縮短軟件開(kāi)發(fā)周期,不宜釆用過(guò)多的新技術(shù)用戶/客戶對(duì)原型進(jìn)行評(píng)估修改需求、更新設(shè)計(jì)、完善原型直至確定需求。2.3原型開(kāi)發(fā)初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新1342.3快速原型的開(kāi)發(fā)途徑原型僅僅是需求分析的一部分,因此必須盡可能快速的開(kāi)發(fā)原型:僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。開(kāi)發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。利用一個(gè)或幾個(gè)類似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。建造原型應(yīng)盡量采用相應(yīng)的軟件工具和環(huán)境,并盡量采用軟件重用技術(shù),在運(yùn)行效率方面可做出讓步,以便盡快提供。同時(shí),原型應(yīng)充分展示軟件系統(tǒng)的可見(jiàn)部分,如人機(jī)界面、數(shù)據(jù)的輸入方式和輸出格式等。2.3快速原型的開(kāi)發(fā)途徑原型僅僅是需求分析的一部分,因此必1352.3采用原型模型的軟件生命周期生成原型測(cè)試分析定義系統(tǒng)需求系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)含原型化的軟件生存期原型化運(yùn)行和維護(hù)編碼2.3采用原型模型的軟件生命周期生成測(cè)試分析定義系統(tǒng)程序含1362.3原型開(kāi)發(fā)模型的缺點(diǎn)
原型開(kāi)發(fā)模型要求開(kāi)發(fā)者和用戶在一段時(shí)間內(nèi)緊密配合、共同參與完成原型系統(tǒng)的開(kāi)發(fā),特別是需要用戶的及時(shí)反饋。如果用戶對(duì)此不夠重視,那么原型開(kāi)發(fā)的意義也就大打折扣了。原型的快速構(gòu)造容易讓用戶誤以為實(shí)際軟件的開(kāi)發(fā)也是可以很容易、很快就完成的,或者要求開(kāi)發(fā)者直接將原型稍加修改使之成為實(shí)際運(yùn)行的產(chǎn)品。而實(shí)際上,為了快速開(kāi)發(fā)原型,開(kāi)發(fā)者往往會(huì)犧牲軟件質(zhì)量和可維護(hù)性而采取了最快速的開(kāi)發(fā)手段,因此實(shí)際的高質(zhì)量軟件產(chǎn)品需要拋棄原型從頭開(kāi)發(fā)。如果不能夠充分的向客戶解釋這一點(diǎn)的話,就容易導(dǎo)致軟件開(kāi)發(fā)人員和用戶之間產(chǎn)生矛盾。原型開(kāi)發(fā)模型最大的缺點(diǎn)在于,它仍然沒(méi)有解決需求變化的問(wèn)題。2.3原型開(kāi)發(fā)模型的缺點(diǎn)
原型開(kāi)發(fā)模型要求開(kāi)發(fā)者和用戶在一1372.3原型開(kāi)發(fā)的意義原型開(kāi)發(fā)模型雖然存在無(wú)法適應(yīng)需求變化的缺陷,但原型開(kāi)發(fā)作為一種需求分析的方法,還是非常有價(jià)值的。要充分發(fā)揮原型開(kāi)發(fā)的價(jià)值,避免用戶的誤解,需要在項(xiàng)目開(kāi)始時(shí)就和用戶進(jìn)行充分的溝通和解釋,讓他們明白(或者說(shuō)承認(rèn))原型只是為了明確需求而服務(wù)的,用完后是要丟棄的,實(shí)際軟件系統(tǒng)則是要以質(zhì)量為第一目標(biāo)來(lái)進(jìn)行開(kāi)發(fā)。2.3原型開(kāi)發(fā)的意義原型開(kāi)發(fā)模型雖然存在無(wú)法適應(yīng)需求變化的1382.4螺旋模型螺旋模型是一種演化式的軟件過(guò)程模型。它結(jié)合了原型開(kāi)發(fā)模型的迭代性和瀑布模型的系統(tǒng)性和可控性特點(diǎn)。它把軟件開(kāi)發(fā)過(guò)程轉(zhuǎn)化成了了軟件的版本演進(jìn)過(guò)程。通過(guò)多次的反復(fù)迭代演化,一個(gè)版本一個(gè)版本的逐步完善軟件,提高了軟件開(kāi)發(fā)對(duì)需求變化的適應(yīng)能力它在模型中明確加入了風(fēng)險(xiǎn)控制活動(dòng),每次迭代時(shí)都要考慮可能的風(fēng)險(xiǎn),并采取措施來(lái)降低風(fēng)險(xiǎn)。交付并不意味著軟件過(guò)程的結(jié)束,它只是上一次迭代的結(jié)束和下一次迭代的開(kāi)始。整個(gè)軟件過(guò)程貫穿軟件產(chǎn)品的整個(gè)生命周期。2.4螺旋模型螺旋模型是一種演化式的軟件過(guò)程模型。1392.4螺旋模型評(píng)審提交線對(duì)目標(biāo)、可選方案和約束的確定制定計(jì)劃預(yù)估可選方案,明確并解決風(fēng)險(xiǎn)風(fēng)險(xiǎn)分析開(kāi)發(fā)驗(yàn)證下一級(jí)產(chǎn)品實(shí)施工程規(guī)劃下階段工作客戶評(píng)估第一圈產(chǎn)生產(chǎn)品規(guī)格說(shuō)明原型1風(fēng)險(xiǎn)分析需求計(jì)劃和生存周期計(jì)劃操作的概念需求評(píng)價(jià)第二圈產(chǎn)生一個(gè)用于開(kāi)發(fā)的原型原型2風(fēng)險(xiǎn)分析軟件需求需求有效性驗(yàn)證驗(yàn)收測(cè)試計(jì)劃建模需求精化計(jì)劃第三圈產(chǎn)生軟件產(chǎn)品的初始版本原型3風(fēng)險(xiǎn)分析組裝測(cè)試計(jì)劃設(shè)計(jì)驗(yàn)證與確認(rèn)產(chǎn)品設(shè)計(jì)模擬開(kāi)發(fā)計(jì)劃第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本風(fēng)險(xiǎn)分析操作原型詳細(xì)設(shè)計(jì)編碼單元測(cè)試組裝測(cè)試驗(yàn)收測(cè)試運(yùn)行維護(hù)評(píng)價(jià)實(shí)現(xiàn)計(jì)劃順時(shí)針為進(jìn)展方向2.4螺旋模型評(píng)審提交線對(duì)目標(biāo)、可選方案和約束的確定制定計(jì)1402.4螺旋模型螺旋模型的每一個(gè)迭代周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段。計(jì)劃(需求定義)在第一輪迭代周期中,利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步用戶需求,制定項(xiàng)目開(kāi)發(fā)計(jì)劃(即整個(gè)軟件生命周期計(jì)劃)和需求分析計(jì)劃。在以后的每個(gè)迭代周期中,根據(jù)用戶和開(kāi)發(fā)人員對(duì)上一周期工作成果評(píng)價(jià)和評(píng)審,修改、完善需求,明確下一周期軟件開(kāi)發(fā)的目標(biāo)、約束條件,并據(jù)此制定新一輪的軟件開(kāi)發(fā)計(jì)劃。2.4螺旋模型螺旋模型的每一個(gè)迭代周期都包括計(jì)劃(需求定義1412.4螺旋模型風(fēng)險(xiǎn)分析根據(jù)本輪制定的開(kāi)發(fā)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《咨詢規(guī)劃經(jīng)驗(yàn)》課件
- 2025年人教版PEP九年級(jí)化學(xué)上冊(cè)階段測(cè)試試卷
- 2025年北師大新版七年級(jí)科學(xué)上冊(cè)階段測(cè)試試卷
- 2024年04月蘇州銀行總行風(fēng)險(xiǎn)管理部2024年招考1名風(fēng)險(xiǎn)模型崗人員【2024(030)號(hào)】筆試歷年參考題庫(kù)附帶答案詳解
- 《痛風(fēng)病病人的護(hù)理》課件
- 2024年浙教新版七年級(jí)英語(yǔ)下冊(cè)月考試卷
- 高速公路文明施工條款
- 鉆井安全十七項(xiàng)關(guān)鍵要訣
- 商場(chǎng)窗簾供應(yīng)協(xié)議
- 商業(yè)綜合體建設(shè)管理規(guī)定
- 醫(yī)院院長(zhǎng)年終工作總結(jié)報(bào)告精編ppt
- 大連市小升初手冊(cè)
- 《自然辯證法》課后習(xí)題答案自然辯證法課后題答案
- 造價(jià)咨詢結(jié)算審核服務(wù)方案
- 中國(guó)人民財(cái)產(chǎn)保險(xiǎn)股份有限公司機(jī)動(dòng)車綜合商業(yè)保險(xiǎn)條款
- 燃?xì)夤こ瘫O(jiān)理實(shí)施細(xì)則(通用版)
- E車E拍行車記錄儀說(shuō)明書 - 圖文-
- 人才梯隊(duì)-繼任計(jì)劃-建設(shè)方案(珍貴)
- 《健身氣功》(選修)教學(xué)大綱
- 王家?guī)r隧道工程地質(zhì)勘察報(bào)告(總結(jié))
- 《昆明的雨》優(yōu)質(zhì)課一等獎(jiǎng)(課堂PPT)
評(píng)論
0/150
提交評(píng)論