• 沒有找到結果。

5 系統實作與呈現

5.5 XTM檔案匯出

由於程式原始碼剖析引擎擷取出的資訊是存入資料庫,為了呈現視覺化的主 題地圖,需將相關的資訊轉換為 XTM 的格式,以利資料交換的便利性,所以加 入了 XTM 檔案匯出的功能。

5.5.1 使用者介面

XTM 檔案匯出的使用者介面如下圖 5.4,使用者依輸入的系統(或模組)名 稱,匯出相關的主題(Topic)、關聯(Association)及資源(Occurrence)等資訊,匯出 的 XTM 格式,可參考附錄 C:XTM 檔案範例。

圖 5.4 XTM 匯出之使用者介面

5.5.2 XTM 檔案格式

本系統主要為探討資料庫應用程式之程式碼與資料表之間,依據 XTM 的語 法,定義了兩個主題類別程式碼及資料表,對應到每個實體的程式碼及資料表主 題,定義新增(INSERT)、修改(UPDATE)及刪除(DELETE)等三個關聯類別,分別 代表實體的程式碼與資料表之間的關係為新增、修改及刪除,另定義了欄位關聯 類別,表示實體資料表與其欄位之間的關係。若程式原始碼第一行有定義相關的 參考資源,例如 RefData~表示有程式碼的說明文字,RefURL~則表示參考到一個 程式碼說明的連結網頁。以下摘錄部份的 XTM 檔案說明,詳細的 XTM 範例如 附錄 C 所示。

5.5.2.1 定義主題類別(Topic Type)

<topic id="Source">

<baseName>

<baseNameString>程式碼</baseNameString>

</baseName>

</topic>

<topic id="Table">

<baseName>

<baseNameString>資料表</baseNameString>

</baseName>

</topic>

上例中定義兩個主題類別,分別為「程式碼」及「資料表」,分別表示主題

「原始碼」及主題「資料表」的類別。

5.5.2.2 定義主題(Topic)

<topic id="calendar_new.aspx.vb">

<instanceOf>

<topicRef xlink:href="#Source"/>

</instanceOf>

<baseName>

<baseNameString>calendar_new.aspx.vb</baseNameString>

</baseName>

</topic>

上例中表示主題「原始碼(calendar_new.aspx.vb)」的主題類別為「程式碼 (Source)」。

5.5.2.3 定義關聯類別(Association Type)

<topic id="INSERT">

<baseName>

<baseNameString>新增</baseNameString>

</baseName>

</topic>

<topic id="UPDATE">

<baseName>

<baseNameString>修改</baseNameString>

</baseName>

</topic>

<topic id="DELETE">

<baseName>

<baseNameString>刪除</baseNameString>

</baseName>

</topic>

<topic id="Field">

<baseName>

<baseNameString>欄位</baseNameString>

</baseName>

</topic>

上例中定義三個關聯類別,分別為「新增」、「修改」及「刪除」。分別表示 主題「程式碼」與主題「資料表」之間的關聯。另一個關聯類別-欄位,表示主 題「資料表」與主題「欄位」之間的關聯。

5.5.2.4 定義關聯角色類別(Association Role Type)

<topic id="locate">

<baseName>

<baseNameString>位於</baseNameString>

</baseName>

</topic>

<topic id="exist">

<baseName>

<baseNameString>存在</baseNameString>

</baseName>

</topic>

上例中定義了兩個關聯角色類別,分別為「位於」與「存在」。分別表示欄

位「位於(locate)」程式碼及「存在(exist)」於資料表。

5.5.2.5 定義關聯 (Association)

<association>

<instanceOf>

<topicRef xlink:href="#DELETE"/>

</instanceOf>

<member>

<roleSpec>

<topicRef xlink:href="#locate"/>

</roleSpec>

<topicRef xlink:href="#calendar_search_list.aspx.vb"/>

</member>

<member>

<roleSpec>

<topicRef xlink:href="#exist"/>

</roleSpec>

<topicRef xlink:href="#CALENDAR_NEW"/>

</member>

</association>

上例中表示關聯類別為「新增」(INSERT),其有兩個成員,第一個成員的 角色為「位於」(locate),參考到的主題是「原始碼(calendar_search_list.aspx.vb)」

一;第二個成員的角色為「存在」(exist),參考到的主題是「資料表 (CALENDAR_NEW)」。

5.5.2.6 定義資源類別(Occurrence Type)

<topic id="Note">

<baseName>

<baseNameString>程式碼說明</baseNameString>

</baseName>

</topic>

<topic id="NoteURL">

<baseName>

<baseNameString>程式碼說明連結</baseNameString>

</baseName>

</topic>

上例中定義了兩個資源類別,為「程式碼說明」及「程式碼說明連結」。分

別表示「程式碼說明」及「程式碼說明連結」的類別。

5.5.2.7 定義資源 (Occurrence)

<topic id="NT_mssql_modify.aspx">

<instanceOf>

<topicRef xlink:href="#mssql_modify.aspx"/>

</instanceOf>

<baseName>

<baseNameString>mssql_modify.aspx(程式碼說明)</baseNameString>

</baseName>

<occurrence>

<instanceOf>

<topicRef xlink:href="#NoteURL"/>

</instanceOf>

<resourceRef xlink:href="http://localost/SourceCodeDescription.aspx"/>

</occurrence>

</topic>

若程式碼中有定義程式碼說明標籤(RefData~)及程式碼說明連結標籤 (RefURL~),則會產生如上例中資源的相關標籤,上例中表示「資源

(NT_mssql_modify.aspx)」參考到主題「原始碼(mssql_modify.aspx)」,有一個

「mssql_modify.aspx(程式碼說明)」參考到「外部參考資源(NoteURL)」,即一個 外部的連結(http://localost/SourceCodeDescription.aspx)。

相關文件