APP下载

基于构件理论的网络课程设计与开发

2009-09-28彭远媛

中国教育信息化·高教职教 2009年8期
关键词:网络课程开发设计

金 浩 彭远媛

摘 要:随着信息技术的发展及其在教学中的应用,网络学习已经成为信息社会重要的学习方式之一,而优质的网络课程是学习得以有效、顺利进行的前提性保障。然而,网络课程的开发已远远区别于传统意义上的课程开发,此时,如何构建优质的网络课程就成为网络学习能否有效进行的瓶颈。本文借助软件工程学中的构件理论,从开发者的角度对网络课程的设计、开发和复用进行了重新探讨,以期为网络课程探寻新的开发方式,提高网络课程的开发效率和复用程度,进而为网络学习质量提供有效的保障。

关键词:软件工程学 构件理论 网络课程 设计 开发

中图分类号:G250.73 文献标识码:B 文章编号:1673-8454(2009)15-0060-03

在信息社会,网络学习作为主要的学习方式已经是我们的共识,而网络课程是网络学习得以有效、顺利进行的保障,不仅“教育目标要通过网络课程来实现,教学活动围绕网络课程而开展”,更重要的是,网络课程作为学习资源的关键组成部分贯穿于整个学习过程之中。[1]然而,在网络课程的开发过程中却面临着亟待解决的问题,其中,对于开发人员来说,如何实现网络课程系统的可复用性问题尤为突出,随之而来的是网络课程各功能模块的深入分析、整体测试和后期维护等等,这些问题的解决有赖于新的设计开发理论的指导,构件理论无疑为我们解决这一问题提供了很好的途径。

一、构件理论的发展

构件(Component)思想的提出源自软件和硬件两方面的因素。在硬件方面,著名的摩尔定律说明了其发展的迅猛势态,但软件的开发速度却远远落后于硬件的更新速度;在软件应用方面,软件的模式从单机模式、C/S(客户机/服务器)模式一直到B/S(浏览器/服务器)模式,软件设计正面临着一系列新的课题,传统的软件思想显然已远远不够。就在此时,构件思想应运而生。

1.构件的概念与特征

关于构件的定义可谓莫衷一是,不同的组织和研究者把构件和软件构件作为同一概念使用,并给出了各自的定义,具有代表性的有以下四类:(1)软件构件是一个具有规范接口和明确的上下文依赖的组装单元。软件构件能够被独立地部署和被第三方组装;(2)软件构件是可单独生产、获取、部署的二进制单元,它们之间可以互相作用构成一个功能系统;(3)构件是一个带有契约化接口和显示上下文依赖的组装单元,它能被独立发布;(4)软件构件是一个可以独立交付的软件单元,封装了设计和实现的内容,并向外提供接口,通过接口与其他构件组装成更大的整体。[2]

尽管以上的定义不尽相同,综合之后我们发现,其具有共同的因素:构件是一个功能单元;符合构件模型(或具有规范接口);允许对不同构件开发商开发的构件进行组装。这些因素将为我们的开发提供重要的参考价值。

在了解了构件的内涵之后,我们需要明确构件的基本特征,这将有助于我们更清楚地理解构件的本质。构件的特征主要有以下四方面:(1)构件是可独立配置的单元,因此构件必须自包容;(2)构件强调与其他构件和环境的分离,因此构件的实现是严格封装的,外界没有机会或没有必要知道构件内部的实现细节;(3)构件可以在适当的环境中被复用,因此构件需要提供清晰的接口规范,可以与环境交互;(4)构件不应当是持续的,即构件没有个体特有的属性。[3]

2.构件与模块的异同

论及构件时我们不能不提的一个概念就是模块,构件与模块之间究竟有何异同,这是我们在讨论基于构件的软件开发时不可不明确的一个问题。基于模块化的软件开发是面向过程开发时代提出来的,并且这一思想主要是针对用户而言,不涉及开发人员的具体工作,因而并不涉及软件复用的思想。当然,从模块化的思想中我们可以依稀看到一些与构件理论相通的理念:使软件系统的功能明确化、结构清晰,便于维护人员后期的维护工作等等。

