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

軟件212程敏捷方法的實驗框架及實施

2014-07-01 22:33:00朱少民
計算機教育 2014年7期
關(guān)鍵詞:實驗教學(xué)

朱少民

摘要:在闡述了敏捷方法的特點以及引入軟件工程教學(xué)中所遇到的困難之后,基于過去兩年在同濟(jì)大學(xué)軟件工程課程的本科教學(xué)實踐及探索,提出適合軟件工程敏捷方法的實驗框架。這個框架可將敏捷方法的理論教學(xué)和實驗有效地結(jié)合起來,在本科教學(xué)中獲得良好的應(yīng)用效果,深受學(xué)生歡迎。

關(guān)鍵詞:軟件工程;敏捷方法;Scrum;實驗教學(xué);框架

1 問題提出

過去的軟件工程課程大綱都是按照軟件開發(fā)過程的瀑布模型來設(shè)置課程內(nèi)容的先后次序,即在軟件工程基本概念介紹后,從需求分析與定義、系統(tǒng)總體設(shè)計、詳細(xì)設(shè)計、編程到測試這樣一個過程。其相應(yīng)的實驗課,可以按照這個次序來安排其環(huán)節(jié),從需求、設(shè)計、編程到測試,主要內(nèi)容都被覆蓋了,一個學(xué)期正好完成一個完整的軟件開發(fā)過程,實驗內(nèi)容容易和課堂教學(xué)保持同步,兩者銜接自然,這樣教學(xué)實驗也比較容易實施。

目前業(yè)界流行敏捷開發(fā)方法(Agile Metho-dology),多數(shù)軟件公司已采用或正在采用敏捷開發(fā)方法。在軟件工程課程中,為了適應(yīng)這種新的變化,培養(yǎng)滿足企業(yè)實際需要的人才,有必要在軟件工程課程教學(xué)中引入敏捷開發(fā)方法。在引入敏捷方法過程中,理論教學(xué)遇到的問題會相對少些,而困難的地方是其實驗教學(xué),無論在其設(shè)計還是具體實施時都面對很大的挑戰(zhàn)。

除了適應(yīng)業(yè)界新的需求,特別是移動互聯(lián)網(wǎng)應(yīng)用開發(fā)的需求,將敏捷引入軟件工程本科教學(xué)中,也有非常有利的一面,有助于提高教學(xué)質(zhì)量,主要體現(xiàn)在以下幾個方面:①敏捷方法的小團(tuán)隊適合學(xué)生實踐,學(xué)生每個實驗組一般是4-5個人。

②敏捷的趣味性也適合現(xiàn)在的學(xué)生,容易調(diào)動學(xué)生參與實驗的積極性。

③敏捷團(tuán)隊強調(diào)自我管理,沒有團(tuán)隊領(lǐng)導(dǎo),有利于培養(yǎng)每個學(xué)生的責(zé)任感和團(tuán)隊的榮譽感,提高每個學(xué)生自我管理的能力。

④敏捷更強調(diào)可工作產(chǎn)品本身的價值,符合學(xué)生的期望,他們更希望早一點看到自己開發(fā)的成功,早日獲得成就感,也是培養(yǎng)學(xué)生真正的核心實力——開發(fā)和測試的能力,而不是文檔的能力。

但是,如果引入敏捷方法,軟件工程課程的實驗教學(xué),特別是實驗內(nèi)容設(shè)計上,會遇到很大挑戰(zhàn),因為敏捷方法強調(diào)快速迭代,一個迭代周期一般只有2-4周。如果只讓學(xué)生完成一個迭代的實驗,“迭代”實質(zhì)上就沒有發(fā)生,和原來的瀑布模型就非常相似,學(xué)生對迭代的理解就比較困難。為了讓學(xué)生能夠理解迭代,進(jìn)而更好地理解敏捷方法,有必要讓學(xué)生在一個學(xué)期的實踐過程中,完成3~4個迭代,交付多個版本,親自踐行軟件開發(fā)的較完整的敏捷過程。但是,如果學(xué)生在軟件工程實踐中完成多個迭代,其實驗設(shè)計難以和課堂理論教學(xué)內(nèi)容銜接起來,因為教學(xué)內(nèi)容不會按迭代來安排重復(fù)幾次。這是筆者要解決的問題之一,就是如何做到軟件工程課堂理論教學(xué)內(nèi)容和實驗環(huán)節(jié)同步起來。

