基于ARUP的桌面虚拟现实教学软件 开发模型建构

2018-02-28 10:31宋芳菲张冬玉相凤华
中国教育信息化·高教职教 2018年12期

宋芳菲 张冬玉 相凤华

摘 要:桌面虚拟现实教学软件是虚拟现实技术在计算机辅助教学领域的应用实例,是多媒体教学软件向虚拟化、智能化、网络化发展的体现。本文以敏捷软件开发思想为指导,将RUP统一过程软件开发模型与Scrum敏捷软件开发方法相结合,形成一种ARUP敏捷统一软件开发框架和管理方法,并基于ARUP框架与教学系统设计方法,结合桌面虚拟现实技术特点,建构了桌面虚拟现实教学软件开发模型,且依据此模型实施了摄影虚拟实验室的设计与开发,对桌面虚拟现实教学软件的开发有一定指导作用。

关键词:桌面虚拟现实教学软件;软件开发模型;ARUP;Scrum;EON Studio

中图分类号:G434 文献标志码:A 文章编号:1673-8454(2018)23-0086-07

一、引言

随着《中国虚拟现实产业白皮书》的发布,我国虚拟现实产业进入了迅速发展时期,[1]虚拟现实研究也已成为教育技术的重要研究方向。[2]教育部成立了虚拟现实应用工程研究中心,[3]启动了国家级虚拟仿真实验教学中心建设工作,计划每年产生100个虚拟仿真实验教学中心,[4]以有效推动虚拟现实在教育行业的发展。未来虚拟现实技术将在基础教育、高等教育、成人教育等领域得到广泛应用,[3]将革新知识获取的渠道和学习交互的方式,形成一个全新的教育生态系统。[5]

虚拟现实可以分为桌面虚拟现实、沉浸式虚拟现实、分布式虚拟现实、增强虚拟现实四大类,目前限制虚拟现实在教育中广泛应用的主要因素有两个:一是产生和维护高沉浸感的虚拟现实设备与环境价格昂贵;二是佩戴虚拟现实设备给学习者带来的生理和心理的不适感,因此相对低沉浸感的桌面虚拟现实显示出在教育教学中的良好应用前景。[6]

桌面虚拟现实作为一种低成本的虚拟现实技术,因其良好的视听感受、实时的人机交互以及便捷的网络传输等优势,更多地应用于中小型教学软件开发,形成了多种以桌面虚拟现实学习环境为核心的教学应用软件,如虚拟实验室、虚拟教育游戏、虚拟漫游系统等,可以统称为桌面虚拟现实教学软件。

桌面虚拟现实教学软件既是应用于教学的计算机程序,又是具有特定教学功能的教学材料,还具有沉浸、交互、构想三个虚拟现实技术特性,[1]因此其具有程序性、教学性、[7]虚拟性三重属性,它的开发是一个利用桌面虚拟现实技术和教学设计方法对软件系统和教学系统实施并行设计开发的过程,是一个对技术要求较高、相对复杂的软件开发过程。

目前虚拟现实教学系统的开发多以技术为主线,大致分为媒体素材与三维模型制作、虚拟场景设计与实现、交互控制设计与实现、系统测试与发布几个阶段,开发过程重视技术工具的应用,缺少教学设计理论和相关学科知识的支持,缺少合理有效的教学软件开发模型作为指导。虽然有部分研究体现了教学设计和软件工程思想,阐述了简单的开发流程,[8-10]但未对虚拟现实教学软件的开发过程与方法做出系统阐述。因此,为适应桌面虚拟现实教学软件开发过程的复杂性,规避风险、降低成本,同时保证软件开发的质量和效率,构建一個具有理论指导和实践参考价值的桌面虚拟现实教学软件开发模型是虚拟现实教学应用领域中值得研究的课题。

二、桌面虚拟现实教学软件开发模型建构思路与方法

依据桌面虚拟现实教学软件的三重属性,可以在厘定其概念范围的基础上,结合桌面虚拟现实技术特点,参考已有的教学软件开发模型,利用软件工程和教学设计理论与方法来共同建构桌面虚拟现实教学软件的开发模型。

