资源描述
按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,Expert Systems sstseng,*,Chapter 9.The Design of Expert Systems,專家系統設計流程,1,Expert Systems sstseng,本章節提出一整體建立實際專家系統的指引,而不是研究用的雛型系統,為了建立一符合成本效益和有效率的專家系統,我們將討論一些軟體工程的方法論,2,Expert Systems sstseng,影響專家系統專案的因素,組織內部的影響,管理單位,決策者,使用單位,教育人事單位,軟體開發部門,組織外部的影響,:,客戶,供應商,協力廠商,政府主管機關,3,Expert Systems sstseng,4,Expert Systems sstseng,建置專家系統專案,選擇適當的範本,:,為什麼我們要建立專家系統,?,收益,:,收益是什麼,?,(,資金,效率,),工具,:,有哪些適合的工具可用來建立,此系統,?,(LISP,CLIPS,KEE,PCPLUS,),花費,:,這系統的建製將花費多少,?,如果沒有人使用,這系統將是無用的,5,Expert Systems sstseng,專案管理(,PROJECT MANAGEMENT),工作項目管理,Activity Management,產品設定管理,Product Configuration,Management,資源管理,Resource Management,規劃,排程,紀錄,分析,產品管理,變異管理,擷取資源,最小化資源瓶頸,分派需要的資源,預測資源需求,專案管理工作項目,6,Expert Systems sstseng,(3),資源管理,(Resource management),預測資源需求,擷取需求,指定最佳資源使用效率的回應,提供適當且必要的資源以縮小專案瓶頸,9,Expert Systems sstseng,Feasibility Study,(,可行性研究,),Rapid Prototype,(,快速雛形設計,),Refined System(,-test),(,調整修正系統,),Field Testable(,-test),(,導入領域測試,),Commercial Quality System,(,商用系統品質設定),Maintenance and Evolution,(,系統維護與演進,),文件研究比較來顯示此專案是可行的,快速地將想法、激起的熱忱和影響較高層的管理融合在一起,知識工程師和專家根據真實問題做專家系統的內部測試,由選定的使用者測試系統,而不是知識工程師或是專家,驗證和測試,使用者文件,訓練,透過電話或是電子郵件快速的做使用者支援,修正臭蟲,增進系統能力,專家系統發展階段,10,Expert Systems sstseng,可行性研究,11,Expert Systems sstseng,快速雛形設計,12,Expert Systems sstseng,商用品質設定,壓,力測試,類別,方法說明及範例,效果,大量運算,重複執行某項功能數萬次,驗證某些功能不會殘留一些額外的資訊於記憶體或硬碟暫存檔案之中,在數次執行後可能因為記憶體空間不足或是其他因素造成副作用。,大量運算,連續規則推論,72,小時,驗證某些功能不會殘留一些額外的資訊於記憶體或硬碟暫存檔案之中,在數次執行後可能因為記憶體空間不足或是其他因素造成副作用。,惡劣環境,將軟硬體系統置於高溫環境中,在長時間運作的系統中,高溫工作的情況偶爾會發生,可以測試在此環境中系統的表現。,惡劣環境,將軟硬體系統置於低溫環境中,檢查硬體系統是否有訊號不正常之情況發生。,不正常操作,在操作過程中突然關閉系統,檢查記憶體回復之情況是否如預期。,規則迴圈,(,例如,:,A-B,B-C,C-A,),,造成規則迴圈的特殊錯誤,。,檢驗系統是否針對此類邏輯錯誤具判斷能力。,13,Expert Systems sstseng,遞送問題,(The Delivery Problem),應該在早期開發過程中考慮,在標準硬體上執行,最好要考慮花費,考慮與其他程式的通訊和協調,14,Expert Systems sstseng,維護與演進,(Maintenance and Evolution),比傳統程式更複雜,必須要有系統化和有效率的方法從使用者收集問題回報,維護工作:,系統程式碼維護,系統功能維護,資料庫維護,15,Expert Systems sstseng,發展階段的錯誤,(Errors in Development Stages),專家的知識錯誤,語意錯誤,語法錯誤,推論引擎錯誤,推論鏈錯誤,忽略的限制錯誤,人類專家了解系統的知識範圍和效能優雅地忽略的邊降低,.,16,Expert Systems sstseng,Expert,專家,Knowledge Engineer,知識工程師,Knowledge Base,知識庫,Inference Engine,推論引擎,Inference Chain,推論鏈,專家的知識錯誤,例如不正確和不完整的知識,知識工程師和專家之間的語意錯誤,由專家那擷取出的知識不完整,表格語法錯誤,由於不正確、,不完整的知識,和不確定性的規則和事實所導致的內容錯誤,錯誤發生在推論引擎,和其他的專家系統工具軟體,由於不正確的規則優先權、規則的交互作用、和知識庫錯誤而導致的推論錯誤,由於不單調的推論而導致錯誤,圖,6-3,專家系統主要的錯誤和起因,17,Expert Systems sstseng,軟體工程和專家系統,軟體工程,產品,問題,高花費的發展過程,多樣性的發展過程,程式設計師缺乏生產力,文件,計畫、需求、和設計,軟體生命週期,高花費的發展過程,容易維護和可精進的,良好的文件,排程,報告,準時,有成本效益的,目標,圖,6-4,軟體工程的方法論,18,Expert Systems sstseng,資料庫系統與專家系統的關係,19,Expert Systems sstseng,傳統軟體專案概念,20,Expert Systems sstseng,知識工程概念,問題,(problem)=,資料,(data)+,未知資訊,(unknown information),21,Expert Systems sstseng,專家系統專案與知識工程之間關係概念,22,Expert Systems sstseng,部分專家系統軟體品質的評量,給定正確輸入而有正確輸出,給定正確輸入而有完整的輸出,給定相同的輸入而有一致的輸出,穩定,且不會常因為臭蟲而當機,對使用者是合用的且最好是容易使用地,可維護的,可增進的,經過驗證去證明系統滿足使用者的需求,經過測試後證明正確性和完整性,有效率的,23,Expert Systems sstseng,可重複使用的程式碼用在其他的應用程式,容易移轉到其他的硬體,/,軟體環境,容易與其他軟體連接,容易理解的程式碼,精確的,優雅的在知識的邊緣降低,可以嵌入其他語言的能力,驗證知識庫,解釋機制,24,Expert Systems sstseng,1.,維護成本,(Maintenance Costs),一般軟體,(Conventional software),-60 80%,的軟體花費,-,二到四倍原本的開發花費,專家系統,(Expert systems),-,可能更糟,2.,瀑布模型,(Waterfall Model),一個傳統軟體開發的生命週期模型,圖,6-5,下一歩要完成什麼,?,下一階段要花多少時間完成,?,專家系統的生命週期,25,Expert Systems sstseng,圖,6-5,軟體生命週期的瀑布模型,系統可行性,確認,軟體規劃及需求,確認,確認,確認,單元測試,產品驗證,系統測試,重新確認,使用及維護,實施,整合,發展,產品設計,細部設計,生命週期,-,瀑布概念,26,Expert Systems sstseng,3.Code-and-Fix,模型,比瀑布模型更實際,不需要事先知道所有的資訊,4.Incremental,模型,瀑布模型的改良,Top-down,方法,容易測試,、,證實和驗證,一個延伸整個開發過程的連續性快速雛型方法,建立雛型系統,決定需求,完成系統建制,27,Expert Systems sstseng,助手等級,同事等級,專家等級,規則,規則,規則,主要的增加,單一規則,:,大量的增加,最初的雛型,次要的增加,次要的增加,次要的增加,28,Expert Systems sstseng,5.,螺旋模型,(Spiral Model),規劃,需求,設計,證實,評價專家系統,測試,驗證,整合,知識擷取,驗證,程式撰寫,驗證,測試,圖,6-6,一個專家系統開發過程的螺旋模型,29,Expert Systems sstseng,一個詳細的生命週期模型,線性模型在圖,6-7,包含從規劃到系統評估的步驟,描述在系統開發過程中哪些點的功能將被評估,驗證和證實步驟可以在開發過程中平行處理,重要的是根據相同的步驟程序來維護專家系統的品質,30,Expert Systems sstseng,規劃,知識定義,知識設計,程式開發,和,完成系統,知識驗證,系統評估,來源定義和選擇,擷取分析和 抽取,定義,詳細的設計,正規測試,測試分析,圖,6-7,專家系統開發生命週期的線性模型,工作規劃,知識檢閱,初步的資料檢閱,知識系統資料檢閱,測試稽核檢閱,最終檢閱,知識底線,設計底線,產品底線,31,Expert Systems sstseng,1.,問題分析,,,定義及工作規劃,(,Planning),產生正規的工作規劃,一些文件集用來導引和評估開發流程,表,6-2,32,Expert Systems sstseng,工作項目,目標,可行性評估,(Feasibility assessment),決定是否值得去建立此系統,,,且是否要導入專家系統技術,資源管理,(Resource management),估計所需的人員、時間、資金、軟體、和硬體等資源,。,如何取得和管理這些資源?,工作項目,(,Task phasing),決定開發步驟中的工作項目和其順序,工作進度,(Schedules),決定工作項目的開始和完成日期,功能規劃,(Preliminary functional layout),根據所決定此系統的高階功能,定義什麼是此系統該完成的,。,此工作決定此系統的目的,進階功能,(High-level requirements),用高階的名詞來描述這些系統的功能如何達成,33,Expert Systems sstseng,動機與問題確認,資料導向,(Data driven),由下而上專案,(Bottom-up project),資料純化,(Data cleansing),資料轉換,(Data transformation),圖,6-13,目標導向,(Goal driven),由上而下專案,(Top-down project),兩階段,第一階段,:,列出所有可能目標,(possible target list),第二階段,:,針對所有列出之目標架構階層關係,建立目,標階層,(Targets hierarchy),34,Expert Systems sstseng,資料導向的問題確認流程,35,Expert Systems sstseng,可行性評估,定性分析,需求,資源、知識來源、支援人力,風險,問題難易度如何?,知識是否容易取得?,專案人員能力是否足夠?,發展之技術原理是否合理?,技術是否容易維護?,定量分析,成本效益,36,Expert Systems sstseng,專家系統專案計劃書,計劃書項目,內容說明,專案名稱,淺顯扼要的將整個專案欲解決的問題及解決方式說明。,執行時間,專案執行的時間規劃,包括資料蒐集整理、研究發展、系統建置、文件編撰、系統維護計劃擬定等時間。,專案摘要,概要的說明整個專案的目的及預計達成的成果,一般建議以兩百字到五百字左右的長度撰寫專案摘要。,執行團隊/配合人員,說明整個專案在進行中,執行團隊的名單及相關單位需要配合的人力。,計劃內容,欲解決的問題說明,知識來源與規劃,專家系統知識的來源是專案的關鍵,如何規劃知識的來源,整理資料庫現有的資料特性及搭配領域專家的協助,以縮短建制知識庫的時間與減少可能的困難。,導入技術背景及技術關聯說明,說明預定導入的相關技術背景,此技術與組織原有技術之間的關聯,及未來新技術導入時的利基等詳細說明,以利技術團隊更清楚知道專案的技術里程碑。,預期效益,除了技術上的導入效益之外,對於使用單位產生的預期效益也是重要的評估資料。,預期產出產品,在預期效益之中特別可以釐清的產品列表。,工時及採購清單,預定支援的人力成本,預定採購品名清單。,時程預估,將每項技術研讀/研究/導入及預定產出成果或產品的時間說明清楚,並依據資料蒐集整理、研究發展、系統建置、文件編撰、系統維護計劃擬定等項目訂定查核時間點,(Check point)。,37,Expert Systems sstseng,2.,知識定義,擷取及技術評估,(Knowledge Definition),定義專家系統所需的知識,包含兩個工作,定義知識來源,知識的選擇,(,表,6-2),知識擷取,分析和抽取,(,表,6-3),例如,Repertory Grids,38,Expert Systems sstseng,工作項目,目的,來源確認,不考慮可利用性,誰或是什麼是知識來源?,來源的重要性,根據開發過程的重要性來界定來源知識的優先順序,來源的可利用性,依照可利用性的順序列出知識來源,。,書和其他文件一般說來比人類專家更容易取得,來源選擇,根據重要性和 可利用性選擇知識來源,表,6-3,知識來源確認和選擇工作,39,Expert Systems sstseng,工作項目,目的,擷取策略,指出用何種方法擷取出知識,例如專家面談、閱讀文件、規則歸納、知識表格等等,知識元素確認,挑選出特定且對於此生命週期有用的知識,知識分類系統,藉由開法者去分類和組織知識以幫助驗證和了解知識,。,採用階層化的群組,詳細的功能規劃,詳細指出此系統的功能能力;這比較屬於技術層面而初步的功能規劃比較屬於管理層面,初步的流程控制,描述此專家系統在一般情形下如何被執行。階段會對應到那些在群組裡面被活化或抑制的邏輯規則來控制執行流程,40,Expert Systems sstseng,初步的使用者手冊,從使用者的角度來描述系統。這個部分總是容易被忽略,但卻是相當重要的部分。為了越快速得到一些回饋,與使用者互動是相當重要的。如果他們不使用此系統,這系統便是沒有價值的,需求規格,仔細地定義出這系統被預期要做的事情。此專家系統將根據這些需求被驗證,知識底線,為系統的知識設限。任何改變必須透過正式的改變請求。高階的知識現在已經是何下一步驟的知識設計,表,6-4,知識擷取、分析和抽取工作,3.,系統分析及技術選定,41,Expert Systems sstseng,4.,系統設計及發展,(,Knowledge Design),為了產生詳細的專家系統設計,兩個主要的工作,:,知識定義,(,表,6-5),詳細的設計,(,表,6-6),例如,CLIPS,內部的事實結構,(,在表,6-5),不是很有意義,(price 10),好一點,(gold price 10),不錯,42,Expert Systems sstseng,工作項目,目的,知識表達,指出知識要如何表達,例如規則、框架、或是邏輯。主要是依據所選用專家系統工具是否支援,詳細的控制結構,指出三種一般性的流程控制。,(1),假如系統內嵌有程序碼,這些程序碼如何被呼叫;,(2),控制相關的規則群組在一個執行中的系統,;(3),對規則的高層控制結構,內部的事實結構,用一種一致性的方法指出內部的事實結構來幫助了解,初步的使用者介面,規劃出初步的使用者介面,。,由使用者那獲得有關介面的回饋,初步的測試規劃,指出程式碼將如何被測試,。,定義測試資料,、,驅動測試,,,以及測試的結果如何被分析,表,6-5,知識定義工作,43,Expert Systems sstseng,工作項目,目的,設計結構,指出知識如何合理地被組織在知識庫中以及知識庫中含有什麼,實作策略,指出系統該如何被實作,詳細的使用者介面,當收到關於初步的使用者介面設計的回饋後,規劃出詳細的使用者介面,設計規格和報告,將設計過程文件化,詳細的測試規劃,詳細指出程式碼如何被測試及驗證,表,6-6,詳細的知識設計工作,44,Expert Systems sstseng,5.,系統開發,測試及客戶導入,(Code and Checkout,),開始實際的程式實作,表,6-7,終止在,“test”readiness review”,去決定是否該專家系統已經準備好做下一個階段的知識驗證,45,Expert Systems sstseng,工作項目,目的,程式撰寫,實作程式,測試,使用測試資料,、,驅動測試,、,和測試分析程序來測試程式碼,列出程式碼,產生包含註解,,,文件化的程式碼,使用者手冊,產生使用者手冊,如此專家和使用者可以有一些回饋意見對於此系統,安裝/操作手冊,撰寫系統的安裝/操作手冊,系統說明文件,撰寫整體專家系統的功能、限制、問題等相關文件,表,6-7,程式碼和時間點工作,46,Expert Systems sstseng,6.,知識驗證,(Knowledge Verification),測定系統的正確性、完整性和一致性,兩個主要的工作,:,正規測試,(,表,6-8),尋找,不正確的答案,不完整的答案,不一致的答案,測試分析,(,表,6-9),47,Expert Systems sstseng,工作項目,目的,測試程序,實行正規測試程序,測試報告,將測試結果文件化,工作項目,目的,結果評估,分析測試結果,建議,撰寫建議和測試結論的相關文件,表,6-8,知識驗證步驟的正規測試工作,表,6-9,測試分析工作,48,Expert Systems sstseng,7.,系統評估,(System Evaluation),總結如何根據建議作系統的改進和改正,表,6-10,假如有新的知識要加入,系統的驗證必須包含所有的知識一起執行(包刮之前的和新加入的知識),49,Expert Systems sstseng,系統文件撰寫及整理,文件摘要,文件修改歷史紀錄,專家訪談紀錄,快速雛形發展版本控管,程式原始碼及註解,系統修正紀錄,測試紀錄,專案執行紀錄與計劃書之差異比較,參考文獻及資料出處,索引,50,Expert Systems sstseng,系統維護,51,Expert Systems sstseng,
展开阅读全文