Learning to Learn in Collective Adaptive Systems: Mining Design Patterns for Data-driven Reasoning
具有学习能力的集体自适应系统(CAS)是一项具有挑战性的任务,由于其多维和复杂的设计空间。CAS设计的数据驱动方法可以引入新的见解,使系统工程师能够在设计阶段更经济有效地管理CAS复杂性。本文介绍了一个系统的方法来推理的设计选择和模式的学习型CAS。使用系统的文献综述的数据,推理与数据驱动的方法,如聚类,多重对应分析和决策树的新应用程序进行。论证了基于过去经验的推理以及支持新颖和创新的设计选择。
2020-08-10 cs.SE
Using Process Mining to Generate AI Agents from Software Engineering Process Records
Hasso Plattner Institute (HPI), University of Potsdam(波茨坦大学哈索·普拉特纳研究院(HPI));IBM Software Innovation Lab (SIL)(IBM软件创新实验室(SIL));University of Haifa(海法大学);paluno Institute, University of Duisburg Essen(杜伊斯堡-埃森大学paluno研究院)
研究如何在软件工程中结合人工智能代理,面临代理粒度和关注点分离难题。通过过程挖掘,用软件库事件日志发现特定项目代理角色,生成规范与实现,并进行测试和用户研究验证效果。
2026-10-06 cs.AI cs.SE
On Using Network Science in Mining Developers Collaboration in Software Engineering: A Systematic Literature Review
本研究的目标是识别,审查和分析已发表的研究工作,使用网络分析作为工具,了解人类协作的不同层次的软件开发。本文的研究结果对软件工程从业者和研究人员利用网络科学领域的工具挖掘软件资源库具有一定的参考价值。我们进行了系统的文献综述,根据纳入和排除标准分析了来自不同数字图书馆的一些选定论文。我们从4个数字图书馆中识别出$35$主要研究(PS),然后根据预定义的数据提取表从每个PS中提取数据。我们的数据分析结果表明,并不是所有在PS中使用的构建网络都是有效的,因为这些网络的边缘并不反映网络实体之间的真实关系。此外,在PS中使用的措施在许多情况下不适合所使用的网络。此外,在大多数情况下,PS报告的分析结果未使用任何统计模型进行验证。最后,许多PS没有为软件从业者提供可以改进软件工程实践的课程或指南。虽然网络分析在挖掘开发者协作中的应用在一些PS中显示出了令人满意的结果,但网络分析的应用需要更谨慎地进行。也就是说,所构建的网络应该具有代表性和意义,所使用的度量需要适合于上下文,并且应该考虑结果的验证。除此之外,我们还指出了一些可以应用网络科学的研究差距,并指出了一些可用于挖掘协作网络的最新进展。
2017-12-04 cs.SE cs.SI
PeaTMOSS: Mining Pre-Trained Models in Open-Source Software
Purdue University(普渡大学);Queen’s University(女王大学);Loyola University–Chicago(芝加哥洛约拉大学);University of Michigan–Ann Arbor(密歇根大学安娜堡分校)
本研究针对预训练模型(PTMs)广泛应用下相关软件工程行为与挑战认知不足的问题,构建了包含28万余个PTM、2.7万余个使用PTM的开源仓库及二者映射的PeaTMOSS数据集,为相关研究提供数据支撑。
2023-10-05 cs.AI cs.SE
Mining Container Image Repositories for Software Configuration and Beyond
本文介绍了挖掘容器映像存储库的思想,以获取软件系统的配置和其他部署信息。与传统的软件存储库(例如,镜像存储库是一个完整的执行生态系统(包括源代码存储库和应用程序商店),镜像存储库封装了用于运行目标软件的整个执行生态系统,包括其配置、依赖库和组件以及操作系统级实用程序,从而提供了丰富的数据和信息。我们展示了基于具体软件工程任务的机会,这些任务可以从挖掘图像存储库中受益。为了促进未来的挖掘工作,我们总结了分析图像存储库的挑战和解决这些挑战的方法。我们希望这篇论文将激发挖掘这种新兴类型的软件存储库的令人兴奋的研究议程。
2018-02-13 cs.SE
On a Factorial Knowledge Architecture for Data Science-powered Software Engineering
鉴于科学中的数据密集型和协作趋势,软件工程社区也越来越关注从数据存储库中获得有价值和有用的见解。然而,将数据科学应用于软件工程(例如,如果缺乏合适的知识体系结构(KA),挖掘软件存储库)可能是盲目的和无意义的。通过观察软件工程实践通常通过一组因素(例如,编程器容量、不同的环境条件等)在此基础上,提出了一种基于因素的软件工程知识共享层次模型,以最大化软件资源库的价值,并对未来的软件数据驱动研究有所启发。特别是,它是有组织的因素和它们的关系,有助于指导软件工程知识挖掘,而挖掘的知识反过来将通过相关的因素和它们的相互作用索引/管理。本文阐述了我们关于阶乘KA的思想,并简要地说明了一个KA组件,即软件产品工程的早期版本KA。一旦充分的范围,这个拟议的KA将补充众所周知的SWEBOK的因素为中心的知识管理和潜在的软件工程知识的覆盖面/含义。
2021-03-02 cs.SE
Oops!... I did it again. Analysing and Handling Conclusion (In-)Stability in Socio-Technical Software Engineering
Technical University of Applied Sciences Regensburg(雷根斯堡应用科学大学);University of Hawaii at Mānoa(夏威夷大学马诺阿分校);Siemens AG(西门子股份公司)
本研究针对社会技术软件工程的复杂挖掘工具流水线,通过复现3项研究并使用4种工具对比,发现工具细节差异会导致结论不稳定,建议评估工具并采用检查表及复现包减少不确定性。
2026-09-02 cs.SE
Mining for Process Improvements: Analyzing Software Repositories in Agile Retrospectives
软件仓库包含有关软件工程团队如何工作、通信和协作的知识。它可以用于开发团队开发过程的数据信息视图,这反过来又可以用于过程改进计划。在现代敏捷开发方法中,过程改进发生在回顾会议中,在回顾会议中讨论最后的开发迭代。然而,在这些会议上进行的先前提议的活动通常不依赖于项目数据,而是完全依赖于团队成员的看法。我们提出了新的回溯活动,基于挖掘各个团队的软件存储库,以补充现有的方法,更客观,数据知情的过程视图。
2020-07-16 cs.SE
Understanding What Software Engineers Are Working on -- The Work-Item Prediction Challenge
Facebook Inc.(脸书公司)
了解软件工程师(开发人员,事件响应者,生产工程师等)是一个具有挑战性的问题--特别是当考虑软件密集型组织中更复杂的软件工程工作流时:i)工程师依赖于大量(可能数百个)松散集成的工具; ii)工程师参与并发和相对长时间运行的工作流; ii)基础设施(例如日志记录)不完全知道工作项; iv)工程过程(例如,对于事件响应)没有明确建模。在本文中,我们解释了相应的“工作项预测挑战”的理由,代表性的场景,报告在Facebook的相关工作,讨论了一些经验教训,并回顾相关的工作,呼吁武装利用,推进,并结合技术,从程序理解,挖掘软件库,过程挖掘,和机器学习。
2020-04-13 cs.IR cs.LG cs.SE
Enhancing Software Development Process (ESDP) using Data Mining Integrated Environment
如今,重用现有的应用程序编程接口(API)、类库和框架已成为快速软件开发的基本需求。软件开发人员经常通过调用相应的API或库来重用它。但在这样做的时候,开发人员在搜索适当的代码段时通常会遇到不同的问题。在大多数情况下,API和库是复杂的,没有良好的结构或良好的文档记录。在线搜索引擎的搜索耗时长,但匹配的相关性不高,表示性不好。为了根据查询获得建议,我们可以使用搜索引擎或代码搜索引擎在线找到该片段。在某些情况下,依赖于数据库的搜索和基于远程Web服务器的挖掘存储库搜索给开发人员带来了问题。在代码搜索引擎上查找API建议通常会处理超大文件,最终会减慢软件开发过程。我们在整个工作过程中一直在寻找解决办法,并努力取得更好的结果。作为替代行动,我们已经实施了一个系统,我们称之为增强软件开发过程(ESDP)工具,该工具能够为开发人员提供一个高效的集成环境,更好地抽象和表示搜索结果,程序员需要从源代码中派生。我们还构建并应用了一个基于XML的丰富存储库,以从客户端的挖掘存储库中获得推荐,而无需与依赖于互联网的服务器进行交互,以节省复杂性和时间。我们使用基于图的表示为程序员或开发人员提供最相关的代码框架或映射。
2020-05-06 cs.SE
Promises and Perils of Mining Software Package Ecosystem Data
本文综述了挖掘软件包生态系统数据的承诺与风险,探讨了依赖网络获取、边界界定、未使用依赖检测、开发者识别等挑战,并强调了跨语言泛化问题。
2023-05-29 cs.SE
DPM-Bench: Benchmark for Distributed Process Mining Algorithms on Cyber-Physical Systems
本文提出DPM-Bench基准,用于在CPS的不同计算拓扑中比较可在边缘直接执行的分布式过程挖掘算法,以评估基础设施并指导算法与硬件改进。
2025-02-20 cs.SE
DepMiner: A Pipelineable Tool for Mining of Intra-Project Dependencies
由于各种原因,依赖性分析被认为是软件工程的一个重要领域。有大量的工具为软件开发人员和架构师提供帮助。对项目间和项目内依赖关系的分析可以帮助提供关于整个开发过程的各种见解。然而,目前缺乏一种工具,可以支持研究人员以最适合进一步分析的格式提取项目内依赖关系数据。在本文中,我们介绍DepMiner -一个开源的,语言无关的工具,挖掘详细的依赖关系数据从源代码,广泛的静态分析功能的行业标准IDE的基础上。DepMiner可以轻松集成到任意挖掘管道中,以进行涉及项目内依赖关系的大规模源代码处理工作。它很容易扩展,以支持其他语言的源代码,不同的分析粒度,以及其他特定于使用的需求。
2021-04-19 cs.SE
SnipGen: A Mining Repository Framework for Evaluating LLMs for Code
William & Mary(威廉与玛丽学院)
针对代码 LLM 评估中的训练与评测数据重叠问题,本文提出 SnipGen 仓库挖掘框架,利用近期 GitHub 提交生成方法级数据点与可组合提示模板,支持严谨的代码生成评测。
2025-02-16 cs.AI cs.LG cs.SE
Retrospective: Data Mining Static Code Attributes to Learn Defect Predictors
本文回顾了经典缺陷预测论文的基线贡献及其对软件工程研究的影响,反思其应被记住与遗忘之处。
2025-01-26 cs.SE
Automated Query Generation for Design Pattern Mining in Source Code
识别源代码中已经存在的设计模式可以帮助维护工程师更好地理解源代码,并确定是否可以满足新的需求。目前存在用于挖掘设计模式的技术,但是这些技术中的一些需要手动标记训练数据集或手动指定每个模式的规则或查询的繁琐工作。为了解决这一挑战,我们引入了Model 2 Mine,这是一种通过解析UML图自动生成SPARQL查询的技术,确保所有约束都得到适当的解决。我们讨论了Model2Mine的底层架构及其功能。我们的初步结果表明,Model2Mine可以自动生成三种类型的设计模式(即,创建的、行为的、结构的),与手动生成的查询相比具有轻微的性能开销,并且准确性与现有技术相当或比现有技术更好。
2020-07-25 cs.SE
Mining Constraints from Reference Process Models for Detecting Best-Practice Violations in Event Logs
本文提出一个从参考过程模型集合中挖掘声明式最佳实践约束的框架,自动选择与事件日志相关的约束并检测最佳实践违规,从而无需专用规范模型即可进行一致性检查。
2025-08-22 cs.DB cs.SE
SEART Data Hub: Streamlining Large-Scale Source Code Mining and Pre-Processing
本文提出SEART Data Hub,一个简化大规模源代码挖掘与预处理的Web应用,允许研究人员通过简单界面指定挖掘和预处理条件,快速构建定制化数据集,显著降低时间和计算资源成本。
2024-09-27 cs.SE
The IntelliJ Platform: a Framework for Building Plugins and Mining Software Data
在软件工程中,人们正在积极研究大量新的方法,并在此基础上开发了许多工具。这些工具需要一个框架来创建,并有机会被潜在的开发人员使用。现代IDE提供了这两种功能。在本文中,我们描述了IntelliJ平台的主要功能,这些功能可能对正在开发代码分析工具的研究人员有用。为了说明使用该平台的好处,我们描述了研究人员可能感兴趣的几个用例:挖掘软件数据、在代码上运行机器学习模型、推荐重构以及在IDE中可视化数据。我们提供了实现这些情况的现有插件的几个示例。最后,为了更容易开始使用平台,我们为每个用例开发并提供简单的插件,这些插件可以作为新项目的模板。
2021-10-01 cs.SE
RevMine: An LLM-Assisted Tool for Code Review Mining and Analysis Across Git Platforms
针对代码评审数据挖掘耗时、技术门槛高的问题,提出LLM辅助工具RevMine,简化跨Git平台的评审数据收集与分析流程,降低研究门槛以推动实证软件工程研究。
2025-10-06 cs.SE
Evident: a Development Methodology and a Knowledge Base Topology for Data Mining, Machine Learning and General Knowledge Management
Philips North America(飞利浦北美);Google LLC(谷歌有限责任公司)
用于知识发现、预测和管理的软件已经开发了30多年。然而,在使用现有的项目开发和工件管理方法时,仍然存在未解决的痛点。从历史上看,一直缺乏适用的方法。此外,已经应用的方法,如敏捷,有几个限制,包括科学的不可证伪性,降低了它们的适用性。提出了一种基于逻辑推理哲学的开发方法学Evident和一种知识库拓扑结构EKB。从概念上缓解了数据采掘、机器学习和一般知识管理中的许多痛点。Evident可以扩展到加速哲学探索,科学发现,教育以及全球知识共享和保留。EKB提供了一种将信息存储为知识的解决方案,知识是数据之上的粒度级别。还讨论了计算机历史、软件工程、数据库、传感器、哲学以及项目与组织和军事管理方面的相关主题。
2022-11-09 cs.AI cs.DB cs.LG
Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers
本文认为,一个新的领域的实证软件工程的研究和实践正在出现:数据采掘使用/使用优化器的实证研究或DUO。例如,数据挖掘器可以生成由优化器探索的模型。此外,优化器可以建议如何最好地调整数据挖掘机的控制参数。这种综合方法就像一个探员靠在分析师的肩膀上,建议“接下来问这个问题”或“忽略那个问题,它与你的目标无关”。此外,这些代理可以帮助我们构建“更好”的预测模型,其中“更好”可以是更高的预测准确性或更快的建模时间(这反过来又可以探索更广泛的选择)。我们还警告说,仅仅使用数据挖掘机的论文时代即将结束。从未优化的数据挖掘器中获得的结果可以很快被反驳,只需应用优化器来生成不同的(并且性能更好的)模型。因此,我们的结论是,对于软件分析来说,使用DUO将数据采掘和优化结合起来是可能的、有用的和必要的。
2019-12-13 cs.SE
Logic Mining from Process Logs: Towards Automated Specification and Verification
本文提出结合基于模式转换与自动化推理,从工作流挖掘得到的流程模型生成逻辑规约,并在通用及真实日志上评估噪声影响与多种逻辑性质。
2025-06-10 cs.SE
Enabling Open-World Specification Mining via Unsupervised Learning
University of Wisconsin–Madison(威斯康星大学麦迪逊分校);Microsoft Research(微软研究院);GrammaTech, Inc.(GrammaTech公司)
许多编程任务需要同时使用特定于域的代码和完善的模式(例如与文件IO有关的例程)。几个小模式结合在一起,创造出复杂的交互。这种复合效应,与特定领域的特质混合,为全自动规范推理创造了一个具有挑战性的环境。在这种环境中挖掘规范,没有规则模板的帮助,用户导向的反馈,或预定义的API表面,是一个重大的挑战。我们称之为开放世界规范挖掘。在本文中,我们提出了一个框架,挖掘规范和使用模式在开放世界的设置。我们将这个框架设计为与矿机无关,而是专注于解决复杂和嘈杂的API交互。为了评估我们的框架,我们引入了从五个开源项目中提取的71个集群的基准。使用这个数据集,我们表明,有趣的集群可以恢复,在一个完全自动的方式,利用无监督学习的形式词嵌入。一旦恢复集群,开放世界规范挖掘的挑战就会简化,并且可以应用任何基于踪迹的挖掘技术。此外,我们提供了一个全面的评估三个词向量学习器,以展示子词信息的嵌入在软件工程领域学习的价值。
2019-04-27 cs.LG cs.SE
Software Metrics in Boa Large-Scale Software Mining Infrastructure: Challenges and Solutions
在本文中,我们描述了我们的经验,实现一些经典的软件工程度量使用Boa -一个大规模的软件存储库挖掘平台-及其专用语言。我们的目标是利用Boa的基础设施,提出新的软件度量,并通过软件度量来表征开源项目,提供基于大量开源项目的软件度量的参考值。提出的软件度量,众所周知,并提出在本文中,可以用来建立大规模的软件缺陷预测模型。此外,我们提出了我们在开发指标时遇到的障碍,我们的分析可以用于在未来的版本中改进Boa。所实现的度量也可以用作更复杂的开源项目探索的基础,并作为如何使用Boa实现软件度量的指南,因为度量的源代码可以免费获得,以支持可重复的研究。
2017-03-18 cs.SE
Mining Q&A Platforms for Empirical Evidence on Quantum Software Programming
本研究分析了Stack Exchange平台上6,935篇量子软件编程讨论帖,通过主题建模和定性分析识别出20个讨论主题、9个支持框架及四大核心挑战,为量子软件生态系统的未来研究、工具开发和教育提供了实证见解。
2025-03-07 cs.SE
Exploring the Efficacy of Transfer Learning in Mining Image-Based Software Artifacts
Chapman University(查普曼大学);University of California, Irvine(加州大学欧文分校)
迁移学习允许我们通过利用先前为另一项任务训练的现有模型,训练需要大量学习参数的深度架构,即使可用数据量有限。在这里,我们探讨了迁移学习的适用性,利用非软件工程数据应用于分类软件UML图的问题的模型预训练。我们的实验结果表明,训练对迁移学习的反应与样本大小有关,即使预训练的模型没有暴露于来自软件领域的训练实例。我们将转移网络与其他网络进行了对比,以显示其在不同大小的训练集上的优势,这表明当大量训练数据不可用时,迁移学习对自定义深度架构同样有效。
2020-03-03 cs.LG cs.SE
Automata Learning versus Process Mining: The Case for User Journeys
本文比较了自动机学习与过程挖掘在生成用户旅程行为模型中的优劣,并提出一种混合方法以提升模型准确性。
2026-04-04 cs.SE
ShikumiMiner: Mining Recurring Implementation Patterns in AI Codebases
University of Texas at Arlington(阿灵顿得克萨斯大学);Microsoft(微软)
本文提出ShikumiMiner静态分析框架,结合AST与CFG特征挖掘C++本地LLM代码库的重复实现模式,分析10个GitHub开源库并分类函数,为LLM应用开发者提供参考。
2026-09-03 cs.SE
Use and Misuse of the Term Experiment in Mining Software Repositories Research
在软件工程(SE)中,挖掘软件仓库(MSR)的重要性和重要性为广泛的实证研究带来了新的机遇和挑战。然而,MSR研究人员似乎很难将他们使用的经验方法描述为现有的经验SE知识体系。MSR实验尤其如此。为了证明MSR实验的特殊性及其与迄今为止SE中传统上承认的实验的差异,我们引出了将实验与其他类型的实证研究区分开来的标志,并描述了MSR实验的标志和类型。我们分析了从小规模系统映射研究中获得的MSR文献,以评估MSR中术语实验的使用。我们发现,19%声称是实验的论文实际上根本不是实验,而是观察性研究,所以他们以误导的方式使用这个术语。在剩下的81%的论文中,只有一篇提到了真正的受控实验,而其他的则代表了有限控制的实验。MSR的研究人员往往会忽视这些局限性,从而影响对研究结果的解释。我们提供建议和见解,以支持改进MSR实验。
2021-10-18 cs.SE
Should I Get Involved? On the Privacy Perils of Mining Software Repositories for Research Participants
挖掘软件存储库(MSR)是一种基于证据的方法,它将数据交叉链接,以揭示有关软件系统的可操作信息。软件工程中的实证研究经常利用MSR技术,因为它们允许研究人员揭示软件开发中的问题和缺陷,以便分析导致这些问题和缺陷的不同因素。因此,依靠关于被挖掘的存储库和源的细粒度信息(例如,服务器名称和贡献者的身份)对于MSR研究的可重复性和透明度至关重要。然而,这也可能对参与者的隐私造成威胁,因为他们的身份可能与有缺陷/次优的编程实践(例如,代码气味、不正确的文档),反之亦然。此外,这可以扩展到密切的合作者和社区成员,从而导致“因关联而有罪”。这份立场文件旨在开始讨论间接参与MSR调查,关于共享非汇总数据的“隐私与效用”的二分法,以及其对参与者参与的隐私限制和道德考虑的影响。
2022-02-24 cs.IR cs.SE
CoCoMUT: A Tool for Code-Context Mining and Automated Dataset Generation
University of Texas at Dallas(德克萨斯大学达拉斯分校);Heritage High School(遗产高中);William & Mary(威廉玛丽学院)
提出CoCoMUT工具,通过构建统一管道自动提取方法级上下文并生成JSON数据集,在20个Java项目上验证了高准确率。
2026-07-01 cs.SE
Mining Issue Trackers: Concepts and Techniques
针对问题跟踪器规模扩大带来的信息管理难题,本章介绍了基于自然语言处理的问题数据挖掘自动化技术的四大用例,并配套JupyterNotebooks演示包。
2024-07-11 cs.SE
Multiple Criteria Decision-Making Preprocessing Using Data Mining Tools
现实生活中的工程优化问题需要多目标优化(MOO)工具。这些问题是高度非线性的。随着多准则决策过程的不断扩展,不同学科的多目标优化问题都可以在此基础上进行分类,因此多准则决策方法在不同的学科和应用领域得到了广泛的应用。同时,过程中涉及的组件、变量、参数、约束和目标的数量越来越多,使得过程变得非常复杂。虽然新一代的MOO工具使优化过程更加自动化,但是初始化过程和设置仿真工具的初始值以及识别有效的输入变量和目标以达到更小的设计空间仍然是复杂的。在这种情况下,在MCDM过程中添加预处理步骤可能会在根据输入变量对系统优化目标的影响来组织输入变量方面产生巨大的差异。本文的目的是介绍分类任务的数据采掘作为一个有效的选择,确定最有效的变量的MCDM系统。为了验证所提方法的有效性,给出了一个三维机翼设计的算例。
2010-04-19 cs.SE
A Multi-Objective Anytime Rule Mining System to Ease Iterative Feedback from Domain Experts
从软件存储库中提取的数据被广泛用于软件工程研究,例如,预测源代码中的缺陷。在我们对这一领域的研究中,我们使用了来自开源项目和工业合作伙伴的数据,我们注意到传统的数据采掘方法在分类问题上的几个缺点:(1)领域专家的接受是至关重要的,领域专家可以提供有价值的输入,但很难使用这种反馈。(2)模型的评估不是计算AUC或准确性的简单问题。相反,有多个目标,其重要性各不相同,但其重要性不容易量化。此外,在我们的例子中,模型的性能不能在每个实例的级别上进行评估,因为它与集合覆盖问题共享一些方面。为了克服这些问题,我们采取了一个整体的方法,并开发了一个规则挖掘系统,简化了领域专家的迭代反馈,可以很容易地将特定领域的评估需求。该系统的核心部分是一个新的多目标的任何时候规则挖掘算法。该算法是基于GRASP-PR元启发式,但扩展了它与其他几种方法的想法。我们成功地将该系统应用于工业领域。在当前的文章中,我们专注于算法的描述和系统的概念。我们提供了一个实现的系统重用。
2018-12-23 cs.LG cs.SE stat.ML
White-box validation of quantitative product lines by statistical model checking and process mining
本文提出结合 SMC 与 PM 的 QFLan 产品线白盒验证方法,将仿真样本挖掘为可理解的流程模型并回转为 QFLan,以定位异常原因并支持修复。
2024-01-23 cs.SE
Technical Report for Argoverse2 Scenario Mining Challenges on Iterative Error Correction and Spatially-Aware Prompting
Xi’an University of Technology(西安理工大学);University of California, Merced(加州大学默塞德分校)
针对自动驾驶场景挖掘中LLM生成代码易出错、空间关系函数解读不准的问题,提出迭代纠错代码生成机制与空间感知提示工程,在Argoverse 2数据集上实现了场景挖掘精度的稳定提升。
2025-06-10 cs.CV cs.SE
PSIMiner: A Tool for Mining Rich Abstract Syntax Trees from Code
JetBrains Research(JetBrains研究院);Higher School of Economics(高等经济学院);JetBrains N.V.;Saint Petersburg State University(圣彼得堡国立大学)
机器学习算法在源代码中的应用在过去几年中已经增长。由于这些算法对输入数据非常敏感,因此研究人员对输入表示进行实验也就不足为奇了。现在,表示代码的一个流行的起点是抽象语法树(AST)。抽象语法树已经在各种软件工程领域,特别是在IDE中使用了很长时间。现代IDE的API允许操作和遍历AST,解析代码元素之间的引用等。这些算法可以用新数据丰富AST,因此在基于ML的代码分析中可能很有用。在这项工作中,我们提出了PSIMiner-一个工具,用于处理来自IntelliJ平台的PSI树。PSI树包含代码语法树以及与它们一起工作的函数,因此可以使用现代IDE的静态分析算法来丰富代码表示。为了展示这个想法,我们使用我们的工具来推断Java AST中的标识符类型,并扩展了code2seq模型的方法名称预测问题。
2021-03-23 cs.LG cs.SE
git2net - Mining Time-Stamped Co-Editing Networks from Large git Repositories
来自软件仓库的数据已经成为软件工程过程实证研究的重要基础。存储库挖掘文献中反复出现的主题是开发人员网络的推断,例如从项目的提交历史中捕获协作,协调或通信。大多数研究的网络是基于在文件,模块或包的水平上定义的软件制品的合著。虽然这种方法导致了对软件开发的社会方面的见解,但它忽略了关于代码更改和代码所有权的详细信息,例如,哪些开发人员编写了哪些代码行,这些信息包含在软件项目的提交日志中。为了解决这个问题,我们引入了git2net,这是一个可扩展的python软件,可以帮助提取大型git存储库中的细粒度协同编辑网络。它使用文本挖掘技术来分析文件中文本修改的详细历史。这些信息使我们能够构建定向、加权和时间戳网络,其中链接表示一个开发人员编辑了最初由另一个开发人员编写的源代码块。我们的工具应用于开源和商业软件项目的案例研究。我们认为,它为人类协作模式的高分辨率数据开辟了一个巨大的新来源。
2019-03-25 cs.CY cs.SE cs.SI
Mining Scientific Workflows for Anomalous Data Transfers
现代科学工作流是数据驱动的,通常在分布式、异构、高性能计算基础设施上执行。工作流执行中的异常和故障会导致科学生产力的损失和基础设施的低效使用。因此,检测、诊断和缓解这些异常对于可靠和高性能的科学工作流程非常重要。由于这些工作流严重依赖于需要严格QoS约束的高性能网络传输,因此准确检测异常网络性能对于确保可靠和高效的工作流执行至关重要。为了应对这一挑战,我们开发了X-FLASH,一种用于故障TCP工作流传输的网络异常检测工具。X-FLASH结合了新的超参数调整和数据采掘方法,用于提高机器学习算法的性能,以准确地分类异常TCP数据包。X-FLASH利用XGBoost作为集成模型,并将XGBoost与从基于搜索的软件工程中借来的顺序优化器FLASH耦合,以学习最佳模型参数。X-FLASH发现,在不到30次评估中,配置在F测量、G评分和召回方面的表现优于现有方法,相对而言分别高达28%、29%和40%。从(1)大的改进和(2)简单的调优,我们建议未来的研究有额外的调优研究作为一个新的标准,至少在科学的工作流异常检测领域。
2021-03-22 cs.NI cs.SE
Mining and Classifying Privacy and Data Protection Requirements in Issue Reports
数字足迹和物理足迹是在使用软件应用程序和系统过程中收集的用户活动的踪迹。随着软件变得无处不在,保护用户隐私已成为挑战。随着用户隐私意识的提高以及隐私法规和政策的出现,迫切需要实现增强个人数据处理保护的软件系统。然而,现有的数据保护和隐私法规提供了高层次的关键原则,使得软件工程师很难设计和实现隐私感知系统。在本文中,我们开发了一个分类,提供了一套全面的隐私要求的基础上,四个完善的个人数据保护法规和隐私框架,一般数据保护条例(GDPR),ISO/IEC 29100,泰国个人数据保护法(泰国PDPA)和亚太经济合作组织(APEC)隐私框架。这些需求被提取、细化并分类到一个级别,可用于与问题报告进行映射。我们还对两个大型开源软件项目(Google Chrome和Moodle)如何通过挖掘其问题报告来解决我们分类中的隐私要求进行了研究。本文讨论了如何收集的问题进行分类,并提出了我们的研究结果和见解。在问题报告中挖掘和分类隐私要求可以通过识别软件项目中尚未解决的隐私要求来帮助组织了解其合规性状态。该分类法还可以根据所识别的隐私要求追溯到软件项目未遵守的法规、标准和框架。
2022-03-27 cs.CR cs.SE