代碼管理模組是數位典藏系統中的一個模組。系統管理者利用代碼管理模組 提供的功能來存取資料庫,達到管理代碼的目的。本節將說明代碼管理模組提供 給系統管理者使用的操作界面及功能,並說明整個代碼管理模組的實體架構。
3.1. 操作介面與功能
因為數位典藏系統中使用了大量的代碼,所以代碼管理模組依照代碼的特質 加以分類;有些代碼還可以依照其它特質再加以細分,形成一個樹狀的結構。代 碼管理模組依照代碼的樹狀結構設計其管理介面。此介面將資料庫中所有的代碼 列出並呈現到「代碼表維護」的網頁上;以傅斯年善本古籍數位典藏系統為例,
如圖 10 所示。我們可以管理圖 10 列出的每一筆代碼資料,圖中名為「傅斯年善 本古籍數位典藏系統」的超連結又稱「根代碼」,數位典藏系統中使用到的代碼 都是以「根代碼」為樹狀結構的根節點。以代碼「寫繪本」為例,其父代碼是「版 本類別」,更上一層的父代碼則是直屬根代碼的「版本」。另外,代碼「寫繪本」
右方的三個按鈕分別為「維護」、「新增子項」及「刪除」,這三個按鈕分別提供 系統管理者維護、新增與刪除代碼的三個功能,讓系統管理者管理代碼資料庫。
圖 10. 代碼管理模組介面
圖 11 顯示代碼管理模組的功能以及各功能間的關係。圖中「代碼管理模組」
透過「代碼列表」功能將資料庫中當下存在的代碼顯示在網頁中,並產生上述新 增、維護與刪除代碼三項功能的按鈕,提供使用者選擇,亦即產生如圖 10 的管 理介面。以下分別說明「代碼新增」、「代碼維護」及「代碼刪除」三種功能的作 用。
圖 11. 代碼管理模組功能圖
(1) 代碼新增
用來為代碼增加子代碼。按下如圖 10 之「新增子項」按鈕後,會 出現如圖 12 所示的新增子代碼頁面。使用者填入子代碼名稱、排列順
序等描述代碼的資料後,按下「確定新增」按鈕,代碼管理模組會自動 關閉新增子代碼的頁面,並更新資料庫內容,最後利用「代碼列表」功 能將更新後的內容顯示到網頁中。
圖 12. 新增子代碼的頁面 (2) 代碼維護
用來維護代碼資料。按下如圖 10 之「維護」按鈕後,會出現如圖 13 所示的修改代碼頁面,網頁中會顯示該代碼最近一次修改過後的內 容,其介面與新增子代碼視窗相同。使用者修改完代碼資料後按下「修 改」按鈕,修改代碼的網頁會自動關閉,並更新資料庫與列表的內容。
圖 13. 修改代碼的頁面
(3) 代碼刪除
用來刪除代碼。在按下如圖 10 之「刪除」按鈕時,會出現如圖 14 所示的刪除代碼頁面。使用者透過網頁確認即將刪除的代碼及其子代碼 後,按下「確定刪除」按鈕,則該代碼與其所有子代碼會一併被刪除。
但若該代碼或其子代碼在代碼新增(圖 12)或修改(圖 13)時選擇不 可刪除,則刪除的動作將不會進行,並且會在網頁中列出無法刪除的代 碼。
圖 14. 刪除代碼的視窗
3.2. 系統架構
代碼管理模組架構於網路環境之下,隸屬於數位典藏系統。因此我們使用 UML 的部署圖來描述整個代碼管理模組的架構,如圖 15 所示。使用者藉由 browser 透過 TCP/IP 連接到數位典藏伺服器(Digital Library Server)使用數位典 藏系統,再透過數位典藏系統來操作代碼管理模組,藉由代碼管理模組提供的功 能來與代碼資料庫(Options)溝通。
圖 15. 代碼管理模組之部署圖
4. 剖析結果
本節依據 DAAL 之「數位典藏系統核心元件及模組」應用程式之介面說明 [4],剖析 DAAL 開發之代碼管理模組原始程式。首先說明代碼資料庫包含的內 容及意義,再利用 UML 中的使用案例圖、類別圖及循序圖說明模組內容。
4.1. 代碼資料庫
為了讓系統管理者方便管理代碼資料,一筆代碼資料除了代碼名稱之外,還 需包含其他資訊。代碼資料庫包含的屬性有 ID、Option_Name、Sequence、Parient、
IsDefault、UnableDel 及 Note。ID 為主鍵(primary key)、Option_Name 代表代碼 名稱、Sequence 屬性指出此代碼在所有代碼中排列的順序、Parent 指向此代碼的 父代碼;若此代碼的父代碼為根代碼則 Parent 值為 0、IsDefault 屬性的值若為 1 表示此代碼為預設代碼;反之若值為 0 則表示非預設代碼、UnableDel 屬性的值 若為 0 表示此代碼可刪除;反之若值為 1 則表示不可刪除、Note 則用來記錄額 外的說明資訊。
4.2. 用 UML 描述 4.2.1. 使用案例圖
依據代碼管理模組的功能,可以找出代碼列表、代碼新增、代碼維護及代碼 刪除四個使用案例。圖 16 是代碼管理模組的使用案例圖。其中唯一的行為者為 系統管理者,也就是說只有系統管理者能使用本模組。一般使用者不會直接使用 到管理代碼的功能,以確保代碼資料庫不會被任意修改。代碼列表這個使用案例 用來將資料庫中的代碼顯示到網頁中。代碼新增、維護與刪除都是在代碼列出 後,使用者方能使用的功能,因此這三項使用案例與代碼列表這個使用案例之間 為<<uses>>關係。使用代碼管理模組之前,數位典藏系統必須先確認使用者權 限,因此代碼列表這個使用案例會使用到權限管理模組的部分功能。
圖 16. 代碼管理模組使用案例圖
4.2.2. 類別圖
數位典藏系統是架構在網路環境下的系統,其中代碼管理模組是由多個 JSP 網頁組成。若我們將每個 JSP 網頁分別用類別圖表示,再畫出之間的連接關係,
則此模組的類別圖會變得相當龐大。有鑑於此,我們採用的方式是將整個 JSP 網 頁視為一個類別,將整個網頁中使用到的物件視為此類別的屬性,呼叫的函式視 為此類別的方法,將網頁之間的訊息遞送關係視為類別之間的結合關係。由此我 們可以畫出代碼管理模組各類別間關係的示意圖,如圖 17 所示。圖 18 為各類別 屬性、方法之詳細資訊的類別圖;其中需要特別說明的是,圖中有部分的方法或 屬性在許多類別都有使用到,這些共同的部分,我們以「**」特別標記起來,並 非 UML 的正規表示符號。圖 19 則表示各類別的 include 及 import 關係。
圖 17. 代碼管理模組類別間之關係示意圖
圖 18. 代碼管理模組各類別之詳細資訊
圖 19. 代碼管理模組相依關係圖
圖 17 中,類別 Option_List_Form.JSP 可以 link 到多個 Option_Add_Form.JSP、
Option_Mod_Form.JSP 及 Option_Del_Form.JSP。也就是說,只要使用者硬體資 源允許,可以同時開啟不限數目的新增、修改及刪除頁面。被 link 到的三個類別 呼叫 submit 方法後會將訊息傳遞到 Option_DB.JSP。Option_DB.JSP 的功能是用 來存取代碼資料庫。當使用者欲新增、修改或刪除代碼而按下有「確認並送出訊 息」語意的按鈕,即代表呼叫 submit 方法,將資料傳遞到 Option_DB.JSP,再由 Option_DB.JSP 執行更新資料庫的動作。圖 18 顯示各類別的詳細資訊,其中類 別 Option_List_Form.JSP 負責在網頁中列出代碼資料以及畫面的更新。類別 Option_Add_Form.JSP 負 責 建 構 讓 使 用 者 新 增 代 碼 資 料 的 網 頁 介 面 。 類別 Option_Del_Form.JSP 負 責 建 構 讓 使 用 者 刪 除 代 碼 資 料 的 網 頁 介 面 。 類 別 Option_Mod_Form.JSP 負 責 建 構 讓 使 用 者 修 改 代 碼 資 料 的 網 頁 介 面。 類別 Option_DB.JSP 的功能是用來存取代碼資料庫,只要使用者需要新增、刪除或修 改代碼資料時,都會透過此類別與資料庫溝通。
圖 19 表示各類別依照各自的功能需求 include 及 import 不同的程式及套件。
相依情形可以用表 1 輔助說明,我們以「V」代表 JSP 類別使用到的程式及套件。
以表中第二行的 Option_Add_Form.JSP 為例,此 JSP 類別 include 的程式有 CheckAuth.JSP 與 DBsetup.JSP , import 的 套 件 有 java.sql.* 及
edu.sinica.iis.cscl.util.*;其餘以此類推。
表 1. 各 JSP include 及 import 的實際情形
Option_Add_
Form.JSP
Option_
DB.JSP
Option_Del_
Form.JSP
Option_
List_Form.JSP
Option_Mod_
Form.JSP CheckAuth.JSP
<<include>> V V V V V
DBsetup.JSP
<<include>> V V V V V
java.sql.*
<<import>> V V V V V
edu.sinica.iis.csc1.util.*
<<import>> V V V V
java.lang.*
<<import>> V java.util.*
<<import>> V V
edu.sinica.iis.csc1.archive.*
<<import>> V V
4.2.3. 循序圖
代碼管理模組包含四個使用案例,分別是代碼列表、代碼新增、代碼維護及 代碼刪除,本節以循序圖繪出各使用案例使用到的 JSP 程式以及其間的訊息傳遞 情形。
(1) 代碼列表
使用者操作代碼管理模組時,此模組會以樹狀的結構列出代碼資料 庫中所有代碼到網頁中。使用者可直接在列出的代碼上選擇要操作的功 能,也可以點選該代碼以列出子代碼,針對子代碼做更進一步的操作。
循序圖在圖 20。
圖 20. 代碼列表之循序圖
首 先 , 行 為 者 向 Option_List_Form.JSP 要 求 列 出 代 碼 資 料 , Option_List_Form.JSP 會到代碼資料庫(Options)中取得根代碼及第一 層子代碼,並將取得的所有代碼顯示到網頁中,讓使用者對代碼進行操 作。每個列出的代碼都有一個特別的識別值,使用者按下任一個列出的 代碼 ,表 示行 為者 傳 送 「 要求展 開 指定代 碼的樹狀結 構 」訊息給 Option_List_Form.JSP,並給予此代碼的識別值。代碼列表頁面會根據 此識別值到代碼資料庫中取得該代碼的深度,並將此代碼向下展開一 層,列出此代碼的下一層子代碼,若此代碼的子代碼還有子代碼,則以 此類推。
(2) 代碼新增
代碼新增的使用案例是讓使用者新增一筆代碼(或子代碼)資料到 代碼資料庫中。訊息傳遞流程如圖 21 所示。使用者按下「新增子項」
的按鈕後,Option_Add_Form.JSP 會根據代碼的識別值,到資料庫中搜 尋該代碼的資料,建構出讓使用者新增代碼的環境。使用者輸入欲新增 的代碼資料後按下「確定新增」按鈕,資料會被傳送到 Option_DB.JSP,
由這支 JSP 程式與資料庫溝通,把欲新增的代碼資料新增到資料庫中,
最後再由 Option_List_Form.JSP 更新網頁內容。
????????????˙? ‾? ???? ???????????˙?‾? ???? ????????????? ? ? ?????
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ??? ? ? ? ?
? ? ? ??? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ? ? ? ???????????˙?‾? ????
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ?
? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
圖 21. 代碼新增之循序圖 (3) 代碼維護
代碼維護這個使用案例說明使用者可以隨時修改原有的代碼資料 內容。代碼維護的訊息傳遞情形如圖 22 所示。當使用者按下「維護」
按 鈕 , 首先 Option_List_Form.JSP 會 傳 送 欲 維 護 代 碼 的 識 別 值 到 Option_Mod_Form.JSP,這支程式負責到資料庫中取出此代碼的資料,
按 鈕 , 首先 Option_List_Form.JSP 會 傳 送 欲 維 護 代 碼 的 識 別 值 到 Option_Mod_Form.JSP,這支程式負責到資料庫中取出此代碼的資料,