• 沒有找到結果。

第五章、 軟體知識庫系統之設計

5.4 使用者介面說明

5.4.2 知識工程師介面

知識工程師具有管理類別、議題架構的功能,此外尚能管理技術(Technique)

及其關聯性等,登入驗證通過後主畫面如圖 5 - 30:

圖 5 - 30 知識工程師主畫面

管理類別架構功能可以新增、刪除、分割、合併、搬移知識類別,並可新增 子議題,也可修改類別及子議題的簡介及關聯性,其畫面如圖 5 - 31 所示:

圖 5 - 31 類別架構管理畫面

知識工程師也可管理技術,以及與技術相關或相等的關鍵字,畫面如圖 5 - 32:

圖 5 - 32 技術管理畫面

第六章、結論

軟體產業是一項高度知識密集與人力密集的產業,必須藉由團隊的溝通、協 調與合作來完成工作,這也顯示出在軟體發展過程中必須做好知識的管理,才能 加速知識傳遞與學習的過程,縮短軟體開發時間,提高軟體品質,進而降低整體 開發成本與加快產品的推出。

目前的軟體知識庫都面臨缺乏效率的問題。當知識累積數量增多時,知識庫 的效率及正確性便會降低。知識庫的效率與知識分類方法有密不可分的關係,本 研究分析目前常用的知識分類方法,發現這些分類方法中,Taxonomy 太過簡單 故缺乏效率;Faceted Classification 會因知識數量增多而過於複雜;CBR 則缺乏 良好的分類架構;Ontology 只做到知識的描述,而欠缺知識間的關聯性。由於這 些方法都不是為了軟體知識管理而設計,故運用在軟體知識上都有其不足之處。

因此,本研究從軟體知識的本質進行分析,探討了技術論文、技術報告、書 本知識等類型的軟體知識,發現這些知識都具有「問題導向」的特性。此外,為 了加速知識搜尋效率,這些知識都會定義關鍵字,然而一般關鍵字都較零散且缺 乏規則,且關鍵字之間沒有具體的關聯性。因此,本研究提出以「問題–解法」

為基礎的軟體知識分類法,將關鍵字分為「領域類別」(Category)、「議題」

(Issue)、「解法方法」(Approach)、「技術」(Technique)四類,並進一步發現 這些關鍵字類型以及軟體知識都可利用物件導向的中的類別或是物件來表示。故 可利用物件導向的各種關係定義彼此的關聯性,包括了包含(Aggregation)、實 現 (Realization)、使用(Use )、繼承(Inheritance)、相等(Equal )、相關

(Association)、依存(Dependency)、改善(Refine)等。利用這些關鍵字類型 及關聯性,可有效對軟體知識分類,提供不同需求使用者適當的知識,也可對知 識進行比較與排序,即使知識數量增多仍能維持知識檢索的效率。

為改進常見分類法對軟體知識分類深度不足的缺點,本研究提出以七層架構 為基礎建構領域類別,以符合各領域學門的深度。此外,本研究更進一步將這些 關鍵字的關聯性以符號表示,並提出符號表示法的BNF,使知識作者能利用「問 題–解法」知識分類法定義關鍵字,以此方法有效地對知識進行描述。

本研究依提出的知識分類方法,實作了一雛型(Prototype)知識庫,以驗證 其可行性。此系統使用IIS(Internet Information Server)搭配 ASP(Active Server Page)做為網站架設及系統開發平台,後端採用 SQL Server 資料庫存放資料。

本研究所提出的軟體知識的分類方法具有下列優點:

(1) 能依使用者需求給予合適的知識,包括領域介紹、議題介紹、問題解法 及技術運用狀況等。

(2) 對知識進行有效的分類及描述,改善傳統關鍵字搜尋效率不足的問題。

(3) 提供知識的關聯性,讓使用者在閱讀知識後可以依需求閱讀相關知識,

並可依關聯性對知識進行比較及排序。

(4) 分類架構具有足夠的深度以符合各領域學門探討愈來愈深的情況,並應 提供彈性使分類架構能依領域學門的發展適當地調整。

綜合上述,本研究之貢獻如下:

(1) 發現技術論文可用「領域類別」、「議題」、「解法」、「技術」來表示 本研究發現技術知識具有「問題導向」本質,故可利用所在領域、解決 的議題、採用的解法及運用的技術來代表一篇論文,這樣的表示法簡短 而有效地說明技術知識的核心意義,大幅提昇表示技術論文的效率。

(2) 提出技術論文的關聯性

利用上述方式表示技術論文後,可進一步發現技術論文的關係。若新解 法是由舊解法,則是繼承(Inheritance)關係;兩篇論文若採用相同解 法及技術,則新論文是改善(Refine)自舊論文的方法;論文可視為解

法類別的物件,故相同解法的論文可視為相同類別的物件;論文與技術 間有運用(Use)關係,故可知哪些論文運用了特定技術,也可比較論 文間使用的技術;解法對議題有實作(Realization)關係,故可知哪些 論文解決了相同的議題。這些技術知識的關係能提供知識間的關聯性與 比較,改善傳統知識分類法的缺點。

(3) 提出以「問題–解法」為基礎的軟體知識分類架構:

依前述,我們能以「領域類別」、「議題」、「解法」、「技術」表示技術論 文,可進一步利用這些關鍵字類型建構一軟體知識分類架構。在最上層 以七層的領域類別為基礎,在其下有各領域類別的議題,各議題之下有 其解法,而技術論文又有運用的技術。依此分類架構,使用者能夠從分 類架構中找尋領域類別的介紹、找出類別下的議題、找出議題下的解 法,以及不同解法論文所使用的技術,此外將領域類別下也有書本知 識,對領域類別不熟的使用者可找尋合適的書籍閱讀。這個分類架構能 提供不同需求的使用者合適的知識,並將技術論文、技術報告及書本知 識整合在一有效率的分類系統中。

(4) 提出知識關聯性的符號表示法:

符號表示法能讓知識的描述標準化。定義關鍵字後再以符號表示法對知 識描述,則知識的解析、分類、儲存等工作都可自動化,提昇軟體知識 處理的效率。

(5) 實作此分類法的雛型知識庫系統:

本研究根據提出的軟體知識分類法實作一個雛型知識庫系統,讓知識庫 使用者能依其需求找尋合適的知識,證實「問題–解法」知識分類法的 可行性。

由於知識庫系統架構龐大複雜,限於時間與研究人力的關係,此知識分類方

法在實作上仍有許多可再加強的地方:

(1) 建構知識分享平台。

依此分類法可設計並建構知識分享平台,讓所有人於其上提供、分享、

收集、買賣知識,讓有價值的軟體知識也能有分享的管道,並將知識庫 的功能提昇至更高的層次。設計這種大型知識庫可能必須採用分散式系 統的架構設計,考慮負載平衡,並改善資料儲存架構,減少系統資源的 消耗,以提昇執行效率。

(2) 建構標準化的知識描述交換格式。

符號表示法雖然能對知識描述標準化,但並非一般電腦系統的標準資料 交換格式,若要達到跨知識庫整合的目標,則必須定義一套以 XML

(Extensible Markup Language)為基礎的規格,讓技術知識與書本知識 的基本資料、關鍵字表示法及其內容都能以此規格進行交換。

參考文獻

[1] P. Naur and B. Randell (eds), Software Engineering: A Report on a Conference sponsored by NATO Science Committee. NATO 1969

[2] 劉文謙,施向玨與鍾乾癸, “軟體知識管理," 第十三屆物件導向技術及應

[4] http://support.microsoft.com/default.aspx?scid=fh;ZH-TW;KBHOWTO [5] http://www.computer.org/publications/dlib/

[6] http://www.acm.org/dl/

[7] Bloom, B.S. (Ed.) Taxonomy of educational objectives: The classification of

educational goals: Handbook I, cognitive domain. New York ; Toronto: Longmans, Green. 1956

[8] Wynar, Bohdan S. Introduction to cataloging and classification. 8th edition. p.

320

[9] A. Aamodt, E. Plaza; Case-Based Reasoning: Foundational Issues,

Methodological Variations, and System Approaches. AI Communications. IOS Press, Vol. 7: 1, pp. 39-59. 1994

[10] D. Fensel. Ontologies: Silver Bullet for Knowledge Management and Electronic Commerce. Springer-Verlag