第二個問題是如何讓基于敏捷方法的軟件工程實驗達(dá)到良好的實踐效果?,F(xiàn)在所經(jīng)過的軟件過程包含了多個迭代,每個迭代周期時間短,學(xué)生在這樣一個非常短的周期內(nèi)完成若干個用戶故事(即幾個需求點或功能特性)的實現(xiàn),包括這些功能特性的詳細(xì)設(shè)計、代碼編寫和測試等工作。但在做這些工作的同時,還要處理系統(tǒng)整體的架構(gòu)設(shè)計、界面設(shè)計、數(shù)據(jù)庫設(shè)計等工作,還要持續(xù)維護(hù)產(chǎn)品需求表,這對缺乏工作經(jīng)驗的學(xué)生來說,無疑會面臨巨大的挑戰(zhàn)。如果實驗環(huán)節(jié)設(shè)計不合理、指導(dǎo)方法不妥,那么實驗效果可能會很差。

第三個問題是如何為基于敏捷方法的軟件工程實驗提供一個理想的環(huán)境。過去軟件工程課程的實驗環(huán)境都是基于瀑布模型建設(shè)的,不能適應(yīng)敏捷方法的實踐要求。例如,對于敏捷方法的Serum過程模式,許多工程元素的表達(dá)、操作和處理的方式都不一樣。

①Scrum的需求是通過用戶故事(UserStory)、Product Backlog等進(jìn)行描述。

②任務(wù)工作量通過小組成員玩敏捷估算撲克來進(jìn)行估算。

③進(jìn)度通過將“任務(wù)帖子”從“To do”移到“In progress”“Testing”“Done”等欄目下進(jìn)行控制,即依賴燃盡圖(Bumdown Chart)來控制。

還有更多具有鮮明特點的敏捷實踐,如測試驅(qū)動開發(fā)(Test Driven Development,TDD)、結(jié)對編程、持續(xù)集成、持續(xù)測試等,這也需要相適應(yīng)的軟件開發(fā)環(huán)境來支撐。

最后,就是在實踐中,如何讓學(xué)生更好地理解敏捷宣言所主張的理念,體現(xiàn)在以下幾點:

①個人與協(xié)作勝于流程與工具。

②可工作的軟件勝于完備的文檔。

③客戶合作勝于客戶談判。

④響應(yīng)變化勝于遵循計劃。

特別是如何讓學(xué)生不要忘記宣言最后一句話:“也就是說,盡管右項有其價值,我們更重視左項的價值”,右邊項“流程、文檔、工具、計劃”等還是有價值的。

2 目前研究現(xiàn)狀

在2001年敏捷宣言發(fā)布之前,大家對敏捷沒有統(tǒng)一的認(rèn)識,但敏捷方法已存在,而最早敏捷方法的代表之一則是極限編程(eXtremeProgramming,XP)。KentBeck在1996年3月成為C3(Chrysler Comprehensive Compensation System)項目負(fù)責(zé)人,開始對項目的開發(fā)方法學(xué)進(jìn)行改善。之后他寫了一本關(guān)于改善后的方法學(xué)的書《極限編程解析》,并于1999年10月出版,意味著極限編程的誕生。敏捷方法引起業(yè)界廣泛關(guān)注,還是在敏捷宣言發(fā)布之后,這方面的研究文章從2001年開始就逐漸多起來了,討論如何將敏捷方法引入軟件工程教育中,要落后于業(yè)界的研究,最早研究出現(xiàn)在2003年,之后開始有比較多的研究。剛開始還是集中整體考慮如何在軟件工程相關(guān)課程中引入敏捷方法。直到2-3年后,人們開始關(guān)注其實踐或?qū)嶒灜h(huán)節(jié),而且側(cè)重討論極限編程、TDD(測試驅(qū)動開發(fā))的引入。而目前流行的敏捷方法,是以Scrum為代表,而不是極限編程,對Scrum的研究相對要落后得多,這方面的論文不多見。在國內(nèi),關(guān)于如何在軟件工程引入敏捷方法的論文也不多,主要因為國內(nèi)業(yè)界在采用敏捷方法的時間,相對國外也遲得多。其次,國內(nèi)大學(xué)和業(yè)界之間的交流和協(xié)作相對國外也比較少。當(dāng)然,更重要的原因是,敏捷方法沒有得到官方IEEE-CS/ACM計算教程指南(Guidelines for Computing Curricula)以及國內(nèi)軟件工程教學(xué)指導(dǎo)委員會的明確支持。endprint

3 敏捷方法的實驗框架

軟件工程課程是一門實踐性很強的課程,需要實驗的支撐,只有理論聯(lián)系實際,才能達(dá)到良好的教學(xué)效果。例如,在同濟(jì)大學(xué),設(shè)置了一門與軟件工程課程并行教學(xué)的實驗課程:軟件工程設(shè)計。這樣,實驗教學(xué)就是“強制要求的”。

