Skip to main content
QUICK REVIEW

[论文解读] Profiling Software Developers with Process Mining and N-Gram Language Models

João Caldeira, Fernando Brito e Abreu|arXiv (Cornell University)|Jan 17, 2021
Software Engineering Research参考文献 42被引用 4
一句话总结

本文提出了一种新颖的方法,通过结合流程挖掘与n-gram语言模型,对PyCharm IDE和Mooshak自动评分系统在受控Python编程竞赛期间生成的事件日志进行分析,以刻画软件开发者的特征。该方法成功提取出连贯的开发者指纹,利用流程简洁性度量指标区分了表现优异者与效率较低者,并识别出与代码质量相关的稳定行为模式,表明该方法在检测‘软件开发流程异味’方面具有潜力。

ABSTRACT

Context: Profiling developers is challenging since many factors, such as their skills, experience, development environment and behaviors, may influence a detailed analysis and the delivery of coherent interpretations. Objective: We aim at profiling software developers by mining their software development process. To do so, we performed a controlled experiment where, in the realm of a Python programming contest, a group of developers had the same well-defined set of requirements specifications and a well-defined sprint schedule. Events were collected from the PyCharm IDE, and from the Mooshak automatic jury where subjects checked-in their code. Method: We used n-gram language models and text mining to characterize developers' profiles, and process mining algorithms to discover their overall workflows and extract the correspondent metrics for further evaluation. Results: Findings show that we can clearly characterize with a coherent rationale most developers, and distinguish the top performers from the ones with more challenging behaviors. This approach may lead ultimately to the creation of a catalog of software development process smells. Conclusions: The profile of a developer provides a software project manager a clue for the selection of appropriate tasks he/she should be assigned. With the increasing usage of low and no-code platforms, where coding is automatically generated from an upper abstraction layer, mining developer's actions in the development platforms is a promising approach to early detect not only behaviors but also assess project complexity and model effort.

研究动机与目标

  • 探究是否能够通过文本与流程挖掘技术,从IDE和自动评分系统事件日志中提取开发者特征。
  • 评估n-gram语言模型是否能够有效表征并分类软件开发过程中开发者的行为模式。
  • 评估流程挖掘是否能够揭示高绩效与低绩效开发者之间有意义的工作流程差异。
  • 探索通过自动化分析开发者操作序列检测‘软件开发流程异味’的可行性。
  • 为智能IDE反馈与基于行为特征分析的团队资源优化分配提供基础。

提出的方法

  • 在37名开发者的受控Python编程竞赛期间,收集PyCharm IDE与Mooshak自动评分系统的事件日志。
  • 应用n-gram语言模型(三元组与四元组)将开发者操作序列建模为伪自然语言文本。
  • 使用流程挖掘算法从事件日志中发现、可视化并评估底层工作流程。
  • 计算流程简洁性度量指标,用于比较开发者的流程并评估行为的一致性。
  • 通过困惑度与统计检验评估模型性能,以验证该特征提取方法的稳健性。
  • 将行为特征与任务结果相关联,识别与代码质量及生产力相关的模式。

实验结果

研究问题

  • RQ1是否能够将软件开发过程中的开发者行为有效建模为操作序列,并利用n-gram语言模型进行分析?
  • RQ2流程挖掘技术是否能揭示出可区分高绩效与低绩效开发者的独特且可解释的工作流程?
  • RQ3顶尖开发者与他人之间在流程简洁性上是否存在可测量的差异,表明其具有更高效的开发实践?
  • RQ4所提取的行为指纹是否可用于检测一致的开发模式或‘流程异味’?
  • RQ5这些特征在多大程度上可支持更明智的任务分配或IDE中的实时反馈?

主要发现

  • 困惑度评估证实,三元组与四元组n-gram语言模型在捕捉开发者行为模式方面达到了最佳平衡。
  • 流程挖掘揭示了独特且可解释的工作流程,能够清晰区分顶尖开发者与效率较低的开发者。
  • 观察到顶尖开发者与他人之间在流程简洁性上存在显著差异,顶尖开发者展现出更精简且一致的工作流程。
  • 该方法成功生成了连贯的开发者指纹,可不依赖最终输出而用于评估生产力与代码质量。
  • 本研究证明了通过自动化分析IDE事件序列检测‘软件开发流程异味’的可行性。
  • 结果表明,此类特征分析可支持对低效开发实践的早期检测,并为团队资源优化分配提供依据。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。