|
以物件导向方法描述网路电脑辅助教学模型
Using object oriented method in network CAI model
林敏慧、黄正魁、汪柏*、陈庆帆*
淡水学院资管系、淡江大学资工所*
台北县淡水镇真理街32号
cfchen@jupiter.touc.edu.tw , s1785187@jupiter.touc.edu.tw, lmh@ jupiter.touc.edu.tw
(本文摘自网上)
摘要
近年来的网路科技迅速进步,对于网路资源搜集变得更加容易,而传统的电脑辅助教学(Computer assisted instruction)系统所缺乏的是教学资源的更新,因此多元的教材就可以藉由全球网路来相互传递。探讨教学资源的互相传递可以说是教材的重复使用,如何能让电脑辅助教学的资源再使用,就必须将物件导向的方法导入电脑辅助教学过程的架构中,此方法中将教学的流程切割成一个一个的元件,并使用 Unified Modeling Language(UML) 的技术来规划每一个流程所产生的元件,另外在元件的重复使用实作方面,只要在网路上遵循着 Common Object Request Broker Architecture (CORBA)、Distributed Component Object Model (DCOM)的规格来制作出教学资源元件,并且下传到自己的或是其他人的教学系统中,就可获得丰富的教学资源,广泛地增加系统的可看性。
关键字
Use Case,UML,CAI,Object Oriented,Java。
1. 前言
美国电脑教育学家 Bork 于 1978年时曾预测 :「到西元 2000年时,各级学校及几乎各类科的主要学习方式,将是透过电脑的互动学习来进行」,由此可以预期电脑辅助教学在未来带给授课者和学习者更多的和更容易的资讯,有效地整合了动画、影片、音效、声光、文字等各种多媒体的材料,但这些多媒体资源却往往是无法流通的,原因可能是这些教学资源都尽局限在一定区域的系统使用者在使用,不可否认的这些资源可以重新使用在其他的系统中,所以将这些教学资源包装成元件,放在网路上给其他的系统开发者再使用,是可以因此达成教学资源的多方面流通。电脑辅助教学的元件规划是以物件导向为背景,要如何去规划这些元件达成再使用的好处,可以藉由 Grady Booch、Ivar Jacobson、James Rumbaugh 等人所订出的 UML 来规划,并且以 UML 中的 Use Case 来说明整体系统的运作。Use Case 在物件的领域中已实用多年,主要是将系统中的行为或者传递的讯息用详细的方法来说明,而 CAI 不啻是一套电脑辅助教学系统,论文中将说明如何使用 Use Case 来规划 CAI 系统。
2.比较传统 CAI 和物件导向式 CAI 的流程规划
以目前 CAI 系统在网路上运用的程面来整合规划,都会比较强调人机介面的整合。一般来说只要使用者启动使用端的浏览器,不论在何时、何地都可以上网际网路来呈现出教学内容的拨放,如此这些系统的教学资源都一一整合成多媒体档案或是资料库,往往这些资料都仅定位在区域性(Local),这样的系统规划方式可以让使用者共享伺服端的资源,却无法达到和其他伺服端内教学资源的共享。
另外,在系统开发规划当中比较欠缺一致的扩充性,以目前资料库的方式而言,都会较以关联式的方式来策动一个系统的资料库,并且藉由个体关联模式(entity-relationship model)的设计法来规划、说明系统的资料库,而系统教学的档案也都由树状方式来存放资料,往后的管理者会比较难去维护系统的资料。而如果改由以物件导向的方式来规划一套 CAI 的系统,不管是系统中开发出的程式,或是以物件导向为背景的资料库 ODB ,都会易于开发者的管理与维护,而且这些资源经过CORBA、DCOM 的方式封装起来后,都还可以在不同异质的系统下进行元件的重复使用,不论在任何网路系统下教学资源都可以互相传递,而且在三层式的架构下,中介层的元件管理和控制都会有相当的利用,降低其他层的控制负担。
3.Use Case 的研究方法
3.1.Use Case
在本质上来说,Use Case 是一个介于使用者和电脑系统的实体互动表示法,也可以用下列几点来说明 Use Case 的所代表的特性:
‧Use Case 是可以获得一些使用者能够看到的函数。
‧Use Case 是可能依系统的结构来表示成小或大。
‧Use Case 是可以让使用者达到他们个别的目的。
‧Use Case 是一种功能分解的技术。
综合以上几点来看,Use Case 技术很容易使用,但也很容易误用,必须用得正确才能在系统开发时获得较高品质的需求规格,而 Use Case 不是仅仅「表达」需求而已,Use Case 还可以寻找及定义系统的需求。
3.2.叙述 CAI 的 Use Case
现在就以目前的网路电脑辅助教学系统来实例说明如何使用 Use Case 来整体规划系统。BP(business process)企业程序,为一连串符合系统的动作,几乎使用 Use Case 开发出的系统都会遵循此原则,其原则包含了:为一序列的服务和必须满足系统的期望。先将CAI 的流程以企业程序动作来说明:
使用者透过
TCP/IP
通讯协定的方式进入全球资讯网,以浏览网页的方式连结到电脑辅助教学系统,并且在进入系统前接受系统的安全认证,然后选择要参与学习的科目,再来藉由
HTML、XML
或者
ASP
的互动方式来呈现教学的内容,使用者可以切换教学网页来进行上课内容传授。当教学辅助系统告一段落后,使用者不需更换介面环境,只需切换至另外一个网页,进入智慧型的适性测验系统,直接在线上接受测验,并且可以按每位学习者的学习效率和程度立即得到答案和课后评语,而后使用者也可以在线上(BBS)和一同上课的同学进行心得交换,不了解的地方也可以在线上或者使用电子邮件(Email)和老师讨论。
上述的执行电脑辅助教学说明将以 Use Case 技术来表达说明,叙述如下:
Use Case :电脑辅助教学
使用者端 系统服务端
1.进入教学系统
2.输入使用者姓名和密码
3.审核使用端身份
4.与使用者端的签证做确认
5.选择上课的科目
6.按使用者的属性产生教学内容
7.展示电脑教学内容
8.再针对使用者属性产生题库
9.进行评量
10.互动式交谈和课后讨论
11.使用者离开系统
12.纪录使用端的学习资料
总体而言,以上的 Use Case 模型只是希望能让开发者更易于了解 CAI 系统的规划流程,论文中仅举例说明小部份的系统功能流程考量,也许开发小组有新的想法(Idea)再浮现而一直加入下去,必须花许多时间直到达成每位参与人员有所共识才可,也就是说明了 BP已达到一个理想的境界。为何要进行如此讨论的抽象工作?因为越多次的讨论结果,更会找出电脑辅助教学系统的本质,而且较少次的 CAI 系统描述,日后的重用(Reuse)机会越大;越低层次的抽象结果,包含较多的细节和现况限制,日后重用的机会就会降低。在开发完专案后,所有的抽样层次讨论结果都可以保留下来,供给日后如果有相同类型开发软体的专案重新使用,相似性高的专案可以重用到较低层次的讨论结果;而相似度低的可以重用较高层次的讨论结果。
说明 Use Case 来规划系统后,就可以更进一步使用 UML 中的循序图(Sequence diagram)来详细说明出整个教学系统执行的动作和过程:
UML 下的循序图里有四个主控物件,而 UML 中的类别图(Class diagram)可以更加说明四个物件之间互动的属性和动作并且将四个物件成员列表解释:

| 类别名称 |
类别成员 |
成员说明 |
Identify
|
Uname |
传入使用者输入辨识的代号 |
|
Password
|
传入使用者的辨识密码 |
|
Exe_query
|
对使用者身份资料库下询问的指令 |
|
Open_table
|
开启辨识在异质资料库中使用者身份的 Table |
|
Class_id
|
对每个identify物件做编号,主要可以易于统一管理 |
|
Check()
|
确认使用者身份,经过比对后传回结果以回应于画面上 |
Classes
|
Class_id |
纪录课程类别代号 |
|
Keyword
|
课程内容的关键字,纪录使用者上课的主要内容 |
|
Class_type
|
纪录本课程的型态 |
|
Show_method
|
展示课程媒体的方式如:文字、声音或影像 |
|
Showed_time
|
本课的展示次数,藉此可以得知每章节受欢迎的程度 |
|
Create_onclass()
|
当使用者选定课程主题后,程式负责排列课程顺序 |
|
Show_onclass |
排定课程后负责依序展示课题内容 |
| Testing |
GUID
|
产生每一个测试元件的唯一辨识码 |
|
Media_type
|
展示测试媒体的媒体型态 |
|
Keyword
|
本次测试内容的主要课题,可产生针对主题的测试题目 |
|
Test_no
|
纪录每一个测试题目的编号 |
|
Used_time
|
每一个测试题目的使用次数 |
|
Get_right
|
纪录答对本题目的人数,藉由此计算客观的题目困难度 |
|
Test_ans
|
本题目的正确解答 |
|
Ans_detail
|
详细解题说明 |
|
Pretest()
|
测试初试者的程度,藉此可以再调整使用者的程度 |
|
Create_examquestion()
|
产生考题 |
|
Show_examquestion()
|
展示考题内容 |
Analysis
|
Test_no |
试题分类代码(IRT mode) |
|
Test_attribute
|
试题属性(IRT mode) |
|
Test_style
|
试题题型(IRT mode) |
|
Difficulty_index
|
试题难度指标(IRT mode) |
|
Discrimination_index
|
试题鉴别度指标(IRT mode) |
|
Twice_coefficient
|
试题二系列相关系数(IRT mode) |
|
Point_coefficient
|
试题点二系列相关系数(IRT mode) |
|
Test_trust
|
测验的信度(IRT mode) |
|
Effect
|
试题效度(IRT mode) |
|
Response_identify
|
试题反应理论之鉴别度(Classic mode) |
|
Degree_difficulty
|
试题难度(Classic mode) |
|
Surmise
|
试题猜测度(Classic mode) |
|
Exe_IRTmode()
|
执行项目反应理论(item response theory)来分析使用者 |
|
Exe_Classicmode()
|
执行古典测量理论来分析使用者
|
3.3.使用 Use Case 规划的总结
不论任何一套系开发前期使用 Use Case ,都必须先了解开发系统的本质活动,而本质活动又可以再分本质次活动。总而言之,开发者所必须重视的是跟使用者目的有关的必要活动,着重于哪些(What)活动而不是如何(How To)进行活动,基于这点是告诉开发者如何去把使用者的沟通介面架构出来,而不是如何去把系统的功能实作出来,开发的出发点都以审核这项活动是否有存在的必要,所以当 BP 的活动、次活动、次次活动…已经足够详细时就可以停止。
4.结论
本论文是说明藉由 Use Case 来将电脑辅助教学的过程详细地拆解出来,而 Use Case 最具威力(Powerful)的功能是在物件导向领域下,将系统的开发程序详细的分解成一个、一个的物件,并且说明每个物件的封装性、继承性、和多元性等,物件和物件之间的讯息、行为也可以明显地表现出来。也因此在电脑辅助教学的领域下也可如此,包括开发上课的内容或是线上考试的题库等,开发者都可以把它当成一个、一个的元件,因为往往电脑辅助教学所欠缺的是教材的搜集,然而这些都是 CAI系统开发完毕后必须的,因为科技一直进步教学的材料也要适时更新,才不会造成使用者对系统的不新鲜感,而这些媒体、程式的搜集不是老师、系统开发者、资料维护者或是使用者所能完全提供的,而必须藉由包装元件的协定方法将这些资料以物件的方式来包装起来,透过网路搜集全世界发出的物件提供给教学辅助系统更丰富的教学资源(Resource),如此便可以减少电脑辅助教学系统中对资料的维护与人力浪费的成本。
附录
The CAI class structure (Use Java):
Class identify{ // The identify class structure
protected string uname; // input user name
protected string password; // input user of password
private string exe_query; // query to find user dbase
private string open_table; // which dbase’s table with use
public int class_id; // class id
public static void check (string uname,password,exe_query,open_table)
{ //The check of implementing class methods , that certain user }}
Class classes{ // The classes class structurepublic int class_id;
protected string keyword; // the keyword of those questions
protected byte class_type; // how to show the multimedia of classes
protected byte show_method; // how to show this apative test
protected byte showed_time; // how many people were answered this question?
public static void create_onclass(byte class_type,string keyword)
{// create a class content }
public static void show_onclass(byte show_method,showed_time)
{// show class conent }}
Class testing{ // The testing class structure public const GUID; // globally unique identifier of the object
protected byte media_type; // catch dbase at this question’s type
protected string keyword; // reference test dbase of keyword
protected int test_no; // this question’s no
private byte used_time; // the question’s use time
protected byte get_right; // how many people are get right
private string test_ans; // correct answer
private string ans_detail; // the answer’s detail
public static void pretest(int begin_mode){
// create a first question to test user’s attribute }
public static void create_examquestion()
{// create an apative test }
public static void how_examquestion()
{// show an question }}
Class analysis{ // The analysis class structure
protected int test_no; // testing no(IRT mode)
protected byte test_attribute; // attribute(IRT mode)
protected string test_style; // test style(IRT mode)
private int difficulty_index; // difficulty_index(IRT mode)
private int discrimination_index; //discrimination_index(IRT mode)
private byte twice_coefficient; // twice_coefficient(IRT mode)
private byte point_coefficient; // point_coefficient(IRT mode)
private byte test_trust; // trust of testing(IRT mode)
private byte effect; // effect of testing(IRT mode)
private int response_Identify; // response_Identify(Classic mode)
private int degree_difficulty; // degree_difficulty(Classic mode)
private int surmise; // surmise(Classic mode)
public static void exe_IRTmode(){
// item response theory operation}
public static void exe_Classicmode(){
// classic mode operation }}
作者介绍
陈庆帆(Ching-Fan Chen) ,淡江大学资讯工程研究所博士班,专长为资料库系统设计、软体工程、网路程式,目前服务于淡水学院计算机中心。
汪柏,目前服务于淡江大学资讯工程研究所教授。
林敏慧(Min-Hui Lin) ,淡江大学资讯工程研究所硕士,专长为资料库系统设计、软体工程,目前为淡水学院资管系讲师。
黄正魁(Zheng-Kui Huang) ,淡水工商管理学院资讯管理学系学生。
|