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