天天看點

ospaf-開源項目成熟度分析工具

ospaf-開源項目成熟度分析工具

1.概述

   軟體成熟度評估的最終目标是幫助軟體的可持續發展,并為使用者應用提供必要的技術參考。開放源代碼軟體成熟度評估也不例外。我們通過軟體的成熟度評估,形成全面的涉及技術、應用、法律等層面的評價報告,幫助那些正在或潛在的開源軟體使用者準确的了解軟體的技術特性和應用特性,進而為他們選擇适合自身需求的開源軟體提供參考。同時報告中涉及的大量評測資料,為開源軟體的開發者提供幫助,促進他們有效的改善軟體在技術方面和使用方面的品質,使軟體不斷成熟和可持續的發展。

   開放源代碼軟體由于開發模式和運作模式的獨特性,其軟體帶有鮮明的特點。開放源碼軟體成熟度評估的方法需要我們在實踐中不斷的探索。我們将提出一些基本的原則和方法,并建立我們自己的評估體系和計算模型。

2.項目分析

      2.1 項目簡介

   Ospaf(open source project analyze framework)項目的發起是作為 CSDN 舉辦的 summer code 的項目之一。Ospaf 工具的主要功能是可以通過采集開源項目的相關資料,通過機器學習的算法建立開源項目成熟度評估模型,進而實作對于開源項目的評估。

      2.2 資料來源

    目前世界上最火的項目托管網站是 github,ospaf 采用github 作為入手點。通過讀取 Ghtorrent 和 github-api 采集資料。同時 ohloh 也對開源項目進行分析并開放資料,ospaf 的部分資料采集自 ohloh。

      2.3 資料挖掘

         2.3.1 特征值的提取

    Ospaf 項目的特征主要包括三個方面,分别是原始特征、衍生特征、抽象特征。

    原始特征包含一些 github-api 提供的參數,例如項目的star 數量和 fork 數量等。

    衍生特征包括對原始特征進行處理産生的特征,比如提取任意相鄰兩個月的 star 數量的增長數做比值,可以得到star 的增長率作為特征。

    抽象特征分為以下幾種類型。第一種,通過提取項目commit 語句中的高頻詞彙(包含 revert、update 等)作為特征。第二種,計算開源項目 contributor 中star-contributor 的比重。第三種,分析郵件清單等資料。

        2.3.2 模型的建立

    Ospaf 項目模型的建立主要是通過機器學習算法來實作。第一步,去除噪音将資料庫中的資料按照高斯去噪法,将噪聲資料去除。第二步,歸一化處理因為建立模型用到了回歸算法,為了減小不同量綱特征對結果的影響,對所有特征進行歸一化處理。第三步,聚類産生目标序列将公認的比較成熟的開源項目的資料導入訓練集并聚類分析,生成目标序列。第四步,利用邏輯回歸生成數學模型利用邏輯回歸算法,對訓練集進行訓練,生成最終的數學模型。

    2.4 項目創新點

   (1)以大資料為背景,利用機器學習算法進行開源項目評估的模組化。目前,對開源項目的評估一般都是基于 KQI 名額的使用者評價,例如 Ospaf 這種利用 KPI 名額進行數學模組化評估的案例仍不多見。

   (2)特征的多樣性,之前對一個開源項目的評價可能隻是簡單地利用 star 數或是使用者打分的方式。Ospaf 在這些特征的基礎上,更添加了一些抽象特征,比如跟時間序列有關的一些增長率特征,使用者 commits 語句中提取的特征

   (3)可以根據使用者的需求進行評測。因為各個特征都是獨立的,是以可以通過改變特征的權重來對項目進行評測。比如使用者 A 需要使用者關注度高的項目,那麼就可以相應的提高使用者關注度方面的特征的權重。

3.項目流程圖

ospaf-開源項目成熟度分析工具

項目位址:

/********************************

* 本文來自部落格  “李博Garvin“

******************************************/

繼續閱讀