ospaf-开源项目成熟度分析工具
1.概述
? ?軟件成熟度評(píng)估的最終目標(biāo)是幫助軟件的可持續(xù)發(fā)展,并為用戶應(yīng)用提供必要的技術(shù)參考。開放源代碼軟件成熟度評(píng)估也不例外。我們通過軟件的成熟度評(píng)估,形成全面的涉及技術(shù)、應(yīng)用、法律等層面的評(píng)價(jià)報(bào)告,幫助那些正在或潛在的開源軟件使用者準(zhǔn)確的了解軟件的技術(shù)特性和應(yīng)用特性,從而為他們選擇適合自身需求的開源軟件提供參考。同時(shí)報(bào)告中涉及的大量評(píng)測(cè)數(shù)據(jù),為開源軟件的開發(fā)者提供幫助,促進(jìn)他們有效的改善軟件在技術(shù)方面和使用方面的質(zhì)量,使軟件不斷成熟和可持續(xù)的發(fā)展。
? ?開放源代碼軟件由于開發(fā)模式和運(yùn)作模式的獨(dú)特性,其軟件帶有鮮明的特點(diǎn)。開放源碼軟件成熟度評(píng)估的方法需要我們?cè)趯?shí)踐中不斷的探索。我們將提出一些基本的原則和方法,并建立我們自己的評(píng)估體系和計(jì)算模型。
2.項(xiàng)目分析
? ? ?
? ? ? 2.1 項(xiàng)目簡介
? ?Ospaf(open source project analyze framework)項(xiàng)目的發(fā)起是作為 CSDN 舉辦的 summer code 的項(xiàng)目之一。Ospaf 工具的主要功能是可以通過采集開源項(xiàng)目的相關(guān)數(shù)據(jù),通過機(jī)器學(xué)習(xí)的算法建立開源項(xiàng)目成熟度評(píng)估模型,從而實(shí)現(xiàn)對(duì)于開源項(xiàng)目的評(píng)估。
? ??
? ? ? 2.2 數(shù)據(jù)來源
? ? 目前世界上最火的項(xiàng)目托管網(wǎng)站是 github,ospaf 采用github 作為入手點(diǎn)。通過讀取 Ghtorrent 和 github-api 采集數(shù)據(jù)。同時(shí) ohloh 也對(duì)開源項(xiàng)目進(jìn)行分析并開放數(shù)據(jù),ospaf 的部分?jǐn)?shù)據(jù)采集自 ohloh。
??
? ? ? 2.3 數(shù)據(jù)挖掘
? ? ? ??
? ? ? ? ?2.3.1 特征值的提取
? ?
? ? Ospaf 項(xiàng)目的特征主要包括三個(gè)方面,分別是原始特征、衍生特征、抽象特征。
? ? 原始特征包含一些 github-api 提供的參數(shù),例如項(xiàng)目的star 數(shù)量和 fork 數(shù)量等。
? ? 衍生特征包括對(duì)原始特征進(jìn)行處理產(chǎn)生的特征,比如提取任意相鄰兩個(gè)月的 star 數(shù)量的增長數(shù)做比值,可以得到star 的增長率作為特征。
? ? 抽象特征分為以下幾種類型。第一種,通過提取項(xiàng)目commit 語句中的高頻詞匯(包含 revert、update 等)作為特征。第二種,計(jì)算開源項(xiàng)目 contributor 中star-contributor 的比重。第三種,分析郵件列表等數(shù)據(jù)。
? ? ? ?
? ? ? ? 2.3.2 模型的建立
??
? ? Ospaf 項(xiàng)目模型的建立主要是通過機(jī)器學(xué)習(xí)算法來實(shí)現(xiàn)。第一步,去除噪音將數(shù)據(jù)庫中的數(shù)據(jù)按照高斯去噪法,將噪聲數(shù)據(jù)去除。第二步,歸一化處理因?yàn)榻⒛P陀玫搅嘶貧w算法,為了減小不同量綱特征對(duì)結(jié)果的影響,對(duì)所有特征進(jìn)行歸一化處理。第三步,聚類產(chǎn)生目標(biāo)序列將公認(rèn)的比較成熟的開源項(xiàng)目的數(shù)據(jù)導(dǎo)入訓(xùn)練集并聚類分析,生成目標(biāo)序列。第四步,利用邏輯回歸生成數(shù)學(xué)模型利用邏輯回歸算法,對(duì)訓(xùn)練集進(jìn)行訓(xùn)練,生成最終的數(shù)學(xué)模型。
? ? 2.4 項(xiàng)目創(chuàng)新點(diǎn)
? ?(1)以大數(shù)據(jù)為背景,利用機(jī)器學(xué)習(xí)算法進(jìn)行開源項(xiàng)目評(píng)估的建模。目前,對(duì)開源項(xiàng)目的評(píng)估一般都是基于 KQI 指標(biāo)的用戶評(píng)價(jià),例如 Ospaf 這種利用 KPI 指標(biāo)進(jìn)行數(shù)學(xué)建模評(píng)估的案例仍不多見。
? ?(2)特征的多樣性,之前對(duì)一個(gè)開源項(xiàng)目的評(píng)價(jià)可能只是簡單地利用 star 數(shù)或是用戶打分的方式。Ospaf 在這些特征的基礎(chǔ)上,更添加了一些抽象特征,比如跟時(shí)間序列有關(guān)的一些增長率特征,用戶 commits 語句中提取的特征
? ?(3)可以根據(jù)用戶的需求進(jìn)行評(píng)測(cè)。因?yàn)楦鱾€(gè)特征都是獨(dú)立的,所以可以通過改變特征的權(quán)重來對(duì)項(xiàng)目進(jìn)行評(píng)測(cè)。比如用戶 A 需要用戶關(guān)注度高的項(xiàng)目,那么就可以相應(yīng)的提高用戶關(guān)注度方面的特征的權(quán)重。
3.項(xiàng)目流程圖
?
項(xiàng)目地址:
?csdn托管:https://code.csdn.net/davidmain/ospaf
?github托管:https://github.com/ospaf/ospaf-primary ?(跪求star)
/********************************
* 本文來自博客 ?“李博Garvin“
* 轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結(jié)
以上是生活随笔為你收集整理的ospaf-开源项目成熟度分析工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: github关联域名,创建个人网站教程终
- 下一篇: Android系统截屏的实现(附代码)