亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2020-05-18 12:07:30閆鵬斌丘仕能
        關(guān)鍵詞:方法模型

        閆鵬斌, 吳 揚, 丘仕能

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

        0 引言

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

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

        然而,隨著軟件行業(yè)的飛速發(fā)展,人們對軟件產(chǎn)品的要求越來越高,高質(zhì)量的軟件功能、復(fù)雜的軟件系統(tǒng)、快速變化的軟件需求等,使得軟件組織面臨新的挑戰(zhàn),以Scrum和極限編程為代表的Agile軟件開發(fā)逐漸得到軟件組織的認可,越來越多的軟件組織開始采用Agile軟件開發(fā)。它們以人為核心,采用迭代的、增量的軟件開發(fā)方式,能夠適應(yīng)多變的軟件需求,快速交付高質(zhì)量的工作軟件,實現(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)在“四個價值”和“十二個原則”,其包含的“四個價值”:

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

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

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

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

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

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

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

        2 Scrum

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

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

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

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

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

        2.2 Scrum中的實踐和角色

        2.2.1 Scrum團隊中的4個主要角色

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

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

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

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

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

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

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

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

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

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

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

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

        3 極限編程XP

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

        表2 XP的核心實踐Tab.2 The core practices of XP

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

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

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

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

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

        5 結(jié)束語

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

        猜你喜歡
        方法模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        學(xué)習(xí)方法
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        亚洲色图综合免费视频| 成人一区二区免费中文字幕视频 | av无码精品一区二区三区| 国产乱国产乱老熟300部视频| 高潮毛片无遮挡高清免费| 全部免费国产潢色一级| 女同视频网站一区二区| 中文字幕隔壁人妻欲求不满| 亚洲av成人片在线观看| 看曰本女人大战黑人视频| 天天躁日日操狠狠操欧美老妇| 久久久国产视频久久久| 中文字幕一区二区黄色| 亚洲日韩精品a∨片无码加勒比 | 各类熟女熟妇激情自拍| 午夜精品久久久久久久99老熟妇| 国产一卡2卡3卡四卡国色天香 | 综合五月激情二区视频| 精品无码一区在线观看| 99国产精品久久久蜜芽| 精品人妻一区二区三区蜜臀在线| 亚洲精品久久视频网站| 黑人巨茎大战俄罗斯美女| 高中生粉嫩无套第一次| 久久精品无码一区二区乱片子| 国产青青草自拍视频在线播放| 麻豆69视频在线观看| 亚洲av午夜福利精品一区二区| 国产精品日韩欧美一区二区区| 午夜黄色一区二区不卡| 久久久国产精品无码免费专区| 午夜精品久久久久成人| 精品免费一区二区三区在| 国产自拍av在线观看| 美女高潮黄又色高清视频免费| 老熟女毛茸茸浓毛| 国产三级国产精品国产专区| 国产午夜视频在线观看免费| 色哟哟网站在线观看| 久久中文字幕亚洲精品最新| 国产精品一区二区三区在线观看 |