国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Agile軟件開發(fā)研究綜述

2020-05-18 12:07閆鵬斌丘仕能
關(guān)鍵詞:成熟度增量軟件

閆鵬斌, 吳 揚(yáng), 丘仕能

(1.華北水利水電大學(xué) 信息工程學(xué)院,河南 鄭州 450046; 2.廣西大藤峽水利樞紐開發(fā)有限責(zé)任公司 信息中心,廣西 南寧 530000)

0 引言

軟件產(chǎn)業(yè)作為我國(guó)基礎(chǔ)性和戰(zhàn)略性產(chǎn)業(yè),在促進(jìn)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展中占據(jù)著舉足輕重的地位。優(yōu)良的軟件開發(fā)模型或方法能開發(fā)出高質(zhì)量軟件的基礎(chǔ),保證客戶對(duì)交付軟件的滿意度,提升軟件組織整體的核心競(jìng)爭(zhēng)力,從而促進(jìn)軟件產(chǎn)業(yè)的蓬勃發(fā)展。

軟件工程的核心任務(wù)之一就是不斷提高軟件產(chǎn)品的質(zhì)量和效率,降低軟件開發(fā)預(yù)算和風(fēng)險(xiǎn),為達(dá)到此目的,相關(guān)研究部門的研究者和實(shí)踐者提出了眾多的軟件工程方法。1986年,為交付軍方軟件產(chǎn)品,美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所研發(fā)了軟件成熟度模型(Capability Maturity Model for Software,CMMSW),隨后集成多個(gè)成熟度模型(Capability Maturity Model Integration,CMMI),其中關(guān)于軟件開發(fā)的成熟度模型用于評(píng)價(jià)軟件機(jī)構(gòu)的軟件過程能力成熟度和指導(dǎo)軟件過程改進(jìn),CMMSW/CMMI模型在很大程度上提高了軟件的質(zhì)量與效率,降低了軟件開發(fā)的成本與風(fēng)險(xiǎn)。

然而,隨著軟件行業(yè)的飛速發(fā)展,人們對(duì)軟件產(chǎn)品的要求越來越高,高質(zhì)量的軟件功能、復(fù)雜的軟件系統(tǒng)、快速變化的軟件需求等,使得軟件組織面臨新的挑戰(zhàn),以Scrum和極限編程為代表的Agile軟件開發(fā)逐漸得到軟件組織的認(rèn)可,越來越多的軟件組織開始采用Agile軟件開發(fā)。它們以人為核心,采用迭代的、增量的軟件開發(fā)方式,能夠適應(yīng)多變的軟件需求,快速交付高質(zhì)量的工作軟件,實(shí)現(xiàn)效益的最大化。

1 Agile軟件開發(fā)

NAGEL R N于1991年在21stCenturyManufacturingEnterpriseStrategy中首次提出敏捷性的概念。2001年2月,BECK K和BEEDLE M等知名軟件工程師、軟件咨詢師共同簽署了“敏捷軟件開發(fā)宣言”[1],代表著一種不同于傳統(tǒng)軟件開發(fā)模型的新的軟件開發(fā)方法的誕生——Agile軟件開發(fā),敏捷軟件開發(fā)宣言的核心體現(xiàn)在“四個(gè)價(jià)值”和“十二個(gè)原則”,其包含的“四個(gè)價(jià)值”:

1)個(gè)體和交互勝過過程和工具;

2)客戶合作勝過合同談判;

3)可以工作的軟件勝過面面俱到的文檔;

4)響應(yīng)變化勝過遵循計(jì)劃。

敏捷軟件開發(fā)宣言中的價(jià)值觀都是相對(duì)的陳述,它們代表的是選擇兩種方法的權(quán)重[2],敏捷軟件開發(fā)宣言的價(jià)值觀充分顯示了其以人為本、擁抱變化的核心,“十二個(gè)原則”是對(duì)Agile軟件開發(fā)價(jià)值觀的踐行,其具體內(nèi)容見表1。

表1 Agile軟件開發(fā)的原則Tab.1 Principles of Agile software development

Agile軟件開發(fā)是一種包含軟件開發(fā)過程和項(xiàng)目管理技術(shù)與方法的價(jià)值觀、思想,它與傳統(tǒng)的軟件開發(fā)方法的理念是截然不同的,如瀑布模型,瀑布模型采用線性方法,開發(fā)流程為可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試、部署及維護(hù),在前期規(guī)劃的基礎(chǔ)上有序地完成每一個(gè)步驟,而Agile軟件開發(fā)是非線性方法,它強(qiáng)調(diào)以人為核心,通過自組織團(tuán)隊(duì)、與客戶的密切合作,采用迭代、增量的軟件開發(fā)方式,交付高價(jià)值的軟件產(chǎn)品。Agile軟件開發(fā)方法是“輕量級(jí)”方法的總稱,包含一系列軟件開發(fā)方法,有Scrum[3-6]、極限編程(Extreme Programming,XP)[6-8]、特征驅(qū)動(dòng)軟件開發(fā)(Feature Driven Development,F(xiàn)DD)[9]、自適應(yīng)軟件開發(fā)(Adaptive Software Development,ASD)、動(dòng)態(tài)系統(tǒng)開發(fā)(Dynamic Software Development Method,DSDM)[6]、水晶方法(Crystal Method)、精益軟件開發(fā)(Lean Software Development)[10]等,其中,Scrum和XP方法是最流行與最有效的敏捷項(xiàng)目開發(fā)方法與管理理念。Version One第13敏捷年度報(bào)告顯示,Scrum和Scrum/XP混合使用是軟件組織最常用的敏捷方法[11]。

2 Scrum

2.1 Scrum敏捷軟件開發(fā)流程

Scrum源于術(shù)語橄欖球,由Sutherland和Schwaber于1995年在美國(guó)提出。Scrum包括了一系列實(shí)踐和預(yù)定義角色的過程框架,采用迭代、增量的開發(fā)方式,通過內(nèi)部團(tuán)隊(duì)與用戶的高度協(xié)作,專注于交付客戶高價(jià)值的軟件產(chǎn)品,并通過開發(fā)過程中的交流和沖刺后的反思、總結(jié)來不斷地提升團(tuán)隊(duì)能力,它能夠很好地應(yīng)對(duì)快速變化的需求,頻繁地交付新版本。

當(dāng)學(xué)生能夠進(jìn)入教師創(chuàng)設(shè)的情境之中的時(shí)候,他們就能夠感受到語文學(xué)習(xí)的興趣,而成功地調(diào)動(dòng)起學(xué)生的學(xué)習(xí)興趣又能夠更好地展現(xiàn)出多媒體教學(xué)的效果。由于傳統(tǒng)的語文教學(xué)過程中課堂的氛圍相對(duì)沉悶,這種沉悶的氣氛對(duì)教學(xué)工作的開展和學(xué)生的學(xué)習(xí)相對(duì)不利。一些心理學(xué)家通過大量的研究總結(jié)出,良好的課堂氛圍能夠幫助學(xué)生保持輕松的心情,學(xué)生在這種情況下進(jìn)行學(xué)習(xí)往往能夠得到更好的學(xué)習(xí)效果。農(nóng)村小學(xué)語文教師在對(duì)學(xué)生進(jìn)行教學(xué)的時(shí)候可以適當(dāng)?shù)剡\(yùn)用多媒體技術(shù),在創(chuàng)設(shè)情境的過程中考慮到學(xué)生的興趣以及學(xué)生的好奇心,構(gòu)建出一種探究的氣氛。

Scrum過程框架定義了實(shí)施Scrum的流程,Scrum把整個(gè)項(xiàng)目開發(fā)周期分成若干個(gè)迭代,稱為Sprint,時(shí)間可以根據(jù)項(xiàng)目需求制定為1~4 w,開發(fā)團(tuán)隊(duì)根據(jù)產(chǎn)品待開發(fā)項(xiàng)的優(yōu)先級(jí)開發(fā)級(jí)別高的條目,通過Sprint評(píng)審會(huì)審核本次Sprint成果是否達(dá)到了效果或重新放入到項(xiàng)目待開發(fā)列表中,圖1描述了Scrum的過程框架。

圖1 Scrum過程框架Fig.1 Framework of Scrum process

2.2 Scrum中的實(shí)踐和角色

2.2.1 Scrum團(tuán)隊(duì)中的4個(gè)主要角色

1)產(chǎn)品負(fù)責(zé)人:根據(jù)客戶的需求和關(guān)注點(diǎn)定義產(chǎn)品功能,創(chuàng)建產(chǎn)品BackLog并維護(hù)Sprint BackLog優(yōu)先級(jí),在每次迭代交付時(shí)間同客戶一起評(píng)審迭代成果。

2)敏捷教練:敏捷教練向每個(gè)參與者宣傳Scrum的含義、規(guī)則,使每一位參與者遵循Scrum的實(shí)踐,并為團(tuán)隊(duì)的相互協(xié)作提供必要的幫助,以保障Scrum開發(fā)的順利實(shí)施。

