splay tree Technique
tries Technique
hash table Technique
DomainProblem
Approach
Technique
Use Use Use
Technique Technique
成主要議題包含數個子議題。書本知識的議題間可能會有閱讀上的順序 關係,例如閱讀 Object-oriented analysis 跟 Object-oriented design 之前應先閱讀 Object-oriented concept,因此議題之間會有依存的關 係。
3. 解法(Approach):某些書本在介紹議題時,並不是介紹其子議題,而 是介紹該議題的有哪些不同的解法或方法,這類型便以「解法」定義。
書 本 知 識 關 鍵 字 可 以圖 2-10 表示 ,以 Roger Pressman 的 Software Engineering 一書中針對 Project Management 這個議題的內容以上述的方式分 類,便可得到如圖 2-11 的結果
圖 2-10 書本知識關鍵字關係 Subject
Topic Topic Topic
Topic Topic Topic
Topic Topic
Approach Topic Topic Approach
圖 2-11 書本關鍵字關係範例
雖然書本知識與技術論文、技術報告的「問題導向」特性有些不同,但仍可 將書本知識視為具有「問題」與「解答」特性的知識。對書本知識而言,使用者 的問題通常就是:特定主題應看哪本書?特定議題的介紹?特定議題有哪些方 法?而針對這些問題的解答就是書本的內容,透過「主題」、「議題」、「解法」三 類關鍵字並配合階層架構,使用者能夠知道特定主題有哪些書,這些書提到了哪 些議題,特定議題下又介紹了哪些子議題,或介紹了哪些方法,因此,「主題」、
「議題」可視為問題,而「子議題」、「解法」便是解答。透過上述的表示方法,
可為書本知識定義完整的關鍵字做為描述及索引,也能夠讓使用者快速掌握書本 知識的內容,並可對特定主題、特定議題的書本知識進行概略的比較,增進書本 知識的效率。
2.2.3 2.2.3 2.2.3
2.2.3 『 『 『 『問題 問題 問題 問題- -- -解法 解法 解法』 解法 』 』關鍵字架構 』 關鍵字架構 關鍵字架構 關鍵字架構
技術論文及技術報告的關鍵字分為四類,即「領域」、「問題」、「解法」、「技 術」。這四個分類正好符合「問題–解法」架構,因為要描述一個問題,應當先 描述其所在領域,軟體知識的領域是有階層性的,一個大領域可分為數個小領
Project Management
Project Metrics Risk Management Project Planning Project Scheduling
Software Scope Project Estimation Make/Buy Decision
Problem-based Estimation LOC-based Estimation FP-based Estimation Software Engineering
Topic
Topic Topic Topic
Topic Topic Topic
Approach Approach Approach
Subject
Topic
域 , 因 此 描 述 知 識 的 領 域 最 恰 當 的 方 式 就 是 利 用 階 層 架 構
(Hierarchy-structure),故我們可以稱領域為知識類別(Category),有了領 域之後,我們便可以在階層架構上加入對問題的描述。這些問題便可稱為該領域 下的「議題」(Issue);而描述一個解法,重點就在於「解決方法」(Approach)
以及運用的「技術」(Technique),因此,我們只需利用有良好定義的關鍵字,
即可對技術論文及技術報告進行有效率的「問題–解法」分類與描述。
書本知識的關鍵字分為主題(Subject)、議題(Topic)、解法(Approach)
三類,這個分類能夠與上述的分類整合。因為書本知識所探討的主題其實與上述 的知識類別(Category)是很接近的。我們利用階層架構將知識領域做分類,這 些分類其實都可做為書本知識的主題,例如分類上有 Software Engineering 的 領域類別,也有書本知識的主題為 Software Engineering,如上所述,我們可 以籍由一良好的分類架構將軟體技術知識的主題分類,使書本知識的主題定義標 準化,因此,只要這個分類架構具有足夠的深度與內容,便可做為書本知識的主 題。而書本知識下面的議題(Topic),雖然與技術論文的議題(Issue)意義不 同,但亦可將 Topic 視為 Issue,只是書本知識的 Issue 是有主要的 Issue,底 下可再細分為 sub-Issue 或 sub-sub-Issue,而技術論文的 Issue 則是知識類別 下的問題,其性質不同,但都可以用議題(Issue)來代表。由於書本知識與技 術論文本質上就不同,因此也不會造成定義模糊的問題。至於書本知識的解法
(Approach),與技術論文的解法也有些許差異,書本知識通常是針對一個議題 介紹幾種解法,而技術論文則是針對一個問題提出其解法,但在本質上仍是問題 與解法的關係,故可與技術論文的分類整合。
由上述可知,領域類別是『問題-解法』知識分類法中的基本架構,由於領 域類別太多,因此可利用階層特性,採大領域細分為小領域方式,採用樹狀架構
來定義每一個領域類別。議題與解法建構在領域類別之下,因此分類機制需有足 夠的廣度與深度,方能讓使用者有效率地找到合適的知識。目前常用的分類法都 不超過七層架構,且心理學家 George Miller[10]於 1956 年提出人的暫時記憶 數量是七加減二,因此謝祖望學長提出如圖 2-12 的七層領域架構圖,而在此七 層領域架構下,包含了技術論文/報告的『議題』(Issue)、『解法』、『技術』等 關鍵字,也包含書本知識的『議題』(Book Issue)、『子議題』(Sub Issue)、『解 法』等關鍵字。
圖 2-12 『問題-解法』知識庫關鍵字架構
2.2.4 2.2.4 2.2.4
2.2.4『 『 『問題 『 問題 問題- 問題 -- -解法 解法 解法 解法』 』 』 』知識庫雛型系統 知識庫雛型系統 知識庫雛型系統 知識庫雛型系統
為了證明以上『問題-解法』軟體知識分類法的可能性,謝祖望學長實作了 Approach
Technique
Use
Technique Book Issue Book Issue
SubIssue
Approach Approach
Issue
SubIssue Category Hierarchy Main class
Subclass
Division
Section Subdivision
Subsection
Segment
此知識庫雛型系統,其主要提供使用者進行知識的搜尋、檢索以及提供知識工程
圖 2-13 知識庫雛型系統架構圖
圖 2-13 為『問題-解法』軟體技術知識庫系統,此系統可供使用者瀏覽、檢 索、新增知識,此系統以 IIS(Internet Information Server)搭配 ASP(Active Server Page)做為網站架設及系統開發平台,後端採用 SQL Server 資料庫存放 資料。由於直接存取資料庫較費時,此系統將關鍵字索引資料(如領域類別的名 稱、子領域類別列表、議題名稱、議題的解法列表等等)在系統初始化時從資料 庫讀出至系統記憶體中,這部份採用 COM(Common Object Model)物件來完成,
另外較不常存取的資料則先自資料庫取出存至檔案系統中,以加速運作效率。快 取資料的類別關係圖如下:
Web Browser
Web Browser
Web Browser
Client
ASP Module
ASP Module
ASP Module
ASP Module
Knowledge Data (COM Object)
Knowledge Data (Files)
Database
Web Server
Server
快取資料類別關係圖