比较在Android平台上开发社交应用和开发游戏来学习软件架构的异同外文翻译资料

 2022-06-07 09:06

英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料



比较在Android平台上开发社交应用和开发游戏来学习软件架构的异同

Bian Wu,Alf Inge Wang

摘要 本文描述了一项实证研究,其重点是研究学生通过使用Android平台开发社交软件与游戏软件的异同。在2010到2011学年,挪威科技大学的软件架构课程的学生可以选择四种类型的项目。不受所选项目的类型的影响,所有的学生必须经历相同的阶段,生成基于相同模板的文档,并且遵循完全一样的过程。本研究的重点是在安卓项目上去研究开发软件的类型对课程的影响,这样才能不受所选开发平台影响。我们的研究结果表明与开发社交应用去学习软件架构相比,游戏开发能给学生带来更多正面的影响,比如开发游戏有更多地动力去关注像可修改性,可测试性这样地质量属性并且能生成更高级的软件架构和更高效的编码。然而,我们没有发现选择两个不同项目类型的学生在评分级别上存在显著差异。

1.介绍

电脑游戏和电子游戏在儿童和青少年中非常流行,并且在年轻人文化中发挥着重要作用[1]。在配备了笔记本、智能手机、游戏机(移动和固定),机顶盒或其他数字设备的环境中,游戏随处可见。从这一现象可以认为,年轻人对游戏的内在动机可以与教育内容相结合,从而形成Prensky所说的“基于学习的数字游戏”[2]。

除了在青少年学生生活中游戏越来越丰富之外,游戏开发技术越来越成熟并且越来越先进[3]。基于现有的游戏开发环境,游戏开发的全过程可以分为例如游戏程序员,3D模型构造师,游戏设计师,音乐家,动画师,剧作师等多个专家领域和角色。通过使用游戏引擎和来自不同用户和专家社区的可用信息,整合游戏内容与技术的过程可以被简化。例如,微软的XNA游戏开发工具包提供了游戏循环功能来绘制和更新游戏内容,它还提供了方便的游戏开发组件来加载不同格式的图片,音频和视频。这使得具有或不具有编程背景的游戏粉丝比如学生去修改游戏或开发新游戏成为可能。他们可以通过这些游戏创建工具来设计或实现他们自己的游戏概念,学习开发技能或相关知识,并且积累相关的实践经验。

在这种情况下,不仅可以通过游戏来学习,而且游戏开发工具还可以激励人们来研究与计算机科学,软件工程和游戏编程相关的技术。一般来说,游戏可以通过三种方式应用到教育中[4,5]。第一,我们可以使用游戏取代传统作业来让学生在练习中付出更多的努力,并且老师或者助教也有了可以查看学生如何做练习的机会,例如[6,7]。第二,游戏可以作为讲座的一部分来提高学生的参与度和动机,例如[8,9]。第三,可以要求学生用游戏开发框架去修改或开发游戏来学习计算机科学或软件工程技术,例如[10]。我们称后一种学习方法为基于游戏开发的学习。游戏开发框架是一种开发或修改游戏的工具包,例如游戏引擎,游戏编辑器,或游戏(模拟)平台,甚至是任何集成开发环境如Visual C ,Eclipse,J2ME,和Android SDK,因为它们都可以被用来开发游戏。

本文的重点是评估,调查学生通过使用Android平台开发游戏软件与开发社交软件(如天气预报,聊天软件)来学习软件体系结构的异同。将游戏开发引入计算机科学或软件工程的动机是利用了学生对游戏和游戏开发的迷恋来刺激他们在课程项目中完成更多更好的工作。

2.相关工作

这部分介绍了在软件工程领域使用基于游戏开发学习方法的研究背景和以前的结果。

2.1 研究背景

最早通过游戏编程环境来学习的例子还是在20世纪70年代初期。这个乌龟图形的徽标[11]是最古老的向初学者介绍计算机概念的图书馆中的一个。这个概念来源于一只“乌龟”,它可以通过一只笔在2D屏幕上移动,从而留下一条类似乌龟的轨迹。给乌龟编程画不同的图案可以被用来介绍一般的计算机技能,如程序操作,迭代和递归。此外,在1987年,Micco提出了用井字游戏学习的方法[12]。后来也有人使用Stage Cast Creator[13],Gamemaker[14],Alice[15]和Neverwinter Nights[16]等专业游戏编程工具进行了其他研究。此外,这篇文章[17]介绍了在计算机课程中使用移动游戏开发作为激励工具和学习环境的调查。他们的调查表明了游戏编程和其他计算机科学领域的关系—游戏开发可以被用于学习人工智能(AI),数据库,计算机网络,软件工程,人机交互,计算机图形学,算法,计算机架构和操作系统。

