999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Scrum敏捷開(kāi)發(fā)模型的軟件工程實(shí)踐課程探索

2015-05-30 22:30:57徐建軍等
大學(xué)教育 2015年4期

徐建軍等

[摘 要]軟件工程的工程教育屬性決定了其對(duì)實(shí)踐環(huán)節(jié)要求非常高。針對(duì)傳統(tǒng)瀑布模型在軟件工程實(shí)踐課程教學(xué)中存在的問(wèn)題,探索使用Scrum敏捷軟件開(kāi)發(fā)模型指導(dǎo)學(xué)生進(jìn)行軟件項(xiàng)目開(kāi)發(fā)的方法,并根據(jù)實(shí)際情況在選題、分組、Scrum實(shí)踐和考核等方面進(jìn)行改革,有效提高了學(xué)生的學(xué)習(xí)積極性、軟件開(kāi)發(fā)能力和軟件工程素質(zhì)等。

[關(guān)鍵詞]軟件工程實(shí)踐 敏捷開(kāi)發(fā)方法 Scrum

[中圖分類號(hào)] TP311.5-4;G642 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 2095-3437(2015)04-0115-03

軟件工程的工程教育屬性決定了其對(duì)實(shí)踐環(huán)節(jié)要求非常高。學(xué)生只有真正地去開(kāi)發(fā)一個(gè)具有一定規(guī)模的軟件項(xiàng)目,才能夠掌握并加深對(duì)軟件工程基本理論知識(shí)的理解;才能通過(guò)具體工程實(shí)踐熟練使用相應(yīng)的工具完成需求分析、設(shè)計(jì)建模、協(xié)作開(kāi)發(fā)、測(cè)試和評(píng)估各個(gè)環(huán)節(jié),掌握主流的軟件開(kāi)發(fā)方法和軟件項(xiàng)目管理方法,全面提高軟件工程素質(zhì)和能力,為將來(lái)從事軟件項(xiàng)目的研發(fā)奠定基礎(chǔ)。

軟件工程實(shí)踐課程為軟件工程專業(yè)學(xué)生提供了必不可少的實(shí)踐環(huán)節(jié)。目前一般指導(dǎo)學(xué)生按瀑布模型進(jìn)行開(kāi)發(fā),使學(xué)生能夠體驗(yàn)到完整的軟件開(kāi)發(fā)過(guò)程。但學(xué)生通常沒(méi)有項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),難以一步到位,過(guò)多的文檔極大地增加了學(xué)生的工作量,組內(nèi)分工不均,往往過(guò)多依賴少數(shù)優(yōu)秀學(xué)生工作。在教學(xué)過(guò)程中不同程度地存在重結(jié)果輕過(guò)程、重技術(shù)輕管理、重個(gè)人能力輕團(tuán)隊(duì)作用的現(xiàn)象。[1]

軟件工程實(shí)踐課程需要一種能夠提高開(kāi)發(fā)效率,適合小團(tuán)隊(duì)并能夠充分調(diào)動(dòng)團(tuán)隊(duì)成員積極性的實(shí)踐方法。敏捷軟件開(kāi)發(fā)方法是一種以人為本、輕文檔重產(chǎn)品的軟件開(kāi)發(fā)方法,與“非敏捷”方法相比,敏捷軟件開(kāi)發(fā)方法強(qiáng)調(diào)適度的過(guò)程管理、高效的溝通、快速的適應(yīng)變化能力和緊湊自組織的團(tuán)隊(duì)等。Scrum作為敏捷開(kāi)發(fā)方法的一種實(shí)踐框架,提出了敏捷開(kāi)發(fā)過(guò)程的預(yù)定義角色和最佳實(shí)踐方案。筆者近幾年在軟件工程實(shí)踐教學(xué)中指導(dǎo)學(xué)生應(yīng)用Scrum模型進(jìn)行項(xiàng)目開(kāi)發(fā),本文介紹這方面的探索經(jīng)驗(yàn)。