1.桌面虚拟现实教学软件及其核心技术分析

(1)桌面虚拟现实教学软件定义

桌面虚拟现实是一种低沉浸感的虚拟现实,它是利用计算机生成一种可交互的三维虚拟环境,用户使用标准外设,如鼠标、键盘等,通过计算机屏幕观察和操纵虚拟环境与对象,实现实时人机交互的技术。[11]

桌面虚拟现实教学软件就是利用桌面虚拟现实技术开发的教学应用软件,其狭义定义是指根据教学目标开发的,以多媒体与交互式三维模拟环境为表现方式,以超媒体结构组织的具有一定沉浸感和实时人机交互,用于呈现特定教学内容、反映特定教学策略、实现特定教学功能的三维模拟程序,也可称为虚拟现实程序。其广义定义是指以桌面虚拟现实技术为核心,并综合其它支持ActiveX插件的主程序(如Visual Basic、Director等)或其它软件开发技术设计开发的除虚拟展示教学和虚拟实验外,功能更为全面的教学软件系统。

(2)桌面虚拟现实核心技术分析

实现桌面虚拟现实的方法大致有三种:①基于语言编程,即采用底层图形开发接口OpenGL或DirectX,或是Java3D技术、VRML虚拟现实建模语言等编程实现三维图形系统。[12]②基于二维图像,即对物体和环境进行实地的多角度环视拍摄,将形成的静止图像进行后期缝合,建立实景化虚拟空间,并通过加载播放程序来完成展示。[13] 常用软件有QTVR、PixMaker等,主要用于虚拟漫游系统的开发。③基于三维建模,这类虚拟现实软件支持多种格式三维模型的导入,可使用已封装的功能节点实现对三维虚拟环境的交互操作,可嵌入支持ActiveX插件的其它主程序,实现多种形式的显示发布。[14] 常用软件有Virtools、EON Studio等,可用于网络虚拟展示、网络虚拟游戏或其它大型虚拟现实系统的开发。综上,桌面虚拟现实的核心技术主要体现在虚拟环境建模、人机交互和实时显示三方面。虚拟现实程序的开发过程可以概括为虚拟建模、交互操作、显示发布三个阶段,具体如图1所示。

2.教学软件开发模型的相关研究

目前教学软件开发模型主要是基于教学系统设计方法与软件工程开发模型来建构的。曾有研究者基于传统软件开发模型提出了教学软件的瀑布开发模型[15]、原型开发模型[16]、螺旋开发模型[17],这类模型虽然在一定程度上体现了迭代开发的思想,但仍强调开发过程的阶段性和顺序性,难以适应系统需求的快速变化,且对开发过程缺乏系统的阐述和规定。也有研究者提出了基于RUP统一过程的多媒体课件开发模型[18]和基于RUP改进模型的教学软件开发模型,[19]这种模型充分体现了迭代增量的开发思想,为教学软件开发提供了一个相对稳定的框架结构,具有较好的通用性,但缺少对开发过程管理方法的阐述。

敏捷方法是以代码为核心的、富于灵活性的新型软件开发方法,可通过有效沟通和紧密协作来简化、管理和控制软件开发过程,以适应系统需求的快速变化,为软件开发提供过程管理框架,已有研究者提出应用XP极限编程敏捷方法管理教育软件开发过程,[20]也有研究将RUP过程模型与敏捷方法有效结合,形成兼具二者优势的ARUP敏捷统一软件开发方法,[21]因此可以尝试使用ARUP敏捷统一方法来更好地指导教学软件的开发。

3.RUP与Scrum相结合的ARUP软件开发模型

(1)RUP统一过程软件开发模型

RUP(Rational Unified Process)统一软件开发模型综合了多种软件开发模型的优点,是一个具有通用性的二维软件开发模型,如图2所示。[22]橫轴代表软件开发过程的时间维度,以初始、细化、构造和交付四个迭代阶段展现软件开发的生命周期,体现了开发过程的动态结构;纵轴代表软件开发过程的内容维度,以需求、分析设计、实现等九个核心工作流阐明了迭代过程执行的相关活动,体现了开发过程的静态结构。RUP模型是以用例驱动、以基本架构为中心、以迭代和增量方式进行软件开发的。

