敏捷開發(fā)的應(yīng)用
1、敏捷軟件的開發(fā)方法
敏捷方法是來源于實(shí)踐的方法,可在非常短的迭代周期內(nèi)應(yīng)對(duì)需求的不斷變化,并且提供了輕量級(jí)的軟件項(xiàng)目管理和開
發(fā)、維護(hù)的思路。所謂輕量級(jí)就是能根據(jù)需求變化快速地做出反應(yīng)。敏捷方法是“適應(yīng)性”而非“預(yù)測(cè)性”,目的是成為適應(yīng)變化
的技術(shù)過程。而傳統(tǒng)重量級(jí)的軟件開發(fā)方法是試圖對(duì)一個(gè)軟件開發(fā)項(xiàng)目在很長的時(shí)間跨度內(nèi)做出詳細(xì)的計(jì)劃,然后依照計(jì)劃進(jìn)
行技術(shù)開發(fā),在項(xiàng)目計(jì)劃制定完成后拒絕變化,這顯然是不可行的。敏捷軟件開發(fā)方法是“面向人”的而非“面向過程”的,強(qiáng)調(diào)
軟件的開發(fā)應(yīng)當(dāng)是一項(xiàng)愉快的工作,應(yīng)使軟件開發(fā)工作能夠利用人的特點(diǎn),充分發(fā)揮技術(shù)人員的創(chuàng)造能力。
敏捷開發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目
的成果都經(jīng)過測(cè)試,具備集成和可運(yùn)行的特征。也就是把1個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完
成,在此過程中軟件一直處于可使用狀態(tài)。
2、敏捷開發(fā)平臺(tái)的實(shí)現(xiàn)
2. 1敏捷開發(fā)流程
敏捷開發(fā)平臺(tái)主要用于開發(fā)基于J2EE架構(gòu)MVC模式的Web項(xiàng)目,其架構(gòu)主要由開發(fā)環(huán)境(Eclipse及其插件、Struts、
Hibernate等)、源代碼倉庫(Subversion)、構(gòu)建服務(wù)器(Cruise Control、JUnit、Ant及代碼檢驗(yàn)?zāi)KCheck Style)、Web
服務(wù)器(Tomcat、HttpUnit、JMeter)等幾部分組成。圖1給出了敏捷開發(fā)系統(tǒng)流程。
首先需要從源代碼倉庫中獲取全部最新的源代碼,然后編寫程序的代碼和相應(yīng)的單元測(cè)試代碼,以保證程序能夠通過編譯并
且所有的單元測(cè)試全部通過,再提交代碼,將代碼檢入到源代碼倉庫中。持續(xù)集成工具Cruise Control的源代碼監(jiān)視及管理模
塊監(jiān)測(cè)到源代碼倉庫中的代碼發(fā)生變化后,由Ant執(zhí)行任務(wù),首先初始化目標(biāo)目錄,將目標(biāo)目錄清空后,創(chuàng)建源程序目錄、測(cè)
試程序目錄和class目錄,接著從源代碼倉庫中檢出源代碼到源程序目錄,檢出測(cè)試代碼到測(cè)試程序目錄,然后調(diào)用代碼檢驗(yàn)
工具Check Style檢驗(yàn)源代碼是否符合事先配置好的代碼規(guī)范,再編譯源程序生成目標(biāo)類,并調(diào)用JUnit測(cè)試框架進(jìn)行測(cè)試,如
果測(cè)試全部通過,即可將整個(gè)Web應(yīng)用打成1個(gè)WAR包,并將這個(gè)WAR包發(fā)布到Web服務(wù)器。
2. 2敏捷開發(fā)平臺(tái)的搭建
在敏捷開發(fā)過程中,通過配置管理軟件對(duì)源代碼進(jìn)行管理和控制,就可以實(shí)現(xiàn)任何開發(fā)人員都能夠很容易地獲取到全部最新
的源代碼。關(guān)鍵的環(huán)節(jié)是自動(dòng)化,能夠自動(dòng)根據(jù)配置的時(shí)間間隔讀取配置文件并進(jìn)行循環(huán)構(gòu)建。構(gòu)建過程中所做的工作主要是
訪問源代碼倉庫,檢測(cè)源代碼倉庫中代碼是否發(fā)生變化。如果發(fā)生變化,應(yīng)獲取源代碼的最新版本,并根據(jù)配置信息首先對(duì)代
碼進(jìn)行檢驗(yàn),再對(duì)代碼進(jìn)行一次構(gòu)建,創(chuàng)建一個(gè)日志文件,最后向項(xiàng)目組所有人員通知代碼的檢驗(yàn)結(jié)果和構(gòu)建結(jié)果。如圖2所
示敏捷開發(fā)平臺(tái)框架。敏捷開發(fā)框架是基于SOA的軟件開發(fā)模式設(shè)計(jì)并運(yùn)用J2EE技術(shù)實(shí)現(xiàn)的應(yīng)用程序開發(fā)框架。該系統(tǒng)綜合利用了ESB技術(shù)、EIP
設(shè)計(jì)模式、IOC模式、構(gòu)件設(shè)計(jì)、管理、組裝技術(shù)以及數(shù)據(jù)集成和數(shù)據(jù)交換等關(guān)鍵技術(shù),具有良好的與其他軟件開發(fā)管理系統(tǒng)
接口的能力。該系統(tǒng)并非直接為最終用戶服務(wù),而是為開發(fā)最終用戶的應(yīng)用系統(tǒng)提供一套工具和運(yùn)行平臺(tái)。它可以使開發(fā)人員
專注于應(yīng)用系統(tǒng)核心業(yè)務(wù)邏輯的分析、設(shè)計(jì)和開發(fā),極大地增強(qiáng)了軟件應(yīng)用的伸縮性和靈活性?;诿艚蓍_發(fā)平臺(tái)開發(fā)的應(yīng)用
程序符合松散耦合、可重構(gòu)的系統(tǒng)需求。
3、敏捷開發(fā)方法
VISIONONE公司在2008年6月至7月進(jìn)行了關(guān)于敏捷開發(fā)的問卷調(diào)查,根據(jù)得到的來自80多個(gè)國家的超過2300份問卷反饋
得知,95%的公司在軟件開發(fā)中使用了敏捷方法,其中超過60%的公司使用超過了一年時(shí)間。
Scrum和XP作為最重要的兩種敏捷方法,超過70%的公司在使用,下文簡要介紹這兩種常用的敏捷開發(fā)方法。
敏捷方法是數(shù)十種“方法集”的統(tǒng)稱(“方法集”就是為了開發(fā)軟件而定期做的每一件事情),包括比較有代表性的Scrum、
Extremeprogramming (后文簡稱XP),Unified Process和Crystal Clear等。這些“方法集”共同的特點(diǎn)就是輕量級(jí),迭代增量
式的開發(fā)和交付,以及適應(yīng)需求變化。
3.1 敏捷方法之一:Scrum
SCrum的創(chuàng)始人是Jeff Sutherland和Ken Schwaber,他們?cè)?995年提出了Scrum方法。近年來Scrum已經(jīng)變成了敏捷開發(fā)中
最流行的方法之一。Scrum使用“產(chǎn)品backlog”、“Sprint backlog”和每日例會(huì)(Daily Scrum Meeting)分別對(duì)整個(gè)項(xiàng)目、每個(gè)
迭代周期和每個(gè)工作日進(jìn)行計(jì)劃完成情況追蹤,并根據(jù)每日例會(huì)、Sprint計(jì)劃會(huì)議和Sprint評(píng)審會(huì)議得到的反饋,不斷對(duì)項(xiàng)目
開發(fā)計(jì)劃和過程進(jìn)行調(diào)整。
3.2 敏捷方法之二:XP
XP是一個(gè)非常著名的敏捷方法,最早是由Kent Beck在1996年提出的。XP注重使用更短的迭代周期(1至2周)和大量的工
程實(shí)踐,包括用戶故事、結(jié)對(duì)編程、持續(xù)集成、測(cè)試驅(qū)動(dòng)開發(fā),重構(gòu)和自動(dòng)化測(cè)試等。
4、敏捷方法的應(yīng)用
在歐美外包項(xiàng)目中,需求分析工作貫穿于產(chǎn)品開發(fā)的始終,而且需求變更會(huì)經(jīng)常發(fā)生。敏捷方法作為“擁抱”需求變化的方
法,是最適合這類項(xiàng)目的。
另一方面,敏捷方法采用短周期迭代和增量交付的方式,可以最大程度的避免需求理解的偏差,并且?guī)椭蛻裘鞔_和完善需
求。特別是Scrum在每次迭代結(jié)束的時(shí)候,開發(fā)團(tuán)隊(duì)通過產(chǎn)品演示闡明了對(duì)需求的理解,同時(shí)根據(jù)在演示中雙方的溝通,明確
一些有歧義的需求,并且引導(dǎo)客戶對(duì)需求進(jìn)行進(jìn)一步的完善。
除此之外,敏捷方法也能滿足歐美客戶對(duì)開發(fā)過程的其他方面要求。比如,客戶希望開發(fā)團(tuán)隊(duì)采用本公司熟悉或者與本公司
軟件開發(fā)類似的開發(fā)方法。
事實(shí)上,敏捷方法被世界上越來越多的公司和團(tuán)隊(duì)使用,并且項(xiàng)目成功率和質(zhì)量很高,歐美很多公司也有敏捷方法的實(shí)踐,
所以一般來說歐美客戶很容易接受團(tuán)隊(duì)使用敏捷方法。再比如,客戶希望可以經(jīng)常得到可以運(yùn)行的版本,幫助他們通過給潛在
終端客戶的演示,了解市場(chǎng)和最終客戶的需求,這無疑也是敏捷方法的強(qiáng)項(xiàng)。
5、結(jié)束語
敏捷方法作為近年流行的一種軟件開發(fā)方法,由于適應(yīng)歐美軟件項(xiàng)目需求頻繁變化的特點(diǎn),同時(shí)滿足客戶對(duì)于短周期增量
交付的要求,在歐美軟件外包行業(yè)中得到了越來越廣泛的應(yīng)用。經(jīng)過多年的時(shí)間證明,敏捷方法能夠提高開發(fā)團(tuán)隊(duì)的生產(chǎn)率,
產(chǎn)品的質(zhì)量和客戶的滿意度。對(duì)于軟件外包服務(wù)商而言,在公司組織級(jí)需要采取相應(yīng)的措施,以對(duì)敏捷團(tuán)隊(duì)進(jìn)行支持和監(jiān)控,
并滿足客戶不斷提高的要求
組織簡介 | 聯(lián)系我們 | Copyright 2002 ® UML軟件工程組織 京ICP備10020922號(hào)京公海網(wǎng)安備110108001071號(hào)