亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

SWEBOK的軟件工程知識分類模型及算法

時間:2023-03-03 18:35:41 碩士畢業(yè)論文 我要投稿
  • 相關推薦

SWEBOK的軟件工程知識分類模型及算法

  摘要:軟件組織內部智慧資產的有效組織和管理一直是一個懸而未決的問題。將文本分類技術引入到軟件工程知識分類領域,首先綜合分析了軟件工程領域知識的基本類型和特性:之后依據這些特性結合軟件工程知識體系(SWEBOK:Software Engineering Body of Knowledge),提出了一個軟件工程知識的分類模型和算法;最后通過實驗驗證了提出的模型和算法的有效性。實驗結果表明,該模型和算法具有良好的分類性能,為軟件工程知識的有效分類提供了一種途徑。
  關鍵詞:軟件工程知識體系;知識分類;軟件工程;文本分類;分類算法
  引言
  軟件的開發(fā)是人類有史以來最為復雜的知識高密集活動之一,其最終的輸出產品只是IT知識和應用領域知識的高度凝聚,更多的個人技能、應用解決方案、最佳實踐、經驗和教訓、設計模式等相關知識都滅于軟件開發(fā)過程中,或者隱藏和散落在冗長、雜亂的(電子)文檔和數(shù)據庫中。如何促使這些隱藏著的知識顯性化?如何合理地組織和有效地管理這些智慧資產來形成一個企業(yè)內部的智慧資產庫以供將來重用?這些一直是軟件工程中的知識管理所關注的重點12J。
  就軟件工程領域來說,與之相關的研究已經持續(xù)了10多年,已有的工作可以總結為以下幾個方面(1)基于人工智能的專家系統(tǒng);(2)基于過程經驗的軟件工程知識庫,如CBR、BORE和經驗工廠(Experience Factory)等:(3)與單項軟件開發(fā)活動相結合的知識獲取工具等。這些研究從不同層面、不同程度上解決了上述問題。然而仍有以下幾點需要深入探討:(1)缺乏有效的手段來對軟件組織相關智慧資產進行有效地、合理地組織和分類;(2)完整性問題:未能對軟件工程知識進行全面地分析和覆蓋:(3)相關自動化支持工具的缺乏。
  要實現(xiàn)軟件工程領域知識的有效組織和管理,其核心點之一就是要有一個骨干分類體系(Backbone Taxonomy)以作為相關知識組織和分類的基本依據,而事實上這個骨干分類體系目前已經存在,這就是軟件工程知識體系(SWEBOK-Software Engineering Body of Knowledge)。它由IEEE.CS和ACM發(fā)起并聯(lián)合全球軟件工程專家而制定,目前已成為國際標準(ISO/IEC TR 19759)。SWEBOK將軟件工程分為11個知識域,每個知識域再細分為若干知識子域,以此類推共形成四級的骨干分類樹。它共涵蓋178個分類標識,數(shù)萬條軟件工程領域術語。但迄今為止,卻鮮見將其應用到知識分類的相關報導。
  本文旨在利用SwEBOK作為骨干分類體系,結合文本分類技術,研究軟件工程相關智慧資產的有效組織和分類問題。首先概括了軟件工程的領域知識的基本類型,并對其特性進行了分析;之后結合SWEBOK和文本分類技術,提出了一個軟件工程知識的分類模型;最后給出了分類算法并對其分類性能的驗證。
  1軟件工程領域知識的基本類型及其特性理論上,~切在軟件開發(fā)過程中用到和產生的知識都可以被歸結為軟件工程知識。盡管其表現(xiàn)形式多種多樣,但基本上可以歸結為三類:(1)過程經驗(Process Experiences),軟件開發(fā)的整體過程即是~種實踐案例知識(Practice Case):
  (2)個人技能(Personal Skills),留存在軟件組織成員的頭腦之中;(3)軟件工程的知識$,]品(Knowledge Artifacts),表現(xiàn)形式是一些顯性化的文檔。
  1.1過程經驗記錄軟件開發(fā)的過程經驗是必要的,一個不能吸取過去失敗教訓的團隊勢必要犯同樣的錯誤;一個不能重用過去成功經驗的組織則會重復地發(fā)明輪子?疾燔浖^程經驗,其主要特性包括:(1)依賴性:高度依賴于特定的軟件項目;(2)不規(guī)范性:很難找到一個共用的模型適用于所有的軟件項目;(3)重用性:相似的軟件項目,其過程經驗可以高度的重用?。
  依據上述特性,可以使用下述方法捕獲之:(1)綜合參照CMMI、RUP等軟件過程模型制定一個通用模板;(2)將每一新的軟件項目生成為此模板的一個實例。
  1.2個人技能軟件組織成員的個人技能是軟件組織最為寶貴的財富,軟件的開發(fā)歸根結底就是相關人員個人技能的綜合應用。它的主要特性包括:(1)隱性:所有的個人技能都隱藏在組織成員的頭腦中,不易捕獲;(2)高價值性:組織成員的知識水平直接決定了軟件產品的質量;(3)不穩(wěn)定性:隨著組織成員的離開,此智慧資產也會隨之流失。正是這些特性使得個人技能顯性化和有效捕獲成為最為棘手的問題之一。
  對個人技能的捕獲方式等同于過程經驗:(1)制定一個人技能描述模板;(2)將每一組織成員的個人技能生成為此模板的一個實例。
  1.3知識制品軟件開發(fā)過程中產生的各種以電子方式存在的模型、圖表、文檔、代碼、方案以及組織內部的圖書等等各種文本文檔皆可被視作知識制品。它們是組織中最為直接、最易管理的智慧資產,因為它們已經被顯性化了。對其處理方式,我們直接以文本形式進行表示。
  2基于SwEBoK的軟件工程知識分類模型
  2.1 SWEBOK作為骨干樹的分類體系知識分類的一個重要檢驗標準就是其分類體系中類別標識的共識性和共享性,因為如果分出一個大家都不認同的類還不如不分類。由于SWEBOK的概念體系經過了全球軟件工程專家lO多年的反復校驗和核準,以其作為骨干分類體系具有廣泛的共享性和共識性。其前兩級的分類體系如圖l所示。
  2.2軟件工程知識分類模型知識分類是知識管理領域最為重要的研究內容之一,它可以被看作是分類技術在知識管理研究領域的應用和深化?梢钥吹结槍Σ煌愋偷能浖こ讨R,它們遵循不同的分類過程。對于過程經驗和個人技能,經過知識表示之后,它們直接被歸入SWEBOK骨干分類體系的某一類別下。而知識制品則遵循著預處理、特征選擇和分類器分類的一般過程。首先要將待分類的知識制品進行預處理,從而生成特征向量的集合;特征選擇算法則對特征向量的全集進行降維處理,從而得到較小規(guī)模的特征向量子集;最后,分類器根據降維后的特征子集,將知識制品歸入到SWEBOK骨干分類體系的某一類別下。此分類模型可被分解為以下四個部分:
  SWEBOK骨干分類樹:依據SWEBOK 2004(Iron)版所提供的178個具有分類繼承關系(Hierarchical)的軟件工程概念術語,組織形成一個骨干分類樹,作為領域知識最終歸屬類別的基本框架。此外,軟件組織還可以根據自身的具體情況對此骨干分類樹進行靈活的定制。
  待分類知識源:如第1節(jié)所述,軟件工程領域知識總體上可被分為三個基本類型,不同類型的知識會有不同的處理模式(見2.3節(jié))。
  訓練集:用以對分類器進行訓練以提高其學習能力,訓練集的選擇對分類器的分類效果有著重要的影響(具體訓練集的選擇見第4節(jié))。
  知識分類過程:包括訓練過程(圖2中虛線所示)和應用過程(圖2中實線所示),詳見2.3節(jié)。
  2.3三種類型知識的分類方式就過程經驗和個人技能來說,由于其在知識表示的過程中已經以結構化的方式得以組織,因而它們的分類方式較為簡單。定義E={月,...,P}為過程經驗的全集,其中刀=搗,磊?..量)∈E為一具體的項目實例,5為一項目實例中的具體信息,如:項目名稱、項目經理、活動名稱、流程信息和體系結構等。
  那么過程經驗的分類算法(1)為:
  f:E-'巳(1)其中c疊為SWEBOK骨干分類體系中一固定的類別一過程經驗類,亦即:將過程經驗直接映射到分類體系中。
  個人技能的處理方式與過程經驗等同。
  最為復雜也是最為核心的是知識制品的分類,其處理方法我們采用文本分類技術,總體上分為訓練過程和應用過程。在訓練過程中,訓練集經過預處理被表示成特征向量,特征向量經過降維(本文采用特征選擇的方式)后被分類器處理,完成一個訓練的周期。而在應用過程中,文本經過預處理生成的特征向量直接被分類器處理。分類器將其與訓練過程得到的類別模式逐一比較,依據分類算法計算出文本最終所屬的類別。
  3知識分類算法3.1預處理計算機能夠自動分類的前提是待分類文本已經被表示成可被計算的數(shù)據。向量空間模型(VSM)是使用較多且效果較好的表示方法之--[51,在該模型中,一個文本d被看作是由一組正交向量組成的向量空間:
  y(田={(^,Ⅵ),...,(,%)},其中(巧,M)表示一個特征^的二元組,w表示此特征在文本d中的權重。特征tl可以是字、詞或者其組合,但目前普遍認為詞作為特征項要優(yōu)于字和詞組。由于一個特征向量對應著高維空間中的一個點,因而上式又可以簡化為:y(d)={wj,...,%)對于知識制品的表示,我們也采用VSM方法,但在其被表示成空間向量之前,還要進行一些預處理,如去掉一些低頻詞、去掉停llZii-](Stop word)、去掉一些標記信息(如網頁標簽)等。由于中文文本的特殊性,還要進行分詞,我們采用北航軟件所開發(fā)的中文分詞系統(tǒng)BUAASEISEGt61,它在穩(wěn)定性和新詞識別能力上具有一定的優(yōu)勢。
  特征的權重Ⅵ計算方法主要運用TF*IDF公式,目前存在多種TF*IDF公式,本文采用了一種比較普遍的TF*DF[71算法(2): 即力=磚蒜器。
  3.2基于互信息的特征選擇經過預處理后的知識制品,其特征向量的維數(shù)依然很高(動輒數(shù)十萬),需要在盡量不損失分類信息的情況下生成一個新的低維向量,這個過程稱作降維。常用的降維方法有特征選擇和特征抽取,由于特征選擇的計算復雜性較低,因而被大量的采用。
  常用的特征選擇方法有:文檔頻率(DocumentFrequency)、互信息(Mutual Information)、Chi平方(f),信息增益(1G:Information Gain)等。Yang等人對各種特征選擇算法進行了廣泛的研究,結果發(fā)現(xiàn)f和信息增益方法相較于其他方法,其特擇效果最優(yōu)用。在本文的研究中,我們采用信息增益方法來進行降維,它實際上反映的是特征在文本中出現(xiàn)與否能為確定當前文檔所屬類別做出的貢獻值。其算法(3)具體描述如下:
  輸入:文本的特征向量r(d);分類體系c:
  輸出:降維后的特征向量r(d);步驟:
  1)按如下公式計算每個特征向量的信息增益值:
  G(f)=一Σ:,P(c。)Ioge(cJ)+P(f)Σ:.£(c,It)logP,(c,I,)+只(了)Σ:.P[T)logP,(c,li) (3)其中:只Q)表示一篇文本屬于類別cj概率;eat)標識特征項t在一篇文本中出現(xiàn)的概率;e∽標識特征項t不在一篇文本中出現(xiàn)的概率;P(c。If)表示特征項t在屬于類別白的文本中出現(xiàn)的概率;只(q I丁)表示特征項t在屬于類別島的文本中出現(xiàn)的概率。
  2)將文本特征按照式(3)計算出的信息增益值由大到小排列,取其前K個特征向量構成最終的特征空間,這樣就達到了降維的目的,其維數(shù)為K。
  3.3基于k-NN的分類算法基于機器學習的分類算法目前已有數(shù)十種,而以Rocchio、KNN和SVM性能最為突出I習。Yang等人對這些算法進行了全面的比較,結果表明KNN和SVM算法無論是分類性能還是算法的健牡性、可擴展性都較其他算法有顯著的優(yōu)j判51。我們采用KNN算法來構建軟件工程領域知識的分類器。
  rA7N(K Nearest Neighbor)算法的基本思路是:在給定新的文本后,考慮在訓練集中與該新文本距離最近(最相似)的K篇文本,根據這K篇文本所屬的類別判定新文本所屬的類別,具體的算法(4)描述如下:
  輸入:訓練集出分類體系C;待分類的文本集d;輸出:待分類文本的類別;步驟:
  1)對待分類的文本進行預處理,并使用式(2)計算其權重,得到待分類文本的向量表示V(d7);2)在訓練文本集中選出與新文本最相似的K個文本,計算公式為:
  Sim(d.,d』)=Σ既x%其中,K值的確定目前沒有很好的方法,一般采用先定一個初始值,然后根據實驗測試的結果調整K值,一般初始值定為幾百到幾千之問。3)在新文本的K個鄰居中,依次計算每類的權重,計算公式如下:
  p(j,G)2藝Sim(i,4)y(4,c:) (5)af扣州其中,i為新文本的特征向量,Sire(,2,i)為相似度計算公式,與(4)式相同。而y窿,£)為類別屬性函數(shù),即。如果黿屬于類G,那么函數(shù)值為l,否則為0。
  4)比較類的權重,將文本分到權重最大的那個類別中。
  4實驗結果我們對本文提出的知識分類算法進行了實驗驗證,選用的數(shù)據集包括:(1)用手工方式創(chuàng)建的數(shù)10項過程經驗和個人技能;(2)SWEBOK中所給出的169篇參考文獻、NASAC2004(全國軟件與應用學術會議)的197篇論文以及從美國CMU大學提供了935篇計算機科研論文數(shù)據,算法性能的評價則采用精確度和召回率以及結合兩者的FlMeasure。
  對于訓練集和測試集的選擇,其方法如下:將這些數(shù)據集按照所屬類別進行手工分類,然后平均分成十份,選擇其中九份作為訓練集,選擇其中一份作為測試集。運行分類算法,共執(zhí)行10次分類操作,計算其平均值,實驗結果如表1所示。
  知識類型準確率召劇率FI度量過程經驗100% 100% 100%個人技能100% 100% 100%知識制品879%8208%84.38%觀察表1的結果數(shù)據,我們可以發(fā)現(xiàn)過程經驗和個人技能的分類準確率、召回率和F1度量值都很高(皆為100%)。
  通過定性分析我們可以得知產生這種現(xiàn)象的原因:這兩種類型的軟件工程知識皆采用了直接映射的分類算法。輸出很好的分類效果是必然的。對于知識制品來說,它的F1度量值也超過了84%.這表明以SWEBOK為骨干分類樹來進行軟件工程知識的組織和分類是可行,旦采用文本分類算法進行知識制品的分類也是行之有效的。
  5結論
  軟件組織內部智慧資產的有效組織和管理仍舊是一個開放的課題,就目前來看尚未有一個銀彈(Silver Bullet)以解決這個問題。本文的創(chuàng)新之處就在于將文本分類技術引入到軟件工程領域。以SWEBOK作為骨干分類體系,為軟件工程知識的自動分類提供了一種新的解決途徑,并通過實驗驗證了所提出的模型和算法的有效性。
  事實上,文本分類的技術和方法是通用的,本文提出的模型和算法也是通用的,如果我們將SWEBOK骨干分類體系換作其他領域的分類體系,將過程經驗模板和個人經驗模板換作其他模板,則可以構造一個面向其他領域的知識分類器。
  就軟件組織來說,其內部智慧資產的規(guī)模遠沒有Web上的資源那樣巨大。但是它對分類的準確率和召回率的要求卻非常高。就目前來說,改進算法仍然是提高分類準確率和召回率的最為有效的途徑。因此,我們下一步的工作就是通過引入更為綜合的特征賦權函數(shù)、改進特征選擇算法和通過對領域知識的運用以改進分類算法等,來迸~步提高其分類的性能。此外,在更大規(guī)模知識集上的訓練和測試也是我們努力的方向。

SWEBOK的軟件工程知識分類模型及算法

【SWEBOK的軟件工程知識分類模型及算法】相關文章:

審計風險模型的演進及應用08-26

食油采購加工模型05-11

Home.Net模型/架構研究06-01

壓縮遞增年資的數(shù)量模型與分析06-07

數(shù)據關聯(lián)算法綜述及其性能評估05-05

數(shù)學模型方面的論文(精選6篇)05-16

公交車調度問題的數(shù)學模型05-11

企業(yè)績效管理綜合模型及應用分析05-02

公路交通事故MIMR救援模型05-11

“智豬博弈”模型對員工激勵機制的啟示論文04-13