(2)Scrum敏捷软件开发方法

Scrum是目前应用较为广泛的敏捷软件开发方法,包括了一系列核心实践和预定义角色,如图3所示。[23] Scrum开发过程由多个Sprint迭代周期组成,每个 Sprint起始首先由产品负责人编写产品功能订单(Product Backlog),再由Scrum开发团队讨论确定本次Sprint迭代需要完成的开发任务,并按照优先级排序形成迭代开发任务列表(Sprint Backlog)。进入开发周期后,每个工作日都要组织每日简会,团队成员相互通告工作进度,并以燃尽图(Burndown chart)表示剩余工作量。在Sprint末期,将召开评审会议,将阶段性成果展示给产品负责人和用户,获得反馈意见,最后召开回顾会议,总结问题和经验,为下一个Sprint周期做好准备。Scrum的工作流程可以体现出4个重要核心实践,即客户现场、面对面交流、持续集成和频繁发布。[24]

(3)ARUP敏捷统一过程软件开发框架与管理方法

可见,RUP模型可以为教学软件开发提供一个相对稳定的框架结构,但本身过于复杂,在实际应用中往往需要进行裁剪,缺乏对中小型项目的支持,而Scrum敏捷方法可以用于简化和管理RUP迭代开发过程。本研究将Scrum敏捷方法与RUP模型相结合,建立一种ARUP(Agile Rational Unified Process)敏捷统一过程软件开发框架和管理方法,即在继承RUP模型用例驱动和迭代开发思想的基础上,利用Scrum敏捷方法合理简化RUP框架结构,沿用Scrum的预定角色和各项会议制度协调管理RUP迭代开发过程,并积极开展Scrum的核心实践。将用户作为开发团队的成员,通过用户与开发人员以及开发人员之间面对面的有效沟通来快速获得用户需求变化和反馈信息,及时交流开发情况,提高软件开发效率,以体现客户现场和面对面交流的核心实践,同时在迭代开发中秉持以代码为核心,持续进行系统功能集成,并通过积极发布和测试软件系统来发现问题,修补漏洞,以快速灵活地适应系统需求的不断变化,实现增量开发,以体现持续集成和频繁发布的核心实践。

ARUP综合了RUP模型与Scrum方法的优点,在整体框架上遵循RUP的主要结构,在管理方法上继承Scrum的核心实践,同时具有通用性和灵活性,更适用于中小型教学软件的开发。ARUP既是利用Scrum思想对RUP过程的适当裁剪,也是利用RUP思想对Scrum的合理扩充,其核心思想是以人为本,用例驱动,增量迭代,拥抱变化的有序开发过程。[25]

三、桌面虚拟现实教学软件开发模型建构

依据上述ARUP敏捷统一过程软件开发框架与管理方法,以桌面虚拟现实教学软件的广义定义为标准,结合教学系统设计模式和桌面虚拟现实技术特点,本文从教学设计与系统设计两条路径出发,提出了桌面虚拟现实教学软件开发模型,将其生命周期分为初始、细化、构造、交付4个阶段,包括6个核心工作流,其中需求建模、分析设计、实现、测试、部署为活动工作流,项目管理为支持工作流,如图4所示。

1.桌面虚拟现实教学软件开发模型的核心工作流

(1)需求建模

需求建模的目标是了解项目处理的问题域,以及初步确定解决问题的可行方案,主要执行在初始阶段,经过2次迭代分别完成教学需求建模和系统需求建模,可以使用自由图表或UML图表示。通过用户需求分析了解主要的教学需求和系统需求。根据教学需求描述,通过教学目标分析、教学内容分析和学习者分析,建立教学目标的层次关系,教学内容的逻辑关系,明确学习者的认知特点、认知水平、学习风格等智力与非智力因素,形成教学目标模型、领域知识模型和学习者模型,共同构成教学需求模型。