一、Scrum敏捷開(kāi)發(fā)方法

Scrum于1993年由Jeff Sutherland和Ken Schwaber創(chuàng)立,是一種迭代式增量敏捷軟件開(kāi)發(fā)框架,為敏捷開(kāi)發(fā)實(shí)踐提供了具體的行動(dòng)綱領(lǐng)[2],目前Scrum已在Google、華為等大型軟件公司得到廣泛應(yīng)用。如圖1所示,Scrum模型需要將整個(gè)項(xiàng)目周期劃分為多個(gè)Sprint(沖刺),Spritn為一個(gè)迭代過(guò)程,每個(gè)Sprint從整個(gè)項(xiàng)目的待開(kāi)發(fā)產(chǎn)品Backlog(清單)中選出多個(gè)構(gòu)成Sprint Backlog,迭代完成后則發(fā)布一個(gè)可交付的軟件版本。

項(xiàng)目參與人員在Scrum模型中被劃分為3種角色:產(chǎn)品負(fù)責(zé)人、Scrum Master和開(kāi)發(fā)團(tuán)隊(duì)。產(chǎn)品負(fù)責(zé)人是客戶利益的代表,主要負(fù)責(zé)確定產(chǎn)品功能、合理安排功能實(shí)現(xiàn)優(yōu)先級(jí)以及評(píng)估開(kāi)發(fā)團(tuán)隊(duì)的工作成果等;Scrum Master作為項(xiàng)目經(jīng)理同產(chǎn)品負(fù)責(zé)人緊密工作,確保開(kāi)發(fā)過(guò)程按計(jì)劃進(jìn)行、排除遇到的困難、保證開(kāi)發(fā)團(tuán)隊(duì)的工作效率和成員間的合作不受外界影響;開(kāi)發(fā)團(tuán)隊(duì)包括設(shè)計(jì)人員、開(kāi)發(fā)人員、測(cè)試人員等,具體負(fù)責(zé)按承諾及時(shí)完成開(kāi)發(fā)任務(wù),有高度的自我組織能力。

在Scrum模型中,還包括3個(gè)制品和4種會(huì)議。[3]3個(gè)制品為:①產(chǎn)品Backlog,以用戶故事形式表示的產(chǎn)品需求列表,由產(chǎn)品負(fù)責(zé)人維護(hù)具體條目,開(kāi)發(fā)團(tuán)隊(duì)估算工作量;②Sprint Backlog,定義了一個(gè)Sprint的開(kāi)發(fā)目標(biāo),在Sprint過(guò)程中不允許發(fā)生變更;③燃盡圖,公開(kāi)展示的圖表用于記錄任務(wù)完成情況,直觀反映了Sprint的執(zhí)行過(guò)程。4種會(huì)議為:①Sprint計(jì)劃會(huì)議,產(chǎn)品負(fù)責(zé)人向開(kāi)發(fā)團(tuán)隊(duì)介紹和分析產(chǎn)品Backlog,開(kāi)發(fā)團(tuán)隊(duì)挑選出本次Sprint承諾要完成的條目;②每日站立會(huì)議,團(tuán)隊(duì)所有成員參加的短會(huì),所有人站立開(kāi)會(huì),交流項(xiàng)目進(jìn)展情況;③Sprint評(píng)審會(huì)議,開(kāi)發(fā)團(tuán)隊(duì)向產(chǎn)品負(fù)責(zé)人和其他相關(guān)人員演示產(chǎn)品功能;④Sprint回顧會(huì)議,所有人員都要反思這個(gè)Sprint,為了進(jìn)行持續(xù)的過(guò)程改進(jìn)。

二、軟件工程實(shí)踐教學(xué)

