没有合适的资源?快使用搜索试试~ 我知道了~
软件弹性调查工具:源o-grapher
软件X 22(2023)101337原始软件出版物Source-o-grapher:一种在开源软件项目中调查软件弹性的工具Apostolos Kritikos,Prodromos Polychroniadis,Ioannis Stamelos地址:Aristotle University of Thessaloniki,54124 Thessaloniki,Greecear t i cl e i nf o文章历史记录:收到2022年2023年2月5日收到修订版,2023年保留字:开源软件软件弹性软件评估a b st ra ct这项工作提出了源o-grapher,一个工具,旨在调查软件弹性方面的开源软件(OSS)项目。该工具使用了文献中的几个指标从四个主要方面评估开放源码软件项目:结构(源代码)、商业和法律、一体化和社会(项目社区)。这些指标中的许多是由工具使用项目的Github存储库自动获取的,而其他一些则由执行分析的专家手动输入。版权所有©2023作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v2.0.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00285可复制胶囊的永久链接法律代码许可证MIT许可证使用git的代码版本控制系统使用Bash Script、Python的软件代码语言、工具和服务编 译 要 求 、 操 作 环 境 依 赖 性 https://github.com/AristotleUniversity/sourceographer/blob/main/README.md 如 果 有 开 发 人 员 文 档 / 手 册 链 接 https ://github.com/AktleUniversity/sourceographer/blob/main/README.md问题支持电子邮件akritiko@csd.auth.gr软件元数据当前软件版本v2.0.0此版本可执行文件的永久链接https://zenodo.org/record/7080150可复制胶囊的永久链接法律软件许可证MIT许可证计算平台/操作系统Linux安装要求依赖关系https://github.com/AristotleUniversity/sourceographer/blob/main/README.md如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://github.com/AristotleUniversity/sourceographer/blob/main/README.md问题支持电子邮件akritiko@csd.auth.gr1. 动机和意义开源软件(OSS)的开放和协作性质一直是软件开发人员、翻译人员、测试人员、最终用户和社区其他成员自愿为OSS项目做出贡献的主要驱动力[1]。最近,我们看到这种增长伴随着越来越多的OSS解决方案[2]被各种部门采用,例如工业[1],学术界*通讯作者。电子邮件地址:akritiko@csd.auth.gr(Apostolos Kritikos).和公共部门。2018年,微软以75亿美元收购了Github,这是最古老和最活跃的OSS代码库之一。2020年,欧盟委员会发布的新开源软件战略2020-每个公司、组织、政府或学术机构在工作中使用OSS项目通常都很困难,1 Githubhttps://www.github.com/https://doi.org/10.1016/j.softx.2023.1013372352-7110/©2023作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxApostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013372在采用OSS时面临类似的挑战。当有几个潜在的候选OSS项目时,应该使用什么标准来选择更适合组织需求的OSS解决方案?所选项目是否证明是一个有弹性的或健康的解决方案?[5]它是否是一个可持续的解决方案,在5年、10年或20年后仍将保持活跃并不断发展?我们目前使用的OSS项目最近已经分叉。我们应该继续使用原来的OSS项目吗还是我们应该迁移到新的、分叉的OSS解决方案?欧盟这些挑战与OSS软件评估有关-过程。在[6]中,作者对开源软件评估、选择和采用进行了系统性文献综述,最新文献可追溯到2019年,并得出结论,OSS软件评估过程是一个相当困难的过程,需要考虑一系列因素。在文献中,有几种软件评估模型[7],其中一些是专门为OSS设计的。在[8]中,我们提出了一种基于弹性概念的评估方法,旨在从另一个角度研究OSS项目。在这项工作中,我们提出了一个工具,可用于调查这些方面,并为用户提供一个简单的方法,评估OSS项目候选人。目前,Source-o-grapher已与Github和PHP2.0库2集成,以便轻松协助评估PHP在Github仓库上发布的编程语言我们选择PHPEngine作为Go to库,因为它的开源特性,也因为它非常容易与我们的系统集成。我们的系统架构的设计方式是为了在未来的扩展中轻松扩展到其他源代码存储库和编程语言。1.1. 开源软件弹性;理论基础我们所描述的这项工作的工具旨在评估OSS项目的弹性。为了实现这一目标,我们使用了一个最初基于城市弹性框架的框架,如[9]所示。在这项工作中,作者提出了一个三(3)级框架,该框架由四(4)个维度组成,这些维度被分解为十二(12)个目标,每个目标由几个指标组成,这些指标被用作评估城市弹性的关键绩效指标。在[8]中,我们介绍了该框架对开源软件领域的适应,重点是展示城市和OSS项目之间的概念相似性,因此,城市弹性框架适应OSS领域的可能性。图1展示了从三个层面分析的整个框架:维度、目标和指标。有关该框架的详细文档,请访问https://users.auth.gr/akritiko/ossrf。HTML.2. 软件描述在本节中,我们将分析Source-o-grapher工具的体系结构、配置和使用。2.1. 软件构架Source-o-grapher被设计为在编写时在Linux操作系统上运行。更具体地说,这项工作中涉及的说明性示例在运行Ubuntu的机器上运行22.04.1 LTS操作系统。 安装、配置和执行2 PHP Library官方网站:https://phpmetrics.org/。Fig. 1. 软件弹性OSS框架。我们使用Linux shell脚本的软件。readme.md文件中提供了一组详细的步骤,该文件可以在软件存储库中找到3输入指标(指标)的集合由用户提供或由python脚本半自动处理框架的执行和输出可视化是由Python脚本半自动执行的。该系统的设计是为了很容易与其他系统集成。该工具的当前版本已成功与Github代码存储库和Phptom库集成。图2你可以看到一个抽象的表示架构的工具。在图的左侧,我们可以看到输入过程。用户可以通过两种方式向工具提供输入:1. 通过逗号分隔值(.CSV)格式的文件。在这种情况下,该文件包含该工具使用的所有指标的列表(见图1)。3),用户将数据输入到手动创建文件(此方法不使用从Github 或Phptown自动提取数据该方法3 Source-o-grapher Github仓库:https://github.com/AristotleUniversity/sourceographer。Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013373图二. 源代码编写器架构。是编程语言不可知的。这种输入的一个例子是提供图。二、如果用户使用这个手动输入过程,他们所要做的就是按照开源软件弹性框架的指导方针在分数列下提供值。4“Indi- cator Name”和“Indi-2. 在要分析的OSS PHP项目托管在Github中的情况下,该工具提供了一个用于自动分析的GUI。Source-o-grapher与Github集成,可以直接从存储库自动收集一些指标。然后,它使用Phptom分析器处理另一组指标。通过GUI向用户请求其余指示器。请注意,用户要求的指标是定性指标,因此,由于它们代表专家意见,无法自动计算。这种输入的一个例子是提供在图。 四、然后,作为投入提供的指标正在由开放源码软件复原力框架进行这部分计算由工具自动处理。开源软件的弹性框架首次引入[8]。框架的层面、目标和指标级别遵循图4所示的结构。在http://users.auth.gr/akritiko/ossrf上也有指标及其值的详细描述,出于简洁的原因,并保持这一工作集中在工具的架构和功能上,我们选择不在这项工作中复制在输入被处理之后,Source-o-grapher产生以下输出:开放源码软件复原力框架的结果以及用户提供的投入这些都包含在data.csv文件中,该文件也用于输入。4 开源软件弹性框架-指标文档:http://users.auth.gr/akritiko/ossrf。图3.第三章。 通过逗号分隔值(CSV)格式的文件输入。目标的结果被可视化为蜘蛛图,并以PNG文件格式保存。这种输出的一个例子是图。 五、··Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013374图四、 通过工 具 的图形用户界面(GUI)进行输入。图五、以 雷 达 图 的 形 式 输出进球得分。维度的结果显示为条形图。目前,此输出是PNG文件的形式。图1中提供了这种输入选项的示例。 六、2.2. 与OSS代码库Source-o-grapher的一个组成部分是它与Github代码库的集成它允许该工具从软件弹性框架分析所需的38个指标中自动这些指标中的大多数都可以通过Github的API直接获取。其余的指标必须在软件分析工具的帮助下进行计算,例如我们目前用于分析基于PHP的OSS项目的Phptom分析器。为了能够从正在调查的项目的Github存储库中自动提取这些信息,系统需要用户输入以下内容:图六、输 出 . 以条形图形式显示维度Repository name in author/repo format:项目存储库的名称。为了能够分离两个相同命名的存储库,我们要求存储库采用author-thor/repo格式(即akritiko/sourceographer)。Version(repo specific tag name):我们要分析的Github标签的名称。这可以帮助我们调查OSS项目在其主要版本中的弹性, 它会随着时间的推移而演变。Repository URL:正在调查的项目的存储库的统一资源定位符(URL)。版本开始日期(YYY-MM-DD)版本结束日期(YYYY-MM-DD):版本的开始和结束日期用于收集与时间相关的指标。例如,社交维度上的“吸引开发人员”指标计算为过去六个除了收集指标值的方便性外,Source-o-grapher与Github代码库的集成版本还有一个更有用的功能。它可以自动执行OSS分析的弹性框架到我们选择的Github版本。2.3. 与OSS分析工具Source-o-grapher的另一个核心部分是它与OSS分析工具的集成。在当前版本的系统中,我们已经集成了PHPtools分析器,这是一个为PHP编程语言实现的项目提供软件分析的这种集成允许Source-o-grapher自动导出一些指标的值,使得用户不必手动执行分析器,然后将结果作为输入提供给Source-o-grapher。3. 说明性实例在本节中,我们提供了两个OSS项目的例子,Composer(示例1)是一个众所周知的PHP框架。我们在这个项目中使用的是手工输入法PHPWord(说明性示例#2)是一个小型PHP库,用于通过PHP创建和处理Word文档我们使用Source-o-grapher的图形用户界面输入方法为OSS分析的弹性框架提供输入·····Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013375我们选择了两个不同的项目来展示两种不同类型的source-o-grapher输入,以获得更好的清晰度。此外,我们的目标是为读者提供一个可视化的帮助,说明如何在源代码生成器的输出上呈现具有不同弹性评估的项目(即,两个示例的雷达图指示Composer如何显示比PHPWord覆盖更多雷达图表面的更好的弹性)。这两个示例的输入和输出数据都可以在这个Github存储库中获得。53.1. 示例#1:手动输入-编写器。在这个案例研究中,我们将对Composer项目进行软件可靠性分析。由于我们使用手动方式将数据导入Source-o-grapher,因此需要执行以下操作:1. 在software文件夹中,我们导航到以下目录:./ rfoss/data.2. 在那里我们可以找到项目的.csv文件(在我们的示例中,我们称之为composer_140。csv;1.4.0反映了此特定分析是针对版本1.4.0的)。3. 我们用我们选择的编辑器打开它,并为每个指标提供一个值。在软件的特定版本中,您会发现此.csv文件是预- 为您的方便而填充如果你想为另一个OSS项目运行开源软件弹性框架[8有详细的文档。6为方便读者的指标值4. 完成后,我们保存文件。5. 我们将一个目录导航到。/ rfoss/文件夹。6. 我们打开这个目录的控制台,并使用命令python3rfoss运行rfoss.py脚本。py.7. 我们导航到目录。/ rfoss/output找到输出。3.2. 示例2:使用GUI输入-PHPWord在这个案例研究中,我们将对项目PHPWord进行软件可靠性分 析 。 由 于 我 们 使 用 半 自 动 化 的 方 式 将 数 据 导 入 Source-o-grapher,因此需要执行以下操作:1. 环境设置:在我们继续分析之前,我们需要确保我们的环境配置正确。确保我们需要遵循README的“需求安装”部分的说明&。md文件。2. 我们 导航 到 ./ src/data/文件夹. 我们 制备数据csv文件。md文件。3. 文件准备好后,我们导航回。/ 源代码/文件夹.4. 我们打开这个目录的控制台,然后运行:python3 ossrf。py.5. 当我们运行该命令时,应用程序的GUI将出现,要求我们输入无法自动计算的输入填写此屏幕中的所有信息并使用有效的Github令牌非常重要,以避免错误。5 输入和输出示例:https://github。Com/AristotleUiversity/kritikos_softwarex_2022_examples6 开源软件弹性框架-指标文档:http://users.auth.gr/akritiko/ossrf网站。图7.第一次会议。 基于.csv模板的手动输入。Composer v1.4.0.6. 一旦这个过程完成,我们就可以导航回./ src/data/文件夹中找到我们的输出。 注意:根据OSS项目的大小,我们评估脚本可能需要很长时间才能完成。请使用控制台日志来确保应用程序已完成(参见图1和图2)。第7和第8段)。输出包括以下内容:文件数据。csv包含用户的初始输入,Github和Phponet自动检索的指标以及开源软件弹性框架的目标和维度结果一个条形图,将框架的结果可视化到维度级别。一个雷达图,将框架的成果可视化到目标A. json文件,其中包含被评估的特定项目的Phpython指标。研究人员可使用此文件与其他评估或评价工具进行进一步的交叉检查分析。····Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013376图8.第八条。 图形用户界面。指标和项目属性。见图9。 作曲家. 尺寸结果。见图10。 PHPWord。 尺寸结果。见图11。 作曲家. 目标和结果。3.3. 软件弹性评估现在,我们可以评估两个案例研究的结果,以了解软件弹性分析可以为两个OSS项目提供什么。为了能够更好地比较这两个项目,我们将一起研究维度和目标水平的结果。3.3.1. 尺寸结果图图9和图10分别展示了Composer和PHPWord项目的维度结果。条形图中的每个条形代表一个维度,条形的高度以百分比表示实现通过比较这两个图表,我们得出结论:这两个项目在尺寸方面都被认为是弹性的。作曲家(图9)在所有维度上的得分都在60%左右或更高。PHPWord(图10)两个维度得分低(低于30%),但其他两个维度得分超过60%。因此,由于四个维度中有两个得分超过50%,因此该项目被认为是弹性的。我们可 以看到, 弹性是 不同的两 个项目的不 同尺寸。Composer是最知名的PHP项目之一,在业务逻辑和社交方面的得分远远高于PHPWord。Composer是一个非常成熟的项目,有一个充满活力的社区,同时它被几家公司用于更快的开发。因此,直观地预期它优于3.3.2. 目标和成果如果我们在目标水平上比较结果,两个项目在弹性方面的差异变得更加明显。图在图11和图12中,我们可以分别看到Composer和PHPWord项目的结果。雷达图显示了12个目标。越是突出的领域,越有弹性的项目在每个目标.结果仅仅验证了维度交叉检验分析的结果。我们可以清楚地看到,Composer项目的雷达图在大多数目标中得分更高,这从雷达图的覆盖范围与PHPWord的雷达图的覆盖范围相比是显而易见的。··Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)10133774. 影响见图12。 PHPWord。 目标和结果。Source-o-grapher分析应该应用于在年龄和社区数量方面被认为成熟的开源软件项目,以避免误导性结果的可能性OSS的软件弹性框架是一种适应城市恢复力框架的一部分,以开源软件。就指标、目标和层面而言,这种调整是作者主观视角最后,目前该工具6. 结论今后的工作在这项工作中,我们提出了源o-grapher,一个工具来评估开放源码软件项目的弹性方面。我们坚信,软件弹性和软件健康之间存在概念上的相似性,因为开放源码软件项目面临的危机通常会影响项目的核心要素,如社区、源代码结构、可持续性等。拟议的工具旨在作为一个使用开放源码软件软件复原力框架的分析器,同时也协助汇总进行这一分析所需的指标所需的所有信息。本着这种精神,我们试图以一种易于集成的方式设计它我们认为,在OSS项目中的软件弹性的调查可以是一个关键的工具,软件工程师,需要集成OSS组件到他们的解决方案,IT经理,需要选择开源解决方案,为他们的组织和决策者感兴趣的长寿的OSS解决方案,他们的机构利用或希望在不久的将来通过。Source-o-grapher允许上述利益相关者对作为特定需求的潜在替代品的不同OSS工具进行分析,或者跟踪OSS项目随着时间的推移在其版本中演变的弹性。Source-o-grapher提供的软件弹性分析的另一个可能的用途是调查特定的提交或特定开发人员或团队的工作的开发商对该项目的弹性。由于我们的工具允许用户使用一个特定的版本(即Github标签),我们能够比较项目从一个版本到另一个版本的弹性水平。组织、项目经理、工程团队领导和开发人员可以利用这一点来评估对项目的此外,该工具的手动评估选项允许Source-o-grapher的用户评估不在Github存储库上托管且未用PHP编程语言实现在这种情况下,用户将不得不使用自己的工具来提供所需指标的值(即,静态代码分析工具,如SonarQube,CppCheck等)。5. 对有效性的我们设计了Source-o-grapher来帮助用户评估OSS软件项目的弹性。我们希望让用户更容易半自动地获取尽可能多的指标信息。因此,我们尝试将其与Github和PHPencode库等高质量工具由于这些第三方系统是动态发展的,因此可能会出现错误。这就是为什么我们在解决方案中包含手动输入方法的原因。第三方解决方案,如其他分析器和/或源代码存储库。作为未来的工作,我们希望扩展该工具以支持更多的源代码存储库,而不是Github。我们打算扩展功能以包括Gitlab,并从那里尝试为私有Gitlab存储库创建一个端口,以便内部源公司和组织也可以评估他们的项目。我们相信,这些扩展可以使公司,组织和学术界使用OSS弹性框架快速评估此外,我们将扩展我们的分析器,以支持其他编程语言,如java,python等。我们还开始实现与Grimoire Lab工具的集成,以便利用其许多方便的功能,例如OSS项目的parceval解析器,我们确信此实现将成为下一版本中Source-o-grapher的一部分。最后,我们的目标是提供一种自动评估一系列OSS软件版本的方法,并提供新的可视化,将随着时间的推移,OSS软件的弹性方面的演变竞合利益提交人声明,以下经济利益/个人关系可能被视为潜在的竞争利益:Apostolos Kritikos报告说,希腊国家奖学金基金会(IKY)提供了财政支持数据可用性数据将根据要求提供。致谢这项研究由希腊和欧洲联盟(欧洲社会基金)通过业务方案共同资助。"在“加强人力资源”项目的背景下,Apostolos Kritikos、Prodromos Polychroniadis和Ioannis Stamelos软件X 22(2023)1013378通过博士研究的研究潜力-引用[1] 张文辉,张文辉,张文辉.“采用开源软件商 业 模式:红帽和IBM案例研究”。在:南非计算机科学家和信息技术专家研究所2009年年度研究会议的 会议 记 录 。ACM; 2009,p.112比21[2] Midha V,Palvia P.影响开源软件成功的因素。JSyst Softw2012;85(4):895-905.[3] Microsoft Corporation.微软收购Github2018年,[在线。[2022年9月11日],https://news.microsoft.com/announcement/microsoft-acquires-github/.[4]欧洲佣金.开放源软件战略20202023年,开放思考。2020年,[在线。[2022年9月11日]https://ec.europa.eu/info/departments/informatics/open-source-software-strategy_en/.[5]Piggot J,Amrit C.我的项目有多健康?开源项目属性作为成功的指标。IFIPInternational Conference on Open SourceSystems. Springer; 2013 , p. 30-44号。[6][10]李文辉,李文辉.开放源码软件的评估、选择和采用:系统性文献综述。2020年第46届Euromicro软件工程和高级应用会议。SEAA,2020年,第437-44页。http://dx.doi.org/10.1109/SEAA51224的网站。2020.00076。[7]放大图片Miguel JP,Mauricio D,Rodriguez G.用于软件产品评价的软件质量模型综述。2014年,arXiv预印本arXiv:1412.2977。[8]斯塔梅洛斯·克里蒂科斯开源软件弹性框架。IFIPInternationalConference onOpen Source Systems. Springer; 2018,p.39比49[9]Da Silva J,Morera B.城市复原力框架。2014年,奥雅纳洛克菲勒基金会。在线:12/15/2015.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功