版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程與測試基礎(chǔ)
——軟件過程與方法
林大經(jīng)管學(xué)院瞿華引子:羅羅馬不是是一天建建成的2013年IT界最大的的新聞是是什么??2010年9月,面對對蘋果iphone的威脅,,Nokia董事會任任命埃洛洛普為新新的CEO。此前,埃埃洛普任任微軟的的BusinessDivision部門的總總管,負(fù)負(fù)責(zé)Office2010的開發(fā)。。第一步::自廢武武功?埃洛普上上任后就就做出了了很多備備受爭議議的決策策:宣布徹底底放棄經(jīng)經(jīng)典的Symbian系統(tǒng)中止了前前任諾基基亞CEO規(guī)劃的諾諾基亞Android手機(jī)計劃劃放棄了與與intel合作開發(fā)發(fā)的MeeGo系統(tǒng)(搭搭載此系系統(tǒng)的N9手機(jī)已經(jīng)經(jīng)研發(fā)成成功并上上市)第二步::執(zhí)子之之手2011年,宣布布諾基亞亞與微軟軟公司達(dá)達(dá)成戰(zhàn)略略合作伙伙伴,將將在所有有智能手手機(jī)上都都采用WindowsPhone7操作系統(tǒng)統(tǒng)。微軟坑我我千百遍遍但由于::微軟在WP7的研發(fā)和和發(fā)布等等發(fā)面,,并未給給予Nokia特別的優(yōu)優(yōu)待;微軟的WindowsPhone系統(tǒng)與原原有的Symbian系統(tǒng)并不不兼容((連導(dǎo)入入/導(dǎo)出通訊訊錄都很很麻煩));微軟在2011年推出WindowsPhone7后不久,,就正式式宣布運(yùn)運(yùn)行WP7的手機(jī)無無法升級級到即將將發(fā)行的的WP8系統(tǒng)。到2013年1季度,WP手機(jī)的市市場占有有率只有有2.9%%(Anroid74%,,iOS14%)據(jù)說是微微軟的WP8發(fā)布會邀邀請函。。為什么主主角不是是Nokia?我待微軟軟如初戀戀一直到收收購前,,Nokia一直堅持持WP獨(dú)占的戰(zhàn)戰(zhàn)略(WP全部銷量量中Nokia占70%以上)。。相比之下下,其他他主要的的競爭對對手三星星、HTC及Sony等都采取取了多頭頭下注((同時開開發(fā)Android和WP手機(jī))的的策略。。結(jié)局:如如愿以償償?從2010年埃洛普普擔(dān)任CEO以來,Nokia的手機(jī)市市場占有有率從30%以上一路路下跌到到不到2%,股價從從10.1美元一路路下跌到到3.9美元。9月3日,微軟軟正式宣宣布將收收購Nokia手機(jī)部門門。在此之前前(8月底),,微軟CEO鮑爾默正正式宣布布將于一一年內(nèi)退退休。埃洛普隨隨著Nokia的收購回回到了微微軟,并并成為了了下一任任CEO的有力競競爭者……軟件過程程與方法法一、軟件件過程二、軟件件過程模模型三、敏捷捷開發(fā)與與統(tǒng)一過過程四、軟件件工程方方法五、小結(jié)結(jié)一、軟件件過程過程與過過程管理理軟件過程程定義軟件過程程要素核心軟件件活動普適性軟軟件活動動還記得嗎嗎?軟件件工程的的構(gòu)成??以質(zhì)量為中心過程方法工具質(zhì)量和過過程是“道””,方法法和工具具是“術(shù)術(shù)”!1.1過程與過過程管理理過程:也稱業(yè)業(yè)務(wù)過程程,指為為客戶創(chuàng)造價值值的一系列列相互關(guān)聯(lián)聯(lián)、有組織的活動或或任務(wù)的的集合。。管理學(xué)意意義上的的過程是是有明確確目的性性的:為客戶((或企業(yè)業(yè))創(chuàng)造造價值過程的特特點(diǎn):可確定性性:有明確確的輸入入、輸出出和邊界界;順序:構(gòu)成過過程的活活動,必必須在時時間和空空間里具具有確定定的順序序;客戶:過程的的結(jié)果必必須有接接收者——客戶。增值:在過程程中發(fā)生生的轉(zhuǎn)換換必須為為接收者者增加價價值,無無論接收收者是在在過程的的上游還還是下游游。1.1過程與過過程管理理過程管理理:辨識出出一連串串的商業(yè)業(yè)活動,,并針對對這些活活動的作作業(yè)流程程進(jìn)行管管理。過程管理理的目標(biāo):確保企業(yè)業(yè)中各種種商業(yè)活活動的執(zhí)執(zhí)行成果果能具有有一定的的水平和和精確度度,確保能持持續(xù)改善善活動的的進(jìn)行方方式,串串連活動動的作業(yè)業(yè)流程讓企業(yè)能能保持市市場上的的競爭力力。1.1過程與過過程管理理過程管理理的任務(wù):發(fā)現(xiàn)、去去除非增增值活動動,簡化化過程通過合理理安排活活動順序序提高過過程效率率適當(dāng)改變變過程以以適應(yīng)環(huán)環(huán)境變化化對過程執(zhí)執(zhí)行情況況加以監(jiān)監(jiān)控,尋尋找過程程中的錯錯誤、薄薄弱、低低效環(huán)節(jié)節(jié)并加予予以糾正正1.2軟件過程程定義軟件過程程:構(gòu)建、、維護(hù)軟軟件產(chǎn)品品時所執(zhí)執(zhí)行的一一系列活動、動作和任務(wù)的集合。。活動動作任務(wù)過程1.3軟件過程程要素活動:組成軟軟件過程程的最主主要的宏宏觀步驟驟。例如:需需求分析析、設(shè)計計、編碼碼、發(fā)布布等。動作:對活動動進(jìn)一步步細(xì)分的的得到的的步驟。。例如設(shè)計計活動,,可以細(xì)細(xì)分分為為總體設(shè)設(shè)計、模模塊設(shè)計計等多個個動作。。任務(wù):具體的的工作步步驟。例如:編編寫一個個具體的的軟件模模塊等。。1.4核心軟件件活動所有合理理的軟件件過程都都包含一一些共同同的必要要的活動動(步驟驟),這這些活動動我們稱稱為核心軟件件活動。應(yīng)該有哪哪些核心心軟件活活動呢??如果讓我我們來幫幫某個人人A蓋一棟房房子,會會怎么做做呢?::決定要不不要蓋??能不能能蓋?了解A想要什么么樣的房房子?制定計劃劃(什么么時候開開始設(shè)計計,什么么時候開開始施工工,什么么等等設(shè)計房屋屋(外觀觀、結(jié)構(gòu)構(gòu)等等))施工與監(jiān)監(jiān)理(有有沒有偷偷工減料料?是否否按照設(shè)設(shè)計施工工?)交付1.4核心軟件件活動軟件過程程通常包包括下列列六個核心軟件件活動:溝通需求求:通過與與客戶的的溝通協(xié)作作,了解客客戶的真實(shí)需要要,決定軟軟件特性性和功能能,制定定項(xiàng)目目目標(biāo)。策劃:創(chuàng)建軟軟件項(xiàng)目目的“地圖”,以指指導(dǎo)團(tuán)隊(duì)隊(duì)的項(xiàng)目目旅程。。通常包包括:需需要執(zhí)行行的具體體任務(wù)、、每個任任務(wù)需要要的資源源分配,,每個任任務(wù)的具具體產(chǎn)品品,以及及工作計計劃等建模(設(shè)設(shè)計):通過構(gòu)構(gòu)造軟件件模型(通常是圖圖形形式式的模型型)的方方法來研研究、理理解具體體問題,,(向客客戶和其其他開發(fā)發(fā)人員))展現(xiàn)具具體解決決方案。。1.4核心軟件件活動核心軟件件活動(續(xù))::編碼與測測試:實(shí)際編編寫代碼碼、驗(yàn)證證代碼的的正確性性運(yùn)行與部部署:將軟件件交付用用戶使用用。通常常用戶會會對軟件件進(jìn)行一一段時間間的試用用,并給給出反饋饋意見維護(hù):修復(fù)用用戶使用用過程中中發(fā)現(xiàn)的的軟件缺缺陷,或或者根據(jù)據(jù)用戶使使用意見見對軟件件進(jìn)行改改進(jìn)上述活動動之間并并不一定定是簡單單的線性性關(guān)系,,而是可可能存在在反復(fù)的的迭代。。1.5普適性軟軟件活動動除了上述述活動外外,在實(shí)實(shí)際軟件件過程中中往往還還存在一一些貫穿穿整個過過程的普適性活活動,以幫助助軟件團(tuán)團(tuán)隊(duì)管理理和控制制項(xiàng)目進(jìn)進(jìn)度、質(zhì)質(zhì)量、變變化和風(fēng)風(fēng)險。常見的普適性軟件活動動包括::項(xiàng)目跟蹤蹤和控制制:定期評評估項(xiàng)目目進(jìn)度情情況,采采取必要要措施確確保項(xiàng)目目按期完完成風(fēng)險管理理:對可能能影響項(xiàng)項(xiàng)目進(jìn)度度和產(chǎn)品品質(zhì)量的的風(fēng)險進(jìn)進(jìn)行評估估,并采采取必要要措施來來降低風(fēng)風(fēng)險1.5普適性軟軟件活動動普適性軟軟件活動動(續(xù))):測量:定義和和采集關(guān)關(guān)于過程程、項(xiàng)目目和產(chǎn)品品的度量量數(shù)據(jù),,以幫助助管理和和改進(jìn)其其他活動動。例如如:開發(fā)發(fā)人員的的生產(chǎn)率率等軟件質(zhì)量量保證:確保軟軟件質(zhì)量量的措施施和活動動軟件配置置管理:管理軟軟件(代代碼、配配置信息息及其文文檔)的的版本變變化歷史史可復(fù)用管管理:建立產(chǎn)產(chǎn)品(代代碼等))復(fù)用的的機(jī)制和和標(biāo)準(zhǔn)((如公用用函數(shù)庫庫等)人員培訓(xùn)訓(xùn):對相關(guān)關(guān)人員進(jìn)進(jìn)行必要要的培訓(xùn)訓(xùn),使其其具備必必要的知知識和技技能,掌掌握相關(guān)關(guān)工具的的使用方方法二、軟件件過程模模型軟件過程程模型與過程流流瀑布模型型原型開發(fā)發(fā)模型螺旋模型型增量過程程模型2.1軟件過程程模型與與過程流流軟件過程程模型是從一特特定角度度提出的的軟件過程程的簡化描述述?!澳P偷谋颈举|(zhì)在于于簡化”軟件過程程模型就就是對描描述的實(shí)實(shí)際過程程的抽象象,它包包括構(gòu)成成軟件過過程的各各種活動動、軟件件產(chǎn)品及及軟件工工程人員員參與的的不同角角色。2.1軟件過程程模型與與過程流流過程流(模型型)是最最主要的一類軟軟件過程程模型。。過程流描述了如如何在執(zhí)行順序序和執(zhí)行時間間這一層面面上,組織軟件過程程中(除除維護(hù)之之外的))的活動動。幾種主要要的過程程流及典典型過程程模型::線性過程程流:瀑瀑布模型型迭代過程程流:原原型開發(fā)發(fā)模型演化過程程流:螺螺旋模型型并行過程程流:混合過程程流:增增量模型型2.1軟件過程程模型與與過程流流溝通需求策劃建模編碼測試部署運(yùn)行線性過程流溝通需求策劃建模編碼測試部署運(yùn)行迭代過程流溝通需求策劃建模編碼測試部署運(yùn)行演化過程流溝通需求策劃建模編碼測試部署運(yùn)行并行過程流2.2瀑布模型型瀑布模型型(waterfallmodel)是由W.Royce于1970年提出來來的。又又稱為軟軟件生存存周期模模型。瀑布模型型嚴(yán)格按按照軟件件生存周周期各個個階段來來進(jìn)行開開發(fā),上上一階段段的輸出出即是下下一階段段的輸入入,并強(qiáng)強(qiáng)調(diào)每一一階段的的嚴(yán)格性性。它規(guī)定了了各階段段的任務(wù)務(wù)和應(yīng)提提交的成成果及文文檔,每每一階段段的任務(wù)務(wù)完成后后,都必必須對其其階段性性產(chǎn)品((主要是是文檔))進(jìn)行評評審,通通過后才才能開始始下一階階段的工工作。因此,它它是一種種以文檔作作為驅(qū)動動的模型。。2.2瀑布模型型軟件生存存周期:軟件從從定義開開始,經(jīng)經(jīng)過開發(fā)發(fā)、使用用和維護(hù)護(hù),直到到最終退退役的全全過程稱稱為軟件生存存周期。瀑布模型型將軟件件生命周周期分成成軟件定定義、軟軟件開發(fā)發(fā)、運(yùn)行行、維護(hù)護(hù)及退役役五個時時期組成成。而每每個時期期又可以以進(jìn)一步步劃分成成若干階階段。2.2瀑布模型型的結(jié)構(gòu)構(gòu)可行性研研究特點(diǎn):階段間具具有順序序性和依依賴性推遲實(shí)現(xiàn)質(zhì)量保證證需求分析概要設(shè)計詳細(xì)設(shè)計實(shí)現(xiàn)組裝測試驗(yàn)收測試使用與維護(hù)退役2.2瀑布模型型的變形形-V模型可行性研研究需求分析(驗(yàn)收測試計劃)概要設(shè)計(組裝測試計劃)詳細(xì)設(shè)計(單元測試計劃)編碼與調(diào)試單元測試集成測試系統(tǒng)測試驗(yàn)收測試運(yùn)行與維護(hù)V模型強(qiáng)調(diào)調(diào)了質(zhì)量量保證活活動,特別是測測試與其其它動作作之間的的關(guān)系2.2瀑布模型型的優(yōu)點(diǎn)點(diǎn)可強(qiáng)迫開開發(fā)人員員采用的的規(guī)范方法法;嚴(yán)格規(guī)定定了每一一階段必必須提交交的文檔;要求每一一階段交交付之產(chǎn)產(chǎn)品都必必須經(jīng)過過質(zhì)量保保證小組組的仔細(xì)細(xì)審查;清晰區(qū)分分了邏輯輯設(shè)計與與物理設(shè)設(shè)計,盡盡可能推遲程序序的物理理實(shí)現(xiàn)。“一種文文檔驅(qū)動動的模型型”提供了軟軟件開發(fā)發(fā)的基本本框架,,有利于于大型軟軟件開發(fā)發(fā)過程中中人員的的組織、、管理,,有利于于軟件開開發(fā)方法法和工具具的研究究與使用用,因此此,在軟軟件工程程中占有有重要的的地位。。2.2瀑布模型型的不足足瀑布模型型要求在在項(xiàng)目開始始的需求分分析階段段就能夠夠完整的的得到客客戶的所有需求求。但在實(shí)實(shí)際中客客戶通常常難以清清楚地描描述出所所有的需需求;同同時,客客戶自身身的需求求也可能能會隨著著時間的的變化而而發(fā)生變化。1988年的發(fā)表表的一份份關(guān)于軟軟件項(xiàng)目目的研究究報告指指出,平平均每個個項(xiàng)目有有25%左右的需求功能點(diǎn)變化;1997年的另一一份研究究報告中中,需求求功能點(diǎn)點(diǎn)的變化化率則達(dá)達(dá)到了35%--50%%??蛻粢降巾?xiàng)目接接近尾聲聲的驗(yàn)收階段段才能夠看看到實(shí)際際的程序序執(zhí)行效效果。如如果這時時才發(fā)現(xiàn)現(xiàn)程序和和客戶實(shí)實(shí)際要求求有重大大偏差,就可能能會造成成重大的的損失。。這兩個問問題構(gòu)成成了瀑布布模型的的致命弱弱點(diǎn)。2.2瀑布模型型的不足足2001年發(fā)表的的一份論論文,對對1027個失敗軟軟件項(xiàng)目目的失敗敗原因作作了研究究。其中中82%的項(xiàng)目認(rèn)認(rèn)為采用用瀑布模模型是導(dǎo)導(dǎo)致失敗的罪罪魁禍?zhǔn)资祝『芏嗖捎糜闷俨寄DP偷捻?xiàng)項(xiàng)目在開開發(fā)時為為了應(yīng)對對可能的的變化,,采取了了在軟件件產(chǎn)品中中盡可能能包含更更多功能能的方法法,這構(gòu)構(gòu)成了極極大的浪浪費(fèi)。在一份研研究發(fā)現(xiàn)現(xiàn),在采采用瀑布布模型的的開發(fā)項(xiàng)項(xiàng)目中,,有45%以上的功功能最終終根本就就沒有被被使用,,有19%以上的功功能幾乎乎沒有被被使用。。也就是是說,為為了開發(fā)發(fā)這將近近65%的功能而而所作的的工作完完全是浪浪費(fèi)!不過,當(dāng)當(dāng)需求非非常明確確時(比比如,山山寨某個個已知的的軟件)),瀑布布模型還還是個很很有用的的模型。。2.3原型開發(fā)發(fā)模型針對瀑布布模型的的下列缺缺陷,提提出了原原型開發(fā)發(fā)模型::在瀑布模模型中,,項(xiàng)目開開發(fā)者在在需求分分析階段段只能通通過文字字和圖形形來向用用戶展示示軟件功功能,不不夠直觀觀,很容容易造成成誤解用戶直到到最后階階段才能能看到軟軟件操作作界面和和實(shí)際功功能。所謂原型,就是軟軟件的一一個模擬的可可執(zhí)行界界面。用戶可可在原型型上進(jìn)行行操作,,直觀的的感受軟軟件的執(zhí)執(zhí)行效果果。原型開發(fā)發(fā)就是軟軟件開發(fā)發(fā)人員根根據(jù)用戶戶提出的的軟件基基本需求求快速開開發(fā)一個個原型,,向用戶戶展示軟軟件界面面和功能能。在征求用用戶對原原型的評評價意見見后,進(jìn)進(jìn)一步改改進(jìn)、完完善原型型,如此此迭代,,直到軟軟件開發(fā)發(fā)人員和和用戶都都確認(rèn)軟軟件系統(tǒng)統(tǒng)的需求求并達(dá)成成一致的的理解為為止。軟軟件需求求確定后后,便可可進(jìn)行設(shè)設(shè)計,編編碼、測測試等以以后的各各個開發(fā)發(fā)步驟。。2.3原型開發(fā)發(fā)模型的的優(yōu)點(diǎn)原型的開開發(fā)和評評審是系系統(tǒng)分析析員和用用戶/客戶共同同參予的的迭代過過程,這這種迭代代過程有有利于雙雙方的充充分理解解和溝通通。原型開發(fā)發(fā)模型比比瀑布模模型更符符合人們們認(rèn)識事事物的過過程和規(guī)規(guī)律,項(xiàng)項(xiàng)目成員員能夠更更清晰的的理解用用戶實(shí)際際需求。。如果原型型的開發(fā)發(fā)語言和和實(shí)際軟軟件相同同,那么么它的若若干高質(zhì)質(zhì)量的程程序片段段和開發(fā)發(fā)工具也也可被用用于工作作程序的的開發(fā)。。2.3原型開發(fā)發(fā)建造/修改原型用戶測試運(yùn)行原型聽取用戶意見2.3原型開發(fā)發(fā)初步需求求分析快速設(shè)計計建造原型型用戶評估估原型(新需求)對原型加加工開發(fā)產(chǎn)品品開始結(jié)束用戶/客戶給出出軟件產(chǎn)產(chǎn)品的一一般需求求開發(fā)小組組和用戶戶共同定定義軟件件總體目目標(biāo),標(biāo)標(biāo)識已知知需求對界面、、功能、、人機(jī)交交互方式式等,進(jìn)進(jìn)行設(shè)計計并建造造原型強(qiáng)調(diào)“快速”,釆用基基于構(gòu)件件的軟件件開發(fā)方方法,盡量縮短短軟件開開發(fā)周期期,不宜釆用用過多的的新技術(shù)術(shù)用戶/客戶對原原型進(jìn)行行評估修改需求求、更新新設(shè)計、、完善原原型直至至確定需需求。2.3快速原型型的開發(fā)發(fā)途徑原型僅僅僅是需求求分析的的一部分分,因此此必須盡盡可能快速的開發(fā)原原型:僅模擬軟軟件系統(tǒng)統(tǒng)的人機(jī)機(jī)界面和和人機(jī)交交互方式式。開發(fā)一個個工作模模型,實(shí)實(shí)現(xiàn)軟件件系統(tǒng)中中重要的的或容易易產(chǎn)生誤誤解的功功能。利用一個個或幾個個類似的的正在運(yùn)運(yùn)行的軟軟件向用用戶展示示軟件需需求中的的部分或或全部功功能。建造原型型應(yīng)盡量量采用相相應(yīng)的軟軟件工具具和環(huán)境境,并盡盡量采用用軟件重重用技術(shù)術(shù),在運(yùn)行效效率方面面可做出出讓步,以便盡盡快提供供。同時時,原型型應(yīng)充分展示示軟件系系統(tǒng)的可可見部分分,如人機(jī)機(jī)界面、、數(shù)據(jù)的的輸入方方式和輸輸出格式式等。2.3采用原型型模型的的軟件生生命周期期生成原型測試分析定義義系統(tǒng)需求求系統(tǒng)設(shè)計程序設(shè)計含原型化化的軟件生存存期原型化運(yùn)行和維護(hù)編碼2.3原型開發(fā)發(fā)模型的的缺點(diǎn)原型開發(fā)發(fā)模型要要求開發(fā)發(fā)者和用戶在一段時時間內(nèi)緊密配合合、共同參與與完成原型型系統(tǒng)的的開發(fā),,特別是是需要用用戶的及時反饋饋。如果用用戶對此此不夠重重視,那那么原型型開發(fā)的的意義也也就大打打折扣了了。原型的快快速構(gòu)造造容易讓讓用戶誤以以為實(shí)際際軟件的的開發(fā)也也是可以以很容易易、很快快就完成成的,或者要要求開發(fā)發(fā)者直接接將原型型稍加修修改使之之成為實(shí)實(shí)際運(yùn)行行的產(chǎn)品品。而實(shí)際上上,為了了快速開開發(fā)原型型,開發(fā)發(fā)者往往往會犧牲牲軟件質(zhì)質(zhì)量和可可維護(hù)性性而采取取了最快快速的開開發(fā)手段段,因此此實(shí)際的的高質(zhì)量量軟件產(chǎn)產(chǎn)品需要要拋棄原原型從頭頭開發(fā)。。如果不能能夠充分分的向客客戶解釋釋這一點(diǎn)點(diǎn)的話,,就容易易導(dǎo)致軟軟件開發(fā)發(fā)人員和和用戶之之間產(chǎn)生矛盾盾。原型開發(fā)發(fā)模型最最大的缺缺點(diǎn)在于于,它仍仍然沒有有解決需求變化化的問題。。2.3原型開發(fā)發(fā)的意義義原型開發(fā)發(fā)模型雖雖然存在在無法適適應(yīng)需求求變化的的缺陷,,但原型開發(fā)發(fā)作為一種種需求分析析的方法法,還是非非常有價價值的。。要充分發(fā)發(fā)揮原型型開發(fā)的的價值,,避免用用戶的誤誤解,需需要在項(xiàng)項(xiàng)目開始始時就和和用戶進(jìn)進(jìn)行充分分的溝通通和解釋釋,讓他他們明白白(或者者說承認(rèn)認(rèn))原型型只是為為了明確確需求而而服務(wù)的的,用完完后是要要丟棄的的,實(shí)際際軟件系系統(tǒng)則是是要以質(zhì)質(zhì)量為第第一目標(biāo)標(biāo)來進(jìn)行行開發(fā)。。2.4螺旋模型型螺旋模型型是一種演演化式的的軟件過過程模型型。它結(jié)合了了原型開開發(fā)模型型的迭代代性和瀑瀑布模型型的系統(tǒng)統(tǒng)性和可可控性特特點(diǎn)。它把軟件件開發(fā)過過程轉(zhuǎn)化化成了了了軟件的的版本演演進(jìn)過程程。通過多次次的反復(fù)復(fù)迭代演演化,一一個版本本一個版版本的逐逐步完善善軟件,,提高了了軟件開開發(fā)對需需求變化化的適應(yīng)應(yīng)能力它在模型型中明確確加入了了風(fēng)險控控制活動動,每次次迭代時時都要考考慮可能能的風(fēng)險險,并采采取措施施來降低低風(fēng)險。。交付并不不意味著著軟件過過程的結(jié)結(jié)束,它它只是上上一次迭迭代的結(jié)結(jié)束和下下一次迭迭代的開開始。整整個軟件件過程貫貫穿軟件件產(chǎn)品的的整個生生命周期期。2.4螺旋模型型評審提交線對目標(biāo)、可選方案和約束的確定制定計劃預(yù)估可選方案,明確并解決風(fēng)險風(fēng)險分析開發(fā)驗(yàn)證下一級產(chǎn)品實(shí)施工程規(guī)劃下階段工作客戶評估第一圈產(chǎn)生產(chǎn)品規(guī)格說明原型1風(fēng)險分析需求計劃和生存周期計劃操作的概念需求評價第二圈產(chǎn)生一個用于開發(fā)的原型原型2風(fēng)險分析軟件需求需求有效性驗(yàn)證驗(yàn)收測試計劃建模需求精化計劃第三圈產(chǎn)生軟件產(chǎn)品的初始版本原型3風(fēng)險分析組裝測試計劃設(shè)計驗(yàn)證與確認(rèn)產(chǎn)品設(shè)計模擬開發(fā)計劃第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本風(fēng)險分析操作原型詳細(xì)設(shè)計編碼單元測試組裝測試驗(yàn)收測試運(yùn)行維護(hù)評價實(shí)現(xiàn)計劃順時針為為進(jìn)展方方向2.4螺旋模型型螺旋模型型的每一一個迭代代周期都都包括計計劃(需需求定義義)、風(fēng)風(fēng)險分析析、工程程實(shí)現(xiàn)和和評審4個階段。。計劃(需需求定義義)在第一輪輪迭代周周期中,,利用需需求分析析技術(shù)理理解應(yīng)用用領(lǐng)域,,獲取初初步用戶戶需求,,制定項(xiàng)項(xiàng)目開發(fā)發(fā)計劃((即整個個軟件生生命周期期計劃))和需求求分析計計劃。在以后的的每個迭迭代周期期中,根根據(jù)用戶戶和開發(fā)發(fā)人員對對上一周周期工作作成果評評價和評評審,修修改、完完善需求求,明確確下一周周期軟件件開發(fā)的的目標(biāo)、、約束條條件,并并據(jù)此制制定新一一輪的軟軟件開發(fā)發(fā)計劃。。2.4螺旋模型型風(fēng)險分析析根據(jù)本輪輪制定的的開發(fā)計計劃,進(jìn)進(jìn)行風(fēng)險險分析,,評估可可選方案案,并構(gòu)構(gòu)造原型型進(jìn)一步步分析風(fēng)風(fēng)險,給給出消除除或減少少風(fēng)險的的途徑。。此時根根據(jù)風(fēng)險險分析的的結(jié)果決決策項(xiàng)目目是否繼繼續(xù)。所所以,螺螺旋模型型是一個個風(fēng)險驅(qū)動動的模型。。工程實(shí)現(xiàn)現(xiàn)在前幾輪輪迭代周周期中,,構(gòu)造的的原型進(jìn)進(jìn)行需求求建?;蚧蜻M(jìn)行系系統(tǒng)模擬擬在后面的的迭代周周期中,,逐步構(gòu)構(gòu)造、完完善實(shí)際際的軟件件系統(tǒng)。。2.4螺旋模型型用戶評價價與階段段評審將原型或或者軟件件產(chǎn)品提提交用戶戶使用并并征求改改進(jìn)意見見。開發(fā)發(fā)人員應(yīng)應(yīng)在用戶戶的密切切配合下下進(jìn)一步步完善用用戶需求求,直到到用戶認(rèn)認(rèn)為原型型可滿足足需求,,或?qū)涇浖a(chǎn)品品設(shè)計進(jìn)進(jìn)行評價價或確認(rèn)認(rèn)等。就這樣,,螺旋模模型從第第一個周周期的計計劃開始始,一個個周期、、一個周周期地不不斷迭代代,直到到整個軟軟件生命命周期結(jié)結(jié)束。螺旋模型型中的每個迭代代周期都都不應(yīng)該該太長(一般是是2-8周左右))。太短了則則每輪實(shí)實(shí)際工作作量太少少,無法法得到有有意義的的結(jié)果太長了,,無法及及時得到到用戶的的反饋,,也就失失去了迭迭代演化化的意義義。2.4螺旋模型型的優(yōu)點(diǎn)點(diǎn)支持用戶戶需求的的動態(tài)變化化。支持軟軟件系統(tǒng)統(tǒng)的可維維護(hù)性,,每次維維護(hù)過程程只是沿沿螺旋模模型繼續(xù)續(xù)多走一一兩個周周期。這這符合人人們認(rèn)識識現(xiàn)實(shí)世世界和軟軟件開發(fā)發(fā)的客觀觀規(guī)律。。原型可看作形形式的可可執(zhí)行的的需求規(guī)規(guī)格說明明,易于于為用戶戶和開發(fā)發(fā)人員共共同理解解,還可可作為繼繼續(xù)開發(fā)發(fā)的基礎(chǔ)礎(chǔ),并為為用戶參參與所有有關(guān)鍵決決策提供供了方便便。開發(fā)發(fā)者和用用戶共同同參與軟軟件開發(fā)發(fā),可盡早發(fā)現(xiàn)現(xiàn)軟件中中的錯誤誤。螺旋模型型特別強(qiáng)強(qiáng)調(diào)原型型的可擴(kuò)擴(kuò)充性和和可修改改性,原原型的使使用貫穿穿整個軟軟件生存存周期,,這將有有助于提提高目標(biāo)標(biāo)軟件的的適應(yīng)能能力。既既保持瀑瀑布模型型的系統(tǒng)統(tǒng)性、階階段性,,又可利用原型型評估降降低開發(fā)發(fā)風(fēng)險。螺旋模型型為項(xiàng)目目管理人人員及時時調(diào)整管理理決策提供了方方便,進(jìn)進(jìn)而可降低開發(fā)發(fā)風(fēng)險。2.4螺旋模型型的缺點(diǎn)點(diǎn)及適用用范圍螺旋模型型的缺點(diǎn):如果每次次迭代的的效率不不高,致致使迭代代次數(shù)過過多,將將會增加加成本并并推遲提提交時間間;使用該模模型需要要有相當(dāng)當(dāng)豐富的的風(fēng)險評評估經(jīng)驗(yàn)驗(yàn)和專門門知識,,要求開開發(fā)隊(duì)伍伍水平較較高。螺旋模型型適用場合合:支持需求不明明確、特別是是大型軟件件系統(tǒng)的的開發(fā),并支持持面向規(guī)規(guī)格說明明、面向向過程、、面向?qū)ο蟮榷喽喾N軟件件開發(fā)方方法,是是一種具具有廣闊闊前景的的模型。。2.4增量過程程模型增量過程程模型是是螺旋模模型基礎(chǔ)礎(chǔ)上的改改進(jìn)。前面講的的幾種模模型,過過程流本本質(zhì)都是是順序執(zhí)執(zhí)行。也就是說說,上一一個活動動執(zhí)行完完才能執(zhí)執(zhí)行下一一個活動動這種順序序執(zhí)行往往往會導(dǎo)導(dǎo)致項(xiàng)目目中產(chǎn)生生“阻塞塞狀態(tài)””,即由由于任務(wù)務(wù)之間的的依賴性性,項(xiàng)目目的部分分成員要要等待另另一些成成員的工工作完成成。94年的一項(xiàng)項(xiàng)研究表表明,在在很多項(xiàng)項(xiàng)目中,,花在等等待上的的時間反反而超過過了花在在實(shí)際工工作上的的時間??!增量開發(fā)發(fā)模型采采用并行行的方式式來解決決這種阻阻塞帶來來的浪費(fèi)費(fèi)問題。。2.4增量過程程模型軟件功能能和特征征項(xiàng)目時間間第一個增增量第二個增增量第三個增增量第n個增量溝通策劃建模(分分析、設(shè)設(shè)計)構(gòu)建(編編碼、測測試)部署(交交付、反反饋)三、敏捷捷開發(fā)與與統(tǒng)一過過程敏捷開發(fā)發(fā)的背景敏捷開發(fā)發(fā)宣言什么是敏敏捷敏捷開發(fā)發(fā)模型極限編程程統(tǒng)一過程程3.1敏捷開發(fā)發(fā)的背景景在現(xiàn)代市市場經(jīng)濟(jì)濟(jì)條件下下,計算算機(jī)軟件件系統(tǒng)總總是面臨臨著不斷斷的變化:市場環(huán)境境變化新競爭對對手出現(xiàn)現(xiàn)新技術(shù)涌涌現(xiàn)這就導(dǎo)致致軟件開開發(fā)和實(shí)實(shí)施過程程中,用戶需求求會不斷變化1988年的發(fā)表表的一份份關(guān)于軟軟件項(xiàng)目目的研究究報告指指出,平平均每個個項(xiàng)目有有25%左右的需求功能點(diǎn)變化;1997年的另一一份研究究報告中中,這需需求功能能點(diǎn)的變變化率則則達(dá)到了了35%--50%%。3.1敏捷開發(fā)發(fā)提出的的背景傳統(tǒng)的過過程開發(fā)發(fā)模型都都是從管理者的的角度來看待軟軟件開發(fā)發(fā)。因此,存存在著重大缺陷陷:忽視變化化的存在在。過程階階段劃分分過細(xì)、、過于死死板,難難于適應(yīng)應(yīng)實(shí)際情情況的變變化。忽視了軟軟件開發(fā)發(fā)是一個智力密集集型的工作,,過分強(qiáng)強(qiáng)調(diào)紀(jì)律律和文檔檔,導(dǎo)致致人的創(chuàng)創(chuàng)造性降降低。忽視了人人與人之之間的直直接交流流。過多的的書面交交流既增增加整個個項(xiàng)目的的時間成成本,又又導(dǎo)致了了誤解和和溝通障障礙的增增加。過分注重重過程。認(rèn)為符符合過程程就能導(dǎo)導(dǎo)致正確確的結(jié)果果。3.2敏捷開發(fā)發(fā)宣言敏捷開發(fā)發(fā)可以認(rèn)認(rèn)為是一一場“革命”,開發(fā)發(fā)者對管管理者的的革命。。敏捷開發(fā)發(fā)試圖將將開發(fā)者者的視角角也加入入到軟件件過程管管理中來來。2001年KentBeck等16位知名專專家共同同發(fā)起了了敏捷聯(lián)聯(lián)盟,并并發(fā)表了了“敏捷捷開發(fā)宣宣言”::個人與交交流勝于開發(fā)過程程和工具具可運(yùn)行的的軟件勝于面面俱到到的文檔檔客戶協(xié)作作勝于合同談判判響應(yīng)變化化勝于按部就班班遵循計計劃注意,宣宣言中右右邊的各各項(xiàng)并非非沒有價價值,只只是左邊邊的各項(xiàng)項(xiàng)價值更更大3.3什么是敏敏捷敏捷的基本推動動力:普遍存存在的變化敏捷鼓勵:使溝通更更便利的團(tuán)隊(duì)結(jié)結(jié)構(gòu)和協(xié)協(xié)作態(tài)度度快速交付付可運(yùn)行產(chǎn)產(chǎn)品而非非中間文文檔客戶以開發(fā)團(tuán)團(tuán)隊(duì)中的的一員的的身份參與項(xiàng)目目根據(jù)實(shí)際際情況靈活調(diào)整整項(xiàng)目計劃3.3敏捷對軟軟件開發(fā)發(fā)成本的的影響研究表明明,敏捷捷能明顯顯降低::由于需求求變化導(dǎo)致致的那部部分軟件件開發(fā)成成本開發(fā)進(jìn)度日程變更成本使用傳統(tǒng)軟件過程的變更成本使用敏捷過程的理想變更成本使用敏捷過程的實(shí)際變更成本3.3敏捷原則則敏捷聯(lián)盟盟提出了了實(shí)現(xiàn)敏敏捷的12條原則::最優(yōu)先要要做的是是通過盡盡早、持持續(xù)的交交付有價價值的軟軟件來使使客戶滿滿意即使在開開發(fā)的后后期,也也歡迎需需求變更更。敏捷捷過程利利用變更更為客戶戶創(chuàng)造競競爭優(yōu)勢勢經(jīng)常交付付可運(yùn)行行的軟件件,交付付時間間間隔越短短越好在整個項(xiàng)項(xiàng)目開發(fā)發(fā)期間,,業(yè)務(wù)人人員和開開發(fā)人員員應(yīng)天天天在一起起工作圍繞有積積極性的的個人構(gòu)構(gòu)建項(xiàng)目目。團(tuán)隊(duì)內(nèi)部部最有效效率的溝溝通方式式是面對對面交談?wù)?.3敏捷原則則(續(xù)))實(shí)現(xiàn)敏捷捷的12條原則((續(xù))::可運(yùn)行軟軟件是進(jìn)進(jìn)度的首首要度量量指標(biāo)提倡可持持續(xù)的開開發(fā)速度度不斷的關(guān)關(guān)注優(yōu)秀秀技能和和好的設(shè)設(shè)計簡單(使使不必做做的工作作盡可能能多的藝藝術(shù))是是必要的的。最好的架架構(gòu)、需需求和設(shè)設(shè)計出自自于自我我組織的的團(tuán)隊(duì)每隔一定定時間,,團(tuán)隊(duì)?wèi)?yīng)應(yīng)反省如如何才能能更有效效的工作作,并相相應(yīng)調(diào)整整自己的的行為3.3敏捷開發(fā)發(fā)中人的的因素敏捷開發(fā)發(fā)非常強(qiáng)強(qiáng)調(diào)人的因素素在軟件項(xiàng)項(xiàng)目開發(fā)發(fā)中的重重要性。。特別的,,敏捷開開發(fā)強(qiáng)調(diào)調(diào)團(tuán)隊(duì)及及其成員員應(yīng)該具具備下列列要素::基本能力力。包括軟軟件開發(fā)發(fā)和正確確實(shí)施敏敏捷開發(fā)發(fā)的能力力。共同目標(biāo)標(biāo)。團(tuán)隊(duì)成成員必須須瞄準(zhǔn)同同一個目目標(biāo),即即在承諾諾的時間間內(nèi)向客客戶提交交能夠可可靠運(yùn)行行的軟件件或其增增量。精誠合作作。團(tuán)隊(duì)成成員之間間,以及及團(tuán)隊(duì)和和項(xiàng)目其其他利益益相關(guān)者者(如用用戶、客客戶)之之間必須須精誠合合作3.3敏捷開發(fā)發(fā)中人的的因素敏捷開發(fā)發(fā)強(qiáng)調(diào)團(tuán)團(tuán)隊(duì)及其其成員應(yīng)應(yīng)該具備備下列要要素(續(xù)續(xù)):決策能力力。項(xiàng)目團(tuán)團(tuán)隊(duì)在項(xiàng)項(xiàng)目問題題上必須須有自主主決策權(quán)權(quán)。相互尊重重和信任任。具體體體現(xiàn)就是是良好、、高效的的溝通。。不斷學(xué)習(xí)習(xí)。團(tuán)隊(duì)?wèi)?yīng)應(yīng)從多種種來源((包括過過去的失失?。┲兄袑W(xué)習(xí)到到經(jīng)驗(yàn)。。自我組織織。團(tuán)隊(duì)自自己組織織自身、、安排進(jìn)進(jìn)度來完完成項(xiàng)目目,并對對此負(fù)責(zé)責(zé)。3.3敏捷過程程模型在敏捷開開發(fā)思想想的指導(dǎo)導(dǎo)下,業(yè)業(yè)界提出出了很多多敏捷過過程模型型,其中中影響較較大的有有:極限編程程(eXtremeProgramming,XP)Scrum特征驅(qū)動動開發(fā)(FDD)精益軟件件開發(fā)(LSD)敏捷統(tǒng)一一過程(AUP)等等這里簡要要介紹一一下極限編編程3.4極限編程程策劃設(shè)計編碼測試測試驅(qū)動動開發(fā)發(fā)布極限編程程過程模模型重構(gòu)用例KISS原則單元測試試持續(xù)集成成面向?qū)ο笙箝_發(fā)方方法3.4極限編程程極限編程程(XP)是使用用最廣泛泛的一種種敏捷軟軟件過程程。XP定義了五五個有重重要意義義的要素:溝通:強(qiáng)調(diào)口口頭的、、面對面面的交流流簡明:為了簡簡化設(shè)計計,只對對當(dāng)前的的需要做做設(shè)計。。當(dāng)設(shè)計計需要改改進(jìn)時,,使用重構(gòu)來實(shí)現(xiàn)。。反饋:通過測測試、增增量交付付和持續(xù)續(xù)集成等等手段,,快速獲獲得反饋饋鼓勵:鼓勵符符合極限限精神的的實(shí)踐。。例如,,盡可能能減少過過度設(shè)計計。尊重:敏捷團(tuán)團(tuán)隊(duì)?wèi)?yīng)在在內(nèi)部成成員之間間,以及及內(nèi)部成成員與其其他利益益相關(guān)者者之間,,灌輸相相互尊重重的思想想。減少少推諉和和扯皮,,增加協(xié)協(xié)作。3.4極限編程程XP使用面向?qū)ο笙蠓椒ㄗ鳛橥扑]薦的開發(fā)發(fā)范型XP包含了4個框架活活動的規(guī)規(guī)則和方方法:策劃:開始于傾傾聽,其其目的是是使團(tuán)隊(duì)隊(duì)成員理理解軟件件的背景景以及感感受主要要需求。。傾聽產(chǎn)生生一系列列“用戶戶故事””(用例)。每個個用例由由客戶標(biāo)標(biāo)明權(quán)值值(即用用例的優(yōu)優(yōu)先級))XP團(tuán)隊(duì)評估估每個用用例并估估算期開開發(fā)時間間成本((以周為為單位))。成本本過高的的用例會會被進(jìn)一一步分成成若干個個子用例例并重新新賦予權(quán)權(quán)值和計計算成本本。3.4極限編程程策劃(續(xù)續(xù)):客戶和XP團(tuán)隊(duì)共同同決定下下一個要要發(fā)布的的軟件增增量中應(yīng)應(yīng)包含哪哪些用例例。通常常應(yīng)該選選擇優(yōu)先先實(shí)現(xiàn)那那些具有有最高權(quán)值值或風(fēng)險險最大的的用例。。XP團(tuán)隊(duì)根據(jù)據(jù)之前迭迭代輪次次中軟件件增量的的開發(fā)速速度來估估計后續(xù)續(xù)版本的的開發(fā)速速度,并并相應(yīng)調(diào)調(diào)整開發(fā)發(fā)計劃。。在開發(fā)過過程中,,客戶可可以隨時時增加、、修改、、分解、、合并或或者刪除除用例。。XP團(tuán)隊(duì)根據(jù)據(jù)用例的的變化情情況相應(yīng)應(yīng)修改開開發(fā)計劃劃。3.4極限編程程設(shè)計:XP的設(shè)計活活動嚴(yán)格格遵循KISS原則(KeepItSimple、Stupid,保持簡簡潔)。。設(shè)計應(yīng)恰恰好實(shí)現(xiàn)現(xiàn)用例中中的要求求,不多多也不少少。不鼓鼓勵額外外(因?yàn)闉殚_發(fā)者者認(rèn)為將將來可能能會用到到)的設(shè)設(shè)計如果在某某個用例例設(shè)計中中碰到困困難,XP推薦立即即針對這這部分設(shè)設(shè)計編寫寫可執(zhí)行行的原型型,以便便及時對對設(shè)計進(jìn)進(jìn)行評估估,降低低風(fēng)險。。3.4極限編程程設(shè)計(續(xù)續(xù)):XP認(rèn)為設(shè)計計可以與與編碼同同時進(jìn)行行(設(shè)計計一部分分,編碼碼一部分分)。編編碼活動動本身就就會給XP團(tuán)隊(duì)提供供關(guān)于如如何改進(jìn)進(jìn)設(shè)計的的反饋。。設(shè)計可以以并且應(yīng)應(yīng)當(dāng)是在在構(gòu)建過過程中連連續(xù)修改改的中間間臨時產(chǎn)產(chǎn)品。((可執(zhí)行行程序才才是最終終產(chǎn)品))。修改改的方法法是重構(gòu)構(gòu)。重構(gòu):以以不改變變代碼外外部行為為(接口口)而改改進(jìn)其內(nèi)內(nèi)部結(jié)構(gòu)構(gòu)(實(shí)現(xiàn)現(xiàn))的方方式來改改進(jìn)軟件件系統(tǒng)的的過程((方法))。3.4極限編程程編碼:XP推薦使用用測試驅(qū)驅(qū)動開發(fā)發(fā)(TDD)方法來來進(jìn)行編編碼。測試驅(qū)動動開發(fā):在編寫寫實(shí)際的的功能實(shí)實(shí)現(xiàn)代碼碼之前,,先編寫寫接口和和用于檢檢測接口口行為的的一系列列單元測測試。這這樣,實(shí)實(shí)際代碼碼編寫完完成后,,就可以以立即進(jìn)進(jìn)行單元元側(cè),從從而向開開發(fā)者提提供即時時的反饋饋。XP推薦使用用結(jié)對編編程的方方式進(jìn)行行編碼。。即兩個個人同時時面對同同一臺計計算機(jī)共共同為同同一個用用例進(jìn)行行編碼。。這種編編碼方式式是否適適合我國國的文化化還存在在很大疑疑問。3.4極限編程程測試:TDD,即在編編碼開始始之前就就建立單單元測試試是XP方法的關(guān)關(guān)鍵之一一。單元測試試的另一一個好處處是為重重構(gòu)提供供一個安安全網(wǎng)。。XP推薦使用用持續(xù)集集成,即即每天都都進(jìn)行系系統(tǒng)的集集成和確確認(rèn)測試試。這樣樣既可以以為團(tuán)隊(duì)隊(duì)和客戶戶實(shí)時提提供項(xiàng)目目的進(jìn)展展情況,,也可以以在問題題發(fā)生時時盡早提提出預(yù)警警。3.4極限編程程的缺點(diǎn)點(diǎn)要求客戶戶全程參參與整個個項(xiàng)目,,這一點(diǎn)點(diǎn)在實(shí)際際中不容容易做到到不是所有有的編程程語言和和工具都都能良好好的支持持重構(gòu)要求團(tuán)隊(duì)隊(duì)保持長長期相對對穩(wěn)定對團(tuán)隊(duì)成成員的能能力、素素質(zhì)和自自覺性要要求較高高對團(tuán)隊(duì)管管理者的的領(lǐng)導(dǎo)能能力提出出了很高高的要求求口頭交流流和自組組織在大大規(guī)模的的團(tuán)隊(duì)和和項(xiàng)目中中往往難難以實(shí)現(xiàn)現(xiàn)3.5統(tǒng)一過程程統(tǒng)一過程程(UnifiedProcess,簡稱UP)是一種流流行的、、構(gòu)造面向?qū)ο笙笙到y(tǒng)的、、迭代式軟件開發(fā)發(fā)過程特別的,,Rational統(tǒng)一過程程(簡稱稱RUP)是對UP的詳細(xì)精精化,并并且已經(jīng)經(jīng)被廣泛泛采用。。UP試圖從傳傳統(tǒng)軟件件過程中中挖掘出出最好的的特性,,把普遍遍認(rèn)可的的最佳實(shí)實(shí)踐結(jié)合合起來,,成為聯(lián)聯(lián)系緊密密并且具具有良好好文檔描描述的過過程。UP將開發(fā)分分成起始始、細(xì)化化、構(gòu)造造和交付付4個階段,,每個階階段都提提出了若若干可選選的最佳佳實(shí)踐((方法))和制品品(執(zhí)行行方法得得到的輸輸出)。。團(tuán)隊(duì)可以以根據(jù)項(xiàng)項(xiàng)目實(shí)際際需要選選擇合適適的最佳佳實(shí)踐和和制品,,并適當(dāng)當(dāng)調(diào)整過過程。將敏捷開開發(fā)的思思想應(yīng)用用于統(tǒng)一一過程,,就形成成了敏捷捷統(tǒng)一過過程(AUP)3.5統(tǒng)一過程程四、軟件件工程方方法軟件工程程方法簡簡介面向數(shù)據(jù)據(jù)和功能能的方法法面向?qū)ο笙蟮姆椒ǚńy(tǒng)一建模模語言((UML)4.1軟件工程程方法簡簡介軟件工程程方法:軟件開開發(fā)活動中具具體問題題的解決決方法。。軟件工程程方法是是完成軟軟件工程程項(xiàng)目的的技術(shù)手手段。它它支持軟軟件開發(fā)發(fā)與維護(hù)護(hù)的全部部過程。。軟件工程程過程由方方法的使使用活動動組成。軟件工程程方法劃劃分為::面向數(shù)據(jù)據(jù)和功能能的方法法結(jié)構(gòu)化分分析方法法Jackson方法Warnier方法面向?qū)ο笙蠓椒?.2面向數(shù)據(jù)據(jù)和功能能的方法法這類方法法以軟件件系統(tǒng)所所處理的的數(shù)據(jù)或或其功能能為核心心分析對對象。其對應(yīng)于傳傳統(tǒng)對軟軟件的理解:“軟件=數(shù)據(jù)結(jié)構(gòu)構(gòu)+算法”4.2..1Jackson方法Jackson方法是最最典型的的面向數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)的設(shè)計計方法首先分析析數(shù)據(jù)的的層次結(jié)結(jié)構(gòu),生生成輸入入、輸出出數(shù)據(jù)結(jié)結(jié)構(gòu)圖,,然后將處處理模塊塊化,并并在此基基礎(chǔ)上進(jìn)進(jìn)行詳細(xì)細(xì)設(shè)計和和編程。。Jackson方法有JSP(JacksonStructureProgramming)和改進(jìn)進(jìn)的JSD(JacksonSystemdevelopment)方法。。4.2..1Jackson方法的發(fā)發(fā)展二十世紀(jì)紀(jì)七十年年代Jackson提出了軟軟件工程程領(lǐng)域中中著名的的Jackson方法,當(dāng)當(dāng)時它只只用于軟軟件設(shè)計計。二十世紀(jì)紀(jì)八十年年代初,,Jackson又對它進(jìn)進(jìn)行了多多方面的的擴(kuò)充和和完善,,最終發(fā)發(fā)展成為為一種需需求分析析方法。。Jackson方法的核核心思想想是:根據(jù)作用用于數(shù)據(jù)據(jù)的行為為序列的的結(jié)構(gòu)(順序、選選擇與重重復(fù)),建立目目標(biāo)軟件件系統(tǒng)的的模型然后在軟軟件設(shè)計計階段將將模型演演化為相相應(yīng)的程程序結(jié)構(gòu)構(gòu)。4.2..1Jackson方法的主主要步驟驟分析并確確定輸入入數(shù)據(jù)和和輸出數(shù)數(shù)據(jù)的邏邏輯結(jié)構(gòu)構(gòu)。找出輸入入數(shù)據(jù)結(jié)結(jié)構(gòu)和輸輸出數(shù)據(jù)據(jù)結(jié)構(gòu)中中有對應(yīng)應(yīng)關(guān)系的的數(shù)據(jù)單單元。從描述數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)的Jackson圖導(dǎo)出描描述程序序結(jié)構(gòu)的的Jackson圖。列出所有有的操作作和條件件,并把把他們分分配到程程序結(jié)構(gòu)構(gòu)圖中去去。4.2..1Jackson方法基本本元素*表示重復(fù)O表示選擇一個分支重復(fù)結(jié)構(gòu)AB*順序結(jié)構(gòu)ABCD選擇結(jié)構(gòu)ABCDOOO順序結(jié)構(gòu)構(gòu)偽碼::AseqBCDAend重復(fù)結(jié)構(gòu)構(gòu)偽碼::Aiteruntil(或while)condBAend選擇結(jié)構(gòu)構(gòu)偽碼::Aselectcond1BAorcond2CAorcond3DAend4.2..1Jaskson方法示例例例:一個個正文文文件由若若干個記記錄組成成,每個個記錄是是一個字符串,,即:要求:統(tǒng)計每個記錄錄中空格格字符的的個數(shù),,以及文文件中空空格字符符的總個個數(shù)。輸出數(shù)據(jù)據(jù)格式:每復(fù)制一行行輸入字字符串之之后,另另起一行行印出這這個字符符串中的的空格數(shù)數(shù),最后后印出文文件中空空格的總總個數(shù)。。4.2..1Jaskson方法示例例例,輸入入:HelloworldIamastudentTodayisafineday!輸出:Helloworld1Iamastudent3Todayisafineday!484.2..1Jaskson方法示例例步驟1:繪制輸輸入和輸輸出數(shù)據(jù)據(jù)結(jié)構(gòu)正文文件字符串*I字符*空格o非空格oIS輸出表格表格體空格總數(shù)串信息*I字符串空格數(shù)輸入結(jié)構(gòu)構(gòu)輸出結(jié)構(gòu)4.2..1Jaskson方法示例例步驟2:找出輸入入數(shù)據(jù)結(jié)結(jié)構(gòu)和輸輸出數(shù)據(jù)據(jù)結(jié)構(gòu)有有對應(yīng)關(guān)關(guān)系的數(shù)數(shù)據(jù)單元元,然后后,用Jackson圖表示按按映射規(guī)規(guī)則導(dǎo)出出相應(yīng)的的程序結(jié)結(jié)構(gòu)。統(tǒng)計空格格程序體打印總數(shù)處理字符串*打印字符串分析字符符串打印空格數(shù)分析字符符*I處理空格格°處理非空空格°S正文文件字符串*I字符*空格o非空格oIS輸出表格表格體空格總數(shù)串信息*I字符串空格數(shù)I4.2..1Jaskson方法示例例步驟3:列出所所有的操操作和條條件,并并把它們們分配到到程序結(jié)結(jié)構(gòu)圖的的適當(dāng)位位置。(1)停止((2)打開文文件(3)關(guān)閉文文件((4)印出字字符串(5)印出空空格數(shù)((6)印出空空格總數(shù)數(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)計空格格程序體印總數(shù)處理字符符串*印字符串串分析字符符串印空格數(shù)數(shù)分析字符符*I(2))處理空格格°處理非空空格°29113161012489571313I(1))S(3))4.2..1Jaskson方法示例例步驟4:用Jackson偽代碼寫寫出與程程序結(jié)構(gòu)構(gòu)圖對應(yīng)應(yīng)的過程程性表示示。打開文件件讀入字符符串totalsum:==0程序體iteruntil文件結(jié)束束處理字符符串seq打印字符串seq印出字符符串打印字符串endsum::=0pointer:=1分析字符符串iteruntil字符串結(jié)結(jié)束分析字符符select字符是空空格處理空格格seqsum::=sum+1pointer:=pointer+1處理空格格end分析字符符or字符不是是空格處理非空空格seqpointer:=pointer+1處理非空空格end分析字符符end分析字符符串end打印空格數(shù)seq打印出空格數(shù)數(shù)目打印空格數(shù)endtotalsum::=totalsum+sum讀入字符符串處理字符符串end程序體end打印總數(shù)seq打印出空格總總數(shù)打印總數(shù)end關(guān)閉文件件停止統(tǒng)計空格格end4.2.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北武漢市某國企寫字樓會務(wù)崗位招聘1人筆試參考題庫及答案解析
- 2026廣東佛山榮山中學(xué)面向社會招聘臨聘教師4人考試參考試題及答案解析
- 2026天津市口腔醫(yī)院專業(yè)技術(shù)崗位工作人員(人事代理制)招聘27人考試備考試題及答案解析
- 2026年西北工業(yè)大學(xué)清潔高效透平動力裝備全國重點(diǎn)實(shí)驗(yàn)室科研助理招聘備考題庫及完整答案詳解1套
- 2026年銅仁啟明高級中學(xué)招聘3-8人備考題庫有答案詳解
- 2026年湖北建始縣花坪鎮(zhèn)民族中心衛(wèi)生院公開招聘工作人員的備考題庫參考答案詳解
- 2026年重慶水務(wù)集團(tuán)股份有限公司招聘64人備考題庫及一套答案詳解
- 2026年文瀾苑幼兒園招聘備考題庫及參考答案詳解
- 2026年青海省生態(tài)環(huán)保產(chǎn)業(yè)有限公司招聘備考題庫及答案詳解參考
- 廈外海滄附校2026年公開招聘非在編教師備考題庫及一套完整答案詳解
- 2026屆1月浙江鎮(zhèn)海中學(xué)首考模擬英語試卷
- 2025中數(shù)聯(lián)物流科技(上海)有限公司招聘筆試歷年參考題庫附帶答案詳解
- 湖南佩佩教育戰(zhàn)略合作學(xué)校2026屆高三1月第二次聯(lián)考語文試題
- 幼兒園家長學(xué)校培訓(xùn)課件
- 重慶酒吧市場行業(yè)分析報告
- 電氣控制及PLC應(yīng)用-項(xiàng)目化教程 課件 2.1 項(xiàng)目二 認(rèn)識三菱系列PLC
- 優(yōu)衣庫的論文
- 《企業(yè)會計準(zhǔn)則應(yīng)用指南(2025年版)》
- RECP的課件教學(xué)課件
- 請做飯人員合同協(xié)議
- 864《商務(wù)英語4》開放大學(xué)期末考試機(jī)考題庫(按拼音)
評論
0/150
提交評論