由于Scrum模型適用于規(guī)模較小的團(tuán)隊(duì),并具有可檢查、適應(yīng)性強(qiáng)、透明性好和學(xué)習(xí)成本低等優(yōu)點(diǎn),適合在軟件工程實(shí)踐課程中指導(dǎo)項(xiàng)目開(kāi)發(fā)。[4] [5]然而,學(xué)校環(huán)境與軟件公司環(huán)境有所不同,學(xué)生在能力和經(jīng)驗(yàn)方面與公司員工的也存在差距,課程的主要任務(wù)還是培養(yǎng)和鍛煉學(xué)生。因此,應(yīng)結(jié)合實(shí)際教學(xué)情況對(duì)Scrum模型進(jìn)行適當(dāng)調(diào)整。

(一)分組和選題

首先根據(jù)自愿原則把學(xué)生分為多個(gè)項(xiàng)目組,每組5-7人,劃分小組時(shí)需考慮溝通效率和學(xué)生開(kāi)發(fā)能力等因素。Scrum模型要求團(tuán)隊(duì)成員之間密切溝通,而且項(xiàng)目開(kāi)發(fā)更多是在課外時(shí)間進(jìn)行,所以要求學(xué)生根據(jù)所在宿舍、選課等情況分組,確保小組內(nèi)部交流順暢。同時(shí)每組應(yīng)至少安排1-2名軟件開(kāi)發(fā)經(jīng)驗(yàn)較豐富的學(xué)生,以保證項(xiàng)目開(kāi)發(fā)的順利進(jìn)行。分組后需按Scrum框架給組內(nèi)學(xué)生分派角色,剛開(kāi)始每個(gè)組內(nèi)軟件開(kāi)發(fā)能力最強(qiáng)的學(xué)生往往被選為Scrum Master,此處需要糾正的是,Scrum Master更注重管理和協(xié)調(diào)能力。

實(shí)踐題目一般由教師提供,也鼓勵(lì)項(xiàng)目組向教師推薦,但要征得教師的認(rèn)可。實(shí)踐選題的難度不宜太大,最好是開(kāi)發(fā)團(tuán)隊(duì)熟悉并感興趣的領(lǐng)域,課程的目標(biāo)是體驗(yàn)軟件開(kāi)發(fā)的過(guò)程,并注重軟件的完成質(zhì)量,要求作品質(zhì)量能達(dá)到與市場(chǎng)上的產(chǎn)品媲美的程度。已有的選題包括:二手交易、網(wǎng)上書(shū)店、社交平臺(tái)、新聞聚合、手機(jī)游戲等。

(二)Scrum實(shí)踐

我校軟件工程實(shí)踐課程安排兩個(gè)月左右的時(shí)間,被劃分成3個(gè)Sprint,每個(gè)Sprint約3周。這里介紹其中關(guān)鍵環(huán)節(jié)的實(shí)施情況。

(1)制訂Sprint計(jì)劃

項(xiàng)目組通過(guò)Sprint計(jì)劃會(huì)議制訂工作計(jì)劃,確定本次Sprint的目標(biāo)。產(chǎn)品負(fù)責(zé)人首先需要與客戶代表(即教師)充分溝通后,創(chuàng)建整個(gè)產(chǎn)品的Backlog,然后在計(jì)劃會(huì)議上向開(kāi)發(fā)團(tuán)隊(duì)詳細(xì)介紹每個(gè)條目,并說(shuō)明完成的優(yōu)先級(jí)。開(kāi)發(fā)團(tuán)隊(duì)從產(chǎn)品Backlog挑選出本次Sprint承諾要完成的條目構(gòu)成Sprint Backlog,并估算完成各個(gè)條目所需的工作量,將其分解成具體的開(kāi)發(fā)任務(wù),然后通過(guò)自愿領(lǐng)取的方式分派給開(kāi)發(fā)團(tuán)隊(duì)的某個(gè)成員。由于課堂時(shí)間有限,選擇一個(gè)準(zhǔn)備充分的項(xiàng)目組在課上進(jìn)行展示,其余組在課后完成,并向教師提交會(huì)議成果。

(2)每日站立會(huì)議

