資源描述:
《敏捷的軟體開發(fā)流程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、敏捷的軟體開發(fā)流程 速度是企業(yè)競(jìng)爭(zhēng)致勝的關(guān)鍵因素,軟體專案的最大挑戰(zhàn)在于一方面要應(yīng)付變動(dòng)中的需求,一方面要在緊縮的時(shí)程內(nèi)完成專案,所以軟體團(tuán)隊(duì)除了在技術(shù)上必須日益精進(jìn),更需要運(yùn)用有效的開發(fā)流程,以確保團(tuán)隊(duì)能夠發(fā)揮綜效。這正是AgileProcess(敏捷的軟體開發(fā)流程)于近年來(lái)興起的主要原因,本文將介紹數(shù)種廣為接受的軟體開發(fā)流程,及其在運(yùn)用上的建議。 一、AgileProcess-敏捷的開發(fā)流程 幾乎所有的軟體專案都會(huì)在起始階段面臨選擇開發(fā)流程的困難,一種是完備的開發(fā)流程,另一種是簡(jiǎn)易輕便的流程。雖然我們了解采用完備的開發(fā)流程可以提高軟體
2、的品質(zhì),但是因?yàn)榍啡比肆?、工具與時(shí)間,我們常會(huì)被迫采用簡(jiǎn)化的流程,但事與愿違,大部分的情況我們?nèi)匀浑y以在預(yù)算內(nèi)及時(shí)完成專案?! gileProcess(敏捷的開發(fā)流程)是一種軟體開發(fā)流程的泛稱,AgileProcess具有下列幾項(xiàng)共通的特性: 1.客戶與開發(fā)人員形成密切合作的團(tuán)隊(duì),因?yàn)榭蛻魺o(wú)法于初期定義完整的規(guī)格,而開發(fā)人員于開發(fā)過(guò)程中也常常無(wú)法知悉外在環(huán)境或業(yè)務(wù)的變動(dòng),所以需要兩者密切合作方能開發(fā)適用的軟體?! ?.專案最終的目標(biāo)是可執(zhí)行的程式,因此所有的中間產(chǎn)品必須經(jīng)過(guò)審慎評(píng)估,確認(rèn)有助于最終目標(biāo),才需要制作中間產(chǎn)品?! ?.采用Ite
3、rative與Incremental方式分階段進(jìn)行,密集review是否符合需求?! ?.流程可以簡(jiǎn)單,但規(guī)劃與執(zhí)行必須嚴(yán)謹(jǐn)?! ?.強(qiáng)調(diào)團(tuán)隊(duì)合作,賦予高度的責(zé)任,團(tuán)隊(duì)有自主權(quán)得以因應(yīng)變化做調(diào)整?! 《UP開發(fā)流程-RationalUnifyProcess RUP為IBMRational公司經(jīng)過(guò)多年的研發(fā)與經(jīng)驗(yàn)所提出的軟體開發(fā)流程,其內(nèi)容含蓋Businessmodeling,RequirementModeling,LogicalDesign,Implementation,Testing,Deployment等軟體開發(fā)生命周期的直接工作,與
4、ProjectManagement,Change&ConfigurationManagement,Environmentsupport等支援性工作。RUP的內(nèi)容非常豐富,不同的專案需要不同調(diào)整,IBMRational提供RUPworkbench工具,方便調(diào)整RUP,并公布于Web,方便專案成員遵循統(tǒng)一的流程規(guī)范進(jìn)行工作?! UP的主要精神為:1.專案進(jìn)行采用Iterative程序分階段漸進(jìn)地完成專案功能;2.廣泛使用VisualModeling于商業(yè)需求分析、系統(tǒng)分析與系統(tǒng)設(shè)計(jì);3.強(qiáng)調(diào)架構(gòu)設(shè)計(jì);4.對(duì)每項(xiàng)工作所需要的技術(shù)、工具、做法、范本、
5、檢查項(xiàng)目均有詳細(xì)的定義,架構(gòu)完備且具有可調(diào)整的彈性?! ∫?yàn)镽UP的流程規(guī)范與相關(guān)技術(shù)較復(fù)雜,所以導(dǎo)入時(shí)必須注意幾個(gè)因素:1.主管的支持以確保足夠的資源投入;2.分階段導(dǎo)入;3.適當(dāng)?shù)挠?xùn)練與密切的顧問咨詢;4.使用Modeling技術(shù)時(shí)需要考量Coding的實(shí)作環(huán)境;5.良好團(tuán)隊(duì)的管理,以溝通、耐心與堅(jiān)持解決變革的人性阻力?! ∪?、XP開發(fā)流程-eXtremeProgramming XP亦稱為終極流程,是最輕量級(jí)的開發(fā)流程,其最主要的精神是『在客戶有系統(tǒng)需求時(shí),給予及時(shí)滿意的可執(zhí)行程式』,所以最適合需求快速變動(dòng)的專案。XP經(jīng)過(guò)6年的實(shí)作與修改
6、,已演化為精致的開發(fā)流程,但仍不失其精簡(jiǎn)的特性,它強(qiáng)調(diào)客戶所要的是workable的執(zhí)行碼,所以把與撰寫程式無(wú)關(guān)的工作降至最低,并要求客戶與開發(fā)人員最好以side-by-side的方式一起工作?! P開發(fā)流程的基本步驟為:1.開發(fā)人員隨時(shí)可以和客戶進(jìn)行有效溝通,撰寫userstories以確認(rèn)需求。2.簡(jiǎn)易快速的系統(tǒng)設(shè)計(jì),撰寫?yīng)毩⒌尿?yàn)證程式以解決特殊困難的問題,找出演算法即可丟棄驗(yàn)證程式。3.規(guī)劃多次小型階段的專案計(jì)劃,以最快速度完成每一階段的程式交付客戶,客戶負(fù)責(zé)Acceptancetests;4.Coding前必須完成UnitTest與A
7、cceptancetests程序,所有模組整合前都須經(jīng)過(guò)UnitTests;5.開發(fā)人員必須快速回應(yīng)Bug與需求變更;6.要求二人一組使用一臺(tái)電腦設(shè)計(jì)程式,當(dāng)一人coding時(shí),另一人負(fù)責(zé)思考與設(shè)計(jì);7.程式必須符合程式規(guī)范,并常做程式的重整(Refactoring)。 XP屬于較精簡(jiǎn)的流程,于導(dǎo)入應(yīng)注意幾件事情:1.最好有顧問給予協(xié)助;2.持續(xù)的Review;3.可適當(dāng)調(diào)整流程,但不可失去其基本精神。 四、SCRUM開發(fā)流程 SCRUM開發(fā)流程是AgileProcess的一種,以英式橄欖球爭(zhēng)球隊(duì)形(Scrum)為名,基本假設(shè)是『開發(fā)軟體
8、就像開發(fā)新產(chǎn)品,無(wú)法一開始就能定義FinalProduct的規(guī)程,過(guò)程中需要研發(fā)、創(chuàng)意、嘗試錯(cuò)誤,所以沒有一種固定的流程可以保證專案成功』。Scrum