这些研究表明了游戏制作是激动人心的并且它发展了评书和编程技巧。制作游戏这项任务的性质与专用环境略有不同,因此学习者的假定角色也会发生轻微的变化。近期的游戏编程工具包往往有着比徽标更强的视觉效果,要么是为了他们能够更轻松地创建图形化游戏,要么是因为他们有可视化编程语言,或两者都有。这使得重心从低级编程转移开,允许学习者专注于其他的角色,如设计师或作家。因此,我们通过实验调查了游戏开发框架是如何用于教育的,并发现了传统讲座在丰富技术的环境下变得充满活力,共通化,更吸引学生。但是,这个结论需要得到相关理论,应用经验,评估结果和经验证据的进一步支持。这是我们分享使用安卓平台基于学习的游戏开发的软件架构课程中获得的经验和实证结果的原因之一。

2.2.课程和项目设置

挪威科技大学(NTNU)的软件架构课程(课程代码TDT4240)的教学方式与其他大多数大学不同,因为学生们必须实现他们在项目中设计的架构。这样做的动机是为了让学生理解体系结构和实现之间的关系,并能真正地评估是否体系结构和实现结果能够满足应用的质量属性需求。本课程中的体系结构项目与其他软件工程课程类似,但是这个项目中的一切都是从软件体系结构的角度出发的。在这个项目中,学生必须在指定的项目中使用软件体系结构技术,方法和工具取得成功。

软件体系结构项目由以下几个阶段构成。

  1. COTS(商用现成品)练习:通过开发一个简单的游戏来学习要使用的技术。
  2. 设计模式:通过对现有系统进行更改来学习如何使用和应用设计模式。
  3. 需求和体系结构:列出功能和质量需求并设计游戏的软件体系结构。
  4. 体系结构评估:用体系结构权衡分析方法(ATAM)[18-20]来评估项目的软件体系结构来满足质量需求。
  5. 实现:根据创建的体系结构和评估的变动来做详细的设计和实现游戏。
  6. 项目评估:使用事后分析方法(PMA)[21]对整个项目进行评估。

在项目的前两个阶段,学生单独或结对工作。对于3-6阶段,学生在4到5名的自选队伍中工作。同时,学生在项目中要关注一个固定的主要的质量属性。对于第二质量属性,学生们可以基于他们的兴趣选择。学生将大部分时间花在实现阶段(六周),但是他们也被鼓励在早期阶段开始实现,以此来测试他们选择的架构(增量开发)。在实现阶段,学生通过多次迭代来不断地扩展,改进和发展软件架构。

2.3.以前的结果

先前,该项目的目标是用Java为WSU Khepera机器人模拟器开发一种机器人控制器,其重点在于分配的质量属性,如可用性,性能,可修改性或可测试性。学生们被要求给机器人控制器编程来移动迷宫中的机器人,收集小球,并把他们带到迷宫中的光源下。在2008年,学生们可以选择做机器人控制器项目或游戏开发项目。这两种项目的过程,交付方式和评估都是相同的,只有领域不同。在游戏项目中,学生们需要使用微软的XNA框架和C#语言来开发游戏。最后,对软件架构课程进行评估[23,24]。这项评估基于项目调查的数据,学生的项目交付物和其他可获取的课程信息。研究得出的主要结论是,如果我们将机器人项目作为基准的话,游戏开发项目可以成功的用于软件架构教学中。

将2008年在软件架构课程中使用游戏项目的经验整合起来后,我们又在2010-2011的软件架构课程中增加了一个新的商业现成品安卓项目选项。除了Java机器人项目和XNA游戏项目之外,学生们现在可以选择在安卓平台开发社交应用或游戏。独立于商业现成品和所选择的领域之外,学生们在项目中必须专注于相同的软件架构问题并且遵循相同的模板。通过引入游戏和社交安卓项目,我们可以比较学生们工作的领域是如何影响独立于商业现成物后的学习和项目体验。详细描述在以下部分。

3.方法

这部分介绍了获取将安卓系统应用于软件体系结构项目实验相关数据的研究方法。

3.1.目标

