欢迎来到天天文库
浏览记录
ID:9593702
大小:53.00 KB
页数:4页
时间:2018-05-03
《浅谈软件工程在教学软件开发中的应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、浅谈软件工程在教学软件开发中的应用浅谈软件工程在教学软件开发中的应用 摘要:随着信息技术在教学应用的深入,教学软件的需求量不断增长。由于开发团队及开发方法的不足,导致教学软件不但质量良莠不齐、开发成本过高、开发周期过长,而且会出现重复开发、使用困难等问题。而基于软件工程开发模式,可以缓解教学软件危机,降低开发成本,提高软件开发成功率。 关键词:软件工程 教学软件 软件危机 开发模式 0 引言 随着计算机技术在教育领域的深入应用,教学软件的需求量不断增长,虽然理论上教学软件的应用可以降低教师的工作量,提高
2、教学质量,但实质上,教学软件的消费比低、应用范围窄、灵活性差、重复开发严重,不能满足当前日益增长的教学软件的需求。这些问题可称之为教学软件危机。该危机的出现是因为没有正确的开发理念所造成的,要消除这些危机,就要有正确的软件开发方法和开发模式。结合软件工程学和已有的软件开发经验,我们可以从中探索出一种基于软件工程的教学软件开发模式,这种模式可以缓解教学软件危机,降低开发成本,提高软件开发的成功率和产出率。 1 软件工程的基本理论 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法
3、来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件危机是指在计算机软件的开发和维护过程中所遇一系列严重问题。包括如何开发软件以满足对日益增长的需求和如何维护数量不断膨胀的已有软件。 软件工程借助工程的理论来指导软件开发,大量软件开发实例证明了采用软件工程方法进行开发,可以消除或缓解软件危机,提高软件开发的成功率和产出率。 软件方法学中使用最广的是传统方法学和面向对象方法学。不管采用何种软件方法学,在软件开发中都包括问题定义
4、,可行性研究、需求分析、软件设计、编码和单元测试、 综合测试软件维护这几个阶段。问题定义是弄清楚要解决的问题是什么。可行性分析是对所定义问题是否有可行通得过的解决方法。需求分析是准确地描述目标系统必须做什么,是发现、求精、建模、规格说明和复审的过程。软件设计又分概要设计和详细设计。概要设计是以比较抽象概括的方式提出解决的方法,详细设计就是把解法具体化。编码和单元测试是写出正确的容易理解、容易维护的程序模块。综合测试是通过各种类型的测试使软件达到预定的要求。软件维护是通过各种必要的活动使系统持久满足用户的需求。
5、 2 基于软件工程的教学教学软件开发过程 教学软件也是软件,因此软件工程的开发理论同样适用,考虑其特殊性,我们必须同时结合教育学和心理学的理论进行开发。借助软件工程成功的开发经验,我们把教学软件的开发分为一下几个阶段:.L. 2.1问题定义开发者首先弄清楚要解决什么问题,即为什么要这个教学软件和要达到的目标。比如开发《C语言程序设计》这一门课的教学软件,这门课目前教学主用教室板书和上机练习,或用零散的课件和实例进行教学。在教室板书容量少,有些知识也讲不清楚;采用零散的课件和实例教学要好些,但是由于课件零散,缺
6、乏整体性,教师每次备课必须花大量的时间进行查找和整理,费时费力。我们开发这一门课的教学软件就是为了解决以上这些问题。我们可以初步构思该软件所要达到的目标。如提供教学软件、练习和试题库、资料和案例、问题答疑和操作帮助等。 2.2可行性分析首先对要开发的教学软件进行市场调查,主要调以前有没有这一门课的教学软件,如果有,存在那些优缺点,经过分析在决定有没有必要开发或重新开发。如果有必要开发,则需要提出各种可能实现的方案,然后针对这些方案从技术、经济和社会因素等分析其可行性。比如开发《C语言程序设计》这门课的教学软件,就需
7、考虑所用到的技术能否达到开发目标。还有开发周期,开发人员配置,开发费用和版权问题等,如果一切可行就可进入下一个阶段。 2.3需求分析需求分析是分析、求精、建模、规格说明和复审的过程。需求分析的第一步是了解用户情况,发现用户面临的问题;第二步是通过与用户反复交流获得用户的基本需求,第三步是对用户的基本需求反复求精细化,最后得出目标系统完整、准确和具体的要求。如开发《C语言程序设计》这门课的教学软件,首先是了解目前各门课的教学情况。 通过与学生、教师的交流,充分了解目前教与学中存在的不足,以及他们希望开发的教学软件所
8、能达到的效果。可以通过创建原型的方法征求教师和学生的意见。经过多次反复交流反复修改直到与用户意见达成一致。写出相应的需求报告,建立相应的模型并进行认真的审查,符合要求侯再进入下一步。 2.4课件设计首先对教学软件进行分解,分成若干子系统也就是模块化,比如《C语言程序设计》这门课的教学软件按照其目标和功能我们可以划分成以下几个模块(图1):
此文档下载收益归作者所有