英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
在Android平台上开发社交应用与游戏学习软件架构的比较
本文描述了一项实证研究,重点在于发现在开发社交应用程序的学生与使用相同Android开发平台开发游戏的学生之间的不同和相似之处。2010-2011年,挪威科技大学(NTNU)软件架构课程的学生可以选择四种类型的项目。独立于所选择的项目类型,所有学生都必须经历相同的阶段,基于相同的模板生成相同的文档,并遵循完全相同的过程。这项研究的重点是Android项目之一,以了解应用领域对课程项目的影响程度,而与所选择的技术无关。我们的研究结果显示,与学习软件架构的社交应用程序开发相比,进行游戏开发的学生在学习软件架构方面有一些积极的效果,比如有动机使用游戏,在开发过程中更好地关注质量属性,如可修改性和可测试性,生产复杂度更高的软件架构,并为项目提供更高效的编码。然而,我们并没有发现选择这两个不同领域的学生在成绩上有显著差异。
- 介绍
电脑游戏和电子游戏在儿童和青少年中已变得非常流行,并在年轻人的文化中发挥着重要作用[1]。 现在,在配备笔记本电脑,智能手机,游戏机(移动和固定式),机顶盒和其他数字设备的技术含量很高的环境中,可以在任何地方玩游戏。 从这种现象可以认为,年轻人对游戏表现出的内在动机可以与教育内容和目标结合成Prensky所说的“基于数字游戏的学习” [2]。
除了游戏在青年学生生活中的大量出现外,游戏开发技术已经成熟并变得更加先进[3]。基于现有的各种游戏开发环境,游戏开发过程的全部职责可以划分为多个专家领域和角色,例如游戏程序员,3D模型创建者,游戏设计师,音乐家,动画师和游戏作者等。通过使用游戏引擎和各种用户和专家社区在网络上可用的信息,可以简化将游戏内容与技术集成的过程。例如,微软的XNA游戏开发套件提供了游戏循环功能来绘制和更新游戏内容,还提供了方便的游戏开发组件来加载图形,音频和视频的不同格式。这使得游戏爱好者(例如有或没有编程背景的学生)可以修改现有游戏或开发新游戏。他们可以使用这些游戏创建工具设计和实现自己的游戏概念,学习开发技能和相关知识,并积累相关的实践经验。
在这种情况下,不仅可以将游戏用于学习,还可以使用游戏开发工具来通过激励任务研究计算机科学(CS),软件工程(SE)和游戏编程中的相关主题。一般来说,可以通过三种方式将其整合到教育中[4,5]。首先,可以使用游戏代替传统练习,从而激发学生在练习中投入更多精力,并为老师和/或助教提供机会来监控学生的工作方式和实时练习,例如[6,7]。其次,游戏可以作为演讲的一部分,以提高学生的参与度和积极性,例如[8,9]。第三,作为课程的一部分,要求学生使用游戏开发框架(GDF)来修改或开发游戏,以学习CS和SE中的技能,例如[10]。我们将后一种学习方法标记为基于游戏开发的学习(GDBL)。 GDF表示可用于开发或修改游戏的工具包,例如,游戏引擎,游戏编辑器或游戏(模拟)平台,甚至任何集成开发环境(IDE),例如Visual C ,Eclipse,J2ME,和Android SDK,因为它们都可以用来开发游戏。
本文的重点是评估,我们希望发现让学生通过游戏开发学习软件架构与使用Android平台进行社交应用程序开发(例如天气预报,聊天软件)之间的相似之处和不同之处。将游戏开发引入CS的动机或SE课程是为了培养学生对游戏和游戏开发的兴趣,以激发他们在整个项目中学习更多和更好的课程材料。
2.相关工作
本节介绍了GDBL方法在软件工程领域的研究背景和已有成果。
2.1.研究背景。最早在类似游戏的环境中通过编程进行学习的类似应用是在1970年代初。 Logo [11]是海龟图形,是最古老的库之一,用于向初学者介绍计算概念。该概念基于“海龟”,可以用笔在2D屏幕上移动它,该笔可以定位在屏幕上或上方,因此可以留下海龟的运动痕迹。对海龟进行编程以绘制不同的模式可以用来介绍一般的计算技能,例如程序操作,迭代和递归。此外,1987年,Micco提出了编写井字游戏进行学习的用法[12]。之后,使用专业游戏编程工具包进行了其他研究,例如Stage Cast Creator [13],Gamemaker [14],Alice [15]和Neverwinter Nights [16]。此外,文章[17]提出了在计算课程中使用手机游戏开发作为激励工具和学习环境的调查。从他们的调查中,它显示了游戏编程与其他计算机科学领域之间的关系-游戏开发可用于研究人工智能(AI),数据库,计算机网络,SE,人机交互,计算机图形学,算法,编程,计算机体系结构和操作系统。
这些研究表明,制作游戏具有激励作用,并发展了故事讲述和技术编程技能。在专门构建的环境中,制作游戏的任务的性质略有不同,学习者承担的角色平衡也相应地发生了变化。从某种意义上说,它们使设计人员能够轻松创建图形游戏,或者因为它们具有视觉编程语言,或者两者都有,因此,较新的游戏编程工具包往往具有比徽标更强的视觉外观。这将重点从低级编程转移了出来,使学习者可以专注于其他角色,如设计师或作家。因此,我们通过实验研究来研究GDF如何在教育中使用,并探讨传统讲义在动态,协作和对当前技术含量高的环境下具有吸引力的演变。但是,该主张需要相关理论,应用经验,评估结果和经验证据的进一步支持。这是分享我们在GDBL领域在软件架构课程中使用Android的经验和实证结果的动机。
2.2.课程和项目设置。 与大多数其他大学相比,挪威科技大学(NTNU)的软件体系结构课程(课程代码TDT4240)的授课方式不同,因为学生还必须在项目中实现其设计的体系结构。 这样做的动机是使学生了解体系结构与实现之间的关系,并能够对体系结构及其最终实现是否满足针对应用程序指定的质量要求进行真实评估。 该课程中的体系结构项目与其他软件工程课程中的项目相似,但是该项目中的所有内容都是从软件体系结构的角度进行的。 在整个项目中,学生必须使用软件架构技术,方法和工具才能根据指定的项目获得成功。
该软件体系结构项目包括以下阶段。
(i)COTS(商业货架)练习:通过开发简单的游戏来学习要使用的技术。
(ii)设计模式:通过在现有系统中进行更改来学习如何使用和应用设计模式。
(iii)要求和体系结构:列出功能和质量要求,并设计游戏的软件体系结构。
(iv)体系结构评估:使用体系结构贸易分析方法(ATAM)[18-20]评估方法就质量要求评估项目的软件体系结构。
(v)实施:根据所创建的体系结构和评估所产生的变化,进行详细设计并实施游戏。
(vi)项目评估:使用事后分析(PMA)方法评估整个项目[21]。
在项目的前两个阶段中,学生们可以单独或结伴工作。在3-6阶段中,学生们由4-5名学生组成自选团队。 同时,学生有一个固定的主要分配质量属性,可以在项目期间集中精力。 对于次要质量属性,学生可以选择自己喜欢的质量属性。 学生将大部分时间花在实施阶段(六周),同时也鼓励他们在更早的阶段开始实施以测试他们的体系结构选择(增量开发)。在实施阶段,学生们通过几个迭代不断地扩展、细化和演进软件体系结构。
2.3.之前的结果。以前,该项目的目标是为Java [22]中的WSU Khepera机器人模拟器(Robot)开发机器人控制器,重点是分配的质量属性,例如可用性,性能,可修改性或可测试性。要求学生对机器人控制器进行编程,使其在迷宫中移动机器人,收集四个球,然后将它们带入迷宫中的光源。在2008年,学生被允许在机器人控制器项目和游戏开发项目之间进行选择。两种类型的项目的过程,可交付成果和项目评估都是相同的,只是领域不同。在“游戏”项目中,要求学生使用Microsoft XNA框架和C#开发游戏。最后,对软件体系结构课程进行了评估[23,24]。评估基于项目调查的数据,学生的项目成果以及其他可访问的课程信息。研究的主要结论是,如果我们将机器人视为评估基准,则游戏开发项目可以成功地用于教授软件体系结构。
结合我们在2008年软件架构课程中运行游戏项目的经验,我们进行了新的选择,在2010-2011年期间在软件架构课程项目中添加了另一个COTS-Android。 现在,除了Java Robot项目和XNA Game项目外,学生还可以选择开发社交应用程序或Android游戏。 与COTS和所选领域无关,学生必须在项目期间专注于相同的软件体系结构问题,并遵循相同的模板。 游戏和社交Android项目的引入使我们能够比较学生在项目中工作的领域如何独立于COTS来影响学习和项目体验。 在以下各节中分别进行了详细说明。
3.方法
本节介绍了获得相关数据的研究方法,以供我们在软件体系结构项目中使用Android开发进行实验。
3.1.目标。 本文着重于使用相同的COTS但具有不同的开发域来研究不同的域是否产生不同的输出。 在我们之前的研究中,GDBL结论的有效性基于不同的COTS-Robot和XNA。 本文不包括使用XNA开发的游戏和使用Java开发的机器人控制器,仅关注Android平台以及社交应用程序与游戏应用程序的开发。我们的评估涵盖五个主题:所选领域的分布,学生对项目的看法,项目交付和代码 质量和复杂性,学生的努力以及授予的项目等级。
3.2.GQM方法。这个社交和游戏项目的比较应有助于发现差异,并揭示在Android平台上引入项目的效果。 这种评估是一个准实验,而不是对照实验。 所使用的研究方法基于目标,问题度量(GQM)方法[25],在此方法中,我们首先定义研究目标(概念级),然后定义一组研究问题(操作级),最后描述一组度量来回答定义的研究问题(定量级)。 在我们的案例中,用来回答研究问题的指标是定量和定性数据的混合体。 表1展示了用于在软件体系结构课程中分析游戏开发项目的GQM方法。
3.3.程序。当学生开始项目并遵循项目阶段时,他们应该报告他们在项目每个阶段花费的时间。前两个阶段允许学生单独或成对学习,以熟悉COTS以及建筑和设计模式。该项目的主要工作在第3-5阶段进行,包括需求规格说明,体系结构设计,体系结构评估,实施和测试。学生为每个阶段提供一个交付,并由课程表进行评估,并在最终交付之前给予反馈以改进。在第5阶段结束时,学生将产生最终的授课内容,并由课程工作人员进行评估和评分。完成第5阶段后,学生必须回答一份问卷,重点关注学生对项目的看法。在第6阶段中,学生必须对整个项目进行事后分析,以反映他们的成功和挑战。
4.结果
在2010年和2011年,学生可以选择使用三个COTS进行该项目:机器人(Java),XNA(C#)和Android(Java)。 学生选择COTS的方式如图1所示,其中36名学生选择了Khepera机器人(占19%),55名学生选择了XNA(占27%),102名学生(占54%)选择了Android。 选择Android的学生中,有58名学生(57%)选择了社交应用程序,而有44名学生(43%)选择了游戏开发。 如果我们查看学生选择的领域,就会发现51%的人选择了游戏开发,30%的人选择了社交应用程序,19%的人选择了机器人控制器。
图1的统计数据清楚地表明,与其他领域相比,大多数学生更喜欢游戏开发。 到目前为止,Android是最受欢迎的COTS,我们认为这是由于它对开发人员的开放性,Java开发,有吸引力的设备,创新的功能和开发以及通过Android共享已开发应用程序的新方式所致。
Figure 1: Distribution of selection of type of software architecture projects.
Table1:GQM table
在项目的第一阶段,要求学生填写一份有关选择COTS和域的原因的调查表。 最主要的原因是:(1)编程原因(熟悉Java或C#)(70.7%),(2)了解COTS(机器人,XNA,Android)(59.5%),(3)游戏动机或娱乐原因(40.1%),(4)社交应用动机(39.5%),(5)了解域(机器人,游戏,社交)(34.2%),(6)硬件动机,在Android手机上运行游戏 ,Zuneplayer(33%)和(7)为Android Market或XNA club(24.5%)制作游戏。 根据以上数据,我们发现游戏领域在吸引学生的注意力及其吸引人的外围设备(例如硬件或软件市场)方面具有优势,而android社交领域也是如此。 Robot域不是这种情况。
以下小节着重分析领域博弈与社交是否会在以下四个方面产生明显的不同输出:(1)学生对项目的看法,(2)软件体系结构的设计复杂性,(3)学生的实现在项目中进行评分,以及(4)学生在项目中的得分。
4.1.学生对项目看法的差异。 在学生完成软件架构项目一周后,进行了一次项目调查。 这项调查的目的是揭示在社交平台上工作的团队与在同一COTS(Android平台)上进行游戏项目的团队之间,学生对项目的看法可能存在差异。 调查中的陈述使学生们反省该项目如何帮助他们学习软件架构。
为此调查定义的假设如下。
在同一COTS-Android上进行游戏项目和社交项目的学生如何看待软件体系结构项目没有任何区别。
为了检验假设,我们使用了Kruskal-Wallis检验[26],因为它是检验群体中人口中位数是否相等的非参数方法[24]。 该测试通常用于(1)用户不能假设正常人群,以及(2)两组的样本量不同。表2显示了陈述PS1-PS6的Kruskal-Wallis测试结果。 44个游戏项目学生中有38个回答了该问题,而58个社会项目学生中有35个回答了调查问卷。 通过分配从1到5的量表值来回答问卷中的每个项目,其中1表示强烈不同意,5表示强烈同意。
Table2:Wilcoxon Test of the statements PS1-PS11.
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239705],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。