ospaf-开源项目成熟度分析工具

简介: 1.概述   软件成熟度评估的最终目标是帮助软件的可持续发展,并为用户应用提供必要的技术参考。开放源代码软件成熟度评估也不例外。我们通过软件的成熟度评估,形成全面的涉及技术、应用、法律等层面的评价报告,帮助那些正在或潜在的开源软件使用者准确的了解软件的技术特性和应用特性,从而为他们选择适合自身需求的开源软件提供参考。同时报告中涉及的大量评测数据,为开源软件的开发者提供帮助,促进他们有效的


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

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



目录
相关文章
|
4月前
|
机器学习/深度学习 监控 算法
ML 语言在员工监控软件里的优势体现
在数字化办公时代,员工监控软件对企业管理至关重要。运用机器学习(ML)技术,这类软件能从海量员工行为数据中提取有价值信息,通过构建复杂模型预测工作模式与潜在问题,为管理者提供决策支持。示例代码展示了如何使用SVM进行工作效率预测及随机森林算法检测异常上网行为,体现了ML在提升监控准确性与效率方面的显著优势。随着数据积累和模型迭代,监控软件能更好地适应企业需求变化。
32 2
|
4月前
|
数据采集 网络协议 安全
|
5月前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
107 0
|
7月前
|
数据采集 机器学习/深度学习 人工智能
【开源项目推荐】Great Expectations—开源的数据质量工具
【开源项目推荐】Great Expectations—开源的数据质量工具
394 57
|
存储 人工智能 安全
|
存储 搜索推荐 数据管理
为什么Apache Unomi开源[客户数据平台」值得一看
为什么Apache Unomi开源[客户数据平台」值得一看
|
SQL 数据可视化 BI
诸多改进!Superset 1.2.0 正式发布!
Apache Superset 是一个现代的、企业级的轻量BI平台,提供了大量数据可视化组件。 距离superset上一个版本发布已经过了近三个月的时间,我们终于等到了1.2.0版本。 之前就曾提到过Superset在不断增强与 Apache ECharts的整合。此版本继续加强这方面的改进,并且还带来了大量用户体验改进、API 改进、错误修复以及先前版本中包含的实验性功能的持续开发。
308 0
诸多改进!Superset 1.2.0 正式发布!
|
XML 算法 测试技术
【mlflow系列5】一站式开源测试平台MeterSphere
【mlflow系列5】一站式开源测试平台MeterSphere
393 0
【mlflow系列5】一站式开源测试平台MeterSphere
|
机器学习/深度学习 自然语言处理 Java
LinkedIn 开源 Java 机器学习函数库Dagli,提供开发高效能且生产就绪的模型
LinkedIn 开源 Java 机器学习函数库Dagli,提供开发高效能且生产就绪的模型
LinkedIn 开源 Java 机器学习函数库Dagli,提供开发高效能且生产就绪的模型
|
机器学习/深度学习 自然语言处理 TensorFlow
搜狗开源业内最全「阅读理解工具集合」,助力研发人员快速构建高效模型
搜狗搜索在Github上开源“搜狗阅读理解工具集合”,提供了完整的阅读理解任务组件及10+个复现模型,极大降低了复现相关模型的难度。
1462 0