3)開發(fā)團(tuán)隊(duì):開發(fā)團(tuán)隊(duì)是人數(shù)在5~9人范圍內(nèi)的跨職能、自組織的團(tuán)隊(duì),主要任務(wù)是把產(chǎn)品待開發(fā)事項(xiàng)轉(zhuǎn)化為功能增量,確保完成每個(gè)Sprint的功能。

4)客戶:主要負(fù)責(zé)向產(chǎn)品負(fù)責(zé)人傳達(dá)產(chǎn)品的需求和關(guān)注點(diǎn),確認(rèn)優(yōu)先級(jí)、產(chǎn)品的發(fā)布時(shí)間以及驗(yàn)收每次的迭代成果。

2.2.2 Scrum開發(fā)流程包含的4個(gè)儀式

1)每日站立會(huì)議:每日站立會(huì)議是團(tuán)隊(duì)成員匯報(bào)完成進(jìn)度、遇到的問題以及調(diào)整計(jì)劃的會(huì)議,通過團(tuán)隊(duì)成員間的交流和溝通,提高團(tuán)隊(duì)開發(fā)效率,時(shí)間控制在15 min。

3)迭代評(píng)審會(huì)議:團(tuán)隊(duì)成員向產(chǎn)品負(fù)責(zé)人及利益相關(guān)者展示本次迭代實(shí)現(xiàn)的增量,通過參會(huì)人員的反饋,決定本次迭代的增量是否符合迭代計(jì)劃會(huì)議做出的承諾。

4)迭代回顧會(huì)議:參會(huì)人員通過回顧本次沖刺過程,討論在本次沖刺過程中需要改進(jìn)的地方和需要保留的地方,這種方式有助于團(tuán)隊(duì)的持續(xù)改進(jìn)和優(yōu)化。

2.2.3 Scrum開發(fā)流程包含的3個(gè)工件

1)產(chǎn)品待辦事項(xiàng)列表:產(chǎn)品負(fù)責(zé)人根據(jù)估算把初期的規(guī)劃適當(dāng)?shù)胤纸獬梢粋€(gè)個(gè)待辦事項(xiàng),并按照價(jià)值、復(fù)雜性以及風(fēng)險(xiǎn)進(jìn)行優(yōu)先級(jí)排序,它是一個(gè)持續(xù)完善的動(dòng)態(tài)列表。

2)Sprint待辦事項(xiàng)列表:通過Sprint計(jì)劃會(huì)由參會(huì)人員共同決定的用戶故事,它是具體的Sprint實(shí)施計(jì)劃。優(yōu)先級(jí)越高的產(chǎn)品待辦事項(xiàng)會(huì)越早被選為Sprint待辦事項(xiàng)。

3)Sprint燃盡圖:燃盡圖是用于跟蹤Sprint沖刺的可視化視圖,通過燃盡圖可以了解到已完成的工作、將要完成的工作及時(shí)間,用來衡量本次Sprint實(shí)施與計(jì)劃的一致性。

3 極限編程XP

XP由BECK K在1996年提出。極限編程是一個(gè)輕量級(jí)的、靈巧的軟件開發(fā)方法,同時(shí)也是一個(gè)非常嚴(yán)謹(jǐn)、科學(xué)的方法[12]。XP采用迭代、增量的軟件開發(fā)方式,通過持續(xù)不斷的測(cè)試結(jié)果和反饋進(jìn)行修復(fù),適合周期短、設(shè)計(jì)簡(jiǎn)單、輕量型的軟件開發(fā),它有5個(gè)非常重要的核心要素,分別是溝通、尊重、簡(jiǎn)明、反饋和鼓勵(lì)[13]。

表2 XP的核心實(shí)踐Tab.2 The core practices of XP

XP由一系列簡(jiǎn)單卻相互依賴的實(shí)踐集合組成,這些實(shí)踐結(jié)合成優(yōu)于部分結(jié)合的整體[14],XP提出的核心實(shí)踐為軟件開發(fā)提供了指導(dǎo),開發(fā)團(tuán)隊(duì)在XP思想下根據(jù)具體情況可以靈活修改規(guī)則,表2描述了XP的核心實(shí)踐[15]。

4 使用Agile軟件開發(fā)的益處