构件理论是在面向对象时代提出的,从前述构件思想产生的过程我们可以看出,构件是针对软件开发速度达不到需求和软件的复杂性日益增大而提出的,是针对开发人员的,因此构件所要解决的问题首先是复用,其次是降低软件开发的复杂度。可以看到,模块是构件提出之前理解软件结构的一种方式,而构件则是针对复用而提出的一种开发方式。

3.构件的获取

构件的获取是实现构件开发的基础和前提,只有拥有组成系统所必须的构件,在开发系统时才能快速地实现组装,或者仅开发部分的功能,然后组装已有的构件从而构成所需的完整系统。那么,如何获取构件呢?一般来说构件的获取主要有以下四种途径:(1)从专有构件库中获取预定义的构件,这无疑是最快捷的方式,但需要软件开发机构有预先为构件专门建立的库,当需要时直接查找库中的构件提出应用;(2)从外部厂商购买相关的构件,现有的商业化条件下有专门为一定应用开发的构件,只要支付相应的费用就可获得;(3)专门开发的构件,这种虽类似从零开始开发而获取构件的方法,但却为以后的复用建立了基础;(4)从已有的软件系统中提取适用的构件,尽管这样获取构件复杂且难度较大,但却是一种非常经济的方式。

相应地,在网络课程开发中,我们也可以按照上述获取构件的途径来得到符合需要的网络课程构件。其中,后两种方式应该是网络课程开发人员所主要关注的。同时,为了后续复用的便利,将构件分类归属之后建立网络课程所需的构件库也是非常好的选择。

二、基于构件开发网络课程的优势

构件技术在软件开发中的优势是显而易见的,不仅可以使复用得以按照开发人员的意愿实现,从而减轻了软件开发的难度、缩短开发周期,更重要的是使得软件工厂成为可能,软件的流水线开发不再是遥不可及的梦想。网络课程作为在Internet上运行的软件系统,其开发同样需要软件工程学的指导,构件理论的引入无疑也为网络课程的开发提供了一条新的途径,使得网络课程开发效率上升到一个新的水平。

1.接口规范,便于组装复用

构件作为一种新兴的思想引入到软件工程学领域之初,其最大的目的就是实现软件的工业化开发,即软件部分实现可复用。软件工程学认为:一个软件“应用功能的60%~70%和其他软件应用的功能相同;40%~60%的代码在其他的软件应用中是可以复用的;60%的设计在其他的软件应用中也是可以复用的”。[4] 然而要使得复用得以实现,除了构件本身适应平台和环境的能力外,最大的障碍就是标准的形成,即构件必须符合一定的标准,最简单的理解就是程序接口、数据格式要遵从一定的规范。

在网络课程开发过程中,要使得课程的构件得以复用,也必须符合一定的接口规范,这样在构件组装时就可以实现无缝耦合。我国试行的《现代远程教育资源建设技术规范》为网络课程中涉及的人员、素材、过程等都提供了一定的规范描述,开发者可以参考其中的规定进行数据库的设计、程序部分的开发和页面规格的设定,当需要实现整个网络课程时,只需查看构件外部的接口参数,进行简单的组装即可完成。

2.单元微型,便于分析和实现

网络课程作为一个结构庞大的软件系统,要实现相关功能的设计是非常复杂的,从学生的学籍管理到教师的教务管理,从最初的学习目标设定到最终的学习结果评价,从丰富内容的提供到多样的媒体选择,涉及学生、教师、管理人员对系统的使用,包括了数据库、开发技术、美工设计等工作,对于网络课程的开发团队来说完成一门高质量的网络课程是十分不易的事。而构件理论的提出,为解决这一问题提供了很好的途径。

构件的提出使得网络课程的开发可以先基于微型单元实现,整个网络课程可以分解为一个个内部相互独立、外部依靠标准接口相耦合的单元,然后分别开发,最后只要依据接口规范加以组装就可完成。这样既便于各单元的深入分析,以获取详细的需求信息,同时也利于开发人员实现程序。例如,对于学籍管理构件单元,可以全面分析学习者个体的属性,抽象为个体数据字段;深入分析学习者作为群体中的一员,可能与其他学习者、教师、管理人员进行交互所需的属性,抽象为关联数据字段。这样的分析利于数据库中表的建立和开发时程序的实现。

3.功能明确,便于测试与维护