每日站立會(huì)議由項(xiàng)目組的Scrum Master組織,教師旁聽(tīng),僅在必要時(shí)給出意見(jiàn)。按Scrum框架要求,會(huì)上每個(gè)人必須解釋和回答3個(gè)問(wèn)題:昨天完成了什么?今天計(jì)劃做什么?還需要哪些幫助?會(huì)議限定時(shí)間少于15分鐘,Scrum Master會(huì)后根據(jù)進(jìn)展情況相應(yīng)更新燃盡圖。由于每周僅一次課,要求項(xiàng)目組每周至少進(jìn)行3次站立會(huì)議。

(3)結(jié)對(duì)編程

在校學(xué)生沒(méi)有太多的軟件開(kāi)發(fā)經(jīng)驗(yàn),編程能力參差不齊,所以筆者在教學(xué)過(guò)程還引入極限編程中的結(jié)對(duì)編程方法。讓兩名學(xué)生構(gòu)成一個(gè)開(kāi)發(fā)小組,他們之間能夠有效交流、相互學(xué)習(xí)和傳遞經(jīng)驗(yàn),提高整個(gè)團(tuán)隊(duì)的工作效率。

(4)Sprint評(píng)審及回顧

在一個(gè)Sprint完成后,由開(kāi)發(fā)團(tuán)隊(duì)中的測(cè)試人員向產(chǎn)品負(fù)責(zé)人和客戶代表(即教師)演示階段成果,產(chǎn)品負(fù)責(zé)人和教師給出改進(jìn)意見(jiàn)。Scrum Master匯報(bào)本次Sprint的完成情況,并展示燃盡圖,教師進(jìn)行點(diǎn)評(píng)。在Sprint回顧會(huì)議上,項(xiàng)目組通過(guò)投票的方式選出本次Sprint做得好的3個(gè)環(huán)節(jié)和下次Sprint迫切需要改進(jìn)的3個(gè)問(wèn)題。

(5)文檔撰寫(xiě)

敏捷開(kāi)發(fā)方法強(qiáng)調(diào)可用的軟件重于完備的文檔,但并不意味著不寫(xiě)文檔。軟件工程實(shí)踐課程要求學(xué)生編寫(xiě)適量的文檔,這也是培養(yǎng)軟件工程能力的一方面。文檔撰寫(xiě)按照Scrum的角色進(jìn)行分配,Scrum Master負(fù)責(zé)軟件開(kāi)發(fā)計(jì)劃和實(shí)施過(guò)程文檔,產(chǎn)品負(fù)責(zé)人負(fù)責(zé)可行性論證報(bào)告和需求分析文檔,開(kāi)發(fā)團(tuán)隊(duì)負(fù)責(zé)軟件設(shè)計(jì)文檔、軟件測(cè)試文檔和安裝手冊(cè)等。

(三)考核方式

為使課程考核盡可能客觀、公正,在課程驗(yàn)收階段,每個(gè)項(xiàng)目組都要進(jìn)行公開(kāi)演示,其余項(xiàng)目組和教師一起對(duì)該組進(jìn)行量化打分,評(píng)價(jià)內(nèi)容包括難度、質(zhì)量、創(chuàng)新和界面四個(gè)方面。教員結(jié)合演示情況和文檔對(duì)項(xiàng)目進(jìn)行綜合評(píng)價(jià),小組互評(píng)占80%,教員評(píng)價(jià)占20%。其次,Scrum Master要給出組內(nèi)每個(gè)成員的具體業(yè)績(jī)系數(shù),然后在項(xiàng)目組總成績(jī)的基礎(chǔ)上再確定每個(gè)成員的最終成績(jī)。

三、教學(xué)效果

我們已經(jīng)在2個(gè)學(xué)期的軟件工程實(shí)踐課程中使用了Scrum模型,在激發(fā)學(xué)生學(xué)習(xí)興趣、提高軟件開(kāi)發(fā)質(zhì)量等方面取得了較好的效果,主要體現(xiàn)在以下幾個(gè)方面。

