1、外文原文:http:/ 中文 22120 字 通过开发 Android平台上的社交应用和游戏应用来比较学习软件体系结构 1.引言 电脑游戏和视频游戏非常受儿童和青少年的欢迎,在年轻人的文化发挥了突出的作用 1。现在游戏可以在技术丰富的配备了笔记本电脑,智能手机,游戏机(移动和固定),机顶盒,和其他数字设备的环境中运行。从这一现象,人们相信将年轻人对游戏的内在动机与教育内容和目标结合就会变成 Prensky 称之为“以数字游戏为基础的学习”的学习方法 2。 青年学生生活的游戏中除了丰富的外观,游戏开发技术已经成熟,并且越来越先进 3。基
2、 于现有的各种游戏开发环境,游戏开发过程中的全部责任可以分为几个的专家领域和角色,如游戏程序员, 3D 模型的创造者,游戏设计师,音乐家,漫画家,剧作家,等等。游戏内容与技术相结合的过程可以通过游戏引擎和使用网络上的各种用户和专家社区的可用信息得到简化。例如,微软的 XNA游戏开发工具包提供的游戏循环函数绘制及更新游戏内容,而且还提供了方便的游戏开发组件来加载不同格式的图形,音频和视频。这使得游戏迷们如无论有没有编程背景的学生修改现有的游戏或开发新游戏。他们可以用这些游戏创作工具实现自己的游戏概念设计,学习发展技能 和相关知识,积累相关的实际经验。 在这种情况下,不但游戏可以用于学
3、习而且通过激发任务机制,游戏开发工具可以用来研究计算机科学( CS),软件工程( SE),和游戏编程相关主题。一般来说,游戏可以用三种方式集成在教育中 4,5。首先,游戏可以用来代替传统的练习,鼓励学生把额外的努力用来做练习,给老师或助教一个实时地监控学生是如何练习的机会 6, 7。第二,游戏可以作为一个讲座的一部分来促进学生的参与,增加学生的动力 8,9。第三,将要求学生们修改或开发游戏作为使用游戏开发框架( GDF)学习 CS 和 SE 方面技能的 课程的一部分。我们把后者的学习方法为以游戏开发为基础的学习( GDBL)。 GDF 表示可以用来开发或修改游戏,例如,该工具包的游戏引擎,游戏
4、编辑器,或游戏(模拟)平台,甚至任何集成开发环境( IDE),如 Visual C + +, Eclipse 和 Android SDK, J2ME,因为所有的人都可以用来开发游戏。 本文重点研究学生通过在 Android平台开发游戏应用学习软件体系结构和在Android 平台开发社交应用(例如,天气预报,聊天软件)学习软件体系结构的相似点和不同点。将游戏开发放到 CS 或者 SE 课程中的动机是 利用学生对游戏 及游戏开发的迷恋来激发他们通过该项目更多更好的学习课程材料。 2.相关工作 本节描述了 GDBL 方法在软件工程领域的使用的研究背景和
5、以前的结果。 2.1 研究背景 最早的类似的通过在游戏的环境中编程来学习的应用在 20 世纪 70 年代早期。 Logo 语言 11,龟图形,是一种最古老的用来介绍计算概念给初学者的图书馆。这个概念是基于一只可以在 2D 屏幕上移动的 “海龟”,该“海龟”用可设置开关屏幕的画笔画就,因此,可能会留下龟运动的痕迹。编程使该“海龟”画不同的花样,这可以用来介绍一般的计算技巧,如程序操 作,迭代,递归。此外,在 1987, Micco 学术性的提出了一个写井字游戏的使用 12。后来,其他的研究已经使用专业游戏编程工具如 Stage Cast Creator 13,
6、 Gamemaker 14 , Alice 15和 Neverwinter Nights 16。此外,文章 17提出了使用手机游戏开发作为激励工具和计算机课程的学习背景调查。他们的调查表明游戏编程和计算机科学领域的游戏开发之间的关系 -游戏发展可以用在学习人工智能( AI),数据库,计算机网络, SE,人机交互,计算机图形学,计 算机体系结构,算法,编程和操作系统。 这些研究表明,游戏制作和技术的编程技巧得到激励以及故事性的发展。制作游戏激励和开发评书以及技术的编程技巧的。制作游戏的任务其性质在目的上不尽相同 -因此搭建环境并平衡游戏角色这些事情由学习者来承担。最近的游戏编程工具包
7、往往具有比 Logo 语言更强的视觉效果,无论是因为这个原因,或者因为他们有一种可视化的编程语言,或两个原因同时的作用,使得设计者能够轻松创建图形游戏。这种变化使学习者的重点远离了低级编程,而是强制往其他角色如设计师或软件开发者转变。因此,我们通过实验研究了 如何将 GDFS 用于教育,探讨传统的授课进化为动态的,合作的,和对当前技术丰富的环境下的学生有吸引力的授课。然而,这种说法有待进一步相关理论,应用经验,评价结果和经验证据的支持。这是一个分享我们的经验和实证结果在 GDBL 领域采用Android 软件体系结构课程的动机。 2.2 课程和项目设置 挪威科技大学(
8、NTNU)(课程代码 TDT4240)的软件体系结构课程的教学 方式和其他大多数大学不一样,因为学生也必须在项目中实现他们自己设计的软件体系结构。这样做的动机是为了让学生了解架构和实现之间的关系,并能够真正的对体 系架构和实施是否符合应用程序指定质量要求进行评价。在软件体系结构课程中的架构项目和其他软件工程课程项目的相似,只是软件体系结构课程中项目都是从软件体系结构的角度进行。在整个项目中,学生们必须根据指定的项目使用的软件体系结构技术,方法和工具来成功学到东西。 软件体系结构的项目包括以下几个阶段 : ( i) COTS(商用成品)练习:学习相关技术并用来开发一个简单
9、的游戏。 ( ii)设计模式:学习如何通过改变现有系统中的应用设计模式来应用设计模式。 ( iii)需求和体系结构:列表功能,质量的要求和对游戏的软件体系结构的 设计。 ( iv)架构评估:使用的架构权衡分析法( ATAM) 18-20评价方法对项目的软件体系结构方面的质量要求进行评估。 ( v)实施:做详细的设计,并在新建的架构和根据评估结果做出修改的基础上实现该游戏。 ( vi)项目评估:使用事后分析法( PMA) 21将项目作为一个整体进行评估。 在项目的前两个阶段,学生将独立完成他们的工作任务。在 3 6 阶段,
10、4-5个学生组成一个团队,并在自己的团队中完成相应的工作。同时,在项目进行期间,学生将专注于一个固定的初级指定质量属性。对于中等质量属性,学生可以选择他们喜欢 的质量属性。学生花大部分时间在实施(六周),但也鼓励他们在早期阶段开始实现该游戏以测试他们的架构选择(增量开发)是否合理。在实施阶段,学生通过多次迭代不断扩展,完善软件体系结构使其得到改进。 2.3 早期的成果 此前,该项目的目标是开发 Java 方面的 Khepera 机器人模拟器的华盛顿州立大学的机器人控制器(机器人) 22,该机器人控制器着重于一些指定的质量属性如可用性,性能,可修改性,或可测性。开始时,学生们被要求编写的机器人控制器能控制一个机器人在一个迷宫中移动,并在迷宫中收集四个球,并把它们带到迷宫中 一个固定的位置中。在 2008 年,学生们可以在机器人控制器项目和游戏开发项目之间进行选择。两种项目的过程,成果,和对项目的评价是一样的 -只是领域不一样。在游戏项目中,学生们被要求使用微软 XNA 框架和 C#语言开发一个游戏。最后,对软件体系结构课程进行评价 23, 24。评价是基于一个项目的调查数据,学生的项目可交付成果,和其他可访问的课程信息。研究的主要结论是,游戏开发项目可以成功地如果我们考虑机器人作为评价基准用来教软件体系结构。