盒法。用户可以通过修改构件的源码使构件能与其他构件相互作用。该方法可以对构件的特
性进行细致的控制
,但修改源码可能会导致维护和升级问题。(2)黑盒法。用户可以得到构件的
二进制可执行形式
,构件没有提供扩展机制或 API。(3)灰盒法。源码不可以修改,但提供了构件
自身的扩展机制或可编程接口
(API)。
二、系统的实现
(一)系统中的构件实现
软件工程网络课堂教学系统的开发环境为前台开发选择
ASP,后台采用 SQL Server 2000
数据库
,构件模型通过 B/S 构架的三层体系结构(表示层、业务逻辑层和数据访问层)实现。
现以课件构件的开发过程为例
,说明一个构件中的用户界面/表示层、功能/业务逻辑层和
数据访问层的实现。
1.课件上传构件的用户界面层实现。表示层的用户界面可分成动态和静态两种。通过
Dreamweave 的模板实现静态界面功能,通过 ASP 技术生成动态页面。动态页面中常见的动作
是
:解释用户请求;分发这些请求到相应的业务逻辑;选择下一个显示视图;生成和传送下一个
视图给用户。
2.课件上传构件的功能/业务逻辑层实现。课件上传的业务逻辑层的作用是将用户上传的
文件存入数据库
,并将与文件相关的说明在用户界面层上显示出来。出于系统安全性的考虑,
在构件设计时
,对文件格式进行了限制,只能上传 RAR 压缩文件,并按照上传时间以 “
� 年+月+
日
+分+秒”的数字组合为文件重新命名,这将有效避免文件重名。
该层 实现上使用
VBScript 脚本语言构造了一个类模 块 (add.asp)。该类包括如下属
性
:MMtitle( 课 件 标 题 ) 、 MMteacher( 上 传 用 户 ( 系 统 自 动 生 成 )) 、 MMunit( 所 属 章 节 ) 、
MMdiscrib( 内容说明)、set upload(上传路径)、set file(存储路径(系统自动生成))。
3.课件上传构件的数据访问层实现。在系统数据库的开发过程中,为了方便今后数据库的
维护与重用
,将其具体功能如查询、插入等操作封装到一个构件(kejian.asp)中。
(二)基于构件的系统组装
1.原子构件的组装。现以课件上传构件为例,说明原子构件的组装过程。原子构件组装的
思想是将构件模型中涉及到的三个层次组装成构件。通过原子构件的组装
,以上用户界面、功
能
/业务和数据访问三个层次的成分组合成一个完整的课件上传构件。
在上述三个构件中
,功能/业务层处于用户界面层之下、数据访问层之上,因此以功能/业务