迟江波 殷 玮
摘要:随着信息技术在教学应用的深入,教学软件的需求量不断增长。由于开发团队及开发方法的不足,导致教学软件不但质量良莠不齐、开发成本过高、开发周期过长,而且会出现重复开发、使用困难等问题。而基于软件工程开发模式,可以缓解教学软件危机,降低开发成本,提高软件开发成功率。
关键词:软件工程教学软件软件危机开发模式
0引言
随着计算机技术在教育领域的深入应用,教学软件的需求量不断增长,虽然理论上教学软件的应用可以降低教师的工作量,提高教学质量,但实质上,教学软件的消费比低、应用范围窄、灵活性差、重复开发严重,不能满足当前日益增长的教学软件的需求。这些问题可称之为“教学软件危机”。该危机的出现是因为没有正确的开发理念所造成的,要消除这些危机,就要有正确的软件开发方法和开发模式。结合软件工程学和已有的软件开发经验,我们可以从中探索出一种基于软件工程的教学软件开发模式,这种模式可以缓解教学软件危机,降低开发成本,提高软件开发的成功率和产出率。
1软件工程的基本理论
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件危机是指在计算机软件的开发和维护过程中所遇一系列严重问题。包括如何开发软件以满足对日益增长的需求和如何维护数量不断膨胀的已有软件。
软件工程借助工程的理论来指导软件开发,大量软件开发实例证明了采用软件工程方法进行开发,可以消除或缓解软件危机,提高软件开发的成功率和产出率。
软件方法学中使用最广的是传统方法学和面向对象方法学。不管采用何种软件方法学,在软件开发中都包括问题定义,可行性研究、需求分析、软件设计、编码和单元测试、
综合测试软件维护这几个阶段。问题定义是弄清楚“要解决的问题是什么”。可行性分析是对所定义问题是否有可行通得过的解决方法。需求分析是准确地描述目标系统必须做什么,是发现、求精、建模、规格说明和复审的过程。软件设计又分概要设计和详细设计。概要设计是以比较抽象概括的方式提出解决的方法,详细设计就是把解法具体化。编码和单元测试是写出正确的容易理解、容易维护的程序模块。综合测试是通过各种类型的测试使软件达到预定的要求。软件维护是通过各种必要的活动使系统持久满足用户的需求。
2基于软件工程的教学教学软件开发过程
教学软件也是软件,因此软件工程的开发理论同样适用,考虑其特殊性,我们必须同时结合教育学和心理学的理论进行开发。借助软件工程成功的开发经验,我们把教学软件的开发分为一下几个阶段:
2.1问题定义开发者首先弄清楚要解决什么问题,即为什么要这个教学软件和要达到的目标。比如开发《C语言程序设计》这一门课的教学软件,这门课目前教学主用教室板书和上机练习,或用零散的课件和实例进行教学。在教室板书容量少,有些知识也讲不清楚;采用零散的课件和实例教学要好些,但是由于课件零散,缺乏整体性,教师每次备课必须花大量的时间进行查找和整理,费时费力。我们开发这一门课的教学软件就是为了解决以上这些问题。我们可以初步构思该软件所要达到的目标。如提供教学软件、练习和试题库、资料和案例、问题答疑和操作帮助等。
2.2可行性分析首先对要开发的教学软件进行市场调查,主要调以前有没有这一门课的教学软件,如果有,存在那些优缺点,经过分析在决定有没有必要开发或重新开发。如果有必要开发,则需要提出各种可能实现的方案,然后针对这些方案从技术、经济和社会因素等分析其可行性。比如开发《C语言程序设计》这门课的教学软件,就需考虑所用到的技术能否达到开发目标。还有开发周期,开发人员配置,开发费用和版权问题等,如果一切可行就可进入下一个阶段。
2.3需求分析需求分析是分析、求精、建模、规格说明和复审的过程。需求分析的第一步是了解用户情况,发现用户面临的问题;第二步是通过与用户反复交流获得用户的基本需求,第三步是对用户的基本需求反复求精细化,最后得出目标系统完整、准确和具体的要求。如开发《C语言程序设计》这门课的教学软件,首先是了解目前各门课的教学情况。
通过与学生、教师的交流,充分了解目前教与学中存在的不足,以及他们希望开发的教学软件所能达到的效果。可以通过创建原型的方法征求教师和学生的意见。经过多次反复交流反复修改直到与用户意见达成一致。写出相应的需求报告,建立相应的模型并进行认真的审查,符合要求侯再进入下一步。
2.4课件设计首先对教学软件进行分解,分成若干子系统也就是模块化,比如《C语言程序设计》这门课的教学软件按照其目标和功能我们可以划分成以下几个模块(图1):
接着下来对模块进行细化,主要确定整个教学软件框架和风格以及系统流程图及伪代码,考虑到教学软件的特殊性,在设计模块时还必须遵循教育学和心里学的原则,比如知识点的安排,界面风格设计等都必须考虑有利于教师的教和学生的学。
2.5收集和整理素材前期工作完成后,就进入了程序编制步骤。首先根据模块功能及伪代码的内容,收集相关素材,例如整理文本、横扫图片、创作图像和动画、制作片头等。注意素材尽量做成积件式,这样有利于提高素材的重用率,降低软件的大小。
2.6制作合成程序员根据需求分析和界面风格,完成各自模块的制作,也就是根据总体的框架结构和伪代码进行编程,将确定的素材寓意制作、运用,并进行单元测试,然后把各自模块合成进行综合测试,还可通过试用的方法进行综合测试,从而发现并修改存在的错误和不足。
2.7运行维护软件试用正常,可以发布,转入正常试用阶段。当然由于学科是在不断变化的,因此所开发的教学软件也应不断维护和修改,如及时修改所发现的错误和漏洞,完善存在的不足,优化用户界面,扩展新增模块等。
3开发人员的配置
在教学软件的开发过程中,开发人员的配置也是至关重要的。在很多商业教学软件不能推广使用的原因之一就是缺乏专业教师和学生的参与。而是很多教师开发的教学软件不能长久使用,其原因是缺乏专业的计算机开发技术,致使开发的教学软件功能低下,很难更新和使用。因此教学软件的开发队伍要配置合理。一是必须有学科专家参与,他们对课程熟悉,对软件所能提供的功能有选择判断能力;二是必须有计算机专家,即计算机开发技术人员。她们熟悉开发平台,有丰富的开发经验,能准确实现需求,完成功能的实现。当然一般还需要根据软件的规模和开发周期来配置一定数量的开发技术人员。另外还要建立完善的开发管理制度,在教学软件开发中学生也是不容忽视的一群开发实体,通过她们可以了解目前教学的优缺点,以及对所开发软件的期望值,还可以同感哦他们测试所开发的软件,帮助我们尽可能多的发现错误和不足。
4结语
软件开发是一项系统工程,需要各方面互相配合,优势互补、资源共享,进行集成化开发,产业化经营,市场化运作,来促进行业的发展。软件开发方法是人们在长期的软件开发和维护的过程中积累下来的宝贵经验,我们应当把它应用到教学软件的开发当中,只有这样才能提高教学软件开发的成功率和生产率,缓解或消除教学软件危机,缩短开发周期,减少重复开发,降低生产成本,提高教学软件的质量。