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.项目流程图

 

项目地址:

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

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

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

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

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

时间: 2024-11-08 23:10:16

ospaf-开源项目成熟度分析工具的相关文章

开源项目成熟度分析工具-利用github api获取代码库的信息

1.github api        github api是http形式的api,功能还是比较丰富的,博主因为项目的原因主要用到的是提取project信息这项功能,返回的数据是JSON格式. api页:https://developer.github.com/v3/ Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a, --ap

Android开源项目第二篇——工具库篇

Android开源项目第二篇--工具库篇 本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他.   最新内容请访问AndroidOpenProject@Github,欢迎Star和Fork.   Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇Android开源项目第二篇--工具库

介绍10个功能强大的开源Web流量分析工具

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   最近在伦敦举行的世界旅游博览会上(World Travel Market),旅游行业的专家们齐聚一堂,对网站流量分析(Web analytics)和看似微不足道的网站观察和调整对业务产生的巨大影响进行了讨论. EXpedia商务发展部总监Cameron JonES,强调了网站的快速反应对业务的重要性:"在2006年,人们愿意花4秒钟等待网页打开.现在他

10 个强大的开源 Web 流量分析工具

Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍了10个功能强大的开源 Web 流量分析工具,因为是开源的,因此可以免费部署到你的网站. TraceWatch TraceWatch 是一个开源 Web 流量分析程序,支持实时分析,可以提供深度分析报告. SlimStat 基于 PHP-MySQL,同时,可以像 Google Analytics 那

10个强大开源Web流量分析工具

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍了10个功能强大的开源 Web 流量分析工具,因为是开源的,因此可以免费部署到你的网站. TraceWatch TraceWatch 是一个开源

Infer —— Facebook 开源静态代码分析工具

Infer 是 Facebook 最新开源的静态程序分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题.目前 Facebook 使用该工具来分析 Facebook 的 App,包括 Android .iOS.Facebook Messenger 和 Instagram 等等. 文章转载自 开源中国社区 [http://www.oschina.net]

PHP开源Apache日志分析工具收集与比较

我们知道已经有很多像Awtstat这样的使用perl.c或者c++开发的强大的日志分析工具,但是同样也有很多使用PHP开发并且开源的日志分析软件,今天我就收集了一些与大家分享. 1.LogAnalyzer LogAnalyzer是 Adiscon的监控软件产品线中的一部分.可以再Windows以及Unix环境下运行.LogAnalyzer本是是免费的,GPL许可的产品. LogAnalyzer的原名为phpLogCon,他在2010年的3月29日发布了3.0的稳定版,并且正式改名为LogAnal

CoreOS发布开源容器漏洞分析工具Clair

今天我们开源了一个新的项目,Clair,这是一个用来对容器安全进行监控的工具.Clair是个API驱动(API-Driven)的分析引擎,能逐层逐层地对已知的安全漏洞进行审查.你能轻松使用Clair构建出针对容器安全漏洞的持续监控服务.CoreOS深信,那些能改善世界基础设施的安全工具,值得所有的用户和公司都拥有,所以我们将其开源.为了同样的目标,我们期待大家对Clair项目的反馈和贡献. Quay的Security Scanning(安全扫描)功能beta版本的就是基于Clair做的.这个新功

Android开源项目--工具库篇

本文为那些不错的Android开源项目--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他.   最新内容请访问AndroidOpenProject@Github,欢迎Star和Fork. 对你有帮助的话,去知乎点个赞让更多人了解:Android 优秀开源项目及特效推荐.   Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇A