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

基于Scrum敏捷開發模型的軟件工程實踐課程探索

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

徐建軍等

[摘 要]軟件工程的工程教育屬性決定了其對實踐環節要求非常高。針對傳統瀑布模型在軟件工程實踐課程教學中存在的問題,探索使用Scrum敏捷軟件開發模型指導學生進行軟件項目開發的方法,并根據實際情況在選題、分組、Scrum實踐和考核等方面進行改革,有效提高了學生的學習積極性、軟件開發能力和軟件工程素質等。

[關鍵詞]軟件工程實踐 敏捷開發方法 Scrum

[中圖分類號] TP311.5-4;G642 [文獻標識碼] A [文章編號] 2095-3437(2015)04-0115-03

軟件工程的工程教育屬性決定了其對實踐環節要求非常高。學生只有真正地去開發一個具有一定規模的軟件項目,才能夠掌握并加深對軟件工程基本理論知識的理解;才能通過具體工程實踐熟練使用相應的工具完成需求分析、設計建模、協作開發、測試和評估各個環節,掌握主流的軟件開發方法和軟件項目管理方法,全面提高軟件工程素質和能力,為將來從事軟件項目的研發奠定基礎。

軟件工程實踐課程為軟件工程專業學生提供了必不可少的實踐環節。目前一般指導學生按瀑布模型進行開發,使學生能夠體驗到完整的軟件開發過程。但學生通常沒有項目開發經驗,難以一步到位,過多的文檔極大地增加了學生的工作量,組內分工不均,往往過多依賴少數優秀學生工作。在教學過程中不同程度地存在重結果輕過程、重技術輕管理、重個人能力輕團隊作用的現象。[1]

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

一、Scrum敏捷開發方法

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

項目參與人員在Scrum模型中被劃分為3種角色:產品負責人、Scrum Master和開發團隊。產品負責人是客戶利益的代表,主要負責確定產品功能、合理安排功能實現優先級以及評估開發團隊的工作成果等;Scrum Master作為項目經理同產品負責人緊密工作,確保開發過程按計劃進行、排除遇到的困難、保證開發團隊的工作效率和成員間的合作不受外界影響;開發團隊包括設計人員、開發人員、測試人員等,具體負責按承諾及時完成開發任務,有高度的自我組織能力。

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

二、軟件工程實踐教學

由于Scrum模型適用于規模較小的團隊,并具有可檢查、適應性強、透明性好和學習成本低等優點,適合在軟件工程實踐課程中指導項目開發。[4] [5]然而,學校環境與軟件公司環境有所不同,學生在能力和經驗方面與公司員工的也存在差距,課程的主要任務還是培養和鍛煉學生。因此,應結合實際教學情況對Scrum模型進行適當調整。

(一)分組和選題

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

實踐題目一般由教師提供,也鼓勵項目組向教師推薦,但要征得教師的認可。實踐選題的難度不宜太大,最好是開發團隊熟悉并感興趣的領域,課程的目標是體驗軟件開發的過程,并注重軟件的完成質量,要求作品質量能達到與市場上的產品媲美的程度。已有的選題包括:二手交易、網上書店、社交平臺、新聞聚合、手機游戲等。

(二)Scrum實踐

我校軟件工程實踐課程安排兩個月左右的時間,被劃分成3個Sprint,每個Sprint約3周。這里介紹其中關鍵環節的實施情況。

(1)制訂Sprint計劃

項目組通過Sprint計劃會議制訂工作計劃,確定本次Sprint的目標。產品負責人首先需要與客戶代表(即教師)充分溝通后,創建整個產品的Backlog,然后在計劃會議上向開發團隊詳細介紹每個條目,并說明完成的優先級。開發團隊從產品Backlog挑選出本次Sprint承諾要完成的條目構成Sprint Backlog,并估算完成各個條目所需的工作量,將其分解成具體的開發任務,然后通過自愿領取的方式分派給開發團隊的某個成員。由于課堂時間有限,選擇一個準備充分的項目組在課上進行展示,其余組在課后完成,并向教師提交會議成果。

(2)每日站立會議

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

(3)結對編程

在校學生沒有太多的軟件開發經驗,編程能力參差不齊,所以筆者在教學過程還引入極限編程中的結對編程方法。讓兩名學生構成一個開發小組,他們之間能夠有效交流、相互學習和傳遞經驗,提高整個團隊的工作效率。

(4)Sprint評審及回顧

在一個Sprint完成后,由開發團隊中的測試人員向產品負責人和客戶代表(即教師)演示階段成果,產品負責人和教師給出改進意見。Scrum Master匯報本次Sprint的完成情況,并展示燃盡圖,教師進行點評。在Sprint回顧會議上,項目組通過投票的方式選出本次Sprint做得好的3個環節和下次Sprint迫切需要改進的3個問題。

(5)文檔撰寫

敏捷開發方法強調可用的軟件重于完備的文檔,但并不意味著不寫文檔。軟件工程實踐課程要求學生編寫適量的文檔,這也是培養軟件工程能力的一方面。文檔撰寫按照Scrum的角色進行分配,Scrum Master負責軟件開發計劃和實施過程文檔,產品負責人負責可行性論證報告和需求分析文檔,開發團隊負責軟件設計文檔、軟件測試文檔和安裝手冊等。

(三)考核方式

