• 沒有找到結果。

1.1 研究背景與動機

近年來由於網際網路的普及與資訊科技的突飛猛進,帶動了知識經濟的風 潮。世界經濟的發展由以往的勞力密集、資本密集、技術密集,逐漸朝向知識密 集的時代,Toffler稱之為第三波經濟革命 (Alvin, 1991)。在農業時代,土地的取 得是成功的要素;工業時代則取決於資本財的投資;而當前的科技時代,知識已 成為個人與組織所擁有的珍貴資產之一(Thomas, et. al., 1998)。因此,知識管理將 是使組織具備競爭力的重要關鍵。所謂的知識管理,是指適時適地將正確的知識 提供給需要的成員,以輔助成員採取適當的行動來增進組織績效的持續性過程。

此過程包括知識的創造、確認、收集、分類組織、分享、使用與改進等步驟 (American Productivity & Quality Center, 1996)。而軟體產業本身即是一項人力與 知識密集的產業 (Birk, et. al., 1999),軟體發展更是一個知識不斷創新的過程。

由於資訊硬體產品的效能及功能大幅提升及價格大眾化,導致各類軟體需求愈來 愈多,功能也漸趨複雜,故軟體知識快速且多樣化地成長,因而造成發展軟體時 常遭遇開發過程費時、交貨延遲、產能不易提升,且品質不易確保等問題,甚至 產生了軟體危機[1]。故知識管理對軟體產業來說更是刻不容緩的課題。

如同前面所述,我們在過去已體認到軟體知識管理的重要性,展開一系列的 研究,對軟體知識種類與型態、軟體知識螺旋、軟體重用元件、軟體知識庫及軟 體發展環境之研究與實作等議題均有相關的研究,並將研究成果發表於會議論文 [2][3]。在過去的研究中,我們發覺軟體的知識管理必須與軟體開發流程緊密結 合,在不同的階段中,發展者需要不同類型的知識,在每一個階段中,遇到不同 的問題,發展者亦需要相對應的知識作為輔助。然而,隨著知識庫中的知識愈來 愈多,要如何有效地利用這些知識變成一個重要的課題。

過去,許多典型的知識庫如 Microsoft 的知識庫[4]、IEEE 電子期刊資料庫 [5]、ACM 電子圖書館等[6],都擁有非常充足的知識。以 Microsoft 的知識庫作 為例,原先目的是用來作為產品技術支援服務;產品知識庫中包含數十萬份由數 Reasoning[9]、Ontology[10]。

Taxonomy 是最廣為引用的樹狀分類法,將知識領域以階層架構的方式分 類。然而這種方法只將知識領域分類,對軟體知識而言,同領域下的知識仍非常 多,就如前述的IEEE 及 ACM 電子圖書館,同領域下可能有高達數百篇的論文,

使用者必須閱讀全部論文後,才能判斷是否為他需要的知識,這種方法非常沒有 效率。

Faceted Classification 為多面向的分類法,讓知識能依不同面向進行樹狀結 構的分類。例如酒可依產地、種類來分類。但軟體知識各領域特性不同,除了依 知識領域分類外,難以建構其他具有通用性的面向。而如作者、期刊等面向則無 法對知識的內容描述有所幫助。當知識量增多時,從各個面向找尋知識也是費時 費力,因此很少有軟體知識採用Faceted Classification 做為主要分類方法。

Case-based Reasoning(以下簡稱 CBR)採用案例及解決方案的原理描述知 識,因此會設計其知識模型。但各種知識都必須經過處理修改後才能符合其知識 模型,這對增長快速的軟體知識而言是沒有效率的。此外,對CBR 方法而言,

各個案例都是單獨的存在,彼此之間僅有一些共通性的關聯,而沒有架構良好的 分類系統,因此使用CBR 系統只能找案例的解答,若對知識領域不熟悉的使用 者,則無法利用類別瀏覽的方式找出想了解的知識領域。

Ontology 利用定義清楚的模型描述知識,改善傳統關鍵字搜尋的效率問題。

但軟體知識領域廣泛,很難定出各領域皆通用的 Ontology 模型,且以 Ontology 方法描述知識通常較為複雜,對知識工程師而言是一大負擔。此外,以Ontology 描述的知識彼此間缺乏關聯性,使用者無法在閱讀知識之後快速取得相關知識,

也沒辦法對知識進行比較。

由上可知,目前的知識管理搜尋與分類方法應用在軟體知識上都有其不足之 處,當知識累積數量增多時,知識庫的效率及正確性便會降低,浪費使用者寶貴 的時間。因此我們需要更有效率的知識分類方法來改善此問題。

對知識使用者而言,利用知識庫搜尋知識,必定是對此類知識有所需求,我 們可以將這些需求大致分為下列四類:

1. 使用者對某特定領域不熟,希望找出該領域的介紹性知識。

2. 使用者對特定領域熟悉,希望深入了解某特定議題。

3. 使用者遭遇了某些問題,希望找出這些問題的最佳解決方案。

4. 使用者熟悉特定技術,想了解該技術被運用在哪些領域中。

在各種分類與搜尋方法中,關鍵字法仍舊是最廣為運用的。然而一般關鍵字 都較零散且缺乏規則,且關鍵字之間沒有具體的關聯性,如此對知識的使用者幫 助相當有限。因此有必要對關鍵字作更嚴謹的定義,使其更明確地表示論文的性 質,且便於分類。

從技術論文或技術報告的本質分析,發現這兩種知識主要內容都是為了解決 某項議題,而提出其解決方法。議題必定存在於特定領域之下,而解決方法則可 能運用了其他的技術,因此,描述一篇論文,只要描述這篇論文所在領域、解決 的議題、採用的解法及運用的技術便能說明其核心意義。故我們能將關鍵字分為

「領域類別」、「議題」、「解法」、「技術」四個類型,一篇論文依此方法定義關鍵 字便能表示其意義。

採用上述方法表示技術知識後,可非常容易找出兩篇論文間之相關性。例如 解決相同議題的論文、採用相同解法或技術的論文、改善前人解法的論文,利用 這些關係能提供知識間的關聯性,依議題、解法、技術找出同性質的論文,提昇 搜尋的精度與準度。

本研究進一步依此表示方式提出知識分類架構。以領域類別為基礎,在其下 可建構議題,各議題下有許多論文提出不同的解法及各種技術解決此議題。如此 使用者便可依領域類別瀏覽,找出領域類別下的子議題,並可列出特定議題的解 法及技術,也可找出特定技術的運用狀況,讓上述四種需求的使用者都能在此分 類架構上找到合適的知識。

因此,本研究將依上述發現,詳細定義技術知識的關鍵字類型與關係,提出 知識分類架構,並依此分類方法實作一雛型(Prototype)知識庫系統,以證實可 行性。最後並將比較此方法與傳統知識分類法對軟體知識管理的適用性。

1.2 各章節介紹

本論文章節安排如下,首先在第二章介紹軟體知識與軟體知識管理的概念,

接著探討傳統知識分類法運用在軟體知識管理上的問題。第三章從軟體知識本質 進行分析,進而提出軟體知識表示法及分類方法,並採用符號表示法提昇知識處 理的效率。第四章則介紹軟體知識的關鍵字分類機制,包括建構法則、領域類別

架構、知識排序法則與搜尋方法以及符號表示法的 BNF。第五章將實作一知識 庫範例以證此分類方法的可行性。第六章總結本論文之研究成果並提出未來可繼 續發展的研究方向。