根据系统需求描述,识别系统主要用例并以用例图表示,形成系统用例模型,分析系统核心业务流程,识别重要领域概念,建立表示实体类型及相互关系的概念类图,形成领域对象模型。根据系统用例建立用户界面草图或原型,形成用户界面模型,通过可行性分析设计系统基本体系结构与开发技术路线。以上模型共同构成了系统需求模型。将由教学需求模型和系统需求模型提炼出的主要教学目标任务与系统功能需求按优先级排列,形成教学任务表与系统功能表,其作用类似于Scrum的产品功能订单,即教学软件开发的概要任务列表。

(2)分析设计

分析设计是对教学需求模型和系统需求模型的细化扩展,主要执行在细化阶段,通过2次迭代分别完成教学设计与系统设计。

教学设计主要根据教学目标模型和领域知识模型对教学目标和教学内容进一步分析细化,明确教学目标与教学知识点的对应关系,形成目标-内容模型;并为教学过程设计适合的教学策略与方法,形成过程-策略模型;为体现桌面虚拟现实的优势,应重视探究式教学策略的使用。根据以上分析进行教学媒体设计,主要包括两方面:一是媒体选择与内容设计,即为各知识点选择适合的媒体表现形式及编辑媒体呈现的具体内容;二是媒体形象设计,包括图、文、声、像等媒体元素的形象设计,尤其是虚拟现实元素的视觉设计,即虚拟环境和对象的三维模型设计,形成内容-媒体模型,以上模型共同构成了教学设计模型。

系统设计主要进行系统用例模型、领域对象模型、用户界面模型的细化,可使用时序图描述系统用例的实现过程,进一步分解、扩展系统用例,尤其是虚拟教学用例的交互行为细化,明确阐述系统用例,完善用户界面原型的导航、布局、色彩风格等设计,将领域模型的概念类图细化为设计类图或程序代码,实现类与接口的设计,并根据其进行后台数据库设计,在控制风险的同时细化系统组件、功能模块与网络架构设计,明确系统体系结构。细化后的各模型构成了系统设计模型。将由教学设计模型和系统设计模型提取出的教学用例和系统用例分别按照优先级排序,形成教学用例列表和系统用例列表,其中虚拟现实功能用例,可以用交互行为列表表示,如表1、2、3所示,其作用类似于Scrum的迭代开发任务列表,即教学软件开发的详细任务列表,通常先開发优先级别高的用例。

(3)实现

实现是将设计方案转化为现实,主要包括媒体元素的编辑开发和系统功能的编程实现,是贯穿整个开发周期的重要工作流。在初始阶段,进行开发环境准备,包括硬件环境建设和软件工具选择。在细化阶段,建立Scrum开发小组,并依据教学用例和系统用例列表进行任务选择与分配。

在构造阶段,各Scrum小组将通过多次Sprint快速迭代逐步完成系统功能开发。媒体开发小组将进行多媒体元素的制作合成,包括虚拟环境与对象的建模,并通过内容——媒体测试判断媒体元素与教学内容是否吻合,视听质量是否合格。虚拟现实开发小组将基于桌面虚拟现实技术进行虚拟现实程序的开发,实现虚拟环境漫游、虚拟对象操作等人机交互行为,并通过人机交互测试判断交互功能是否准确实现。系统功能开发小组将编程实现功能用例,并将通过单元测试的功能模块、组件进行集成,形成一次快速迭代的测试原型,实现系统增量开发。在交付阶段,各Scrum小组将进行系统漏洞查找、修复,并根据用户需求的变化进行系统升级与维护。

(4)测试

测试是对实现工作的检验,提供指导和反馈信息以保证系统开发的质量和效率,贯穿软件开发的各个阶段。在初始阶段,可以从科学性、功能性、艺术性、教学性等方面以量规的方式制定教学软件的评价体系。在细化阶段,制定教学评价计划和评价标准,设计教学实验方案和评价用例,编写教学测验题目,同时制定软件测试计划,设计测试用例。在构造阶段,通过多次Sprint快速迭代对系统原型进行集成测试和系统测试,在软件部署之前还需进行验收测试。在交付阶段,通过2次迭代分别完成软件的Beta测试和小规模的教学效果测试,查找教学设计和系统开发中存在的问题,以便在软件正式版中得以解决。

