王 巧 劉清堂
摘 要:隨著網(wǎng)絡(luò)教育的發(fā)展,網(wǎng)絡(luò)教育規(guī)模日益擴(kuò)大,實(shí)現(xiàn)資源的可重用性以及系統(tǒng)的互操作性成為網(wǎng)絡(luò)教育發(fā)展面臨的主要問題。網(wǎng)絡(luò)教育技術(shù)標(biāo)準(zhǔn)化是解決該問題的根本措施,但是規(guī)范或標(biāo)準(zhǔn)大多是用文字表述的,具有二義性,因此有必要對標(biāo)準(zhǔn)或規(guī)范的實(shí)現(xiàn)進(jìn)行一致性測試。本文從學(xué)習(xí)設(shè)計規(guī)范出發(fā),探討了一致性測試的模型、方法及其過程,最后介紹了基于上述模型所開發(fā)的學(xué)習(xí)設(shè)計規(guī)范一致性測試系統(tǒng)。實(shí)驗(yàn)證明,該測試系統(tǒng)能夠很好地完成學(xué)習(xí)設(shè)計規(guī)范一致性測試的要求,并且能夠大大提高資源的可重用性及系統(tǒng)的互操作性。
關(guān)鍵詞:一致性測試 學(xué)習(xí)設(shè)計 學(xué)習(xí)設(shè)計規(guī)范一致性測試
中圖分類號:G434 文獻(xiàn)標(biāo)識碼:A 文章編號:1673-8454(2009)01-0052-04
一、引言
隨著網(wǎng)絡(luò)教育的發(fā)展,網(wǎng)絡(luò)教育規(guī)模日益擴(kuò)大,實(shí)現(xiàn)資源的可重用性以及系統(tǒng)的互操作性成為網(wǎng)絡(luò)教育發(fā)展面臨的主要問題。雖然許多教育技術(shù)專家已經(jīng)開始關(guān)注如何實(shí)現(xiàn)資源的共享、跨平臺使用,并提出了大量的規(guī)范標(biāo)準(zhǔn),如學(xué)習(xí)對象元數(shù)據(jù)規(guī)范、內(nèi)容包裝規(guī)范、測試互操作規(guī)范等,但是這些研究過分地強(qiáng)調(diào)學(xué)習(xí)內(nèi)容的可重用性,而忽視了學(xué)習(xí)過程的設(shè)計。
2003年,IMS提出了學(xué)習(xí)設(shè)計(LD)規(guī)范,它是對學(xué)習(xí)單元設(shè)計過程的描述,支持學(xué)習(xí)過程的多種學(xué)習(xí)策略和教學(xué)方法的使用,提供多角色的學(xué)習(xí)過程,是一種強(qiáng)調(diào)學(xué)習(xí)活動設(shè)計的規(guī)范。它的目標(biāo)是提供一種能夠用正式的方式描述“教—學(xué)”過程中元素的框架。具體來說,學(xué)習(xí)設(shè)計規(guī)范應(yīng)符合以下要求:完整性、教學(xué)的靈活性、個性化、形式化、重用性、互操作性及兼容性等。[1]
但是規(guī)范或標(biāo)準(zhǔn)本身并不能滿足互操作性的要求,因?yàn)橐?guī)范或標(biāo)準(zhǔn)文本基本上是使用自然語言描述的,存在著很大的二義性和模糊性,表現(xiàn)為敘述過于簡單或復(fù)雜難以理解、例外處理沒有定義以及標(biāo)準(zhǔn)本身存在矛盾或錯誤等,實(shí)現(xiàn)者對于規(guī)范或標(biāo)準(zhǔn)的不同理解會導(dǎo)致不同的標(biāo)準(zhǔn)實(shí)現(xiàn),從而導(dǎo)致其產(chǎn)品不同程度地與標(biāo)準(zhǔn)的不一致。[2]目前,關(guān)于學(xué)習(xí)設(shè)計規(guī)范的研究還尚未成熟,內(nèi)容過于復(fù)雜,不利于課程設(shè)計者對規(guī)范的理解;另外對于一些基于學(xué)習(xí)設(shè)計規(guī)范研發(fā)的工具,雖然使用相對方便,但是還存在著一些問題。例如,Reload學(xué)習(xí)設(shè)計編輯器,它需要用戶具備一定的技術(shù)知識背景。因此,有必要對學(xué)習(xí)設(shè)計規(guī)范的實(shí)現(xiàn)進(jìn)行一致性測試。然而,如何進(jìn)行學(xué)習(xí)設(shè)計規(guī)范一致性測試尚待研究。[3]
下文將在學(xué)習(xí)設(shè)計規(guī)范的基礎(chǔ)上,深入探討一致性測試的模型、方法及其工具實(shí)現(xiàn)。
二、學(xué)習(xí)設(shè)計概念模型
1.學(xué)習(xí)設(shè)計概念模型
學(xué)習(xí)設(shè)計概念模型,如圖1所示,定義了學(xué)習(xí)設(shè)計規(guī)范中的基本概念和各種關(guān)系,體現(xiàn)了學(xué)習(xí)設(shè)計規(guī)范的核心概念和基本思想。學(xué)習(xí)設(shè)計規(guī)范提倡按照一定的方法從活動中學(xué)習(xí)。無論在何種教學(xué)模式中,每個人都會承擔(dān)一定的角色(學(xué)習(xí)者或者教師),然后根據(jù)各自的角色在環(huán)境中進(jìn)行學(xué)習(xí)活動或支持活動,同時生成活動的結(jié)果。因此在學(xué)習(xí)設(shè)計中包含了許多元素,如角色、方法、活動、環(huán)境等。為了促進(jìn)規(guī)范的產(chǎn)生和相繼地執(zhí)行,學(xué)習(xí)設(shè)計的實(shí)施又劃分為三個層次:A層、B層和C層,其復(fù)雜程度依次增高。A 層中包含支持教學(xué)多樣性的核心元素, 主要有方法、角色、活動、環(huán)境等;B層包含了A層的全部要素, 并增加了“屬性”和“條件”兩個元素;C層包含了B層的全部要素,并增加了“通知”元素,它是由學(xué)習(xí)結(jié)果觸發(fā)的。[4]
2.學(xué)習(xí)設(shè)計規(guī)范與其它規(guī)范的關(guān)系
(1)學(xué)習(xí)設(shè)計規(guī)范與內(nèi)容包裝規(guī)范的關(guān)系
學(xué)習(xí)設(shè)計規(guī)范綜合了其他規(guī)范,如內(nèi)容包裝規(guī)范、學(xué)習(xí)對象元數(shù)據(jù)規(guī)范等。學(xué)習(xí)設(shè)計的主要用途是通過一個內(nèi)容包來包裝學(xué)習(xí)設(shè)計以模型化學(xué)習(xí)單元。一個內(nèi)容包當(dāng)且僅當(dāng)包的內(nèi)容清單的組織部分中包含一個有效的學(xué)習(xí)設(shè)計元素時才被稱為“學(xué)習(xí)單元”。一個學(xué)習(xí)單元=內(nèi)容包+學(xué)習(xí)設(shè)計。技術(shù)上, 通過把學(xué)習(xí)設(shè)計元素包含在一個內(nèi)容包的清單中來實(shí)現(xiàn)。如圖2展示了如何將學(xué)習(xí)設(shè)計整合到內(nèi)容包裝模型里。[1]
(2)學(xué)習(xí)設(shè)計規(guī)范與簡單序列化規(guī)范的關(guān)系
學(xué)習(xí)設(shè)計規(guī)范與簡單序列化規(guī)范之間既有相同點(diǎn),又有不同點(diǎn)。二者的相同之處體現(xiàn)在:提供序列化機(jī)制;被整合在內(nèi)容包裝模型里;主要是針對學(xué)習(xí)活動進(jìn)行設(shè)計。
學(xué)習(xí)設(shè)計規(guī)范和簡單序列化規(guī)范的主要區(qū)別如表1所示。
三、一致性測試模型研究
一致性測試是驗(yàn)證標(biāo)準(zhǔn)的實(shí)現(xiàn)與相應(yīng)標(biāo)準(zhǔn)要求符合程度的符合性測試,包括語法和語義上的一致性測試。[5]
1.一致性測試模型
學(xué)習(xí)設(shè)計規(guī)范一致性測試是對包含學(xué)習(xí)設(shè)計信息的文件實(shí)例(即XML文檔)進(jìn)行一致性測試,然后根據(jù)測試的結(jié)果,給出測試報告,揭示被測實(shí)例與學(xué)習(xí)設(shè)計規(guī)范是否一致。
具體如下:首先,使用軟件工具導(dǎo)入被測試對象(XML文檔);然后,調(diào)用XML文檔解析器或驗(yàn)證器(Java中的Parser或Validator),根據(jù)現(xiàn)有的標(biāo)準(zhǔn)的XML Schema(或者XSD文件),判斷被測對象是否結(jié)構(gòu)完整以及是否與標(biāo)準(zhǔn)一致;最后,根據(jù)測試結(jié)果,導(dǎo)出測試報告。其模型如圖3所示。
2.一致性測試方法與過程
學(xué)習(xí)設(shè)計規(guī)范一致性測試對包含學(xué)習(xí)設(shè)計信息的文件實(shí)例(即XML文檔)進(jìn)行測試,一方面要驗(yàn)證XML文檔的合法性,另一方面要驗(yàn)證XML文檔的有效性。換句話說,一方面要看其是否符合XML語言的語法規(guī)則,另一方面要看其是否符合學(xué)習(xí)設(shè)計規(guī)范。
學(xué)習(xí)設(shè)計信息模型描述了學(xué)習(xí)設(shè)計規(guī)范的數(shù)據(jù)結(jié)構(gòu),列出了與學(xué)習(xí)設(shè)計相關(guān)的數(shù)據(jù)元素。這些數(shù)據(jù)元素可以分為核心元素和擴(kuò)展元素,核心元素又分為必須數(shù)據(jù)元素和可選數(shù)據(jù)元素。另外,信息模型還規(guī)定了每個數(shù)據(jù)元素及其屬性的類型和取值范圍。如表2所示。對于各個學(xué)習(xí)設(shè)計的實(shí)例來說,必須數(shù)據(jù)元素是必不可少的,可選數(shù)據(jù)元素和擴(kuò)展元素可以有,也可以沒有。因此對于某個學(xué)習(xí)設(shè)計實(shí)例來說,如果包含所有的必須數(shù)據(jù)元素,且所有的數(shù)據(jù)元素類型均采用的是規(guī)定的數(shù)據(jù)類型且在取值范圍內(nèi),那么該實(shí)例與學(xué)習(xí)設(shè)計規(guī)范是一致的;如果不包含必須數(shù)據(jù)元素,或者未包含所有的必須數(shù)據(jù)元素,或者數(shù)據(jù)元素采用的不是規(guī)定的數(shù)據(jù)類型,或者數(shù)據(jù)元素的取值不在取值范圍內(nèi),那么該實(shí)例與學(xué)習(xí)設(shè)計規(guī)范是不一致的。[1][6][7]
四、一致性測試工具實(shí)現(xiàn)
依據(jù)上面所提出的一致性測試模型和方法,同時在借鑒Reload Learning Design Editor的基礎(chǔ)上,我們開發(fā)出了學(xué)習(xí)設(shè)計規(guī)范一致性測試系統(tǒng)。該測試系統(tǒng)是基于Eclipse開發(fā)的,其核心是對包含學(xué)習(xí)設(shè)計信息的XML文檔進(jìn)行驗(yàn)證(或測試)。
1.一致性測試工具實(shí)現(xiàn)過程
學(xué)習(xí)設(shè)計規(guī)范一致性測試的核心是測試,也就是對包含學(xué)習(xí)設(shè)計信息的XML文檔進(jìn)行驗(yàn)證。因此解決如何驗(yàn)證XML文件是實(shí)現(xiàn)一致性測試的關(guān)鍵。該系統(tǒng)采用了Java語言的XML驗(yàn)證API,它可以快速檢查輸入是否符合預(yù)期的形式。Java5引入了javax.xml.validation包,該包提供了獨(dú)立于驗(yàn)證模式語言的驗(yàn)證服務(wù)接口。javax.xml.validation API使用三個類來驗(yàn)證XML文檔:SchemaFactory、Schema和Validator。驗(yàn)證過程主要有以下五個步驟:
(1)為編寫模式所使用的語言加載一個模式工廠,如下所示:
SchemaFactory schemaFactory=SchemaFactory.newInstance;
(2)編譯源文件中的模式,如下所示:
Source one=new StreamSource("schemaValidate/cp_v1p1.xsd");
Source two=new StreamSource("schemaValidate/A/LD_Level_A.xsd");
Source three=new StreamSource("schemaValidate/md_v1p2p4.xsd");
Schema schema=schemaFactory.newSchema(new Source[]{one,two,three});
(3)用編譯后的模式創(chuàng)建一個驗(yàn)證程序,如下所示:
Validator validator=schema.newValidator();
(4)為需要驗(yàn)證的文檔創(chuàng)建Source對象,如下所示:
Source source=new StreamSource("learningdesign.xml");
(5)驗(yàn)證輸入的源文檔,如下所示:
validator.validate(source);
在驗(yàn)證的過程中需要注意以下幾個問題:
(1)在該系統(tǒng)中我們采用標(biāo)準(zhǔn)的XSD文件而不是采用標(biāo)準(zhǔn)的DTD文件來驗(yàn)證XML文件,主要有以下幾方面原因:首先,XML Schema事實(shí)上是XML的一種應(yīng)用,它與XML有相同的語法結(jié)構(gòu)以及相同的合法性驗(yàn)證機(jī)制,便于使用;其次,XML Schema提供了較多的數(shù)據(jù)類型,更重要的是它支持用戶自定義的數(shù)據(jù)類型,增強(qiáng)了數(shù)據(jù)類型的靈活性,因而更容易對數(shù)據(jù)類型進(jìn)行限制,提高測試結(jié)果的準(zhǔn)確性;再次,XML Schema是一個開放的模型,在XML文檔中加入擴(kuò)展元素不會發(fā)生驗(yàn)證錯誤;最后,XML Schema完全支持命名空間,一個XML文檔可以由多個XML Schema文檔來描述。
(2)學(xué)習(xí)設(shè)計規(guī)范一致性測試不僅包括學(xué)習(xí)設(shè)計自身的測試,還包括內(nèi)容包裝以及學(xué)習(xí)對象元數(shù)據(jù)的測試。因此,該系統(tǒng)涉及如何調(diào)用多個XSD文件來驗(yàn)證XML文檔的問題,也就是如何調(diào)用三個相關(guān)聯(lián)的XSD文件:cp_v1p1.xsd、LD_Level_A.xsd、md_v1p2p4.xsd。為了解決該問題,需要在相應(yīng)的XSD文件中運(yùn)用
(3)若包含學(xué)習(xí)設(shè)計信息的XML文檔不符合學(xué)習(xí)設(shè)計規(guī)范,并且存在多處錯誤,如果僅使用“validator.validate(source);”進(jìn)行驗(yàn)證,則只能夠顯示出一條錯誤信息。為了將XML文檔中的多處錯誤全部顯示出來,便于用戶快速修正所有的錯誤,需要自定義一個錯誤處理類ErrorProcessor,該類繼承于DefaultHandler,重寫其中的錯誤處理方法,然后通過使用“ErrorProcessor ep=new ErrorProcessor();validator.setErrorHandler(e);”來調(diào)用類ErrorProcessor中的錯誤處理方法,從而將XML文檔中的錯誤全部顯示出來。
2.一致性測試系統(tǒng)的主要測試界面和測試結(jié)果
前面介紹了一致性測試系統(tǒng)的實(shí)現(xiàn)過程,下面將簡要介紹該系統(tǒng)的一些主要測試界面及測試結(jié)果。由于該測試系統(tǒng)借鑒了Reload學(xué)習(xí)設(shè)計編輯器,增加了學(xué)習(xí)設(shè)計編輯模塊,因此,該測試系統(tǒng)不僅可對包含學(xué)習(xí)設(shè)計信息的XML文檔進(jìn)行測試,用戶還可方便地進(jìn)行可視化的學(xué)習(xí)設(shè)計,避免手寫繁瑣的XML文檔。
首先,用戶可以使用該系統(tǒng)提供的學(xué)習(xí)設(shè)計模塊來創(chuàng)建包含學(xué)習(xí)設(shè)計信息的XML文檔。單擊“文件”→“新建”→“學(xué)習(xí)設(shè)計”,選擇用于存放XML文檔的文件夾,選擇好文件夾后,用戶可在如圖4所示的界面上進(jìn)行學(xué)習(xí)設(shè)計,設(shè)計完成后單擊“文件”→“保存”,在選擇的文件夾中將產(chǎn)生相應(yīng)的XML文檔。
然后,用戶可對包含學(xué)習(xí)設(shè)計信息的XML文檔進(jìn)行測試。單擊“工具”→“測試”,如果該文檔不符合學(xué)習(xí)設(shè)計規(guī)范,將顯示如圖5所示的測試報告,該測試報告不僅顯示出了所有的錯誤,而且顯示了出現(xiàn)錯誤的位置,便于用戶準(zhǔn)確地定位和修改。
該系統(tǒng)還提供了詳細(xì)的幫助文檔,用戶初次使用時可參照幫助文檔進(jìn)行操作。
五、小結(jié)
一致性測試是保證標(biāo)準(zhǔn)實(shí)現(xiàn)的正確性和有效性的重要手段,是提高資源的重用性和系統(tǒng)的互操作性的重要手段,也是推廣和落實(shí)學(xué)習(xí)設(shè)計規(guī)范的一個必要手段。[8]因此,對基于學(xué)習(xí)設(shè)計規(guī)范生成的XML文檔進(jìn)行一致性測試是十分必要的。但是,目前所開發(fā)的學(xué)習(xí)設(shè)計規(guī)范一致性測試系統(tǒng)只是對學(xué)習(xí)設(shè)計A層的設(shè)計和測試,有待于進(jìn)一步擴(kuò)展和完善。
參考文獻(xiàn):
[1]IMS Learning Design Information Model [S]. http://www.imsglobal.org/learningdesign/index.html
[2]陶勇,楊貫中,孔婷.CELTS.10標(biāo)準(zhǔn)一致性測試系統(tǒng)[J].計算機(jī)工程,2004年10月,第30卷第20期.
[3]曹曉明,何克抗.學(xué)習(xí)設(shè)計和學(xué)習(xí)管理系統(tǒng)的新發(fā)展[J].現(xiàn)代教育技術(shù),2006(4).
[4]周躍良,曾苗苗,李欣.基于IMS學(xué)習(xí)設(shè)計規(guī)范設(shè)計和開發(fā)面向過程的網(wǎng)絡(luò)課件[J].中國電化教育,2007(7).
[5]張冬敏,閻保平.SQL標(biāo)準(zhǔn)符合性測試相關(guān)問題探討[J].計算機(jī)應(yīng)用與軟件,2007年5月,第24卷第5期.
[6]IMS Learning Design Best Practice and Implementation Guid [S]. http://www.imsglobal.org/learningdesign/index.html
[7]IMS Learning Design XML Binding [S]. http://www.imsglobal.org/learningdesign/index.html
[8]文志康,朱斌.學(xué)習(xí)者模型基于XML的一致性測試.http://www.celtsc.edu.cn/63a8835065877ae0/65874ef6/wenzhu0301.pdf.