毕业设计外文翻译通过开发Android平台上的社交应用和游戏应用来比较学习软件体系结构.doc
《毕业设计外文翻译通过开发Android平台上的社交应用和游戏应用来比较学习软件体系结构.doc》由会员分享,可在线阅读,更多相关《毕业设计外文翻译通过开发Android平台上的社交应用和游戏应用来比较学习软件体系结构.doc(22页珍藏版)》请在沃文网上搜索。
1、1.引言电脑游戏和视频游戏非常受儿童和青少年的欢迎,在年轻人的文化发挥了突出的作用1。现在游戏可以在技术丰富的配备了笔记本电脑,智能手机,游戏机(移动和固定),机顶盒,和其他数字设备的环境中运行。从这一现象,人们相信将年轻人对游戏的内在动机与教育内容和目标结合就会变成Prensky称之为“以数字游戏为基础的学习”的学习方法2。青年学生生活的游戏中除了丰富的外观,游戏开发技术已经成熟,并且越来越先进3。基于现有的各种游戏开发环境,游戏开发过程中的全部责任可以分为几个的专家领域和角色,如游戏程序员,3D模型的创造者,游戏设计师,音乐家,漫画家,剧作家,等等。游戏内容与技术相结合的过程可以通过游戏引
2、擎和使用网络上的各种用户和专家社区的可用信息得到简化。例如,微软的XNA游戏开发工具包提供的游戏循环函数绘制及更新游戏内容,而且还提供了方便的游戏开发组件来加载不同格式的图形,音频和视频。这使得游戏迷们如无论有没有编程背景的学生修改现有的游戏或开发新游戏。他们可以用这些游戏创作工具实现自己的游戏概念设计,学习发展技能和相关知识,积累相关的实际经验。在这种情况下,不但游戏可以用于学习而且通过激发任务机制,游戏开发工具可以用来研究计算机科学(CS),软件工程(SE),和游戏编程相关主题。一般来说,游戏可以用三种方式集成在教育中4,5。首先,游戏可以用来代替传统的练习,鼓励学生把额外的努力用来做练习
3、,给老师或助教一个实时地监控学生是如何练习的机会6,7。第二,游戏可以作为一个讲座的一部分来促进学生的参与,增加学生的动力8,9。第三,将要求学生们修改或开发游戏作为使用游戏开发框架(GDF)学习CS和SE方面技能的课程的一部分。我们把后者的学习方法为以游戏开发为基础的学习(GDBL)。GDF表示可以用来开发或修改游戏,例如,该工具包的游戏引擎,游戏编辑器,或游戏(模拟)平台,甚至任何集成开发环境(IDE),如Visual C + +,Eclipse和Android SDK,J2ME,因为所有的人都可以用来开发游戏。本文重点研究学生通过在Android平台开发游戏应用学习软件体系结构和在And
4、roid平台开发社交应用(例如,天气预报,聊天软件)学习软件体系结构的相似点和不同点。将游戏开发放到CS或者SE课程中的动机是利用学生对游戏及游戏开发的迷恋来激发他们通过该项目更多更好的学习课程材料。2.相关工作本节描述了GDBL方法在软件工程领域的使用的研究背景和以前的结果。2.1 研究背景最早的类似的通过在游戏的环境中编程来学习的应用在20世纪70年代早期。Logo语言11,龟图形,是一种最古老的用来介绍计算概念给初学者的图书馆。这个概念是基于一只可以在2D屏幕上移动的 “海龟”,该“海龟”用可设置开关屏幕的画笔画就,因此,可能会留下龟运动的痕迹。编程使该“海龟”画不同的花样,这可以用来介
5、绍一般的计算技巧,如程序操作,迭代,递归。此外,在1987,Micco学术性的提出了一个写井字游戏的使用12。后来,其他的研究已经使用专业游戏编程工具如Stage Cast Creator 13,Gamemaker 14 ,Alice 15和Neverwinter Nights 16。此外,文章17提出了使用手机游戏开发作为激励工具和计算机课程的学习背景调查。他们的调查表明游戏编程和计算机科学领域的游戏开发之间的关系-游戏发展可以用在学习人工智能(AI),数据库,计算机网络,SE,人机交互,计算机图形学,计算机体系结构,算法,编程和操作系统。这些研究表明,游戏制作和技术的编程技巧得到激励以及故
6、事性的发展。制作游戏激励和开发评书以及技术的编程技巧的。制作游戏的任务其性质在目的上不尽相同-因此搭建环境并平衡游戏角色这些事情由学习者来承担。最近的游戏编程工具包往往具有比Logo语言更强的视觉效果,无论是因为这个原因,或者因为他们有一种可视化的编程语言,或两个原因同时的作用,使得设计者能够轻松创建图形游戏。这种变化使学习者的重点远离了低级编程,而是强制往其他角色如设计师或软件开发者转变。因此,我们通过实验研究了如何将GDFS用于教育,探讨传统的授课进化为动态的,合作的,和对当前技术丰富的环境下的学生有吸引力的授课。然而,这种说法有待进一步相关理论,应用经验,评价结果和经验证据的支持。这是一
7、个分享我们的经验和实证结果在GDBL领域采用Android软件体系结构课程的动机。2.2 课程和项目设置挪威科技大学(NTNU)(课程代码TDT4240)的软件体系结构课程的教学方式和其他大多数大学不一样,因为学生也必须在项目中实现他们自己设计的软件体系结构。这样做的动机是为了让学生了解架构和实现之间的关系,并能够真正的对体系架构和实施是否符合应用程序指定质量要求进行评价。在软件体系结构课程中的架构项目和其他软件工程课程项目的相似,只是软件体系结构课程中项目都是从软件体系结构的角度进行。在整个项目中,学生们必须根据指定的项目使用的软件体系结构技术,方法和工具来成功学到东西。软件体系结构的项目包
8、括以下几个阶段:(i)COTS(商用成品)练习:学习相关技术并用来开发一个简单的游戏。(ii)设计模式:学习如何通过改变现有系统中的应用设计模式来应用设计模式。(iii)需求和体系结构:列表功能,质量的要求和对游戏的软件体系结构的设计。(iv)架构评估:使用的架构权衡分析法(ATAM)18-20评价方法对项目的软件体系结构方面的质量要求进行评估。(v)实施:做详细的设计,并在新建的架构和根据评估结果做出修改的基础上实现该游戏。(vi)项目评估:使用事后分析法(PMA)21将项目作为一个整体进行评估。在项目的前两个阶段,学生将独立完成他们的工作任务。在36阶段,4-5个学生组成一个团队,并在自己
9、的团队中完成相应的工作。同时,在项目进行期间,学生将专注于一个固定的初级指定质量属性。对于中等质量属性,学生可以选择他们喜欢的质量属性。学生花大部分时间在实施(六周),但也鼓励他们在早期阶段开始实现该游戏以测试他们的架构选择(增量开发)是否合理。在实施阶段,学生通过多次迭代不断扩展,完善软件体系结构使其得到改进。2.3早期的成果此前,该项目的目标是开发Java方面的 Khepera机器人模拟器的华盛顿州立大学的机器人控制器(机器人)22,该机器人控制器着重于一些指定的质量属性如可用性,性能,可修改性,或可测性。开始时,学生们被要求编写的机器人控制器能控制一个机器人在一个迷宫中移动,并在迷宫中收
10、集四个球,并把它们带到迷宫中一个固定的位置中。在2008年,学生们可以在机器人控制器项目和游戏开发项目之间进行选择。两种项目的过程,成果,和对项目的评价是一样的-只是领域不一样。在游戏项目中,学生们被要求使用微软XNA框架和C#语言开发一个游戏。最后,对软件体系结构课程进行评价23,24。评价是基于一个项目的调查数据,学生的项目可交付成果,和其他可访问的课程信息。研究的主要结论是,游戏开发项目可以成功地如果我们考虑机器人作为评价基准用来教软件体系结构。整合我们在2008年运行软件体系结构课程的游戏项目的经验,在2010-2011年期间我们软件体系结构课程项目中增加了一个COTS-Android
11、的项目作为给学生的一个新的选择。学生们现在可以在除了在Java机器人项目和XNA 游戏项目之间进行选择,还可以在Android平台开发一个社交应用程序或游戏。由于COTS和所选择领域的独立性,学生们在项目过程中必须专注于相同的软件体系结构问题,并按照相同的模板编程。游戏和社交Android项目的引进,使我们得以比较学生在项目所涉及的领域如何影响学习和项目经验以及COTS的独立性。在下面的章节中详细说明。3 研究方法本节描述我们使用Android开发作为软件体系结构中的项目的实验中获得的相关数据的研究方法。3.1研究目的本文重点研究使用相同的COTS但具有不同的发展领域来探讨不同领域是否产生不同
12、的输出。在我们以前的研究,GDBL结论的有效性是基于不同的COTS机器人和XNA。本文不探讨XNA和Java开发的机器人控制器开发的游戏,只注重Android平台的社会应用和游戏应用的开发。我们的评估包括五个主题:选择域分布,学生对项目感知,项目交付的代码质量和复杂性,学生的努力和成绩,获奖项目等级。3.2 GQM方法社会和游戏项目的比较应该有助于发现差异,揭示在Android平台上引入项目的影响。这个评价是一个模拟试验,而不是一个受控制的试验。采用的研究方法是基于目标问题度量方法(GQM) 25 ,我们首先确定研究目标(概念层面),然后定义一组研究问题(操作层面),并描述了一套指标来回答研究
13、问题的定义(数量级)。在我们的例子中,回答问题的研究使用的指标的定量和定性数据共同决定的。表1:展示了用于分析软件体系结构课程的游戏开发项目的GQM方法。目标分析软件开发项目为了在同一COTS社交应用与游戏应用领域比较关于两个领域的项目的差异性和有效性看待的角度研究员和教育家上下文索引在软件体系结构课程的学生问题Q1:如何看待选择选择一个Android社会项目的学生和选择Android游戏项目的学生他们的选择是否有任何差异?Q2:在软件架构设计的学生做一个Android的游戏项目与学生做一个Android社会项目有什么不同?Q3:在项目实施工作中的学生做Android游戏项目与学生做一个And
14、roid社会项目是否有任何差异?Q4:学生在性能上做一个Android的游戏项目与做一个Android社会项目有什么区别?MetricM1:选择游戏项目与社会项目的学生数量。M2:问卷调查,5级李克特量表:强烈不同意(1),不同意(2),中立(3),同意(4),强烈同意(5)M3:项目报告M4:源代码文件M5:花费的时间M6:项目得分3.3. 研究步骤当学生开始的项目,并按照项目的阶段进行时,他们应该报告他们花在项目的每个阶段的时间。前两个阶段让学生单独或成对熟悉COTS、架构和设计模式。该项目的主要工作是在项目3-5阶段,包括需求说明,架构设计,架构评估,项目实现和测试。学生每个阶段要上交自
15、己的成果,这由课程负责人评估和反馈,在最后交作品之前使作品不断改善。在5阶段的结束,学生们会上交一个最终的作品,该作品是经过课程负责人评估和分级的。完成5阶段后,学生回答一个问卷调查,主要集中在学生如何看待该项目。在6阶段,学生必须对其进行项目的事后分析作为一个整体来反映他们在项目中取得的成绩和挑战。4 研究结果在2010年和2011年,学生可以选择使用三个COTS做项目:机器人(Java),XNA(C #),和Android(Java)。学生选择的COTS结果展示在图1中,其中36名学生选择了Khepera机器人(19%),55名学生选择了XNA(27%),和102名学生(54%)选择了An
16、droid。选择Android的学生中,58名学生(57%)选择了社会应用,44名学生(43%)选择了游戏应用。从学生选择中我们看到,51%的人选择了游戏开发领域,30%的人选择了社会应用,19%的人选择机器人控制器。图1:软件架构项目类型的选择分布图图1的数据清楚地表明,大多数学生喜欢游戏开发相比其他领域。Android是目前最流行的COTS,我们相信这是由于开发商其开放性,Java的开发,有吸引力的设备,创新的特点和发展,和一个通过Android标记共享开发的应用程序的新方式。在项目的第一阶段,学生们被要求填写一份调查问卷,选择COTS和领域的原因。最重要的原因是:(1)编程列表的原因(熟
17、悉Java或C #)(70.7%),(2)了解COTS(机器人,XNA,Android)(59.5%),(3)游戏动机或娱乐的原因(40.1%),(4)社会应用的动机(39.5%),(5)了解该领域(机器人,游戏,社会)(34.2%),(6)硬件上运行游戏的动机,Android手机,Zune播放器(33%),和(7)做了游戏,然后将自己的游戏放到Android市场或XNA俱乐部(24.5%)。从上面的数据,我们发现,游戏领域已经吸引学生注意力和吸引力的外围设备的优势,如硬件或软件市场, Android社交领域也一样。但这不是机器人领域的情况。下面的小节重点分析在以下四个方面是否社交领域和游戏领
18、域不同而产生明显不同的输出:(1)学生对项目的感受,(2)软件体系结构的设计复杂度,(3)学生在项目中的实现成果(4)学生在项目的评分。4.1学生对项目的不同感受。学生们完成了他们的软件体系结构设计一个星期后,我们做了一个关于项目的调查。本次调查的目的是揭示在学生对组队完成在Android平台上的社交应用项目与组队完成相同COTS的游戏项目的感受可能存在的差异。在调查报告中让学生回想该项目对他们学习软件体系结构有何帮助。该调查定义的假设如下。H0:学生对Android平台上的社交应用或者游戏应用来作为软件体系结构项目的感受没有任何差异。我们将采用Kruskal-Wallis检验假设26,因为它
19、是群体之间的人口平均数测试的平等的非参数方法24。此测试通常是(1)用户不能假设一个正常的人口(2)两组样本大小是不同的。表2展示Kruskal-Wallis检验对报表PS1PS6检验的结果。44个游戏项目的学生中38个学生做了问卷,58个社会项目的学生中的35个学生做了问卷。问卷中的每个项目是通过分配一个从1到5的5个程度值的答案,其中1表示非常反对,5表示非常同意。表2: Wilcoxon测试PS1-PS11报表陈述COTS平均中点标准偏差PPS1:从ATAM上讲我发现它很难评价其他组的结构?Game3.4541.060.178Social3.7740.91PS2:我发现很难把重点放在我们
20、分配的质量属性上Game3.0531.090.024Social3.5740.85PS3:我发现很容易集成建筑或设计图案Game3.2130.930.332Social2.9431.03PS4:我花了更多的时间有关技术问题,而不是建筑事宜Game3.7141.200.175Social4.0641.03PS5:在项目过程中,我学到了很多关于软件架构的知识Game3.5040.860.552Social3.3140.99PS6:如果我能及时回到过去的话,我会选择另一个项目Game1.1310.340.289Social1.2010.41从测试结果中,问卷调查的回答中显著性差异(P0.05)最低的
21、是PS2(P = 0.024)。我们得出这样的结论:Android游戏和Android社交应用之间显著的差异在于学生对项目中困难的感知的重点集中在项目指定的质量属性上。Android游戏在量表的得分是3分,而Android社交应用的得分为4分。这表明,Android游戏项目的学生对PS5表示中立的态度,但Android社交应用项目的学生对PS5倾向于同意。一个可能的解释是,一个游戏的质量属性,如可修改性或可测性,很容易让学生联想,并抓住学生的注意力使学生去深入的了解它。但社交应用程序可能更多的固定印象在学生的生活,故激发学生去思考的影响没有游戏的深刻。其他的报表在学生感知方面没有显著差异。此外
22、,即使其他两组的P值无显著性差异,PS1和PS4的平均值还表明学生从游戏项目中发现评价其他组在ATAM方面的架构没有那么困难,比社交应用项目的学生在技术问题上花费更少的时间。此外,PS6:学生必须回答如果他们能够回到过去的时间,他们是否会选择另一个项目。图2展示了更详细的统计信息。图2显示,相比选择游戏项目的学生的比例(13%)选择社交应用项目的学生中有较高比例的学生,会选择另一个项目(20%)。总的来说,调查显示最显著的差异是选择游戏项目的学生更注重软件的质量属性。报表获得的P值(P1,P2,P4)显示选择游戏项目的学生比选择社交应用项目的学生更积极的反馈他们对自己项目的感受。图2:关于PS
23、6:如果你能回到过去你会选择相同的项目吗4.2软件体系结构设计上的差异凭经验是很难评估一个软件的架构,但我们选择通过设计模式的学生选择人数,主要模块/类的软件体系结构的逻辑视图的数量,和体系结构层次结构的数目来评估一个软件体系结构的好坏。我们承认,这样比较会有很多误差源,因为这两个领域差别太大。然而,在本课程的重点是软件设计模式的应用,从逻辑视图上主要对足够详细的软件体系结构提出不同的看法。实验数据应强调项目的两种类型项目之间的任何差异。实验数据通过阅读和分析12个游戏项目小组和16个社交应用项目小组最终的项目报告收集而来。4.2.1设计模式的使用表3是对软件体系结构和设计模式应用于社交应用项
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 外文 翻译 通过 开发 Android 平台 社交 应用 游戏 比较 学习 软件 体系结构