任何一个独立的构件都是具有明确功能的,这样不仅便于开发,更为测试和后期维护提供了方便。软件测试的重要性随着软件规模的扩大越来越多得到重视,甚至在软件开发周期中作为一个独立的阶段被提出,而与此同时,测试的难度也逐渐暴露。但当我们明确系统某个单元的功能时,测试便相对容易,此时无论采用黑盒测试还是白盒测试,测试员的目的是明确的,相应的工作量也将减少。同样,软件维护的重要性也随着软件规模的扩大而日益突显,对于维护人员,他们可能不是软件的直接开发者,即使在有文档的情况下,要全面而准确地理解软件的设计开发也是比较困难的,因此,维护的困难也成为制约软件正常运行的一个关键因素。然而,在基于构件的开发中,由于各个构件都是具有独立配置的单元,所以作为整体的软件系统具有良好的可维护性。

对于一个完整的网络课程而言,测试和维护同样是困扰测试人员和维护人员的难题。但是基于构件的开发,由于其构件内部良好的自包容性使单元测试相对容易,进而降低了整体测试的难度。例如需要测试网络课程的学籍管理功能时,首先作为单独构件的测试保证了学籍管理内部的正确性,其次具有规范接口的外部特性也方便网络课程的整体测试。在网络课程使用过程中,维护人员往往不是课程系统的开发人员,例如需要对学籍管理功能进行适应性维护,添加阶段性测试结果的统计功能,维护人员可能要在大量数据字段和复杂的页面调用之间查找学生的学籍属性,更改数据表,重写显示代码,添加传递参数等等,但如果是基于构件的开发,维护将容易实现,只需要在学籍管理构件内修改数据表,然后添加相应显示参数即可,而不必考虑复杂的关联过程。

三、基于构件理论的网络课程开发举例——答疑系统构件的设计

答疑系统在网络课程中有非常重要的作用,不仅对于学生学习专业知识和师生之间情感的交流具有巨大的帮助,对不断完善网络课程的工作亦具有重要意义。在以往的网络课程设计中,习惯于将答疑功能作为一个单独的系统实现,如图1(a)所示,这样的开发不能实现答疑模块的复用,同时也使得整个网络课程系统庞大而复杂。[6]

从图1的对比中,我们可以看到,答疑功能作为构件设计的变化主要有两点:一是系统外部接口。在设计开发时确保构件接口数据遵循一定的规范,这样在实现系统时就只需要组装构件,共用登录模块,而不再单独开发登录模块。目前我国试行的《现代远程教育资源建设技术规范》可作为一个参考的标准,学习者、教师、管理者的数据只要符合该规范,在开发其他网络课程时只需要修改处理数据,就能使用答疑构件。二是系统内部的数据存储。数据的存储不再作为一个单独的数据库存在,而是转化为数据库中的部分数据文件,只要在开发过程中,这些数据文件符合标准SQL的语法,在任何一种数据库平台上都可以良好地运行。

四、结束语

网络课程开发不仅需要教育教学理论的指导,同时也需要软件工程学相关理论的指导,要求开发人员既理解教育又具备技术技能,只有这样才能开发出优质的网络课程。我们在具备了一定教育教学理论的基础上,试图在软件开发理论和方法上寻求新的途径,以使网络课程的开发更加达到教育教学的目标,同时也更符合作为软件系统的技术要求。构件理论及技术在网络课程开发中的应用正是我们这一探索的结果。

参考文献:

[1]林君芬,余胜泉.关于我国网络课程现状与问题的思考[J].现代教育技术,2001(2):55.

[2]王志贤,费玉奎,娄渊清.软件构件技术及应用[M].北京:科学出版社,2005:9.

[3]钟珞.现代软件工程学[M].北京:国防工业出版社,2004:129.

[4][美]Carma McClure.王亚沙,谢冰,赵俊峰等译.软件复用标准指南[M].北京:电子工业出版社, 2004:6.

[5]谢康宁,谢百治,李冰.网络课程答疑系统的研究与实现[J].中国医学教育技术, 2005(5):238.

猜你喜欢

网络课程开发设计
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
河南方言文化资源的保护及其开发利用的研究
遵义红色旅游开发对策研究
单片机在电子技术中的应用和开发
设计之味