[11] I. Rus, et. Al., “Knowledge Management in Software Engineering: A State-of-the-Art-Report,” DACS Report, 2001

[12] Ikujiro Nonaka and Hirotaka Takeuchi, "The Knowledge-Creating Company : How Japanese Companies Create the Dynamics of Innovation", OXFORD UNIVERSITY PRESS, 1995

[13] http://www.oclc.org/dewey/about/

[14] J.C.M. Hanson. . The Subject Catalogs of the Library of Congress. Bulletin of

the American Library Association 3:385-97. 1909 [15] http://www.acm.org/class/

[16] http://dmoz.org/about.html

[17] Vernon, K., and Lang, Valerie. The London Classification of Business Studies: A Classification and Thesaurus for Business Libraries. London: London Graduate School of Business Studies, 1979

[18] Uniclass : Organization/Institution: Construction Project Information Committee.

RIBA Publications , 1997 [19] http://www.kmconnection.com/

[20] http://facetmap.com/browse.jsp [21] http://xfml.org

[22] Roger Schank: Dynamic memory: a theory of reminding and learning in computers and people. Cambridge University Press, 1982

[23] Veloso, M.M., Carbonell, J. Derivational analogy in PRODIGY. Machine Learning 10(3), pp.249-278. 1993

[24] Aamodt, A. & Plaza, E., Cased-Based Reasoning: Foundational Issues, Methodological Variations and System Approaches

[25] I. Becerra-Fernandez and D. Aha. Case-based problem solving for knowledge management systems. In Proceedings of the Twelfth Annual Florida Artificial Intelligence Research Symposium, pages 219-223, Menlo Park, 1999. AAAI [26] T. R. Gruber: A Translation Approach to Portable Ontology Specifications,

Knowledge Acquisition, 5:199—220, 1993.

[27] http://www.cogsci.princeton.edu/~wn/

[28] M.R. Genesereth and R.E. Fikes: Knowledge Interchange Format, Version 3.0, Reference Manual. Technical Report, Logic-92-1, Computer Science Dept., Stanford University, 1992. http://www.cs.umbc.edu/kse/

[29] T.R. Gruber: Towards Principles for the Design of Ontologies used for Knowledge Sharing, International Journal of Human-Computer Studies, 43:907-928, 1995.

[30] Dieter Fensel and Ian Horrocks and Frank van Harmelen and Deborah L.

McGuinness and Peter F. Patel-Schneider, OIL: An Ontology Infrastructure for the Semantic Web, IEEE Intelligent Systems, 2001, 16, 2.

[31] Fabrizio Sebastiani, Machine learning in automated text categorization, ACM Computing Surveys Volume 34, Issue 1(March 2002), pp. 1-47

[32] David F. Bacon, Susan L. Graham and Oliver J. Sharp, Compiler transformations for high-performance computing, ACM Computing Surveys Volume 26, Issue 4 (December 1994), pp. 345-420

[33] W. Meng, C. Yu, and K. Liu. Building efficient and effective metasearch engines.

ACM Computer Surveys, March 2002.

[34] J. Jing, A. Helal, A. Elmagarmid, "Client-Server Computing in Mobile Environments," ACM Computing Surveys Vol. 31, No. 2, pp. 117 - 157, June 1999.

[35] Steffen Heinz, Justin Zobel, Hugh E. Williams, “Burst Tries: A Fast, Efficient Data Structure for String Keys”, Transaction of Information System, Vol. 30, Issue 2

[36] H. Chang and S. S. Iyengar, `Efficient algorithms to globally balance a binary search tree', Commun. ACM, 27, (7), 695--702 (1984).

[37] S.L. Martins, M.G.C. Resende, C.C. Ribeiro and P. Pardalos. A parallel GRASP for the Steiner tree problem in graphs using a hybrid local search strategy, J. of Global Optimization, 17: 267-283, 2000.

[38] R. S. Pressman, Software Engineering, A Practitioner's Approach, European edition, McGraw-Hill, 1994.

[39] Richard Johnsonbaugh, Martin Kalin, Object-Oriented Programming in C++, Prentice Hall, 2000

[40] Hafedh Mili, Ali Mili, Sherif Yacoub, Edward Addy, Reuse Based Software Engineering: Techniques, Organizations, and Measurement, John Wiley & Sons Inc, 2002