版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 中文22120字</b></p><p> 通過開發(fā)Android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu)</p><p><b> 1.引言</b></p><p> 電腦游戲和視頻游戲非常受兒童和青少年的歡迎,在年輕人的文化發(fā)揮了突出的作用[1]?,F(xiàn)在游戲可以在技術(shù)豐富的配備
2、了筆記本電腦,智能手機(jī),游戲機(jī)(移動和固定),機(jī)頂盒,和其他數(shù)字設(shè)備的環(huán)境中運(yùn)行。從這一現(xiàn)象,人們相信將年輕人對游戲的內(nèi)在動機(jī)與教育內(nèi)容和目標(biāo)結(jié)合就會變成Prensky稱之為“以數(shù)字游戲?yàn)榛A(chǔ)的學(xué)習(xí)”的學(xué)習(xí)方法[2]。</p><p> 青年學(xué)生生活的游戲中除了豐富的外觀,游戲開發(fā)技術(shù)已經(jīng)成熟,并且越來越先進(jìn)[3]。基于現(xiàn)有的各種游戲開發(fā)環(huán)境,游戲開發(fā)過程中的全部責(zé)任可以分為幾個的專家領(lǐng)域和角色,如游戲程序員,
3、3D模型的創(chuàng)造者,游戲設(shè)計師,音樂家,漫畫家,劇作家,等等。游戲內(nèi)容與技術(shù)相結(jié)合的過程可以通過游戲引擎和使用網(wǎng)絡(luò)上的各種用戶和專家社區(qū)的可用信息得到簡化。例如,微軟的XNA游戲開發(fā)工具包提供的游戲循環(huán)函數(shù)繪制及更新游戲內(nèi)容,而且還提供了方便的游戲開發(fā)組件來加載不同格式的圖形,音頻和視頻。這使得游戲迷們?nèi)鐭o論有沒有編程背景的學(xué)生修改現(xiàn)有的游戲或開發(fā)新游戲。他們可以用這些游戲創(chuàng)作工具實(shí)現(xiàn)自己的游戲概念設(shè)計,學(xué)習(xí)發(fā)展技能和相關(guān)知識,積累相關(guān)的
4、實(shí)際經(jīng)驗(yàn)。</p><p> 在這種情況下,不但游戲可以用于學(xué)習(xí)而且通過激發(fā)任務(wù)機(jī)制,游戲開發(fā)工具可以用來研究計算機(jī)科學(xué)(CS),軟件工程(SE),和游戲編程相關(guān)主題。一般來說,游戲可以用三種方式集成在教育中[4,5]。首先,游戲可以用來代替?zhèn)鹘y(tǒng)的練習(xí),鼓勵學(xué)生把額外的努力用來做練習(xí),給老師或助教一個實(shí)時地監(jiān)控學(xué)生是如何練習(xí)的機(jī)會[6,7]。第二,游戲可以作為一個講座的一部分來促進(jìn)學(xué)生的參與,增加學(xué)生的動力[8
5、,9]。第三,將要求學(xué)生們修改或開發(fā)游戲作為使用游戲開發(fā)框架(GDF)學(xué)習(xí)CS和SE方面技能的課程的一部分。我們把后者的學(xué)習(xí)方法為以游戲開發(fā)為基礎(chǔ)的學(xué)習(xí)(GDBL)。GDF表示可以用來開發(fā)或修改游戲,例如,該工具包的游戲引擎,游戲編輯器,或游戲(模擬)平臺,甚至任何集成開發(fā)環(huán)境(IDE),如Visual C + +,Eclipse和Android SDK,J2ME,因?yàn)樗械娜硕伎梢杂脕黹_發(fā)游戲。</p><p>
6、; 本文重點(diǎn)研究學(xué)生通過在Android平臺開發(fā)游戲應(yīng)用學(xué)習(xí)軟件體系結(jié)構(gòu)和在Android平臺開發(fā)社交應(yīng)用(例如,天氣預(yù)報,聊天軟件)學(xué)習(xí)軟件體系結(jié)構(gòu)的相似點(diǎn)和不同點(diǎn)。將游戲開發(fā)放到CS或者SE課程中的動機(jī)是利用學(xué)生對游戲及游戲開發(fā)的迷戀來激發(fā)他們通過該項(xiàng)目更多更好的學(xué)習(xí)課程材料。</p><p><b> 2.相關(guān)工作</b></p><p> 本節(jié)描述了GD
7、BL方法在軟件工程領(lǐng)域的使用的研究背景和以前的結(jié)果。</p><p><b> 2.1 研究背景</b></p><p> 最早的類似的通過在游戲的環(huán)境中編程來學(xué)習(xí)的應(yīng)用在20世紀(jì)70年代早期。Logo語言[11],龜圖形,是一種最古老的用來介紹計算概念給初學(xué)者的圖書館。這個概念是基于一只可以在2D屏幕上移動的 “海龜”,該“海龜”用可設(shè)置開關(guān)屏幕的畫筆畫就,因此
8、,可能會留下龜運(yùn)動的痕跡。編程使該“海龜”畫不同的花樣,這可以用來介紹一般的計算技巧,如程序操作,迭代,遞歸。此外,在1987,Micco學(xué)術(shù)性的提出了一個寫井字游戲的使用[12]。后來,其他的研究已經(jīng)使用專業(yè)游戲編程工具如Stage Cast Creator [13],Gamemaker [14] ,Alice [15]和Neverwinter Nights [16]。此外,文章[17]提出了使用手機(jī)游戲開發(fā)作為激勵工具和計算機(jī)課程的
9、學(xué)習(xí)背景調(diào)查。他們的調(diào)查表明游戲編程和計算機(jī)科學(xué)領(lǐng)域的游戲開發(fā)之間的關(guān)系--游戲發(fā)展可以用在學(xué)習(xí)人工智能(AI),數(shù)據(jù)庫,計算機(jī)網(wǎng)絡(luò),SE,人機(jī)交互,計算機(jī)圖形學(xué),計算機(jī)體系結(jié)構(gòu),算法,編程和操作系統(tǒng)。</p><p> 這些研究表明,游戲制作和技術(shù)的編程技巧得到激勵以及故事性的發(fā)展。制作游戲激勵和開發(fā)評書以及技術(shù)的編程技巧的。制作游戲的任務(wù)其性質(zhì)在目的上不盡相同---因此搭建環(huán)境并平衡游戲角色這些事情由學(xué)習(xí)者
10、來承擔(dān)。最近的游戲編程工具包往往具有比Logo語言更強(qiáng)的視覺效果,無論是因?yàn)檫@個原因,或者因?yàn)樗麄冇幸环N可視化的編程語言,或兩個原因同時的作用,使得設(shè)計者能夠輕松創(chuàng)建圖形游戲。這種變化使學(xué)習(xí)者的重點(diǎn)遠(yuǎn)離了低級編程,而是強(qiáng)制往其他角色如設(shè)計師或軟件開發(fā)者轉(zhuǎn)變。因此,我們通過實(shí)驗(yàn)研究了如何將GDFS用于教育,探討傳統(tǒng)的授課進(jìn)化為動態(tài)的,合作的,和對當(dāng)前技術(shù)豐富的環(huán)境下的學(xué)生有吸引力的授課。然而,這種說法有待進(jìn)一步相關(guān)理論,應(yīng)用經(jīng)驗(yàn),評價結(jié)果
11、和經(jīng)驗(yàn)證據(jù)的支持。這是一個分享我們的經(jīng)驗(yàn)和實(shí)證結(jié)果在GDBL領(lǐng)域采用Android軟件體系結(jié)構(gòu)課程的動機(jī)。</p><p> 2.2 課程和項(xiàng)目設(shè)置</p><p> 挪威科技大學(xué)(NTNU)(課程代碼TDT4240)的軟件體系結(jié)構(gòu)課程的教學(xué)方式和其他大多數(shù)大學(xué)不一樣,因?yàn)閷W(xué)生也必須在項(xiàng)目中實(shí)現(xiàn)他們自己設(shè)計的軟件體系結(jié)構(gòu)。這樣做的動機(jī)是為了讓學(xué)生了解架構(gòu)和實(shí)現(xiàn)之間的關(guān)系,并能夠真正的對
12、體系架構(gòu)和實(shí)施是否符合應(yīng)用程序指定質(zhì)量要求進(jìn)行評價。在軟件體系結(jié)構(gòu)課程中的架構(gòu)項(xiàng)目和其他軟件工程課程項(xiàng)目的相似,只是軟件體系結(jié)構(gòu)課程中項(xiàng)目都是從軟件體系結(jié)構(gòu)的角度進(jìn)行。在整個項(xiàng)目中,學(xué)生們必須根據(jù)指定的項(xiàng)目使用的軟件體系結(jié)構(gòu)技術(shù),方法和工具來成功學(xué)到東西。</p><p> 軟件體系結(jié)構(gòu)的項(xiàng)目包括以下幾個階段:(i)COTS(商用成品)練習(xí):學(xué)習(xí)相關(guān)技術(shù)并用來開發(fā)一個簡單的游戲。(ii)設(shè)計模式:學(xué)習(xí)如何通
13、過改變現(xiàn)有系統(tǒng)中的應(yīng)用設(shè)計模式來應(yīng)用設(shè)計模式。(iii)需求和體系結(jié)構(gòu):列表功能,質(zhì)量的要求和對游戲的軟件體系結(jié)構(gòu)的設(shè)計。(iv)架構(gòu)評估:使用的架構(gòu)權(quán)衡分析法(ATAM)[18-20]評價方法對項(xiàng)目的軟件體系結(jié)構(gòu)方面的質(zhì)量要求進(jìn)行評估。(v)實(shí)施:做詳細(xì)的設(shè)計,并在新建的架構(gòu)和根據(jù)評估結(jié)果做出修改的基礎(chǔ)上實(shí)現(xiàn)該游戲。(vi)項(xiàng)目評估:使用事后分析法(PMA)[21]將項(xiàng)目作為一個整體進(jìn)行評估。</p><p
14、> 在項(xiàng)目的前兩個階段,學(xué)生將獨(dú)立完成他們的工作任務(wù)。在3–6階段,4-5個學(xué)生組成一個團(tuán)隊,并在自己的團(tuán)隊中完成相應(yīng)的工作。同時,在項(xiàng)目進(jìn)行期間,學(xué)生將專注于一個固定的初級指定質(zhì)量屬性。對于中等質(zhì)量屬性,學(xué)生可以選擇他們喜歡的質(zhì)量屬性。學(xué)生花大部分時間在實(shí)施(六周),但也鼓勵他們在早期階段開始實(shí)現(xiàn)該游戲以測試他們的架構(gòu)選擇(增量開發(fā))是否合理。在實(shí)施階段,學(xué)生通過多次迭代不斷擴(kuò)展,完善軟件體系結(jié)構(gòu)使其得到改進(jìn)。</p&g
15、t;<p><b> 2.3早期的成果</b></p><p> 此前,該項(xiàng)目的目標(biāo)是開發(fā)Java方面的 Khepera機(jī)器人模擬器的華盛頓州立大學(xué)的機(jī)器人控制器(機(jī)器人)[22],該機(jī)器人控制器著重于一些指定的質(zhì)量屬性如可用性,性能,可修改性,或可測性。開始時,學(xué)生們被要求編寫的機(jī)器人控制器能控制一個機(jī)器人在一個迷宮中移動,并在迷宮中收集四個球,并把它們帶到迷宮中一個固定
16、的位置中。在2008年,學(xué)生們可以在機(jī)器人控制器項(xiàng)目和游戲開發(fā)項(xiàng)目之間進(jìn)行選擇。兩種項(xiàng)目的過程,成果,和對項(xiàng)目的評價是一樣的--只是領(lǐng)域不一樣。在游戲項(xiàng)目中,學(xué)生們被要求使用微軟XNA框架和C#語言開發(fā)一個游戲。最后,對軟件體系結(jié)構(gòu)課程進(jìn)行評價[23,24]。評價是基于一個項(xiàng)目的調(diào)查數(shù)據(jù),學(xué)生的項(xiàng)目可交付成果,和其他可訪問的課程信息。研究的主要結(jié)論是,游戲開發(fā)項(xiàng)目可以成功地如果我們考慮機(jī)器人作為評價基準(zhǔn)用來教軟件體系結(jié)構(gòu)。</p&
17、gt;<p> 整合我們在2008年運(yùn)行軟件體系結(jié)構(gòu)課程的游戲項(xiàng)目的經(jīng)驗(yàn),在2010-2011年期間我們軟件體系結(jié)構(gòu)課程項(xiàng)目中增加了一個COTS-Android的項(xiàng)目作為給學(xué)生的一個新的選擇。學(xué)生們現(xiàn)在可以在除了在Java機(jī)器人項(xiàng)目和XNA 游戲項(xiàng)目之間進(jìn)行選擇,還可以在Android平臺開發(fā)一個社交應(yīng)用程序或游戲。由于COTS和所選擇領(lǐng)域的獨(dú)立性,學(xué)生們在項(xiàng)目過程中必須專注于相同的軟件體系結(jié)構(gòu)問題,并按照相同的模板編程
18、。游戲和社交Android項(xiàng)目的引進(jìn),使我們得以比較學(xué)生在項(xiàng)目所涉及的領(lǐng)域如何影響學(xué)習(xí)和項(xiàng)目經(jīng)驗(yàn)以及COTS的獨(dú)立性。在下面的章節(jié)中詳細(xì)說明。</p><p><b> 3 研究方法</b></p><p> 本節(jié)描述我們使用Android開發(fā)作為軟件體系結(jié)構(gòu)中的項(xiàng)目的實(shí)驗(yàn)中獲得的相關(guān)數(shù)據(jù)的研究方法。</p><p><b>
19、3.1研究目的</b></p><p> 本文重點(diǎn)研究使用相同的COTS但具有不同的發(fā)展領(lǐng)域來探討不同領(lǐng)域是否產(chǎn)生不同的輸出。在我們以前的研究,GDBL結(jié)論的有效性是基于不同的COTS機(jī)器人和XNA。本文不探討XNA和Java開發(fā)的機(jī)器人控制器開發(fā)的游戲,只注重Android平臺的社會應(yīng)用和游戲應(yīng)用的開發(fā)。我們的評估包括五個主題:選擇域分布,學(xué)生對項(xiàng)目感知,項(xiàng)目交付的代碼質(zhì)量和復(fù)雜性,學(xué)生的努力和成
20、績,獲獎項(xiàng)目等級。</p><p><b> 3.2 GQM方法</b></p><p> 社會和游戲項(xiàng)目的比較應(yīng)該有助于發(fā)現(xiàn)差異,揭示在Android平臺上引入項(xiàng)目的影響。這個評價是一個模擬試驗(yàn),而不是一個受控制的試驗(yàn)。采用的研究方法是基于目標(biāo)問題度量方法(GQM)[ 25 ],我們首先確定研究目標(biāo)(概念層面),然后定義一組研究問題(操作層面),并描述了一套指標(biāo)
21、來回答研究問題的定義(數(shù)量級)。在我們的例子中,回答問題的研究使用的指標(biāo)的定量和定性數(shù)據(jù)共同決定的。</p><p> 表1:展示了用于分析軟件體系結(jié)構(gòu)課程的游戲開發(fā)項(xiàng)目的GQM方法。</p><p><b> 3.3. 研究步驟</b></p><p> 當(dāng)學(xué)生開始的項(xiàng)目,并按照項(xiàng)目的階段進(jìn)行時,他們應(yīng)該報告他們花在項(xiàng)目的每個階段的時間
22、。前兩個階段讓學(xué)生單獨(dú)或成對熟悉COTS、架構(gòu)和設(shè)計模式。該項(xiàng)目的主要工作是在項(xiàng)目3-5階段,包括需求說明,架構(gòu)設(shè)計,架構(gòu)評估,項(xiàng)目實(shí)現(xiàn)和測試。學(xué)生每個階段要上交自己的成果,這由課程負(fù)責(zé)人評估和反饋,在最后交作品之前使作品不斷改善。在5階段的結(jié)束,學(xué)生們會上交一個最終的作品,該作品是經(jīng)過課程負(fù)責(zé)人評估和分級的。完成5階段后,學(xué)生回答一個問卷調(diào)查,主要集中在學(xué)生如何看待該項(xiàng)目。在6階段,學(xué)生必須對其進(jìn)行項(xiàng)目的事后分析作為一個整體來反映他們
23、在項(xiàng)目中取得的成績和挑戰(zhàn)。</p><p><b> 4 研究結(jié)果</b></p><p> 在2010年和2011年,學(xué)生可以選擇使用三個COTS做項(xiàng)目:機(jī)器人(Java),XNA(C #),和Android(Java)。學(xué)生選擇的COTS結(jié)果展示在圖1中,其中36名學(xué)生選擇了Khepera機(jī)器人(19%),55名學(xué)生選擇了XNA(27%),和102名學(xué)生(54
24、%)選擇了Android。選擇Android的學(xué)生中,58名學(xué)生(57%)選擇了社會應(yīng)用,44名學(xué)生(43%)選擇了游戲應(yīng)用。從學(xué)生選擇中我們看到,51%的人選擇了游戲開發(fā)領(lǐng)域,30%的人選擇了社會應(yīng)用,19%的人選擇機(jī)器人控制器。</p><p> 圖1:軟件架構(gòu)項(xiàng)目類型的選擇分布圖</p><p> 圖1的數(shù)據(jù)清楚地表明,大多數(shù)學(xué)生喜歡游戲開發(fā)相比其他領(lǐng)域。Android是目前最流
25、行的COTS,我們相信這是由于開發(fā)商其開放性,Java的開發(fā),有吸引力的設(shè)備,創(chuàng)新的特點(diǎn)和發(fā)展,和一個通過Android標(biāo)記共享開發(fā)的應(yīng)用程序的新方式。</p><p> 在項(xiàng)目的第一階段,學(xué)生們被要求填寫一份調(diào)查問卷,選擇COTS和領(lǐng)域的原因。最重要的原因是:(1)編程列表的原因(熟悉Java或C #)(70.7%),(2)了解COTS(機(jī)器人,XNA,Android)(59.5%),(3)游戲動機(jī)或娛樂的原
26、因(40.1%),(4)社會應(yīng)用的動機(jī)(39.5%),(5)了解該領(lǐng)域(機(jī)器人,游戲,社會)(34.2%),(6)硬件上運(yùn)行游戲的動機(jī),Android手機(jī),Zune播放器(33%),和(7)做了游戲,然后將自己的游戲放到Android市場或XNA俱樂部(24.5%)。從上面的數(shù)據(jù),我們發(fā)現(xiàn),游戲領(lǐng)域已經(jīng)吸引學(xué)生注意力和吸引力的外圍設(shè)備的優(yōu)勢,如硬件或軟件市場, Android社交領(lǐng)域也一樣。但這不是機(jī)器人領(lǐng)域的情況。</p>
27、<p> 下面的小節(jié)重點(diǎn)分析在以下四個方面是否社交領(lǐng)域和游戲領(lǐng)域不同而產(chǎn)生明顯不同的輸出:(1)學(xué)生對項(xiàng)目的感受,(2)軟件體系結(jié)構(gòu)的設(shè)計復(fù)雜度,(3)學(xué)生在項(xiàng)目中的實(shí)現(xiàn)成果(4)學(xué)生在項(xiàng)目的評分。</p><p> 4.1學(xué)生對項(xiàng)目的不同感受。</p><p> 學(xué)生們完成了他們的軟件體系結(jié)構(gòu)設(shè)計一個星期后,我們做了一個關(guān)于項(xiàng)目的調(diào)查。本次調(diào)查的目的是揭示在學(xué)生對組隊
28、完成在Android平臺上的社交應(yīng)用項(xiàng)目與組隊完成相同COTS的游戲項(xiàng)目的感受可能存在的差異。在調(diào)查報告中讓學(xué)生回想該項(xiàng)目對他們學(xué)習(xí)軟件體系結(jié)構(gòu)有何幫助。</p><p> 該調(diào)查定義的假設(shè)如下。</p><p> H0:學(xué)生對Android平臺上的社交應(yīng)用或者游戲應(yīng)用來作為軟件體系結(jié)構(gòu)項(xiàng)目的感受沒有任何差異。</p><p> 我們將采用Kruskal-Wa
29、llis檢驗(yàn)假設(shè)[26],因?yàn)樗侨后w之間的人口平均數(shù)測試的平等的非參數(shù)方法[24]。此測試通常是(1)用戶不能假設(shè)一個正常的人口(2)兩組樣本大小是不同的。表2展示Kruskal-Wallis檢驗(yàn)對報表PS1–PS6檢驗(yàn)的結(jié)果。44個游戲項(xiàng)目的學(xué)生中38個學(xué)生做了問卷,58個社會項(xiàng)目的學(xué)生中的35個學(xué)生做了問卷。問卷中的每個項(xiàng)目是通過分配一個從1到5的5個程度值的答案,其中1表示非常反對,5表示非常同意。</p><
30、;p> 表2: Wilcoxon測試PS1-PS11報表</p><p> 從測試結(jié)果中,問卷調(diào)查的回答中顯著性差異(P≤0.05)最低的是PS2(P = 0.024)。我們得出這樣的結(jié)論:Android游戲和Android社交應(yīng)用之間顯著的差異在于學(xué)生對項(xiàng)目中困難的感知的重點(diǎn)集中在項(xiàng)目指定的質(zhì)量屬性上。Android游戲在量表的得分是3分,而Android社交應(yīng)用的得分為4分。這表明,Android游
31、戲項(xiàng)目的學(xué)生對PS5表示中立的態(tài)度,但Android社交應(yīng)用項(xiàng)目的學(xué)生對PS5傾向于同意。一個可能的解釋是,一個游戲的質(zhì)量屬性,如可修改性或可測性,,很容易讓學(xué)生聯(lián)想,并抓住學(xué)生的注意力使學(xué)生去深入的了解它。但社交應(yīng)用程序可能更多的固定印象在學(xué)生的生活,故激發(fā)學(xué)生去思考的影響沒有游戲的深刻。其他的報表在學(xué)生感知方面沒有顯著差異。</p><p> 此外,即使其他兩組的P值無顯著性差異,PS1和PS4的平均值還表
32、明學(xué)生從游戲項(xiàng)目中發(fā)現(xiàn)評價其他組在ATAM方面的架構(gòu)沒有那么困難,比社交應(yīng)用項(xiàng)目的學(xué)生在技術(shù)問題上花費(fèi)更少的時間。此外,PS6:學(xué)生必須回答如果他們能夠回到過去的時間,他們是否會選擇另一個項(xiàng)目。圖2展示了更詳細(xì)的統(tǒng)計信息。</p><p> 圖2顯示,相比選擇游戲項(xiàng)目的學(xué)生的比例(13%)選擇社交應(yīng)用項(xiàng)目的學(xué)生中有較高比例的學(xué)生,會選擇另一個項(xiàng)目(20%)??偟膩碚f,調(diào)查顯示最顯著的差異是選擇游戲項(xiàng)目的學(xué)生更注
33、重軟件的質(zhì)量屬性。報表獲得的P值(P1,P2,P4)顯示選擇游戲項(xiàng)目的學(xué)生比選擇社交應(yīng)用項(xiàng)目的學(xué)生更積極的反饋他們對自己項(xiàng)目的感受。</p><p> 圖2:關(guān)于PS6:如果你能回到過去你會選擇相同的項(xiàng)目嗎</p><p> 4.2軟件體系結(jié)構(gòu)設(shè)計上的差異</p><p> 憑經(jīng)驗(yàn)是很難評估一個軟件的架構(gòu),但我們選擇通過設(shè)計模式的學(xué)生選擇人數(shù),主要模塊/類的軟
34、件體系結(jié)構(gòu)的邏輯視圖的數(shù)量,和體系結(jié)構(gòu)層次結(jié)構(gòu)的數(shù)目來評估一個軟件體系結(jié)構(gòu)的好壞。我們承認(rèn),這樣比較會有很多誤差源,因?yàn)檫@兩個領(lǐng)域差別太大。然而,在本課程的重點(diǎn)是軟件設(shè)計模式的應(yīng)用,從邏輯視圖上主要對足夠詳細(xì)的軟件體系結(jié)構(gòu)提出不同的看法。實(shí)驗(yàn)數(shù)據(jù)應(yīng)強(qiáng)調(diào)項(xiàng)目的兩種類型項(xiàng)目之間的任何差異。實(shí)驗(yàn)數(shù)據(jù)通過閱讀和分析12個游戲項(xiàng)目小組和16個社交應(yīng)用項(xiàng)目小組最終的項(xiàng)目報告收集而來。</p><p> 4.2.1設(shè)計模式的
35、使用</p><p> 表3是對軟件體系結(jié)構(gòu)和設(shè)計模式應(yīng)用于社交應(yīng)用項(xiàng)目和游戲項(xiàng)目數(shù)量的描述性統(tǒng)計。表3的結(jié)果表明,設(shè)計模式在兩種類型的項(xiàng)目中的使用有一些差異。表4 展現(xiàn)的Kruskal-Wallis檢驗(yàn)的結(jié)果表明設(shè)計模式在的兩個不同的項(xiàng)目類型中實(shí)現(xiàn)的數(shù)量在統(tǒng)計上無明顯差異。</p><p> 表4提出設(shè)計模式在的兩個不同的項(xiàng)目類型中實(shí)現(xiàn)的數(shù)量在統(tǒng)計上無明顯差異。根據(jù)閱讀項(xiàng)目報告,圖3
36、給出了設(shè)計模式在社交項(xiàng)目小組和游戲項(xiàng)目小組使用的分布。這些圖表顯示,在這兩種類型的項(xiàng)目中Observer模式是最受歡迎的。此外,Abstract Factory模式和State模式在游戲項(xiàng)目小組中排名前三的模式,社交應(yīng)用項(xiàng)目小組中排名前三的模式還有集合模式和模板模式。游戲項(xiàng)目比社交應(yīng)用項(xiàng)目在應(yīng)用的體系結(jié)構(gòu)和設(shè)計模式方面有更多的多樣性。例如,游戲項(xiàng)目使用的八種設(shè)計模式相比社交應(yīng)用項(xiàng)目的六種設(shè)計模式,如圖3所示。</p>&l
37、t;p> 即使沒有顯著差異,但P值接近0.1。在表中,在他們的項(xiàng)目4implies游戲隊使用的設(shè)計模式中,這可能會導(dǎo)致游戲項(xiàng)目的使用比在全面統(tǒng)計圖3所示的社會項(xiàng)目的更多類型的模式。</p><p> 圖3:游戲和社會項(xiàng)目的設(shè)計模式的使用分布</p><p><b> 表3:使用設(shè)計模式</b></p><p> 表4:假設(shè)檢驗(yàn)的數(shù)
38、量采用的設(shè)計模式</p><p> 4.2.2軟件體系結(jié)構(gòu)的復(fù)雜性。</p><p> 體現(xiàn)軟件體系結(jié)構(gòu)的復(fù)雜性的兩個指標(biāo)[24]:(1)在軟件體系結(jié)構(gòu)的邏輯視圖描述的主要模塊或類的數(shù)目;(2)在軟件體系結(jié)構(gòu)的邏輯視圖的層次結(jié)構(gòu)的數(shù)目。選擇體現(xiàn)計算復(fù)雜性的邏輯視圖的原因是,邏輯視圖是給軟件體系結(jié)構(gòu)設(shè)計提供最好的概述的東西中主要的一個。表5列出了主要模塊/類的數(shù)量和社交應(yīng)用項(xiàng)目和游戲項(xiàng)目
39、中的軟件體系結(jié)構(gòu)的邏輯視圖的層次結(jié)構(gòu)的數(shù)目的統(tǒng)計。</p><p> 表5表明游戲項(xiàng)目小組比社交應(yīng)用項(xiàng)目平均接近4或者更多主要模塊/類(28%),小于標(biāo)準(zhǔn)偏差。此外,在游戲項(xiàng)目中的軟件體系結(jié)構(gòu)的層次數(shù)是社交應(yīng)用項(xiàng)目中的軟件體系結(jié)構(gòu)的層次數(shù)的兩倍。</p><p> 表6給出了從Kruskal-Wallis檢驗(yàn)得出結(jié)果,對軟件體系結(jié)構(gòu)的主要模塊/類的數(shù)目和層次的數(shù)目。兩個檢驗(yàn)都給出了p值
40、(P<0.05)具體地說,試驗(yàn)表明,在軟件體系結(jié)構(gòu)中的主要類的數(shù)目和層次的數(shù)目在統(tǒng)計上有著顯著的差異。從這個結(jié)果,這意味著游戲項(xiàng)的軟件體系結(jié)構(gòu)比社交應(yīng)用的軟件體系結(jié)構(gòu)要復(fù)雜;這可能是由于他們用更多的方式來實(shí)現(xiàn)他們的游戲項(xiàng)目導(dǎo)致這種差異。</p><p> 表5:測量軟件體系結(jié)構(gòu)的復(fù)雜性</p><p> 表6-1:假設(shè)檢驗(yàn)架構(gòu)的復(fù)雜性</p><p> 4.3
41、在項(xiàng)目中投入精力的差異。</p><p> 要評估每個項(xiàng)目的學(xué)生投入的努力,需要兩個指標(biāo)作為衡量標(biāo)準(zhǔn):(1)花在項(xiàng)目上的時間(2)軟件體系結(jié)構(gòu)、項(xiàng)目文件的大小和代碼行數(shù)的多少。</p><p> 4.3.1時間的花費(fèi)</p><p> 我們要求學(xué)生估計使用了多少小時去完成軟件體系結(jié)構(gòu)的項(xiàng)目的3–5階段(核心項(xiàng)目的階段)。表7顯示了每個小組給出的估計小時數(shù)。&l
42、t;/p><p> 根據(jù)每個小組投入的時間,我們使用Kruskal-Wallis試驗(yàn)對每個小組在項(xiàng)目花費(fèi)的小時數(shù)進(jìn)行了差異測試。</p><p> 根據(jù)以前的研究成果,游戲項(xiàng)目小組和社交應(yīng)用小組所花費(fèi)的時間在統(tǒng)計上的并沒有顯著差異。相反,在這兩個項(xiàng)目花費(fèi)的時間分布是非常相似的。</p><p> 表7-1:每隊花在項(xiàng)目上的時間。</p><p&
43、gt;<b> 4.3.2項(xiàng)目分析</b></p><p> 此外,我們選擇將項(xiàng)目的實(shí)現(xiàn)程度作為標(biāo)準(zhǔn)來對在項(xiàng)目過程中工作量的多少進(jìn)行評估。它可以提供一個良好的軟件體系結(jié)構(gòu)的復(fù)雜性和由此產(chǎn)生應(yīng)用程序的實(shí)現(xiàn)[24]。由于兩個類型的小組都使用Android平臺,在復(fù)雜性方面該領(lǐng)域具有可比性,我們期望找到實(shí)現(xiàn)效率上的差異。在項(xiàng)目開發(fā)的過程中,他們可以免費(fèi)的使用Android網(wǎng)絡(luò)資源或者其他的開源
44、庫,這樣可以節(jié)約編寫代碼實(shí)現(xiàn)設(shè)計好的軟件體系結(jié)構(gòu)的時間。</p><p> 以下指標(biāo)進(jìn)行計算學(xué)生小組的工作量:(1)源文件數(shù)(NOF);(2)代碼中的注釋的數(shù)量(NOC);(3)源代碼中不計空行和注釋行的行數(shù)(LOC)。</p><p> 表9給出了游戲項(xiàng)目小組和社交應(yīng)用小組工作量的比較,表中只統(tǒng)計Java代碼文件,外部庫代碼文件和資源文件將不統(tǒng)計到表中。</p><
45、;p> 我們使用Kruskal-Wallis檢驗(yàn)方法對實(shí)現(xiàn)兩種不同的項(xiàng)目所得到的文件的數(shù)量和代碼行數(shù)的差異進(jìn)行了測試,表10顯示了該測試的結(jié)果。</p><p> Kruskal-Wallis檢驗(yàn)的結(jié)果表明,兩種類型的項(xiàng)目的LOC在統(tǒng)計上的沒有顯著差異。但P接近0.1。表9的平均值表明游戲項(xiàng)目小組在項(xiàng)目進(jìn)行過程中把更多的精力放在實(shí)施階段,如編碼,作注釋,將結(jié)構(gòu)代碼放到多個文件。</p>&
46、lt;p> 從表7,8,9,10,我們可以發(fā)現(xiàn)游戲項(xiàng)目小組在相似的時間開銷(334 VS 338)編寫的代碼比平均代碼量幾乎多三分之一(超過133%)。這意味著游戲項(xiàng)目小組更高效,他們努力的編碼,寫注釋,盡量在和社交應(yīng)用項(xiàng)目小組類似的時間內(nèi)開發(fā)出一個復(fù)雜的游戲軟件體系結(jié)構(gòu)。</p><p> 表8-1:假設(shè)花費(fèi)小時</p><p> 表9-1:架構(gòu)項(xiàng)目實(shí)施的指標(biāo)</p&g
47、t;<p> 表10:假設(shè)檢驗(yàn)項(xiàng)目實(shí)施代碼</p><p> 4.4項(xiàng)目的成績差異</p><p> 該項(xiàng)目的得分是0分和30分之間,以總成績30%。項(xiàng)目等級區(qū)間劃分為:A:評分≥90%;B:評分≥80%并且評分<90%分;C:評分≥60%并且評分<80%;D:評分≥50%并且評分<60%;E:評分≥40%并且評分<50%;F:評分<40%(失敗)。</p>
48、<p> 為了調(diào)查項(xiàng)目小組給選擇Android游戲項(xiàng)目和Android社交應(yīng)用項(xiàng)目的學(xué)生評分是否有任何差異,假設(shè)沒有任何差異, Kruskal-Wallis檢驗(yàn)是用來檢驗(yàn)這一假設(shè),因?yàn)槲覀儾荒芗僭O(shè)一個正常的人口而兩組樣本的大小是不同的。表11給出了Kruskal-Wallis檢驗(yàn)的結(jié)果:每個游戲項(xiàng)目和社交應(yīng)用項(xiàng)目的學(xué)生項(xiàng)目成績的差異。</p><p> 表11:Kruskal-Wallis測試不
49、同的項(xiàng)目得分。</p><p> 項(xiàng)目開發(fā)時使用同樣的COTS項(xiàng)目成績沒有明顯的差異。我們單獨(dú)運(yùn)行2010年的社交應(yīng)用項(xiàng)目和2011年的游戲項(xiàng)目。該項(xiàng)目的實(shí)施要求和模板在3-6階段是2年保持相同,并且評價的過程和評委是一樣的;我們可以發(fā)現(xiàn)學(xué)生在同等條件下都完成了項(xiàng)目,這說明困難可能是類似的。所以,我們只得出對于項(xiàng)目成績無顯著差異的結(jié)論。為了得到的分?jǐn)?shù)的概述,圖4給出了兩種類型的項(xiàng)目(游戲項(xiàng)目與社交應(yīng)用項(xiàng)目)等級
50、分布。</p><p><b> 圖4:項(xiàng)目分布</b></p><p><b> 5有效性的威脅</b></p><p> 我們現(xiàn)在考慮什么是本次評估的有效性最重要的威脅。</p><p><b> 5.1內(nèi)部有效性</b></p><p>
51、 一個實(shí)驗(yàn)的內(nèi)部有效性的問題“有關(guān)是否觀察到A(假定為處理)和B(假定為結(jié)果)之間協(xié)同改變,這反映了這些被操作或測量的變量A和B的因果關(guān)系”[27]。如果B的改變引起了除了對A之外的其他操作,這就是內(nèi)部有效性的一個威脅。</p><p> 這個評估有兩個主要的內(nèi)部有效性的威脅。第一內(nèi)部威脅的是兩組在評價中使用的樣本不是隨機(jī)的。允許學(xué)生選擇Android游戲和Android的社交應(yīng)用中的一個項(xiàng)目。我們不認(rèn)為學(xué)生選
52、擇一個項(xiàng)目的一個特定類型就高于其他的類型,從而損害了評價結(jié)果。第二個內(nèi)部威脅是如果有任何差異,學(xué)生必須怎樣獨(dú)立的完成自己所選擇的領(lǐng)域的項(xiàng)目。獨(dú)立做一個社交應(yīng)用項(xiàng)目或一個游戲項(xiàng)目,學(xué)生必須完全的完成項(xiàng)目中的相同階段,提供在2010和2011相同的文檔模板基礎(chǔ)上完全相同的文件。我們已經(jīng)確定了兩種類型的項(xiàng)目是如何進(jìn)行的的差異。游戲項(xiàng)目小組和社交應(yīng)用項(xiàng)目小組的學(xué)生所經(jīng)歷的項(xiàng)目的1-2階段是不同的。這兩個階段不是包含數(shù)據(jù)和用于評估項(xiàng)目材料的一部分
53、。我們不認(rèn)為這些差異對學(xué)生在他們的項(xiàng)目中所使用的方式有重大影響,因?yàn)樗菧?zhǔn)備階段,我們對這兩個階段重視但是最后又排除在外。</p><p><b> 5.2 結(jié)構(gòu)有效性</b></p><p> 結(jié)構(gòu)有效性關(guān)心的是哪個推斷得到保證的程度:(1)觀察到的人,設(shè)置,和的原因和影響操作包括在一項(xiàng)研究中(2)可能有異議的情況的結(jié)構(gòu)。因此,現(xiàn)在的問題是,研究的取樣資料是否可
54、以作為一般結(jié)構(gòu)的度量[27]。</p><p> 在軟件體系結(jié)構(gòu)課程使用Android項(xiàng)目的評估中,我們的研究目標(biāo)是調(diào)查Android平臺上的游戲項(xiàng)目和社交應(yīng)用項(xiàng)目的差異性和相似性。GQM方法對這個目標(biāo)具體化為四個可以支撐指標(biāo)的研究問題。為了回答這四個研究問題,數(shù)據(jù)源和度量變量可以從我們的軟件體系結(jié)構(gòu)課程中進(jìn)行選擇。我們不能斷言評估中所選擇的數(shù)據(jù)源和度量可以給所有的結(jié)構(gòu)提供證據(jù),但是它們都是有助于描述兩種不同的
55、項(xiàng)目之間的區(qū)別的強(qiáng)大指標(biāo)。在整個評估的過程中,我們使用不同的方法進(jìn)行比較,最后得出評估結(jié)果。方法的選擇是根據(jù)描述和可視化使用可用的數(shù)據(jù)的兩組之間的差異的最佳方式。方法的選擇是基于使用可用數(shù)據(jù)描述和可視化兩種小組之間的差異的最好方法。</p><p><b> 5.3 外部有效性</b></p><p> 外部有效性存在問題是是否持有一種因果關(guān)系(1)實(shí)驗(yàn)中的人員,
56、設(shè)置,處理和輸出是否有變化(2)實(shí)驗(yàn)原計劃或開始時的人員,設(shè)置,處理和結(jié)果是否在實(shí)驗(yàn)中用到[27]。</p><p> 本文報告的結(jié)果對其他老師考慮引進(jìn)游戲項(xiàng)目作為軟件體系結(jié)構(gòu)課程的一部分具有重大意義。此外,該結(jié)果對那些考慮引進(jìn)游戲項(xiàng)目到SE和CS課程的老師也具有重大意義,因?yàn)檫@些課程中有很多相似的特點(diǎn)。這個研究的一個限制是評估中的學(xué)科是CS或者SE的學(xué)生在他們大學(xué)前三年已經(jīng)完成了的。這并不證明這個結(jié)果對于那些
57、沒有或者少于三年CS或者SE學(xué)習(xí)背景的學(xué)生是無效的。</p><p><b> 6 結(jié)論</b></p><p> 根據(jù)我們在軟件體系結(jié)構(gòu)課程中以前使用XNA的實(shí)驗(yàn)和現(xiàn)在使用Android的實(shí)驗(yàn),我們發(fā)現(xiàn)游戲的動力和相關(guān)有趣的外圍設(shè)備是一個最有吸引力的因素。另外,一個新的COTS-Android在軟件體系結(jié)構(gòu)中的課程中得以介紹,本文目的是確定相同COTS下不同的輸
58、出,通過回答四個研究問題來得到評估結(jié)果。</p><p> 第一個問題問的是學(xué)生選擇Android游戲項(xiàng)目或者Android社交應(yīng)用項(xiàng)目對軟件體系結(jié)構(gòu)項(xiàng)目的感受是否有差異(RQ1)。在統(tǒng)計上的重大發(fā)現(xiàn)是,社交應(yīng)用項(xiàng)目的學(xué)生比游戲項(xiàng)目的學(xué)生更難以專注于特定的質(zhì)量屬性(P = 0.024)。從P值較低的其他數(shù)據(jù)也反映出游戲項(xiàng)目小組比社交應(yīng)用項(xiàng)目小組對項(xiàng)目的要求的態(tài)度更積極。此外,研究結(jié)果表明,如果必須重新做一個項(xiàng)目
59、,20%做Android社交應(yīng)用項(xiàng)目的學(xué)生會選擇其他的項(xiàng)目,這個數(shù)目要比游戲項(xiàng)目的學(xué)生要多。</p><p> 第二個研究問題問的是學(xué)生選擇Android游戲項(xiàng)目或者Android社交應(yīng)用項(xiàng)目,設(shè)計軟件結(jié)構(gòu)的是否有什么差異(RQ2)。即使項(xiàng)目報告分析認(rèn)為,項(xiàng)目中使用的設(shè)計模式無顯著差異,但P值接近0.1,表明游戲項(xiàng)目使用的模式比社交應(yīng)用項(xiàng)目的模式更多樣化。此外,統(tǒng)計意義上的差異說明,游戲項(xiàng)目中的軟件體系結(jié)構(gòu)基本
60、比社交應(yīng)用項(xiàng)目中的軟件體系結(jié)構(gòu)復(fù)雜(P<0.05)。</p><p> 第三個研究問題問的是學(xué)生對項(xiàng)目投入的努力是否因?yàn)檫x擇Android游戲項(xiàng)目或者Android社交應(yīng)用項(xiàng)目不同而有差異(RQ3)。結(jié)果表明,在相同的時間,游戲項(xiàng)目小組投入的努力平均是Android社交應(yīng)用項(xiàng)目小組的投入的努力的133%,并且游戲項(xiàng)目小組的學(xué)生在代碼中寫的詳細(xì)注釋和在多文件中組織的代碼量是社交應(yīng)用項(xiàng)目小組的兩倍。</
61、p><p> 第四個即最后的研究的問題是做一個游戲項(xiàng)目與做一個社會項(xiàng)目學(xué)生的表現(xiàn)是否有差異(RQ4)。兩種類型項(xiàng)目的比較表明,在項(xiàng)目中統(tǒng)計上沒有明顯差別。根據(jù)先前的結(jié)論,并與以前關(guān)于XNA和機(jī)器人在軟件體系結(jié)構(gòu)課程中的應(yīng)用的調(diào)查[24],我們發(fā)現(xiàn)存在著相當(dāng)類似的有關(guān)游戲領(lǐng)域(XNA和Android游戲)的結(jié)論,(1)游戲領(lǐng)域的持續(xù)流行;(2)學(xué)生對項(xiàng)目更好的感知(3)更多的設(shè)計模式和軟件體系結(jié)構(gòu)的高度復(fù)雜性(4)和
62、社交應(yīng)用項(xiàng)目相同的項(xiàng)目成績。</p><p> 提到Android COTS專有的, Android游戲項(xiàng)目的主要差異可以在軟件體系結(jié)構(gòu)教學(xué)方面作為一個有趣并且有效的工具來激勵學(xué)生應(yīng)用更多設(shè)計模式及更多富有成效的代碼,從而設(shè)計出復(fù)雜度高的軟件體系結(jié)構(gòu),這是Android社交應(yīng)用項(xiàng)目無法達(dá)到的。此外,在對學(xué)生的問卷調(diào)查中,相對于XNA和機(jī)器人模擬器,Android是一個有吸引力的平臺,這樣就鼓勵我們在使用Andr
63、oid在軟件工程實(shí)踐中作為一種開發(fā)工具的改善工作方面做更多的實(shí)踐,并鼓勵我們引進(jìn)跟多選擇的可能,比如iPhone SDK放到COTS中作為一個新的領(lǐng)域。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] S. M. Dorman, “Video and computer games: effect on children and implica
64、tions for health education,” Journal of School Health, vol. 67, no. 4, pp. 133–138, 1997.</p><p> [2] M. Prensky, “Digital game-based learning,” Computers in Entertainment, vol. 1, pp. 21–24, 2003.</p>
65、;<p> [3] J. Blow, “Game development: harder than you think,”Queue,vol. 1, pp. 28–37, 2004.</p><p> [4] K. Sung, C. Hillyard, R. L. Angotti, M. W. Panitz, D. S.Goldstein, and J. Nordlinger, “Game-Th
66、emed Programming Assignment Modules: a pathway for gradual integration of gaming context into existing introductory Programming Courses,”IEEE Transactions on Education,vol.54,no.3,pp.416–427, 2010.</p><p>
67、[5] A. I. Wang and B. Wu, “An application of a game development framework in higher education,”International Journal of Computer Games Technology, vol. 2009, no. 1, Article ID 693267, 12pages, 2009.</p><p>
68、 [6] B. A. Foss and T. I. Eikaas, “Game play in engineering education—concept and experimental results,”International Journal of Engineering Education, vol. 22, no. 5, pp. 1043–1052,2006.</p><p> [7] G. Sin
69、dre, L. Natvig, and M. Jahre, “Experimental validation of the learning effect for a pedagogical game on computer fundamentals,”IEEE Transactions on Education,vol.52,no.1,pp.10–18, 2009.</p><p> [8] A. I. Wa
70、ng, “An evaluation of a mobile game concept for lectures,” inProceedings of the IEEE 21st Conference on Software Engineering Education and Training, 2008.</p><p> [9] A.I.Wang,T.Øfsdahl,andO.K.Mør
71、ch-Storstein,“LECTUREQUIZ—a mobile game concept for lectures,” inProceedings of the 11th IASTED International Conference on Software Engineering and Application (SEA ’07), 2007.</p><p> [10] M. S. El-Nasr a
72、nd B. K. Smith, “Learning through game modding,”Computers in Entertainment, vol. 4, no. 1, pp. 45–64,2006.</p><p> [11] G. Lukas, “Uses of the LOGO programming language in undergraduate instruction,” inProc
73、eedings of the ACM Annual Conference, vol. 2, Boston, Mass, USA, 1972.</p><p> [12] M. Micco, “An undergraduate curriculum in expert systems design or knowledge engineering,” inProceedings of the 15th Annua
74、l Conference on Computer Science, St. Louis, Mo, USA,1987.</p><p> [13] M.Habgood,S.Ainsworth,andS.Benford,“Theeducational and motivational content of digital games made by children,”in Proceedings of the V
75、irtual Learning (CAL ’05), Bristol, UK,2005.</p><p> [14] Yulia and R. Adipranata, “Teaching object oriented programming course using cooperative learning method based on game design and visual object orien
76、ted environment,” inProceedings of the 2nd International Conference on Education Technology and Computer (ICETC ’10), pp. V2355–V2359, June 2010.</p><p> [15] L. Werner, J. Denner, M. Bliesner, and P. Rex,
77、“Can middleschoolers use Storytelling Alice to make games? Results of a pilot study,” inProceedings of the 4th International Conference on the Foundations of Digital Games (ICFDG ’09), pp. 207–214,Orlando, Fla, USA, Apri
78、l 2009.</p><p> [16] J. Robertson and C. Howells, “Computer game design: opportunities for successful learning,”Computers and Education, vol.50, no. 2, pp. 559–578, 2008.</p><p> [17] S. Kurko
79、vsky, “Can mobile game development foster student interest in computer science?” in Proceedings of the 1st International IEEE Consumer Electronic Society’s Games Innovation Conference (ICE-GiC ’09), pp. 92–100, August 20
80、09.</p><p> [18] B. Ahmed and M. Steve, “Using ATAM to evaluate a gamebased architecture,” inProceedings of the 20th European Conference on Object-Oriented Programming ECOOP, Workshop on Architecture-Centri
81、c Evolution (ACE ’06), Nantes, France,2006.</p><p> [19] L.Bass,P.Clements,R.Kazmanetal.,Software Architecture in Practice, Addison-Wesley Professional, 2nd edition, 2003.</p><p> [20] R. Kazm
82、an, M. Klein, M. Barbacci, T. Longstaff, H. Lipson, J.Carriere et al., “The architecture tradeoffanalysis method,” in Proceedings of the 4th IEEE International Conference on Engineering of Complex Computer Systems (ICECC
83、S ’98), pp. 68–78, 1998.</p><p> [21] A. I. Wang and T. St? alhane, “Using post mortem analysis to evaluate software architecture student projects,” inProceedings of the 18th Conference on Software Engineer
84、ing Education and Training (CSEE & T ’05), pp. 43–50, April 2005.</p><p> [22] WSU, Download WSUKSuite1.1.2., 2009.</p><p> [23] B. Wu, A. I. Wang, J. E. Strøm, and T. B. Kvamme, “An
85、evaluation of using a Game Development Framework in higher education,” inProceedings of the 22nd Conference on Software Engineering Education and Training (CSEET ’09), pp. 41–44,February 2009.</p><p> [24]
86、A. I. Wang, “Extensive evaluation of using a game project in a software architecture course,”ACM Transactions on Computing Education, vol. 11, no. 1, article 5, 2011.</p><p> [25] V. Basili, “Software model
87、ing and measurement: the Goal/Question/Metric paradigm,” 1992.</p><p> [26] W. H. Kruskal and W. A. Wallis, “Use of ranks in onecriterion variance analysis,”Journal of the American Statistical Association,
88、vol. 47, pp. 583–621, 1952.</p><p> [27] W. R. Shadish, T. D. Cook, and D. T. Campbell,Experimental and Quasi-Experimental Designs for Generalized Causal Inference,Houghton,Mifflin and Company, Boston, Mass
89、, USA,2002</p><p> 通過開發(fā)Android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu)</p><p><b> 1.引言</b></p><p> 電腦游戲和視頻游戲非常受兒童和青少年的歡迎,在年輕人的文化發(fā)揮了突出的作用[1]?,F(xiàn)在游戲可以在技術(shù)豐富的配備了筆記本電腦,智能手機(jī),游戲機(jī)(移動和固定),機(jī)頂盒,和
90、其他數(shù)字設(shè)備的環(huán)境中運(yùn)行。從這一現(xiàn)象,人們相信將年輕人對游戲的內(nèi)在動機(jī)與教育內(nèi)容和目標(biāo)結(jié)合就會變成Prensky稱之為“以數(shù)字游戲?yàn)榛A(chǔ)的學(xué)習(xí)”的學(xué)習(xí)方法[2]。</p><p> 青年學(xué)生生活的游戲中除了豐富的外觀,游戲開發(fā)技術(shù)已經(jīng)成熟,并且越來越先進(jìn)[3]?;诂F(xiàn)有的各種游戲開發(fā)環(huán)境,游戲開發(fā)過程中的全部責(zé)任可以分為幾個的專家領(lǐng)域和角色,如游戲程序員,3D模型的創(chuàng)造者,游戲設(shè)計師,音樂家,漫畫家,劇作家,等
91、等。游戲內(nèi)容與技術(shù)相結(jié)合的過程可以通過游戲引擎和使用網(wǎng)絡(luò)上的各種用戶和專家社區(qū)的可用信息得到簡化。例如,微軟的XNA游戲開發(fā)工具包提供的游戲循環(huán)函數(shù)繪制及更新游戲內(nèi)容,而且還提供了方便的游戲開發(fā)組件來加載不同格式的圖形,音頻和視頻。這使得游戲迷們?nèi)鐭o論有沒有編程背景的學(xué)生修改現(xiàn)有的游戲或開發(fā)新游戲。他們可以用這些游戲創(chuàng)作工具實(shí)現(xiàn)自己的游戲概念設(shè)計,學(xué)習(xí)發(fā)展技能和相關(guān)知識,積累相關(guān)的實(shí)際經(jīng)驗(yàn)。</p><p>
92、在這種情況下,不但游戲可以用于學(xué)習(xí)而且通過激發(fā)任務(wù)機(jī)制,游戲開發(fā)工具可以用來研究計算機(jī)科學(xué)(CS),軟件工程(SE),和游戲編程相關(guān)主題。一般來說,游戲可以用三種方式集成在教育中[4,5]。首先,游戲可以用來代替?zhèn)鹘y(tǒng)的練習(xí),鼓勵學(xué)生把額外的努力用來做練習(xí),給老師或助教一個實(shí)時地監(jiān)控學(xué)生是如何練習(xí)的機(jī)會[6,7]。第二,游戲可以作為一個講座的一部分來促進(jìn)學(xué)生的參與,增加學(xué)生的動力[8,9]。第三,將要求學(xué)生們修改或開發(fā)游戲作為使用游戲開發(fā)
93、框架(GDF)學(xué)習(xí)CS和SE方面技能的課程的一部分。我們把后者的學(xué)習(xí)方法為以游戲開發(fā)為基礎(chǔ)的學(xué)習(xí)(GDBL)。GDF表示可以用來開發(fā)或修改游戲,例如,該工具包的游戲引擎,游戲編輯器,或游戲(模擬)平臺,甚至任何集成開發(fā)環(huán)境(IDE),如Visual C + +,Eclipse和Android SDK,J2ME,因?yàn)樗械娜硕伎梢杂脕黹_發(fā)游戲。</p><p> 本文重點(diǎn)研究學(xué)生通過在Android平臺開發(fā)游戲應(yīng)
94、用學(xué)習(xí)軟件體系結(jié)構(gòu)和在Android平臺開發(fā)社交應(yīng)用(例如,天氣預(yù)報,聊天軟件)學(xué)習(xí)軟件體系結(jié)構(gòu)的相似點(diǎn)和不同點(diǎn)。將游戲開發(fā)放到CS或者SE課程中的動機(jī)是利用學(xué)生對游戲及游戲開發(fā)的迷戀來激發(fā)他們通過該項(xiàng)目更多更好的學(xué)習(xí)課程材料。</p><p><b> 2.相關(guān)工作</b></p><p> 本節(jié)描述了GDBL方法在軟件工程領(lǐng)域的使用的研究背景和以前的結(jié)果。&l
95、t;/p><p><b> 2.1 研究背景</b></p><p> 最早的類似的通過在游戲的環(huán)境中編程來學(xué)習(xí)的應(yīng)用在20世紀(jì)70年代早期。Logo語言[11],龜圖形,是一種最古老的用來介紹計算概念給初學(xué)者的圖書館。這個概念是基于一只可以在2D屏幕上移動的 “海龜”,該“海龜”用可設(shè)置開關(guān)屏幕的畫筆畫就,因此,可能會留下龜運(yùn)動的痕跡。編程使該“海龜”畫不同的花樣,
96、這可以用來介紹一般的計算技巧,如程序操作,迭代,遞歸。此外,在1987,Micco學(xué)術(shù)性的提出了一個寫井字游戲的使用[12]。后來,其他的研究已經(jīng)使用專業(yè)游戲編程工具如Stage Cast Creator [13],Gamemaker [14] ,Alice [15]和Neverwinter Nights [16]。此外,文章[17]提出了使用手機(jī)游戲開發(fā)作為激勵工具和計算機(jī)課程的學(xué)習(xí)背景調(diào)查。他們的調(diào)查表明游戲編程和計算機(jī)科學(xué)領(lǐng)域的游
97、戲開發(fā)之間的關(guān)系--游戲發(fā)展可以用在學(xué)習(xí)人工智能(AI),數(shù)據(jù)庫,計算機(jī)網(wǎng)絡(luò),SE,人機(jī)交互,計算機(jī)圖形學(xué),計算機(jī)體系結(jié)構(gòu),算法,編程和操作系統(tǒng)。</p><p> 這些研究表明,游戲制作和技術(shù)的編程技巧得到激勵以及故事性的發(fā)展。制作游戲激勵和開發(fā)評書以及技術(shù)的編程技巧的。制作游戲的任務(wù)其性質(zhì)在目的上不盡相同---因此搭建環(huán)境并平衡游戲角色這些事情由學(xué)習(xí)者來承擔(dān)。最近的游戲編程工具包往往具有比Logo語言更強(qiáng)的
98、視覺效果,無論是因?yàn)檫@個原因,或者因?yàn)樗麄冇幸环N可視化的編程語言,或兩個原因同時的作用,使得設(shè)計者能夠輕松創(chuàng)建圖形游戲。這種變化使學(xué)習(xí)者的重點(diǎn)遠(yuǎn)離了低級編程,而是強(qiáng)制往其他角色如設(shè)計師或軟件開發(fā)者轉(zhuǎn)變。因此,我們通過實(shí)驗(yàn)研究了如何將GDFS用于教育,探討傳統(tǒng)的授課進(jìn)化為動態(tài)的,合作的,和對當(dāng)前技術(shù)豐富的環(huán)境下的學(xué)生有吸引力的授課。然而,這種說法有待進(jìn)一步相關(guān)理論,應(yīng)用經(jīng)驗(yàn),評價結(jié)果和經(jīng)驗(yàn)證據(jù)的支持。這是一個分享我們的經(jīng)驗(yàn)和實(shí)證結(jié)果在GD
99、BL領(lǐng)域采用Android軟件體系結(jié)構(gòu)課程的動機(jī)。</p><p> 2.2 課程和項(xiàng)目設(shè)置</p><p> 挪威科技大學(xué)(NTNU)(課程代碼TDT4240)的軟件體系結(jié)構(gòu)課程的教學(xué)方式和其他大多數(shù)大學(xué)不一樣,因?yàn)閷W(xué)生也必須在項(xiàng)目中實(shí)現(xiàn)他們自己設(shè)計的軟件體系結(jié)構(gòu)。這樣做的動機(jī)是為了讓學(xué)生了解架構(gòu)和實(shí)現(xiàn)之間的關(guān)系,并能夠真正的對體系架構(gòu)和實(shí)施是否符合應(yīng)用程序指定質(zhì)量要求進(jìn)行評價。在軟
100、件體系結(jié)構(gòu)課程中的架構(gòu)項(xiàng)目和其他軟件工程課程項(xiàng)目的相似,只是軟件體系結(jié)構(gòu)課程中項(xiàng)目都是從軟件體系結(jié)構(gòu)的角度進(jìn)行。在整個項(xiàng)目中,學(xué)生們必須根據(jù)指定的項(xiàng)目使用的軟件體系結(jié)構(gòu)技術(shù),方法和工具來成功學(xué)到東西。</p><p> 軟件體系結(jié)構(gòu)的項(xiàng)目包括以下幾個階段:(i)COTS(商用成品)練習(xí):學(xué)習(xí)相關(guān)技術(shù)并用來開發(fā)一個簡單的游戲。(ii)設(shè)計模式:學(xué)習(xí)如何通過改變現(xiàn)有系統(tǒng)中的應(yīng)用設(shè)計模式來應(yīng)用設(shè)計模式。(iii
101、)需求和體系結(jié)構(gòu):列表功能,質(zhì)量的要求和對游戲的軟件體系結(jié)構(gòu)的設(shè)計。(iv)架構(gòu)評估:使用的架構(gòu)權(quán)衡分析法(ATAM)[18-20]評價方法對項(xiàng)目的軟件體系結(jié)構(gòu)方面的質(zhì)量要求進(jìn)行評估。(v)實(shí)施:做詳細(xì)的設(shè)計,并在新建的架構(gòu)和根據(jù)評估結(jié)果做出修改的基礎(chǔ)上實(shí)現(xiàn)該游戲。(vi)項(xiàng)目評估:使用事后分析法(PMA)[21]將項(xiàng)目作為一個整體進(jìn)行評估。</p><p> 在項(xiàng)目的前兩個階段,學(xué)生將獨(dú)立完成他們的工作
102、任務(wù)。在3–6階段,4-5個學(xué)生組成一個團(tuán)隊,并在自己的團(tuán)隊中完成相應(yīng)的工作。同時,在項(xiàng)目進(jìn)行期間,學(xué)生將專注于一個固定的初級指定質(zhì)量屬性。對于中等質(zhì)量屬性,學(xué)生可以選擇他們喜歡的質(zhì)量屬性。學(xué)生花大部分時間在實(shí)施(六周),但也鼓勵他們在早期階段開始實(shí)現(xiàn)該游戲以測試他們的架構(gòu)選擇(增量開發(fā))是否合理。在實(shí)施階段,學(xué)生通過多次迭代不斷擴(kuò)展,完善軟件體系結(jié)構(gòu)使其得到改進(jìn)。</p><p><b> 2.3早
103、期的成果</b></p><p> 此前,該項(xiàng)目的目標(biāo)是開發(fā)Java方面的 Khepera機(jī)器人模擬器的華盛頓州立大學(xué)的機(jī)器人控制器(機(jī)器人)[22],該機(jī)器人控制器著重于一些指定的質(zhì)量屬性如可用性,性能,可修改性,或可測性。開始時,學(xué)生們被要求編寫的機(jī)器人控制器能控制一個機(jī)器人在一個迷宮中移動,并在迷宮中收集四個球,并把它們帶到迷宮中一個固定的位置中。在2008年,學(xué)生們可以在機(jī)器人控制器項(xiàng)目和游
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外文翻譯--通過開發(fā)android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu)
- 外文翻譯(中文)--通過開發(fā)Android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu).doc
- 外文翻譯--通過開發(fā)android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu)
- 外文翻譯(中文)--通過開發(fā)Android平臺上的社交應(yīng)用和游戲應(yīng)用來比較學(xué)習(xí)軟件體系結(jié)構(gòu).doc
- 安卓android外文翻譯--通過比較學(xué)習(xí)發(fā)展中的社會應(yīng)用程序與安卓平臺上的游戲的軟件體系結(jié)構(gòu)
- 安卓android外文翻譯--通過比較學(xué)習(xí)發(fā)展中的社會應(yīng)用程序與安卓平臺上的游戲的軟件體系結(jié)構(gòu)
- 安卓android外文翻譯--通過比較學(xué)習(xí)發(fā)展中的社會應(yīng)用程序與安卓平臺上的游戲的軟件體系結(jié)構(gòu)
- 安卓android外文翻譯--通過比較學(xué)習(xí)發(fā)展中的社會應(yīng)用程序與安卓平臺上的游戲的軟件體系結(jié)構(gòu).docx
- 安卓android外文翻譯--通過比較學(xué)習(xí)發(fā)展中的社會應(yīng)用程序與安卓平臺上的游戲的軟件體系結(jié)構(gòu).docx
- 應(yīng)急演練培訓(xùn)平臺軟件體系結(jié)構(gòu)的設(shè)計與應(yīng)用.pdf
- 軟件體系結(jié)構(gòu)及基于軟件體系結(jié)構(gòu)的系統(tǒng)開發(fā).pdf
- 信息化體系結(jié)構(gòu)ate軟件平臺開發(fā)
- 面向特定領(lǐng)域軟件體系結(jié)構(gòu)的研究和應(yīng)用.pdf
- 信息化體系結(jié)構(gòu)ATE軟件平臺開發(fā).pdf
- 軟件體系結(jié)構(gòu)風(fēng)格分析與應(yīng)用——新型類軟件體系結(jié)構(gòu)風(fēng)格---畢業(yè)論文
- 通信軟件體系結(jié)構(gòu)研究與應(yīng)用.pdf
- 云模式下車務(wù)管理平臺軟件體系結(jié)構(gòu)的設(shè)計與應(yīng)用.pdf
- 軟件體系結(jié)構(gòu)風(fēng)格分析與應(yīng)用---通用體系結(jié)構(gòu)風(fēng)格---畢業(yè)論文
- 云模式下預(yù)案指揮平臺軟件體系結(jié)構(gòu)的設(shè)計與應(yīng)用.pdf
- 軟件體系結(jié)構(gòu)風(fēng)格分析與應(yīng)用---開題報告
評論
0/150
提交評論