(1)激發(fā)了學(xué)生的創(chuàng)造力和主動(dòng)性。在實(shí)踐過(guò)程中,開(kāi)發(fā)團(tuán)隊(duì)是通過(guò)自愿領(lǐng)取的方式分派開(kāi)發(fā)任務(wù),每日例會(huì)和燃盡圖將小組成員的開(kāi)發(fā)進(jìn)度公開(kāi)展示出來(lái)。后進(jìn)學(xué)生體會(huì)到項(xiàng)目壓力,努力上進(jìn),使項(xiàng)目組內(nèi)部形成一種良性競(jìng)爭(zhēng)機(jī)制,從而使學(xué)生更積極主動(dòng)地參與項(xiàng)目開(kāi)發(fā)。

(2)提高了學(xué)生的軟件工程素質(zhì)。將項(xiàng)目開(kāi)發(fā)過(guò)程拆分為多個(gè)Sprint,最終形成一個(gè)軟件產(chǎn)品,這符合軟件開(kāi)發(fā)的基本規(guī)律,而且這種“計(jì)劃、實(shí)施、評(píng)價(jià)、改進(jìn)”的迭代開(kāi)發(fā)體驗(yàn)對(duì)于經(jīng)驗(yàn)不多的軟件工程專業(yè)學(xué)生來(lái)說(shuō)幫助非常大。一般而言,第一個(gè)Sprint效果不會(huì)太好,到第三個(gè)Sprint基本上每個(gè)項(xiàng)目組都有很大改進(jìn)。

(3)學(xué)生的軟件開(kāi)發(fā)能力得到明顯增強(qiáng)。在敏捷開(kāi)發(fā)框架下,學(xué)生只編寫(xiě)一些重要文檔,能夠?qū)⒕χ攸c(diǎn)放在編碼和調(diào)試上。通過(guò)結(jié)對(duì)編程,基礎(chǔ)差的學(xué)生可以向好的學(xué)生學(xué)習(xí)(實(shí)踐證明相互學(xué)習(xí)的效果很好),也提供更好的設(shè)計(jì)質(zhì)量和代碼質(zhì)量,改善了工作紀(jì)律性,。

(4)評(píng)價(jià)更加客觀公正。由于Scrum透明性好的特點(diǎn),每位學(xué)生的工作完成情況在實(shí)踐過(guò)程中一目了然,所以對(duì)學(xué)生的評(píng)價(jià)相對(duì)是比較容易的。項(xiàng)目組之間互評(píng)的機(jī)制也保證了評(píng)價(jià)的公正性。

但目前也還存在一些不足,主要體現(xiàn)在:計(jì)劃制訂不盡合理,項(xiàng)目組成員之間的交流還不夠積極,課后工作落實(shí)不到位,文檔作用體現(xiàn)不明顯,部分學(xué)生因?yàn)榛A(chǔ)差、自覺(jué)性差等原因參與度不高。這些都是我們下一步重點(diǎn)解決的問(wèn)題。

四、結(jié)語(yǔ)

Scrum敏捷開(kāi)發(fā)模型具有可檢查、適應(yīng)性強(qiáng)和學(xué)習(xí)成本低等優(yōu)點(diǎn),適用于小規(guī)模的軟件開(kāi)發(fā)團(tuán)隊(duì)。在軟件工程實(shí)踐課程教學(xué)中,我們嘗試用改進(jìn)的Scrum模型指導(dǎo)學(xué)生進(jìn)行軟件項(xiàng)目開(kāi)發(fā),能夠有效激發(fā)學(xué)生的積極性和主動(dòng)性,使其參與開(kāi)發(fā)互動(dòng),從而了解軟件項(xiàng)目開(kāi)發(fā)過(guò)程,提高軟件開(kāi)發(fā)能力和軟件工程素質(zhì),項(xiàng)目完成質(zhì)量和教學(xué)效果有明顯改進(jìn)。

