ospaf-開源專案成熟度分析工具

李博Garvin發表於2014-09-05


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.專案流程圖


 



專案地址:

 csdn託管:https://code.csdn.net/davidmain/ospaf

 github託管:https://github.com/ospaf/ospaf-primary  (跪求star)


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

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

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

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



相關文章