(5)部署

部署的目的是最终使教学软件能够为用户正常使用,其相关活动包括硬件、软件的安装、运行环境设置、提供用户帮助等。在构造阶段,可以整理形成源程序清单与注释,为二次开发提供帮助文档,并编写软件安装使用说明和用户手册,为用户使用、维护软件系统提供帮助文档。

(6)项目管理

项目管理的目的是使软件开发按照预定的成本、进度、质量得以顺利完成,包括对项目风险、产品、人员、过程的管理活动,贯穿整个开发周期。在初始阶段,将制定软件开发计划书,在细化阶段,可在教学设计和系统设计的基础上整理形成简单的文字脚本和制作脚本,并确定任务分工与迭代周期规划。在构造阶段,可用Scrum燃尽图的形式说明开发任务的完成情况,适当调整迭代计划。在交付阶段,将根据用户需求和反馈意见制定软件维护和升级计划。

2.桌面虚拟现实教学软件开发模型的开发人员与输出产品

桌面虚拟现实教学软件的开发人员中,产品负责人、用户(即教师、学生、教学管理人员)将与其它开发人员积极交流合作,参与到软件开发的各个阶段,主要体现在教学与系统需求建模、软件测试与教学效果评价等活动中。此外,学科专家、教学设计人员主要参与教学需求建模、教学设计、教学评价等活动,软件开发人员主要参与系统需求建模、系统设计、系统开发与测试等活动,媒体设计人员主要参与媒体元素的设计制作。开发过程将形成多媒体素材库、桌面虚拟现实应用程序和完整的教学软件试用版本。

四、摄影虚拟实验室教学软件的开发实例

为缓解高校《摄影技术》课程实验器材不足的问题,项目小组基于上述桌面虚拟现实教学软件开发模型完成了摄影虚拟实验室教学软件的设计开发,目的是为高校教育技术学和数字媒体专业的大学生,以及摄影爱好者提供一个可以在线开展摄影虚拟实验、进行自主学习的桌面虚拟现实教学软件。

项目小组由项目负责人、学科教师与教学设计人员、软件开发与测试人员、数字媒体设计人员6人组成,开发周期为4个月。下文依据桌面虚拟现实教学软件开发模型的生命周期来阐述具体开发过程。

1.初始阶段

初始阶段的主要目标是建立需求模型,使用户与软件开发人员对软件开发目的与任务有统一明确的认识,确定教学软件类型与作用、开发技术路线与基本体系结构,进行风险评估,形成软件开发计划和软件架构文档。本系统采用B/S结构,以3Ds Max作为三维建模工具,以EON Studio作为虚拟现实程序开发软件,以ASP.NET3.5和Visual Studio2010作为网络开发技术与平台,以SQL Server2008作为后台数据库管理工具,以Canon EOS 350D单反数码相机作为虚拟实验对象进行模拟实验设计,初步建立了教学需求和系统需求模型。

2.细化阶段

细化阶段的主要目标是分析问题领域,通过细化教学需求和系统需求模型,使系统需求趋于稳定,系统用例更加明确,并规避开发风险,建立健全的体系结构,确保软件系统能够顺利开发。项目小组对实验教学内容和系统功能进一步分析细化,形成了教学用例和功能用例列表,并进行了分组和任务分配。

3.构造阶段

构造阶段的主要目标是通过多次Sprint快速迭代实现系统功能的集成与增量开发。项目小组通过快速迭代完成承诺的开发任务,其中虚拟现实程序的开发可遵循所选择的桌面虚拟现实技术,即EON Studio模拟程式的开发流程来进行,如图5所示[26],主要包括三维模型导入、交互行为添加、程序优化发布3个环节,本系统采用网页形式发布。

4.交付阶段

交付阶段的主要目标是实现系统维护与升级,确保软件可用,且符合用户需求。项目小组通过软件试用和教学效果评价对软件漏洞进行了修复,并根据用户需求变化修改扩展了部分教学内容和系统功能,形成了功能较为全面的摄影虚拟实验室系统,取得了良好的开发效果,其虚拟实验程序主要运行界面如图6、7所示。

五、结束语

本文以软件工程与教学设计理论为依据,将Scrum敏捷软件开发方法的核心实践引入RUP统一过程软件开发模型,形成一种ARUP敏捷统一软件开发框架与管理方法,并结合桌面虚拟现实技术特点建构了桌面虚拟现实教学软件的开发模型。在实际应用中,开发者可以根据项目规模与所选择的桌面虚拟现实技术,在对该模型的工作流程进行简化、修改或扩充的基础上,形成符合项目本身需求的开发模型,以便更好地指导项目的进行,保证项目开发的效率和质量,从而为桌面虚拟现实教学软件的开发提供一个可参考的通用模型,以丰富教学软件开发的理论与实践,促进虚拟现实技术在教育中的有效应用。

参考文献:

[1]刘德建等.虚拟现实技术教育应用的潜力、进展与挑战[J].开放教育研究,2016,22(4):25-30.

[2]黄奕宇.虚拟现实(VR)教育应用研究综述[J].中国教育信息化,2018(1):12-15.

[3]温晓君.2017中国虚拟现实产业走势[J].中国经济报告,2017(8):65-67.

[4]李佐军.地方高校虚拟仿真实验教学中心的建设[J].教书育人(高教论坛),2017(12):68-69.

[5]王娟等.3D技术教育应用创新透视[J].现代远程教育研究,2015(1):62-70.

[6]Mingshao Zhang. Recent Developments in Game-Based Virtual Reality Educational Laboratories Using the Microsoft Kinect[J]. iJET, 2018,13(1):138-158.

[7]何克抗,李文光.教育技术学(第二版)[M].北京:北京师范大学出版社,2009:207-209.

[8]王建虎等.基于VRP - Builder 的桌面级虚拟现实课件的设计与开发[J].系统仿真技术,2017,13(1):69-73.

[9]李萍等.装甲装备虚拟教学系统开发研究[J].计算机时代,2018(7):9-12.

[10]姚玉斌.基于VR技术的机械产品制造过程教学案例开发[D].山东:山东建筑大学,2017:15-21.

[11]任伟.虚拟现实技术在地质科普中的应用[J].地质论评,2017(63):378-379.

[12][13][14]刘光然.虚拟现实技术[M].北京:清华大学出版社,2012:106-147.

[15]张进宝等.基于“瀑布模型”思想的网络课程设计与资源开发模型[J].现代远程教育,2010(1):64-67.

[16]方海光等.教育软件工程框架的建构[J].计算机科学,2009,36(1):29-33.

[17]李为民,张军征.教学设计与软件工程结合的教学软件开发模式[J].现代教育技术,2009,19(7):49-52.

[18]黄子君,张亮.基于统一过程的多媒体课件开发模型研究[J].江西教育学院学报,2012,33(6):24-28.

[19]余久久.面向教学软件的RUP改进模型的设计研究[J].电化教育研究,2012(4):76-81.

[20]汪灏等.基于极限编程方法的教育软件项目开发[J].软件导刊,2012(3):108-110.

[21]David C. Kung.面向对象软件工程[M].北京:清华大学出版社,2017:37-41.

[22]Scott W. Ambler. A Managers Introduction to The Rational Unified Process (RUP) [J/OL]. (2005-11-04)[2017-08-29]http://www.ambysoft.com/downloads/managersIntroToRUP.pdf.

[23]张智海,周国祥.Scrum 方法的研究与分析[J].合肥工业大学学报(自然科学版),2010,33(2):197-200.

[24]谢东强.敏捷软件开发的双迭代模型[J].计算机应用与软件,2012,29(6):176-178.

[25]马敬元.基于Agile的统一软件过程的研究与设计[D].北京:北京交通大学经济管理学院,2008:28.

[26]EON Reality Corporation. EON Help[CP/OL]. https://www.eonreality.com/,Irvine, CA.:EON Reality Corporation,2018.

(編辑:王晓明)