本文重点在研究使用同样的商业现成物但是在不同的开发领域情况下,不同的领域是否会有不同的结果。在先前的研究中,基于学习的游戏开发这一结论的有效性是基于COST-机器人和XNA项目上的。本文排除基于XNA的游戏开发和Java开发的机器人控制器,仅关注安卓平台上的社交应用开发和游戏程序开发。我们的评估包括五个主题:选定领域的分布,学生对项目的看法,项目交付物和代码质量于复杂度,学生的努力程度以及项目获得的成绩。

3.2.GQM方法

社交应用项目和游戏项目的比较有助于帮助发现不同并能显现出将安卓平台引入项目的效果。这项评估是准实验而不是对照实验。本研究所采用的方法是基于目标,问题,指标方法[25]的。首先我们定义一个研究目标(概念层面),然后定义一组研究问题(操作层面),最后描述一组回答已定义研究问题的指标(数量层面)。在我们的例子中用于回答所研究问题的指标是定性和定量数据的混合。表1显示了用于分析软件架构课程中游戏开发项目的GQM方法。

表1:GQM 表。

3.3. 步骤

当学生启动项目并开始项目阶段时,他们应该报告项目每个阶段所用的时间。前两个阶段,学生可以单独或结对地熟悉商业现成物,体系结构和设计模式。项目的主要工作在3-5阶段实行,包括了需求规格说明,架构设计,体系结构评估,实现和测试。学生在每个阶段都要提交交付物,课程导员要进行评估,并在最终交付前给予反馈以便学生改进。在第五阶段结束时,学生要完成最后的交付,课程导员要评估并打分。在完成第五阶段后,学生要完成一份如何看待此次项目的问卷。在第六阶段,学生必须对他们的项目进行完整的事后分析以反映他们的成就和遇到的挑战。

4.结果

在2010到2011年,学生可以选择三种商业现成项目:机器人(Java),XNA(c#),和安卓(Java)。学生的选择情况如图1所示,其中有36名学生选择了Khepera机器人(19%),55名学生选择了XNA(27%),有102名学生(54%)选择了安卓。而在选择安卓的学生中有58名(57%)选择了社交项目,44名(43%)选择了游戏项目。如果我们仅看学生选择的领域,我们会发现有51%的学生选择游戏开发,30%的学生选择了社交应用,19%的学生选择了机器人控制器。

图1:软件架构项目选择类型的分布。

图一的统计数据清楚地表明相对于其他领域,大多数学生更喜欢游戏开发。安卓时目前最受欢迎的商业现成物,我们相信这是由于其对开发人员的开源性,使用Java开发,有吸引力的设备,创新功能和开发方式,以及通过安卓商店分享开发应用的新方式。

在项目的第一阶段,学生们需要填写关于所选COST和领域的原因的问卷。最主要的原因如下:(1)编程原因(熟悉Java或C#)(70.7%),(2)想了解商业现成物(机器人,XNA,安卓)(59.5%),(3)游戏动机或娱乐因素(40.1%),(4)社交应用吸引力(39.5%),(5)想了解某一领域(机器人,游戏,社交)(34.2%),(6)硬件吸引力,在安卓手机上玩游戏,Zuneplayer(33%),(7)为安卓市场或XNA俱乐部制作游戏。从上面的数据中,我们可以发现游戏领域在吸引学生的注意力和外设如硬件和软件市场方面有优势,安卓社会领域也是如此.但机器人领域有所不同。

以下小结关注的是游戏领域与社交领域在以下四个方面是否会产生不同的结果。(1)学生对项目的看法,(2)软件架构的设计复杂度,(3)学生在项目实现时的努力程度,(4)学生的项目分数。

4.1. 学生对项目感知的差异

在学生完成软件架构项目一周后,我们展开了一项项目调查。本次调查的目的时揭示在安卓上的社交项目团队与游戏项目团队存在的可能差异。调查中的陈述说明可以让学生思考这个项目时如何帮助他们学习软件架构的。

这次调查的假设定义如下:

H0:学生在安卓平台上进行游戏项目和社交应用项目来体验软件工程课程并无差异。

为了验证假设我们使用Kruskal-Walls 检测[26],因为它是一种用于测试群组[24]兴趣中位数平等的非参数方法。表二显示了Kruskal-Wallis 测试方法在PS1-PS6上的结果。在游戏项目的44人中有38人回答了问卷,58名社交项目中有35名回答了问卷。问卷中的每个项目通过1-5的级别来回答,其中1表示强烈反对,5表示极度同意。

表2: PS1-PS11的Wilcoxon测试。.

全文共5923字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[11205],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。