基于构件的网络教学系统软件的分析与设计
2013-09-30杜育宽
翟 蔚,杜育宽
(海南大学信息科学技术学院,海南海口570228)
随着信息高速公路概念的深入,教育信息网络化也随之高速发展,各高校的教育研究机构都把教育信息网络化,作为教育事业的一项重要事件来发展.教育信息网络化有很多优势,前景乐观,但是也有研究表明普遍存在一些问题:如开发软件的特殊性和不可复用性,即只能在特定环境中使用,不能通用,这使得软件开发陷入一个瓶颈.近几年来,随着软件技术的日新月异,构件组装的软件技术取得了较大的发展,它是提高软件可移植性的重要手段,同时也是提高软件可靠性及加速软件研发的一个十分有效的方法.作为一门新的研究热点,构件组装软件技术已被软件开发人员形象地描叙成像搭积木[1]一样的软件开发,一块一块地组装,从而形成一个完整的产品被封装在一个模块组里.至此,笔者提出了基于构件组装的软件教学设想,并采用软件构件方法就网络教学信息化进行了研究和探讨.
1 基于构件的软件开发方法的基本思路
基于构件组装[2]的软件开发方法与面向对象和面向过程的软件开发方法不同,它是根据客户的需求来分析客户的,并将要设计的软件分解成若干个大部分,然后再细分,每个大部分再分成n个具有相对独立服务功能的小部件,然后从已有的构件库中找到适合的构件;没有的构件需要开发人员编写,不断补充构件库,找全所需要的构件,最后搭积木组装构件,从而形成所需要的软件.由于每个构件模块封装、组装好后,就能良好地运行,免去调试和编写的麻烦,所以,基于构件的软件开发方法在质量和开发速度上都领先于其他开发方法.同时,由于软件接口相同,良好的软件移植性和维护性[3]也是基于构件软件开发的另一大优势,并能满足客户的各种需求,快速制定客户所需求的软件.
基于构件组装的软件开发是应用程序的开发,组成应用程序的构件是实现独立功能的专门单个服务独立构件,可采用不同的开发语言环境,在不同的硬件平台上流畅运行,开发软件的最终目标就像生产流水线一样,采用各种零件组装.
基于构件组装的软件开发过程包括:分析构件、设计构件、实现构件和组装构件.图1为基于构件组装的软件开发过程流程图.
基于构件组装的软件研发人员所要做的工作主要由4步完成,具体描述如下:
Step 1 分析用户提出的功能需求以及实现的环境,整理设计出整个系统软件的框架,根据要求规定各个独立构件的逻辑关系;
Step 2 根据各个构件之间的逻辑关系,设计构件的接口和连接件的规定并实现之,然后再按照规定把这些接口和连接件放入相应的库中;
Step 3 接口和连接件按规定放入相应的库中之后,接着就是在库中寻找合适的构件和连接件,如果库中没有合适的,需要研发人员自行补充构件和接口;
Step 4 将已经挑选出来的构件和连接件按照框架链接起来,然后测试,通过之后就形成了新的应用系统.
图1 基于构件组装的软件开发过程
图2 系统结构
2 基于构件的网络教学信息系统设计
2.1 系统结构 网络教学信息系统主要框架由3个方面组成(如图2所示).首先最重要的是在线课堂,它是课堂教学的补充,学生使用在线上课、PPT以及在线的出题测试将所学知识进一步深化,并且还具备下载专区提供学生下载学习资料,学生还可以通过其上交作业,老师获取作业并在线批改,让教师及时了解学生的学习情况.其次是申报课程,为了配合学生兴趣,可开设一些生动课程,图文并茂让学生了解课程大体内容.最后是TSBBS,它是老师与学生交互的BBS论坛系统,即专门开设一个论坛形成师生互动区,老师和学生互相可以自由交流和探讨问题.
2.2 网络教学信息系统构件模型 网络教学信息系统模型结构由2个部分构成(如图3所示),根据运行情况可分成静态和动态.静态主要是申报课程,系统提供一个已经设计好的模板,上边有学生信息和所提供课程的列表,学生填写相关信息并可以根据个人选择自己喜欢的界面.动态部分包括在线课堂和TSBBS两大板块,细分8个部分,如图3所示.
2.3 构件的组成 如图4所示,网络教学信息系统由3层结构组成,即表示层、业务逻辑层和数据访问层[4].每1层又可逐步细化成3个部分,处于最底层的为基础构件,中间层是领域通用构件,最顶层为具体项目专门设计的领域专用构件.基础构件主要包括表格、菜单、按钮、窗口等构件;领域通用构件主要是删除、添加、查询和统计构件等系统功能构件中的主要构件;领域专用构件主要涉及使用者与系统之间的交互.
根据系统的3×3构件体系,网络教学信息系统采用渐增式和非渐增组装策略,其组装过程主要分为以下3步.
1)首先选取高层次合适的构件作为模板,如果构件库中缺少开发人员所需要的模板,那么就要重新设计新的构件加以补充;
2)子构件需要选择较低抽象层次的构件,当然如果没有合适的子构件,同样需要进行重新设计以补充构件库;
3)如果所选取的子构件抽象层次仍较高,则需要重新重复上面的过程.
此外,耦合性比较低的独立构件,只要开发完成即可组装起来,然后进行调试和测试的工作,测试正常后可直接使用.对于体系关联的构件组装时,必须采用渐增式顺序集成开发.
2.4 系统构件实现 网络教学信息系统前后台开发工具分别是ASP(Active Server Page)和SQL Server 2005,上文模型采用3层体系结构(表示层、业务逻辑层和数据访问层)来实现.
图3 网络教学信息系统构建模型
图4 网络教学信息系统构件体系结构图(3×3)
2.4.1 表示层实现 表示层主要是用户界面,由静态和动态网页2个部分组成,可以通过Dreamweaver来实现静态页面,动态页面通过ASP技术实现.动态页面常见操作主要是用户发出请求,切换视图,系统生成下一个视图并传送给用户.
2.4.2 课件上传构件的业务逻辑层实现 业务逻辑层的核心是数据库,其主要功能是将用户填写和上传的资料存入数据库,并在表示层附注与此文件相关的信息.系统的安全性和资料的有效管理也是业务逻辑层所关注的.对于安全性,可以通过限制上传文件的格式来完成,如要上传文件,只允许上传Word文档,其他格式一概不受理.文件的管理也是一个必须解决的问题,其直接影响系统的性能,解决方法可以用准确标注上传的准确时间,然后按时间排序和检索,避免了文件的重名.
实现该层功能可通过简单的VBScript脚本语言构造一个类模块.该类包括课件标题、上传用户、所属章节、内容说明、上传路径和存储路径等属性,其逻辑流程图如图5所示.
2.4.3 课件上传构件的数据访问层实现 在领域通用构件中,把删除、添加、查询和统计等系统功能的构件封装到一个构件(kejian.asp)中,既方便数据库的维护和管理,又增强了构件的可移植性和复用[5].图6为课件上传模块的数据库类图.
该构件与数据库连接的代码如下:
2.5 构件的组装
2.5.1 子构件的组装 以在线测试构件为例,说明子构件的组装过程,子构件的组装是将之前确定的构件模型中的3个层次(表示层、业务逻辑层和数据访问层),通过子构件组装,形成一套完整的在线测试构件.
图5 作业发布批改模块逻辑图
图6 课件上传构件模块数据类图
在网络教学信息系统的3层中,业务逻辑层处于第2层,作为组装的基础,用VBScript脚本来调用表示层构件module.asp.数据访问层是采用面向对象的软件设计方法设计,用内部接口将FileInfo和upload_file2个类和kejian类组成一个低耦合高内聚的子构件,最后与类模块功能构件通过外部接口连接.
2.5.2 父构件的组装 多个子构件进行组装后就形成父构件(独立构件).构件之间是相互独立的,既没有行为上的关系,也没有数据上的联系,因此,采用黑盒方法进行组装[6].在组装的时候,外部接口和内部接口之间的对应关系是通过接口绑定来完成的,各种不同连接件形成复杂接口绑定,父构件的接口采用可扩展的扩展连接件.所谓扩展连接件是指此连接件是可以扩展使用,因此,组装成的父构件也是可扩展构件,由于内部接口之间的交互采用消息传递机制,从而使父构件更加灵活且兼容性更加强大.
网络教学信息系统的父构件主要包括8个大构件,其分别是公告管理构件、作业发布批改构件、作业提取构件、在线测试构件、教学资源管理构件、TSBBS构件和信息交互构件.8个大构件的功能都独立地封装在文件夹中间,index.asp页面为其可扩展接口.在index.asp页面中还提供了功能各异的按钮和链接构件内部的接口.
3 结束语
随着分布式技术尤其是Internet及其应用的推广,构件组装技术得到了快速的发展,同时,随着计算机软件环境从静态封闭逐步走向动态开放,传统的面向对象和面向过程的软件开发方法在可移植性、后期维护以及对新环境的适应性等方面,都不如构件的组装软件开发方便和灵活.正是由于这些优势,基于构件的组装软件开发,在很多领域正在逐步取代面向对象和面向过程的软件开发方法.
[1]胡国奋,欧阳树生.基于构件化的软件产品开发研究[J].控制工程,2008,15(1):75-77,81.
[2]叶俊民,陈卓,雷志翔,等.基于构件组装的应用软件开发过程研究[J].计算机应用研究,2008,25(6):1736-1738,1752.
[3]黄柳青,王满红.构件中国:面向构件的方法与实践[M].北京:清华大学出版社,2006.
[4]王世安.基于构件组装的网站系统开发过程研究[J].计算机与数字工程,2010,38(6):68-71.
[5]付沙.基于构件技术的软件开发方法的研究[J].科技和产业,2009,9(3):95-98.
[6]王玲,夏榆滨.基于构件视图的组装技术[J].计算机应用,2009,29(12):128-130.