[ 注 釋 ]

[1] 曾紅衛(wèi),劉悅,劉煒.軟件工程實(shí)踐教學(xué)方法探索[J].計(jì)算機(jī)工程與科學(xué),2011(A1):15-18.

[2] Scrum(software development)[J / OL].http://en.wikipedia.org / wiki / Scrum_(software_development), lasted visited ,2014

-10-20.

[3] Henrik Kniberg著.李劍譯.硝煙中的Scrum和XP——我們?nèi)绾螌?shí)施Scrum[M].北京:清華大學(xué)出版社.http://infoq.com / cn / minibooks / scrum-xp-from-the-trenches,lasted visited 2014-10-20.

[4] 林曉宇.基于Scrum敏捷方法的軟件工程實(shí)踐教學(xué)探索[J].電腦知識(shí)與技術(shù),2011(19):4762-4765.

[5] 徐海濤,吳昊.基于Scrum和極限編程結(jié)合的軟件項(xiàng)目實(shí)踐課程教學(xué)改革與實(shí)踐[J].福建電腦,2013(4):44-46.

[責(zé)任編輯:覃侶冰]

主站蜘蛛池模板: 国产高清免费午夜在线视频| 在线a视频免费观看| 看国产一级毛片| 国产免费怡红院视频| 91人人妻人人做人人爽男同 | 亚洲另类国产欧美一区二区| 免费a级毛片18以上观看精品| 免费激情网址| 国产玖玖视频| 秋霞午夜国产精品成人片| 亚洲免费播放| 久久久久久午夜精品| 欧美国产另类| 无码一区二区波多野结衣播放搜索 | 强奷白丝美女在线观看| 国产精品2| 色婷婷亚洲综合五月| 亚洲美女一区| 亚洲中文字幕无码爆乳| 女同久久精品国产99国| 久久国产精品影院| 亚洲最猛黑人xxxx黑人猛交| 天天操天天噜| 欧美五月婷婷| 亚洲天堂区| 夜色爽爽影院18禁妓女影院| 日韩欧美在线观看| 蜜桃视频一区二区三区| 国产素人在线| 精品久久777| 精品人妻无码中字系列| A级全黄试看30分钟小视频| 91精品国产自产在线观看| 91精品久久久久久无码人妻| 一本大道视频精品人妻| 日韩欧美成人高清在线观看| 无码丝袜人妻| 亚洲精品福利视频| 99久久精品免费看国产电影| 青草娱乐极品免费视频| 青青青视频免费一区二区| 欧美成人手机在线观看网址| 中国一级特黄大片在线观看| 国产一区二区福利| 亚洲天堂2014| 五月婷婷精品| 亚洲人成网18禁| 成人综合网址| 99r在线精品视频在线播放| 亚洲成年人片| 亚洲婷婷在线视频| 成人一级黄色毛片| 欧美亚洲欧美| 亚洲综合专区| 欧美亚洲综合免费精品高清在线观看| 国产人前露出系列视频| 国产亚洲美日韩AV中文字幕无码成人| 婷婷99视频精品全部在线观看 | 高清无码手机在线观看| 久久久受www免费人成| 综合色亚洲| 日韩专区欧美| 亚欧成人无码AV在线播放| 欧美成人精品高清在线下载| 91成人免费观看在线观看| 亚洲免费播放| 女人一级毛片| 最新日本中文字幕| 久久人搡人人玩人妻精品一| a级毛片一区二区免费视频| 亚洲精品福利视频| 欧美日韩北条麻妃一区二区| 久久婷婷色综合老司机| 在线精品欧美日韩| 日韩国产高清无码| 欧美亚洲第一页| 日本在线视频免费| 中文字幕有乳无码| 国产精品lululu在线观看| 国产综合无码一区二区色蜜蜜| 亚洲综合18p| 日韩高清无码免费|