• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

      (1.華北水利水電大學(xué) 信息工程學(xué)院,河南 鄭州 450046; 2.廣西大藤峽水利樞紐開(kāi)發(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)良的軟件開(kāi)發(fā)模型或方法能開(kāi)發(fā)出高質(zhì)量軟件的基礎(chǔ),保證客戶對(duì)交付軟件的滿意度,提升軟件組織整體的核心競(jìng)爭(zhēng)力,從而促進(jìn)軟件產(chǎn)業(yè)的蓬勃發(fā)展。

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

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

      1 Agile軟件開(kāi)發(fā)

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

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

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

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

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

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

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

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

      2 Scrum

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

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

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

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

      圖1 Scrum過(guò)程框架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開(kāi)發(fā)的順利實(shí)施。

      3)開(kāi)發(fā)團(tuán)隊(duì):開(kāi)發(fā)團(tuán)隊(duì)是人數(shù)在5~9人范圍內(nèi)的跨職能、自組織的團(tuán)隊(duì),主要任務(wù)是把產(chǎn)品待開(kāi)發(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開(kāi)發(fā)流程包含的4個(gè)儀式

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

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

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

      2.2.3 Scrum開(kāi)發(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)列表:通過(guò)Sprint計(jì)劃會(huì)由參會(huì)人員共同決定的用戶故事,它是具體的Sprint實(shí)施計(jì)劃。優(yōu)先級(jí)越高的產(chǎn)品待辦事項(xiàng)會(huì)越早被選為Sprint待辦事項(xiàng)。

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

      3 極限編程XP

      XP由BECK K在1996年提出。極限編程是一個(gè)輕量級(jí)的、靈巧的軟件開(kāi)發(fā)方法,同時(shí)也是一個(gè)非常嚴(yán)謹(jǐn)、科學(xué)的方法[12]。XP采用迭代、增量的軟件開(kāi)發(fā)方式,通過(guò)持續(xù)不斷的測(cè)試結(jié)果和反饋進(jìn)行修復(fù),適合周期短、設(shè)計(jì)簡(jiǎn)單、輕量型的軟件開(kāi)發(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í)踐為軟件開(kāi)發(fā)提供了指導(dǎo),開(kāi)發(fā)團(tuán)隊(duì)在XP思想下根據(jù)具體情況可以靈活修改規(guī)則,表2描述了XP的核心實(shí)踐[15]。

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

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

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

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

      5 結(jié)束語(yǔ)

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

      猜你喜歡
      成熟度增量軟件
      提質(zhì)和增量之間的“辯證”
      禪宗軟件
      產(chǎn)品制造成熟度在型號(hào)批生產(chǎn)風(fēng)險(xiǎn)管理中的應(yīng)用
      整機(jī)產(chǎn)品成熟度模型研究與建立
      “價(jià)增量減”型應(yīng)用題點(diǎn)撥
      軟件對(duì)對(duì)碰
      不同成熟度野生水茄果實(shí)的種子萌發(fā)差異研究
      種子(2018年9期)2018-10-15 03:14:04
      剛好夠吃6天的香蕉
      基于均衡增量近鄰查詢的位置隱私保護(hù)方法
      德州儀器(TI)發(fā)布了一對(duì)32位增量-累加模數(shù)轉(zhuǎn)換器(ADC):ADS1262和ADS126
      伊川县| 余江县| 雷州市| 故城县| 德钦县| 临颍县| 甘泉县| 田东县| 红桥区| 麻城市| 通渭县| 婺源县| 毕节市| 河间市| 安平县| 高青县| 阜南县| 沁阳市| 阜新| 黄浦区| 莱州市| 平远县| 金昌市| 合水县| 周至县| 阿拉尔市| 秦皇岛市| 沛县| 东至县| 阿图什市| 浦城县| 隆德县| 綦江县| 平度市| 永宁县| 衡山县| 当涂县| 固原市| 闻喜县| 嘉定区| 买车|