同濟(jì)大學(xué)用一學(xué)期完成軟件工程課程教學(xué)及其實驗,敏捷方法采用Scrum過程框架。在國內(nèi)大學(xué),一個學(xué)期時間為4個月,將一個學(xué)期的時間分為4個階段,每一階段為1個月。第1階段為軟件開發(fā)的前期準(zhǔn)備階段,包括產(chǎn)品定義、基本需求分析、數(shù)據(jù)流及其數(shù)據(jù)結(jié)構(gòu)分析、系統(tǒng)架構(gòu)設(shè)計和產(chǎn)品發(fā)布計劃(Release Planning)等工作。而第2、3、4階段,對應(yīng)敏捷開發(fā)的3個迭代周期,即Scrum過程模式中sprint。后面3個階段才是學(xué)生真正動手實踐的階段。

除了完成產(chǎn)品的開發(fā),我們還是要將分析與需求定義、相關(guān)的設(shè)計技術(shù)、持續(xù)構(gòu)建與集成、單元測試、功能測試和非功能測試等內(nèi)容融入到迭代過程,還要讓學(xué)生理解軟件工程思想、質(zhì)量管理、配置管理等內(nèi)容,所以在設(shè)計實驗框架時,要考慮上述內(nèi)容的難易程度、不同的優(yōu)先級和相互依賴性,分別對待,有先有后,有輕有重。根據(jù)這樣的思想,第一個迭代要盡量簡單,每個Serum環(huán)節(jié)過一遍就可以了,然后在第2、3個迭代中逐步增加內(nèi)容(如結(jié)對編程、單元測試、持續(xù)集成、TDD或ATDD等),逐步加強實驗環(huán)節(jié)。

從敏捷本身來看,也可以分為思想、原則、流程、方法和工具、實踐等,先要理解敏捷產(chǎn)生的背景、思想和原則,其中對開源軟件運動、軟件即服務(wù)(Software as a Service)等對軟件開發(fā)模式的影響也是要講解的要點。例如,SaaS模式發(fā)生后,產(chǎn)品發(fā)布即刻就能部署到公司內(nèi)部的服務(wù)器上,用戶幾乎同時就能使用服務(wù)。相對發(fā)布包裝盒產(chǎn)品,SaaS的交付速度快得多、交付成本忽略不計,這也大大降低了修復(fù)缺陷的成本,使之持續(xù)交付成為可能?;诿艚菟枷牒驮瓌t,指導(dǎo)學(xué)生運用敏捷流程和方法,指導(dǎo)學(xué)生開展具體的活動,但同時,通過敏捷過程、敏捷實踐更好地幫助學(xué)生理解敏捷的思想和原則。這些敏捷的要素相輔相成,貫穿整個實驗過程。

根據(jù)上述分析,最終形成如表1所示的基于敏捷方法的軟件工程課程實驗的框架,以階段來安排,通過任務(wù)分層展開,并通過交付內(nèi)容來考核實驗效果。同時,在設(shè)計時,保持和理論教學(xué)的同步,實驗和理論教學(xué)兩邊都要做相應(yīng)的調(diào)整,達(dá)到教學(xué)和實驗的目標(biāo)。

4 具體實施

對于基于敏捷的軟件工程實驗環(huán)節(jié),缺乏可參考的優(yōu)秀實踐,更需要教師和助教更多的投入,參與到每個團(tuán)隊的實驗過程中。理想情況下,每個學(xué)生實驗團(tuán)隊,在其中一個迭代中能全程得到教師或助教的示范作用。如果做不到這點,至少在其中一個迭代的各個關(guān)鍵環(huán)節(jié)(如發(fā)布計劃、Spring計劃、某天的站立晨會、產(chǎn)品review會議、反思會)中,教師或助教至少出現(xiàn)一次。教師參加學(xué)生實驗組的各種會議時,也可以觀察員身份參加,不參與討論。但發(fā)現(xiàn)問題時,會及時指出或給予示范。如果把時間錯開,教師和學(xué)生可以支持12個組,以每組4~5個學(xué)生計算,最多支持60個學(xué)生。所以在基于敏捷的軟件過程課程教學(xué)中,應(yīng)該有更多的教師參與教學(xué),每個教師教30個學(xué)生為佳。

敏捷方法體現(xiàn)以人為本的知識管理,更重要的是體現(xiàn)敏捷團(tuán)隊“自我組織或自我管理”的特點。所以,在其實驗管理中,也盡量相信學(xué)生、尊重學(xué)生,以更開放的態(tài)度對待學(xué)生的實驗,培養(yǎng)學(xué)生積極參與管理過程,提高學(xué)生自我管理的意識。筆者嘗試的有益做法主要有:

(1)以前多數(shù)是教師命題,而現(xiàn)在鼓勵學(xué)生自主命題,自己定義待開發(fā)的產(chǎn)品,可以是web應(yīng)用系統(tǒng),也可以是移動App應(yīng)用,還可以在上個年級的遺留系統(tǒng)上進(jìn)行二次開發(fā)。這不僅可以提高學(xué)生實驗的積極性,更重要的是培養(yǎng)他們的責(zé)任感,兌現(xiàn)自己的承諾。

(2)以前每個成員貢獻(xiàn)是由組長給出百分比,但在敏捷情況下,沒有組長,采用每個學(xué)生給自己團(tuán)隊的各個組員(包括自己)打分,最后選擇合適公式如[(Max+4×Average+Min)/6]算出各組員所得的分?jǐn)?shù)。

(3)實驗答辯的成績評定也讓學(xué)生參加。例如,第一個組答辯成績由第2、3、4組評定,第2組由第3、4、5組評定,以此類推,最后一組由第1、2、3組評定。最后學(xué)生評分占總分35%,教師和助教評分占65%。

在過去兩年的軟件工程教學(xué)過程中,還嘗試了一些其他敏捷開發(fā)的實驗方法,經(jīng)過檢驗,達(dá)到了預(yù)期效果,例如:

(1)構(gòu)建一個集軟件開發(fā)過程管理、配置管理和項目管理為一體的平臺來支撐課程實驗,有利于教師全程跟蹤和管理實驗過程,并營造一個真實的企業(yè)環(huán)境,使學(xué)生的實驗更規(guī)范、更貼近業(yè)界的實際操作。這里推薦開源系統(tǒng)Redmine(http:∥www.redmine.org/)。

(2)學(xué)生分組人數(shù)一般4~5人,但以前實驗團(tuán)隊是由學(xué)生自由、自愿組合而成,現(xiàn)在可以考慮隨機產(chǎn)生,團(tuán)隊成立前,組員之間關(guān)系不能保證融洽。這樣會增加學(xué)生溝通的困難性,更有利于培養(yǎng)學(xué)生的團(tuán)隊意識,提高學(xué)生的溝通能力。

(3)為了讓每個學(xué)生得到全面的訓(xùn)練,在每個迭代中學(xué)生可以扮演不同的角色。在Scrum里總共有3個角色:ScrumMaster、Product Owner和團(tuán)隊一般成員,這樣一個組有4~5人,在3輪迭代中,每個學(xué)生都有機會扮演不同的角色。

5 結(jié)語

從事軟件工程課程的教學(xué)已有兩年了,感覺這門課程教學(xué)不容易,其實驗就更不容易,對教師很有挑戰(zhàn)。教師不僅需要深刻理解軟件工程敏捷思想的真諦,熟悉敏捷方法的各個要素,還需要能夠通過具體示例、神諭等說明敏捷開發(fā)的原則,才能使學(xué)生真正理解敏捷方法。教師還要熟知從需求、設(shè)計、代碼、測試、部署到項目管理等各個方面,而且能把這些內(nèi)容整合起來,前后貫通,形成可實踐、可應(yīng)用的實驗體系。

要教好軟件工程這門課程,應(yīng)結(jié)合學(xué)生特點和能力,精心設(shè)計整個教學(xué)過程,使學(xué)生能夠?qū)W中做、做中學(xué),理論和實踐交替進(jìn)行,達(dá)到良好的教學(xué)效果。endprint

參考文獻(xiàn):

[1]Dingsoyr T,Nerur S,Balijepally V,et a1.A decade of agile methodologies:towards explaining agile software development[J].The Journal of Systems and Software,2012,85(6):1213-1221.

[2]Highsmith J,CockbumA.Agile software development:thebusiness of irmovation[J].Computer,2011,34(9):120-122.

[3]Hedin G,Bendix L,Magnusson B.Introducing software engineering by means 0f extreme programming[C]∥Boris Magnusson. International Conference on Software Engineering.Springer,2003-05-03:586-593.

[4]Hazzan O.Teaching a software development methodology:the ease of extreme programming[C]∥Soffware Engineering Education and Training,2003.IEEE,2003-03-20:176-184.

[5]LeJeune N F.Teaching software enfmeering practices wish extreme programming[J].JCSC,2006(21):3.

[6]RicoDE SayaniHH.Use of agilemethodsin software engineering education[C]#2009AgileConference.IEEE,2009:174-179.

