• 
    

    
    

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

      基于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

      [中圖分類(lèi)號(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í)踐課程為軟件工程專(zhuān)業(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ò)多依賴(lài)少數(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é)人是客戶(hù)利益的代表,主要負(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,以用戶(hù)故事形式表示的產(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é)人首先需要與客戶(hù)代表(即教師)充分溝通后,創(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é)人和客戶(hù)代表(即教師)演示階段成果,產(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)不多的軟件工程專(zhuā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é)任編輯:覃侶冰]

      山西省| 伊通| 奉贤区| 巩义市| 元谋县| 鸡泽县| 宁波市| 昆山市| 新乡县| 玛沁县| 垣曲县| 伊金霍洛旗| 都兰县| 于田县| 秀山| 都江堰市| 赫章县| 萨嘎县| 曲水县| 北海市| 山西省| 遂溪县| 永平县| 台山市| 孟村| 彝良县| 英吉沙县| 乌恰县| 阆中市| 南陵县| 高雄县| 象州县| 三穗县| 旬阳县| 永德县| 米林县| 上犹县| 阿克| 信丰县| 孟州市| 西昌市|