為使課程考核盡可能客觀、公正,在課程驗收階段,每個項目組都要進行公開演示,其余項目組和教師一起對該組進行量化打分,評價內容包括難度、質量、創新和界面四個方面。教員結合演示情況和文檔對項目進行綜合評價,小組互評占80%,教員評價占20%。其次,Scrum Master要給出組內每個成員的具體業績系數,然后在項目組總成績的基礎上再確定每個成員的最終成績。

三、教學效果

我們已經在2個學期的軟件工程實踐課程中使用了Scrum模型,在激發學生學習興趣、提高軟件開發質量等方面取得了較好的效果,主要體現在以下幾個方面。

(1)激發了學生的創造力和主動性。在實踐過程中,開發團隊是通過自愿領取的方式分派開發任務,每日例會和燃盡圖將小組成員的開發進度公開展示出來。后進學生體會到項目壓力,努力上進,使項目組內部形成一種良性競爭機制,從而使學生更積極主動地參與項目開發。

(2)提高了學生的軟件工程素質。將項目開發過程拆分為多個Sprint,最終形成一個軟件產品,這符合軟件開發的基本規律,而且這種“計劃、實施、評價、改進”的迭代開發體驗對于經驗不多的軟件工程專業學生來說幫助非常大。一般而言,第一個Sprint效果不會太好,到第三個Sprint基本上每個項目組都有很大改進。

(3)學生的軟件開發能力得到明顯增強。在敏捷開發框架下,學生只編寫一些重要文檔,能夠將精力重點放在編碼和調試上。通過結對編程,基礎差的學生可以向好的學生學習(實踐證明相互學習的效果很好),也提供更好的設計質量和代碼質量,改善了工作紀律性,。

(4)評價更加客觀公正。由于Scrum透明性好的特點,每位學生的工作完成情況在實踐過程中一目了然,所以對學生的評價相對是比較容易的。項目組之間互評的機制也保證了評價的公正性。

但目前也還存在一些不足,主要體現在:計劃制訂不盡合理,項目組成員之間的交流還不夠積極,課后工作落實不到位,文檔作用體現不明顯,部分學生因為基礎差、自覺性差等原因參與度不高。這些都是我們下一步重點解決的問題。

四、結語

Scrum敏捷開發模型具有可檢查、適應性強和學習成本低等優點,適用于小規模的軟件開發團隊。在軟件工程實踐課程教學中,我們嘗試用改進的Scrum模型指導學生進行軟件項目開發,能夠有效激發學生的積極性和主動性,使其參與開發互動,從而了解軟件項目開發過程,提高軟件開發能力和軟件工程素質,項目完成質量和教學效果有明顯改進。

[ 注 釋 ]

[1] 曾紅衛,劉悅,劉煒.軟件工程實踐教學方法探索[J].計算機工程與科學,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——我們如何實施Scrum[M].北京:清華大學出版社.http://infoq.com / cn / minibooks / scrum-xp-from-the-trenches,lasted visited 2014-10-20.

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

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

[責任編輯:覃侶冰]

主站蜘蛛池模板: 国产精品黑色丝袜的老师| 视频二区国产精品职场同事| 免费无码一区二区| 久久久久亚洲AV成人网站软件| 日本在线欧美在线| 制服丝袜一区二区三区在线| 国产经典在线观看一区| 国产成人精品一区二区三在线观看| 91亚洲影院| 国产清纯在线一区二区WWW| 国产自产视频一区二区三区| 国产一区二区三区免费| 日本影院一区| 久久精品人人做人人综合试看| 波多野结衣无码中文字幕在线观看一区二区 | 亚洲黄网视频| 中文字幕人妻av一区二区| 欧美精品亚洲二区| 国产jizz| 少妇露出福利视频| 高清无码手机在线观看| 亚洲人成影视在线观看| 黄网站欧美内射| 99视频在线免费观看| 99热这里只有精品免费国产| 欧美视频在线不卡| 精品亚洲国产成人AV| 久久精品日日躁夜夜躁欧美| 国产人成乱码视频免费观看| 国产美女无遮挡免费视频网站| 日本不卡免费高清视频| 无码精品一区二区久久久| 青青草原国产精品啪啪视频| 国产又粗又爽视频| 亚洲无限乱码| 欧美a级完整在线观看| 伊人久久婷婷| 免费观看亚洲人成网站| 日韩二区三区无| 精品国产自| 久久成人免费| 国产成人精品高清不卡在线| 一级做a爰片久久毛片毛片| 中文精品久久久久国产网址 | 日韩东京热无码人妻| 欧美高清三区| 亚洲日本韩在线观看| 婷婷综合在线观看丁香| 欧美日韩精品综合在线一区| 亚洲婷婷在线视频| 亚洲av无码片一区二区三区| 欧美日本激情| 黄色在线网| 国内精品久久人妻无码大片高| 日本91在线| 91久久精品国产| 精品一区二区三区视频免费观看| 99久视频| 国产精彩视频在线观看| 亚洲美女一区二区三区| 成人国产免费| 精品乱码久久久久久久| 国产区免费| 国产97公开成人免费视频| 国产成人久久777777| 国产精品爽爽va在线无码观看| 久久人搡人人玩人妻精品一| 免费观看无遮挡www的小视频| 色综合成人| 欧美爱爱网| 午夜一区二区三区| 国内精品久久久久久久久久影视| 日韩小视频在线观看| 欧美日韩在线观看一区二区三区| 午夜福利在线观看成人| 色综合久久综合网| 视频二区欧美| 亚洲国产亚综合在线区| 动漫精品中文字幕无码| 日本手机在线视频| 一级做a爰片久久毛片毛片| 手机成人午夜在线视频|