[7]林曉宇,鐘一文,黃世國,等.基于Scrum敏捷方法的軟件工程實踐教學(xué)探索[J].電腦知識與技術(shù):學(xué)術(shù)交流,2011(19):4762-4764.

[8]李中華.倪明濤,敏捷開發(fā)模式在本科計算機科學(xué)與技術(shù)專業(yè)教學(xué)中的應(yīng)用探索[J].科技信息,2010(21):137-138.

[9]Vladan D,Milenkovic S R.Teaching agile software development:a case study[J].IEEE Transactions on Education,2011,54(2):273.

(見習(xí)編輯:劉麗麗)endprint

猜你喜歡
實驗教學(xué)
問題引導(dǎo)在初中化學(xué)實驗教學(xué)中實踐探索
家長(2023年2期)2023-03-14 06:55:16
關(guān)于基礎(chǔ)教育階段實驗教學(xué)的幾點看法
光反應(yīng)與有機化學(xué)實驗教學(xué)結(jié)合的研究
云南化工(2021年8期)2021-12-21 06:38:04
小議初中化學(xué)演示實驗教學(xué)
甘肅教育(2020年4期)2020-09-11 07:42:36
電容器的實驗教學(xué)
物理之友(2020年12期)2020-07-16 05:39:20
對初中化學(xué)實驗教學(xué)的認(rèn)識和體會
甘肅教育(2020年8期)2020-06-11 06:10:04
幾何體在高中數(shù)學(xué)實驗教學(xué)中的應(yīng)用
基于云計算的計算機實驗教學(xué)探討
高中生物實驗教學(xué)中形成性評價的實施——以“觀察根尖分生區(qū)組織細(xì)胞的有絲分裂”實驗教學(xué)為例
高中自然地理課堂實驗教學(xué)的探討
主站蜘蛛池模板: 国产一区二区三区在线精品专区| 午夜一区二区三区| 91精品专区| 日本黄色a视频| 国产在线精品美女观看| 999国内精品视频免费| 亚洲成人动漫在线观看| 精品国产乱码久久久久久一区二区| 国产区网址| 国产精品自在自线免费观看| 久久久久无码精品国产免费| 狠狠久久综合伊人不卡| 免费欧美一级| 国产91麻豆视频| 中文字幕在线播放不卡| 精品国产一区91在线| 亚洲一级毛片| 中文字幕在线免费看| 久久天天躁狠狠躁夜夜躁| 狠狠色噜噜狠狠狠狠奇米777 | 亚洲自偷自拍另类小说| 国产美女一级毛片| 波多野结衣一区二区三视频| 亚洲一道AV无码午夜福利| 亚洲系列中文字幕一区二区| 国产精品主播| 中文国产成人精品久久| 国产丝袜无码一区二区视频| 国产成人精品视频一区视频二区| 国产精品综合色区在线观看| 亚洲无码高清视频在线观看| 国产女人爽到高潮的免费视频 | 亚洲成a人片7777| 日韩黄色精品| 波多野结衣一级毛片| 精品一区二区三区无码视频无码| 国产成人精品免费视频大全五级| 国产在线视频二区| 亚洲黄色激情网站| 国产精品午夜福利麻豆| 好吊妞欧美视频免费| 亚洲丝袜第一页| 久久青青草原亚洲av无码| 国产黑丝一区| 一本大道AV人久久综合| 国产经典在线观看一区| 91亚洲视频下载| 国产小视频a在线观看| 久久精品国产91久久综合麻豆自制| 九九九国产| 天天综合色天天综合网| 波多野结衣视频网站| 欧美日韩一区二区三区在线视频| 久久婷婷综合色一区二区| 亚洲欧洲自拍拍偷午夜色| 午夜在线不卡| 国产精品短篇二区| 国产va免费精品观看| 亚洲成人在线网| 亚洲天堂视频网站| 亚洲成人在线网| 午夜在线不卡| 亚洲αv毛片| 国产一区三区二区中文在线| 影音先锋丝袜制服| 成人小视频网| 欧美成人精品欧美一级乱黄| 欧美一级高清片久久99| 国产精品刺激对白在线| 亚洲爱婷婷色69堂| 国产精品无码久久久久久| 亚洲天堂网在线视频| 一级高清毛片免费a级高清毛片| 国产成+人+综合+亚洲欧美| 欧美日韩另类在线| 中国国产高清免费AV片| 在线视频一区二区三区不卡| 久久亚洲高清国产| 亚洲欧美h| 国产浮力第一页永久地址| 欧美无专区| 97人人做人人爽香蕉精品|