教育软件开发中极限编程方法的应用
2015-03-20秦燕
秦燕
教育软件开发中极限编程方法的应用
秦燕
为了适应教育发展的需求,近年来各种教育软件应运而生。但教育软件需求的复杂性与多变性使教育软件的投入成本不断增加,部分软件产品出现了延期交付的问题,也有部分软件未能满足实际教学的需求,制约着信息化教育作用的发挥。在此背景下,许多研究人员通过实践研究了借助极限编程方法开发教育软件,取得了良好的效果。本文主要介绍了教育软件的开发方式,分析了极限编程方法应用的优势,并阐述了基于极限编程方法的教育软件开发。
极限编程;教育软件;教学设计;开发
近年来,随着信息技术和互联网的普及,各类教育软件成为信息化教育的重要手段。教育软件的教育性、科学性、个体性与多变性等特点十分显著,然而教育软件开发存在诸多的问题,传统的软件开发未能充分体现教育的基本理论与理念,难以适应教育发展的需求。教育软件开发问题形成的原因主要为教育软件的特殊要求、软件开发手段的单一化、软件与教学设计的脱离、教育软件评估的主观性等。在明确其成因的基础上,为了进一步提高教育软件的质量,研究者对教育软件的开发进行了全面的研究,明确其开发的指导理念为教学系统设计理论,同时在实际设计过程中,对教育软件的内容、形式等进行了研究,使软件的各个细节均符合教学论与学习论的要求。本文主要研究了基于极限编程方法的教育软件项目开发,旨在提高软件的适用性和高效性,进而有效解决传统软件与教学设计脱离的问题,对开发软件中极限编程方法的应用分析具有十分重要的意义。
一、教育软件开发的主要方式
1.极限编程的开发方式。该方法来源于极限编程和测试驱动开发的创始人Kent Beck,又被称为Extreme Programming,简称XP。其中的extreme在概念上可理解为确保教育软件开发实践发挥其最佳的优势。作为敏捷编程中的重要开发方式,XP能够使整个开发过程细化为各阶段开发过程,这样可使教育软件开发各阶段存在的问题清晰地呈现出来。在此基础上,XP保证了调整策略的及时性与高效性。在教育软件开发中,此方式是最为重要的。
2.原型法的开发方式。该方法在教育软件开发中的原理主要体现在根据教学的需求对软件的要求进行相应模型的构建,并由教学实践对模型进行试用,对不足之处进行适当的完善以使教育软件设计更为合理。这种开发方式的优势在于用户可直接根据模型分析软件的适用程度,解决以往因无法满足教学需求而不断进行完善的问题,是节约人力资源与物力资源的重要开发手段。但从大多软件利用此种方式进行开发的实例看,也存在一定的弊端,很多设计人员在软件开发初期为尽快了解教学需求,往往直接进行模型的构建,忽视对许多设计开发内容的考虑,很容易造成模型难以用于教育软件设计的最终阶段。同时,利用该方式开发软件过程中要求引入辅助性软件工具,若辅助性软件发生问题,将直接导致软件整体性能受到影响。而且原型法需要做好频繁的维护工作,增加了教育软件的使用成本。
3.瀑布模型的开发方式。该种方式应用的原理是对教育软件使用的全过程进行阶段性划分,如代码编译或检测维护等,开发中要求各阶段必须按照相应的顺序,任何一阶段的开发出现问题都可能导致软件整体开发的失败,所以教育软件开发前期便要对教育软件的需求进行全面细致的分析。
综合来看,后两种开发方式难度较大、成本较高,难以满足教育软件的具体需求,应充分利用XP开发方式使教育软件更为有效和完善。[1]
二、极限编程方法在教育软件开发中的优势
XP方法在教育软件开发过程中的优势集中体现在其自身的导向作用。从开发人员的角度,XP方法的应用要求在代码编译过程中需由两人配合完成,在了解教育软件系统相关设计理念的基础上开发人员还需具备检测代码的能力,确保代码的质量得以提高。其中的代码只需达到XP测试要求,便可为所有设计开发人员所用。但需注意代码编译中应采用同样的标准,保证开发人员交流中应用的代码更为清晰。事实上,从大多利用XP方式进行教育软件开发的现状看,要对设计人员的工作时间有所限制,避免因工作量过重使他们在疲劳状态下进行软件开发,难以保证教育软件开发的质量。从客户的角度,XP方式的应用为提高用户对教育软件的满意程度,要注重与教育软件使用人员的实时沟通,防止因不了解教育需求而延长开发设计时间。除此之外,XP方法应用的优势也体现在隐喻、计划以及测试等方面。其中隐喻主要指在软件开发前用户便描述软件的具体设计思路与要求,帮助开发人员正确认识软件涉及的各项目;而计划在XP方法中的表现主要指迭代计划,需要根据具体设计要求对各阶段的软件设计进行判断,教育软件使用人员在整个计划中也可适时反馈意见,为开发团队提供设计思路;测试则针对代码进行,由设计人员与教育软件使用人员进行单元与功能测试的编写工作,使代码能够正确描述用户对软件的要求。[2]
三、极限编程方法在教育软件开发中的应用
教育软件开发过程应着重考虑XP方法的基本原理与现行教育软件存在的弊病,充分结合教学相关的设计、评估人员以及学科导师等的意见,并将分析教学需求以及测试教育软件等内容融入开发过程中,这样才可使教育软件的开发与XP方法的优势充分结合。具体开发的思路有四方面。[3]
(一)教育软件开发的准备
1.分析教育软件的需求。软件开发前期需对教学目标、教学内容以及师生需求进行分析,并考虑教学设计问题,这样才可使软件性能得以提高。首先,应明确教学目标,许多教育软件无法满足教育需求的根源在于教学目标过于模糊,使教育软件的功能难以充分发挥出来。在明确教学目标的过程中,开发人员可与学科专家配合分析学习者利用教育软件前的技能掌握程度,并结合具体的学习环境进行教学策略的制定。但应注意其中的策略需具备较为明显的可控性、指向性等特征,以便使教育软件在投入使用后更为实用。从整个分析过程看,软件开发应保证团队成员的结构,相关的设计、评估人员以及学科专家都要参与,并引导用户对系统的需求进行描述,最后由开发人员结合用户需求与团队成员意见进行软件系统结构的确定,这也是发挥XP方法中系统隐喻优势的关键所在。[4]
2.教育软件使用人员故事的编写。在做好教育软件需求分析的基础上还需进行教育软件使用人员故事的编写,目的在于为开发人员的下一步工作提供重要的指导,而且在版本规划发行阶段还需利用用户故事判断进度。相比以往用户需求说明,XP方法提出的教育软件使用人员故事有很大的差异性,具体表现在:第一,编写的核心目标在于符合用户利益需求,避免将如实现算法等技术内容体现在编写内容中;第二,在需求内容方面,由于教育软件开发阶段开发团队会适时询问教育软件使用人员的具体细节要求,无需在编写内容中融入过多的细节信息,只需保证其在整体思路上满足设计要求即可;第三,教育软件使用人员故事在内容形式方面无需采取较为严谨的文档方式,可将技术用语利用用户习惯用语进行替代,以便加强教育软件使用人员的理解。完成故事编写工作后还需对其可行性进行测试,分析学习者对教育软件使用人员故事的应用效果,由开发团队对其适用程度进行判断,保证其通过XP测试的基础上再进行版本的发布。需注意的是,在版本发行方面应注重利用迭代规划对素材进行划分,对通过验收的素材需不断融入版本之中,若迭代规划未按时完成任务需重新进行规划工作。另外,XP方法应用过程中还涉及迭代开发环节,应以多个迭代的形式对版本进行划分,以此及时了解反馈意见内容。[5]
(二)教育软件开发的设计
在完成前期准备工作后便要结合相关需求与规划内容做好设计工作,具体体现在概要与细节两方面。其中概要主要指对软件整体结构进行设计,如其中各模块功能设置、模块的主要结构以及各模块之间的关系,并且需做好数据、数据库的结构设计工作。一般针对教育软件的特点,在数据内容方面应保证与教学设计相关,且在数据结构上保持一定的连贯性,避免因软件系统结构设计的缺失而导致教学设计不完整。而在细节设计方面,主要详细描述各模块的功能特性,具体描述中要求体现出系统结构化特征以及功能的精确性。相比以往教育软件的开发,细节与概要的设计侧重于简单设计过程,只需保证XP方法应用下软件符合用户需求便可。[6]
(三)教育软件开发的代码编译
该环节的操作需要将代码编译的具体任务向程序设计人员进行明确,说明通过代码的形式完成软件的设计工作。针对教育软件的具体要求与XP应用的特点,在开发过程中为保证代码可操作性得以提高且便于维护,应将编码标准进行统一。同时,代码编译的具体方式可引入前文中提及的两人一组配合的结对形式,这样可使代码质量得以保障。另外,代码还需具备可测试性且为开发团队所有人员所有,并配合重构的方式使代码得以优化,最大程度促进代码质量的提高。其中的重构方式主要指优化软件的设计过程,将其中存在的冗余问题进行消除,使代码更突显出自身的可读性特征。[7]
(四)教育软件开发的测评估
教育软件测试的目的在于保证代码能够集成于软件系统内。实际开发过程中要求开发人员做好单元测试的编写工作,并在各开发环节完成的基础上进行代码集成。通过测试判断代码是否存在问题,保证在无误的情况下在系统内进行集成。在完成各模块功能与单元的测试工作后还需进行下一步评估环节,该环节需充分发挥教学评估人员的作用,确保对教育软件的判断更为客观准确。根据大多软件评估的现状看,评估工作具体体现在两个步骤,其一为专业性的评估,主要判断软件应用是否适用当前的教学需要以及能否获得良好的教学效果。其二为实验步骤,主要将教育软件置于具体的教学环境中,分析其适用性与有效性。另外,在所有评估工作完成后,还需将实验结果以及专业评估的结果进行整理形成报告,以便为后期软件优化完善提供指导方向。无论从XP开发理论或实践经验等方面看,其对于现阶段教育软件的开发具有极为明显的优势,开发中只需以XP开发的设计思路为导向,便可使开发软件的时间缩短,且在软件质量方面能够进一步提高,强化教育软件的适用性。[8]
教育软件开发中极限编程的应用是提高软件实用性的重要途径。通过研究发现,其相比于以往软件开发方式如原型或模型法等,更为灵活严谨,且能够满足用户对软件的具体需求。而从XP方式应用的优势看,其对开发团队的要求以及系统隐喻或计划等要求都为教育软件的设计开发提供重要指导。要在实际开发过程中做好前期准备工作,并保证开发设计、代码编译以及测试评估环节都可符合教育软件开发的基本要求。相信随着XP方式在教育软件开发中应用的日益广泛与深入,教育软件会日趋完善。
[1]汪灏,陈丹敏,杨建豪.基于极限编程方法的教育软件项目开发[J].软件导刊,2012(3):108-111.
[2]唐翠芳,张仁津,尹兰.基于极限编程的计算机专业本科毕业设计模式[J].中国校外教育,2012(16):164-165.
[3]曾志浩,肖小克.以敏捷开发和极限编程为指导的软件工程毕业设计[J].计算机教育,2012(22):95-99.
[4]杨庆丰.基于极限编程的校园一卡通系统开发方法[D].苏州:苏州大学,2010.
[5]姚伟春.教育软件功能规模测量方法的研究[D].上海:华东理工大学,2011.
[6]汪洋.基于极限编程的软件项目管理系统的研究与实现[D].开封:河南大学,2010.
[7]杨庆丰.极限编程在校产管理系统开发中的应用[J].电脑知识与技术,2010(14):3682-3683.
[8]袁野耕.WLAN无线软件开发持续集成软件工具的分析与设计[D].北京:北京邮电大学,2014.
责任编辑:姚旺
G434
A
1671-6531(2015)21-0038-03
秦燕/南通师范高等专科学校讲师,硕士(江苏南通226000)。