Version One作為敏捷調(diào)查報(bào)告的提供者,在探索敏捷趨勢(shì)方面有較高權(quán)威,Version One的第12、13敏捷年度報(bào)告[11,16]顯示,使用Agile軟件開發(fā)的益處主要表現(xiàn)在兩方面:一方面表現(xiàn)為下降或降低的,比如開發(fā)項(xiàng)目的風(fēng)險(xiǎn)、開發(fā)項(xiàng)目的成本、向客戶交付成果的時(shí)間等;另一方面表現(xiàn)為提高或增強(qiáng)的,比如軟件質(zhì)量、團(tuán)隊(duì)生產(chǎn)力和效率、軟件可維護(hù)性等。圖2描述了第13敏捷年度報(bào)告中使用Agile軟件開發(fā)的益處[11]。從圖2可以看出Agile軟件開發(fā)在很多方面提高了軟件的成功率,但單一的軟件開發(fā)方法或技術(shù)并不能完全解決軟件開發(fā)所面臨的問題,Agile軟件開發(fā)關(guān)注的是項(xiàng)目開發(fā)流程和項(xiàng)目管理,它適合小型團(tuán)隊(duì)迭代、增量開發(fā),它缺乏對(duì)整個(gè)軟件組織持續(xù)改進(jìn)、優(yōu)化的能力,只有整個(gè)軟件組織能力得到提升才能提高核心競(jìng)爭(zhēng)力,具有軟件過程能力評(píng)價(jià)和指導(dǎo)過程改進(jìn)功能的CMM/CMMI成熟度模型可以作為一個(gè)很好的補(bǔ)充。

圖2 使用Agile軟件開發(fā)的益處Fig.2 Benefits of using Agile software development

CMM/CMMI和敏捷軟件開發(fā)模型相結(jié)合使用的反對(duì)態(tài)度一直存在,但有許多國(guó)內(nèi)外研究者和實(shí)踐者證實(shí)了它們是可以相互結(jié)合使用的。CMMI研究機(jī)構(gòu)指出,2015年約70%的軟件評(píng)估組織使用一種或多種Agile軟件開發(fā)方法,在最新發(fā)布的CMMI V2.0版本中,明確提出了指導(dǎo)Agile軟件開發(fā)的使用,并有許多文獻(xiàn)[17-22]提出將CMM/CMMI和Agile軟件開發(fā)結(jié)合使用,以促進(jìn)軟件組織整體能力的提升,并根據(jù)實(shí)際案例效果進(jìn)行了驗(yàn)證。雖然在敏捷軟件開發(fā)和CMM/CMMI成熟度模型可以結(jié)合使用方面的證據(jù)有很多,他們驗(yàn)證了在大范圍下某些方面可以結(jié)合使用或兼容性較低,但是并沒有說明CMM/CMMI成熟度模型和敏捷軟件開發(fā)在模型和過程之間詳細(xì)的映射關(guān)系,這也正是筆者下一步要研究的工作。

5 結(jié)束語

Agile軟件開發(fā)的價(jià)值觀和實(shí)踐原則在很大程度上改善了軟件開發(fā)的質(zhì)量和效率,降低了軟件的開發(fā)成本和項(xiàng)目風(fēng)險(xiǎn),提升了客戶的滿意度,被越來越多的軟件組織采用。但是,Agile軟件開發(fā)沒有關(guān)注軟件組織層次的管理。通過CMM/CMMI與Agile軟件開發(fā)的結(jié)合使用,消除兩者在某些方面的矛盾,相互補(bǔ)充,發(fā)揮各自的優(yōu)勢(shì),共同提高軟件組織的整體組織能力。

猜你喜歡
成熟度增量軟件
導(dǎo)彈增量式自適應(yīng)容錯(cuò)控制系統(tǒng)設(shè)計(jì)
提質(zhì)和增量之間的“辯證”
禪宗軟件
全現(xiàn)款操作,年增量1千萬!這家GMP漁藥廠為何這么牛?
產(chǎn)品制造成熟度在型號(hào)批生產(chǎn)風(fēng)險(xiǎn)管理中的應(yīng)用
整機(jī)產(chǎn)品成熟度模型研究與建立
“價(jià)增量減”型應(yīng)用題點(diǎn)撥
軟件對(duì)對(duì)碰
剛好夠吃6天的香蕉
基于集成的信息系統(tǒng)體系成熟度評(píng)價(jià)方法
阳谷县| 莫力| 前郭尔| 阿克| 岳池县| 六安市| 伊宁县| 新田县| 深州市| 孝感市| 高雄县| 正蓝旗| 壤塘县| 聂拉木县| 乌拉特前旗| 湾仔区| 孟州市| 石台县| 泽普县| 聂拉木县| 仪陇县| 常宁市| 大庆市| 新绛县| 玛曲县| 兴国县| 出国| 新宁县| 闵行区| 五华县| 满城县| 遂平县| 景宁| 安达市| 桃江县| 嘉义市| 长岭县| 西林县| 新余市| 安徽省| 沁水县|