虚拟仿真实验教学软件开发模型的设计研究
成阳 文福安
摘 要:虚拟仿真实验教学软件开发环节多,涉及的开发角色多,尚无相关模型用以规范开发流程。文章设计出一种按照结构化开发思路划分阶段、混合敏捷与原型开发模型、结合特定领域软件体系结构、统一开发活动输出的虚拟仿真实验教学软件开发模型,包括教学与原型设计、软件实现、测试、部署、维护五个阶段,教学设计、实验脚本设计、原型设计、平面设计、三维设计、程序开发、内部测试等10个开发活动,以及迭代次数和输出。该模型已应用于实际开发,取得了良好效果。
关键词:虚拟仿真实验;软件开发模型;虚拟现实;教学软件
中图分类号:G434;TP311.5 ? ? ? 文献标志码:A ? ? ? ? 文章编号:1673-8454(2021)02-0087-06
一、引言
虚拟仿真实验是信息技术与实验教学深度融合的重要载体,在高校、中职及中小学教学中日益发挥着重要作用。同时,作为传统实验教学的一种有效的补充,虚拟仿真实验已经成为加强实践教学、提高教学质量的重要手段[1]。它解决了实验成本、资源、安全性等多方面问题,有效提升了实验教学的互动性、情境性和沉浸性,突破了现有教学条件短板[2]。虚拟仿真实验教学软件有力推动了这一进程,并为探索教育教学改革提供了良好平台。然而,虚拟仿真实验教学软件质量良莠不齐,软件教学性难以得到有效保障,且开发环节多,涉及的开发角色多,国内外尚无系统的虚拟仿真实验教学软件开发模型研究。
虚拟仿真实验是利用计算机创建出一个可视化的实验操作环境,通过操作仿真仪器、设备等实验对象,进行各种复杂的实验,达到与真实实验环境相一致的教学目的[3]。在本研究中,虚拟仿真实验属于虚拟实验,将适当引用虚拟实验相关研究结论。
二、教学和游戏软件开发模型分析
目前,瀑布、增量、原型和敏捷开发模型作为典型软件开发模型广泛应用于软件项目开发中,对领域相关的软件开发模型设计具有很重要的指导意义。虚拟仿真实验教学软件开发模型的设计应结合教学和虚拟现实(Virtual Reality, 简称VR),但VR目前尚无相关研究成果。VR由于包含了人工智能、计算机图形、艺术和设计、声音、人为因素和物理控制系统而成为一个多学科领域[4]。同时,已有的典型软件开发模型适合管理从事程序开发的工程师,不宜直接用于VR领域开发[5]。游戏是一种多学科领域,具有和VR相似的三维建模、人机交互等显著特征,应深入研究其开发模型[6]。因此,本研究选取了四种教学和游戏软件开发模型进行分析。
1.教学软件开发模型
余久久[7]提出面向教学软件的RUP改进模型,分为初始、细化和构造三个阶段,在每个阶段并行开展领域分析、需求、设计、实现、测试、实施、配置管理、项目管理、环境管理九个工作流。其设计要点包括:将整体的软件开发按迭代思路划分为三个阶段,在各个阶段也采用迭代开发,并规定迭代周期次数;在多数阶段采用教学和软件要素并行、交叉的方式;将基本的教学设计要素拆分为三个部分,分别放置于领域分析(教学目标和使用者特征)、设计(教学内容、教学策略等)和测试阶段(教学评价),各自发挥作用;引入了项目管理的思路和部分文档。
钟名扬等人[8]提出的教学软件项目式开发模型分为三个阶段:立项,完成分析;实施,完成设计、开发和测试;结项,完成Beta测试和终期评审。其设计要点包括:以项目式管理划分阶段,从分析至开发形成的循环中引入迭代思路;教学和软件要素自成模块,各自独立,设计工作主要进行教学设计,随后进入的开发工作则进行代码编写和原型开发;教学设计要素不包含学习者特征分析和教学评价等。
2.游戏软件开发模型
Ramadan等[9]提出一种游戏软件开发模型,主要包括初始、预制作、制作、测试、Beta和发布六个阶段。通过对其文章分析得出,上述六个阶段完成了简要描述与设计、游戏与原型设计、资产和源码的开发与整合、内测、公测、上线等活动,其中资产主要包括平面、三维、声音等。其设计要点包括:在预制作、制作和测试形成的循环中引入迭代思路,不断完善;Beta阶段采取与测试阶段相同的方法,并可決定返回预制作或继续发布;规定各阶段的主要输出,如原型类型、游戏开发文档、测试报告等。
Hendrick[10]提出的游戏软件开发模型,主要包括原型、预制作、制作、Beta和Live五个阶段,通过分析得出,上述五个阶段完成了设计与模型制作、核心区域开发与文档设计、所有区域开发、公测、上线等活动。其设计要点包括:线性结构,依序进行上述五个阶段;制作阶段对所有区域的开发参照预制作阶段核心区域的开发思路和设计文档。
通过对以上教学和游戏软件开发模型进行分析,厘清了各开发模型的主要内容,掌握了两种不同领域软件开发模型的主要内容和设计要点,归纳出以下几点:两种教学软件开发模型均划分阶段并规定了具体活动,其虽划分了阶段,但均未明确规定具体活动;四种软件开发模型的阶段和活动描述均无领域特征,只在更具体的说明中有所涉及;只有Ramadan的开发模型中对主要输出进行了说明;教学软件开发模型在分析与实现阶段分别采用教学设计、编码,而游戏则分别采用原型、编码和资产创建。
基于上述教学和游戏软件开发模型的分析过程和结果,本研究设计出一种虚拟仿真实验教学软件开发模型。
三、虚拟仿真实验教学软件开发模型设计
1.虚拟仿真实验教学软件开发模型的设计原则
(1)按照结构化开发思路划分阶段
结构化开发将开发过程主要分为分析、设计、实施和维护几个阶段。现代教育必然依赖专业教师以完成现代教育所需要的专业的教学设计工作[11]。虚拟仿真实验教学软件开发应充分尊重专业教师对实验教学的设计思路,允许教师适度参与到软件开发过程中。在此基础上,需解决两个问题:何处参与,如何沟通。第一,为保证软件教学性,教师在教学层面的分析和设计应发挥先导作用;第二,教师与核心开发团队之间的沟通,应优先考虑教师的认知结构,原型是最佳选择。随后的软件开发过程,将由核心开发团队完成软件的设计与实现,并接续完成结构化开发。因此,本研究将虚拟仿真实验教学软件划分为五个阶段:教学与原型设计、软件实现、测试、部署和维护。
(2)混合敏捷与原型开发模型
首先,需求的一次性确定是不科学、不现实的,应通过迭代发现焦点并不断明确;其次,雖然教师未曾参与核心团队的软件实现过程,但对于实现的产品有其教学层面的专业判断,应采用增量的形式,先完成核心功能的教学原型与相应的软件实现,经反馈和修改后应用于其余功能的教学原型与软件实现。敏捷开发模型不仅结合了迭代和增量开发模型,而且按照需求优先级切分为更小的增量和更短的迭代周期,可快速响应需求。同时,为提升教学与原型设计阶段的效率,应参考原型开发模型,以更为直观、有效的方式确认教师的实验教学设计思路。不同软件开发模型在诸多方面各有优劣,很多项目采用混合多种开发模型的方式进行软件开发[12]。综上,本研究所提出的虚拟仿真实验教学软件开发模型混合了敏捷与原型开发模型。
(3)结合特定领域软件体系结构
特定领域软件体系结构的关键概念是捕获和重用深层知识和经验,并在领域内形成解决方案[13]。虚拟仿真实验教学软件通过虚拟现实、仿真和人机交互等技术呈现实验资源并提供给教师和学生使用。教学设计是整合技术和资源的纽带,是沟通教师和学生的桥梁[14]。通过教学设计,教师的实验教学思路将融入虚拟仿真实验教学软件的开发中,使资源能够在技术支撑下以更科学、更合理的方式呈现,而学生在使用软件的过程中,按照教学设计完成实验内容,并给出符合当前认知结构的反馈,有利于教师针对性解决存在的问题,从而提升实验教学效果。同时,在游戏开发中,整体内容、规则和高级行为实质上是由脚本和代码决定的[15]。因此,本研究结合教学设计和实验脚本,形成虚拟仿真实验教学软件的领域解决方案。
(4)统一开发活动主要输出
软件开发模型应统一各开发活动主要输出,主要发挥三个作用:一是为沟通提供介质。开发团队内部、团队与教师之间的沟通将围绕规定的输出展开讨论和交流;二是有效评审工作成果。可据此决定接续开发或进行修改;三是追溯工作产品。统一形式和内容的开发活动输出,可通过追溯解决争执和存在的问题,并进行针对性改进。基于上述四项设计原则,本研究提出虚拟仿真实验教学软件开发模型,如图1所示。
2.虚拟仿真实验教学软件开发模型的内容设计
虚拟仿真实验教学软件开发模型包含的内容为:阶段、开发过程、迭代次数和输出。五个阶段的设计已在前文提及;开发过程包含的10个开发活动中,平面设计、三维设计和程序开发并行,原型设计、平面设计、三维设计、程序开发和内部测试是增量活动,每一次增量过程均包含这五个增量活动,增量过程共进行三次;迭代次数针对开发活动,其设计依据为实际开发中进度和成本控制总结出的经验;下面,主要介绍虚拟仿真实验教学软件开发模型中的开发活动设计:
(1)教学设计
该活动以教师的专业视角作为需求切入点,采用基于建构主义的教学设计,主要包括教学目标、学习者特征、学习内容特征、学习任务、学习情景、学习资源、认知工具、自主学习策略、管理与帮助、总结与强化、教学评价[16]。通过教学设计,初步获得了虚拟仿真实验教学软件的教学需求,后续的一系列活动都应以此为基础展开。需要注意的是,教学设计重点关注教学要素,主要保证虚拟仿真实验教学软件具备教学性。
主要输出为:教学需求列表,迭代次数不超过2次。
(2)实验脚本设计
作为教学设计和原型设计之间的需求约定,实验脚本设计应基于教学设计结果,重点关注软件内容构成要素,完成教学和软件特征的整合是十分关键的活动,也是该虚拟仿真实验教学软件开发模型的设计重点。
主要输出为:实验脚本和模型需求表,迭代次数不超过2次。其中,实验脚本包含实验目的、实验环境、实验内容、实验策略、实验流程和实验考核六部分。迭代次数均不超过2次。
①实验目的。主要实现三个层次(认知、能力和意识)、一个适应、一个主体。认知是指在实验环境中通过直观感觉获取的知识;能力是指经重复训练后具备的技能或间接经验;意识是指对知识体系构建与新事物探究欲望的觉察。一个适应,即与学生培养目的相适应。一个主体,即以学生为主体,在表述方面使用含义具体、简明的动词,尽可能以体现认知过程、实际问题解决等方式描述知识点应达到的难度水平[17]。
②实验环境。虚拟实验环境,是能够使学生设计或进行虚拟实验、处理数据并分析和解释结果的教育资源[18]。因此,虚拟实验环境的设计主要包括三个方面:实验场景:虚拟实验环境中的实验场景,应根据实验主题,匹配特定实验环境,要素构成合理,整体协调。虚拟仿真模型:源于现实,场景中的任一模型与现实生活形成映射;高度仿真,模型精细程度极高,堪比原物;高于现实,呈现无法在现实中直观体现和运用的模型。发展规律:场景中任一模型的运动和变化,必须符合现实生活中正常的事物发展规律。
③实验内容。实验内容需满足三个要求。实验能力递进要求:分为认识性实验、基础性实验、提高性实验,主要内容分别为了解仪器和操作、验证科学原理、综合与设计[19];实验目的相关要求:实验内容的设置,应与实验目的紧密相关;实验环境支持要求:实验内容应充分考虑虚拟实验环境具备的功能和可以提供的技术支持。对于其中涉及到的相关实验原理,应秉持科学性原则,必须是经前人证明的科学理论;同时,须充分结合已有虚拟仿真实验条件,确保实验原理可行、可表达;此外,尽可能将实验中全部可能出现情况的理论依据包含在内。
④实验策略。虚拟实验教学应包括暗示性指导、探究性和随机进入式三种教学策略[20]。暗示性指导策略:根据学生实验进行过程中存在的问题和疑惑,给予适当、有限的纠正和解答,同时提供一定的引导;探究性策略:以问题为基础,鼓励学生在虚拟实验环境中尝试解决;随机进入式策略,对于同样的实验内容,提供不同角度和方面的实验情境,从而获得多维、全面的认知。
⑤实验流程。实验流程的设计过程中,应考虑全部可能出现的情况,从而确保学生在正确进行认识性、基础性和提高性实验时,出现期望的结果。在实验方法指导下,应明确按序执行得出最终实验结果的具体操作。同时,以实验进行顺序为主线,对每一步中涉及到的操作主体、操作方式作详细说明。此外,对正常和可能出现的非正常现象进行描述,并提供意外情况下的操作指导。对于基础性实验,建议提供实验流程图。
⑥实验考核。实验教学应从实验操作能力、实验综合素质、实验创新三方面分别重点考核学生的实验理解与操作规范性、分析与解决问题的能力、实验创意。根据不同实验类型,依据实验方案、步骤、结果等建立评价体系,设置评价量表,同时应对不同学生、不同班级等做考核,此外,建议针对学生的多次实验建立动态评价机制。
模型需求表以实验脚本为输入,列出实验所需的全部模型。在虚拟仿真实验建模过程中,考虑到实验场景、实验仪器型号、观察角度等的多样性,开发团队需通过模型需求表,与教师在所需的具体模型上达成一致,减少模型制作过程中引发歧义、返工的情况发生,影响三维建模和程序开发进度。
(3)原型设计
以教学需求列表和实验脚本为输入,整合教学和软件构成要素,选择合适的原型开发工具,完成制作原型、评估原型(教师)、修改原型的迭代。此处的原型为低保真原型图,只关注功能、结构和流程,可在短期内完成。原型设计在第一次增量中只完成核心功能原型,在随后的增量中依据更新后的教学需求列表和实验脚本逐步完成全部功能原型。
主要输出为:原型图,在每一次增量中的迭代次数不超过2次。
(4)平面设计
以实验脚本和原型图为输入,完成符号、图片和文字的设计工作。平面设计应在遵循原型图布局的基础上,完成构图、细化和调整,充分结合实验、学生特点,设计出符合特定虚拟仿真实验教学的实验界面,根据教师建议进行迭代。平面设计在第一次增量中只完成核心功能相关的设计工作,在随后的增量中依据更新后的实验脚本和原型图逐步完成全部设计。
主要输出为:平面设计图,在每一次增量中的迭代次数不超过2次。
(5)三维设计
以实验脚本和模型需求表为输入,主要完成三维建模和效果设计两个步骤。其中,三维建模主要以模型需求表为输入,完成模型的初步表征,还原虚拟仿真实验中所需的模型原型,形成三维初模。效果设计以三维初模和实验脚本为输入,完成场景、烘焙和动画的设计,应符合特定情境和事物发展规律,并根据教师建议进行迭代。在三维设计中,需重点满足实验环境逼真、实验对象逼真和实验现象逼真的要求。其中,实验环境逼真要求实验环境符合实际情况和公共常识,可高度还原实验脚本所述的真实实验周边环境;实验对象逼真要求实验对象符合实际情况和公共常识,物理属性必须和实验脚本所述的真实对象的物理属性一致,高度还原实验脚本所述的真实设备或装置,包括表面装饰等细节特征;实验现象逼真要求特效、音响、动画等素材呈现的内容必须和实验脚本所述的真实实验现象相似,能够表现实验脚本所述的真实世界特征,不得出现错位、过度抽象、逻辑错误、过度失真等问题。三维设计在第一次增量中只完成核心功能相关的建模和效果设计,在随后的增量中依据更新后的实验脚本和模型需求表逐步完成所有建模任务和效果设计。
主要输出为:三维设计模型,在与教师的沟通、确认过程中,可根据实际情况和教师要求提供模型效果图,在每一次增量中的迭代次数不超过2次。
(6)程序开发
以实验脚本、原型图、平面设计图和三维设计模型为输入,通过程序实现操纵可信度,即用户对被实验对象实施操作和控制的信任程度[21]。主要包括:实验流程完整、数据记录准确和人机交互的自然与合理。虽然程序开发与平面设计、三维设计是并行的,但仅限于代码框架层面的部分开发,仍需整合平面和三维资源,并根据教师建议进行迭代。程序开发在第一次增量中只完成核心功能相关的代码编写,在随后的增量中依据更新后的实验脚本、原型图、平面设计图和三维设计模型逐步完成全部代码的编写。
主要输出为:可用版本,在每一次增量中的迭代次数不超过2次。
(7)内部测试
在游戏开发中,编写代码并完成美术工作后,内部测试团队将进行测试,以验证游戏的功能和非功能需求[22]。虚拟仿真实验教学软件开发模型中,内部测试的参与人员为教师和开发团队,以实验教学视角发现可用版本存在的缺陷,记录修改意见并在下一次增量中进行修改。此处所述内部测试是指每一次增量结束后的测试,若无需修改教学需求列表和实验脚本,则直接转向原型设计开始下一次增量。内部测试结束的标志为:全部增量已结束且可用版本无缺陷。
主要输出为:测试报告,在每一次增量中只进行1次内部测试。
(8)集成测试
内部测试结束后,进入集成测试。可用版本为单机版,需将其集成至线上平台并进行测试,应重点测试与平台的结合性,包括用户登录、资源加载、数据保存等平台相关的需求。此外,徐绪堪等人[23]以科学性、技术性、教育性和操作性作为一级指标评估教学软件质量。目前,虚拟仿真实验教学软件质量问题可结合上述四个方面展开描述:实验步骤、实验现象正确;逼真性较好、资源加载和运行流畅;学生注意力集中、知識结构良好、教学功能完备;交互性操作适当、关键步骤引导及时等。原则上,集成测试结束后不允许回退至教学与原型设计阶段,可综合考虑工作量、进度安排等因素,在软件实现阶段进行部分修改和完善。
主要输出为:集成版本,只进行1次集成测试。
(9)部署
集成版本经教师确认通过后,正式上线。主要完成:上传WebGL和公布链接,向所有具备访问权限的用户开放。
主要输出为:正式版本,1次部署完成。
(10)维护
部署完成后,开发团队将针对教学使用情况进行改进性、支援性维护。改进性维护,将根据教学实践中发现的错误进行修改。支援性维护,可对教师进行远程、实地的使用培训,并提供相关技术支持,以便更好地开展实验教学。