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
ひとこと要約

本稿では、制御されたPythonプログラミングコンテスト中にPyCharm IDEおよびMooshak自動採点システムから得られたイベントログを用いて、プロセスマイニングとn-gram言語モデルを組み合わせることでソフトウェア開発者のプロファイルを構築する新しい手法を提案する。この手法は、一貫性のある開発者指紋を効果的に抽出でき、プロセスの単純さの指標を用いて上位のパフォーマンスを示す開発者とそうでない者を区別でき、コード品質に関連する一貫性のある行動パターンを同定する。これは、『ソフトウェア開発プロセスの悪しき兆候』(process smells)を検出する可能性を示唆している。

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言語モデル(3-gramおよび4-gram)を用いて、開発者行動のシーケンスを擬似自然言語テキストとしてモデル化すること。
  • プロセスマイニングアルゴリズムを用いて、イベントログから根本的なワークフローを発見・可視化・評価すること。
  • プロセスの単純さの指標を計算し、開発者のワークフローを比較し、行動の一貫性を評価すること。
  • パープレキシティおよび統計的検定を用いてモデルのパフォーマンスを評価し、プロファイリング手法の妥当性を検証すること。
  • 行動プロファイルとタスクの成果を相関させることで、コード品質および生産性に関連するパターンを同定すること。

実験結果

リサーチクエスチョン

  • RQ1ソフトウェア開発中の開発者行動は、行動のシーケンスとして効果的にモデル化され、n-gram言語モデルを用いて分析可能か?
  • RQ2プロセスマイニング技術は、上位パフォーマンスと低パフォーマンスの開発者を区別できる明確で解釈可能なワークフローを明らかにできるか?
  • RQ3上位パフォーマンスを示す開発者と他の者との間に、プロセスの単純さに有意な差が認められるか?これは、より効率的な開発手法の兆候である。
  • RQ4抽出された行動指紋は、一貫性のある開発パターン、あるいは『プロセスの悪しき兆候』を検出するために使用可能か?
  • RQ5これらのプロファイルは、タスクの割り当ての意思決定やIDEにおけるリアルタイムフィードバックを支援するために、どの程度活用可能か?

主な発見

  • パープレキシティ評価により、3-gramおよび4-gram言語モデルが、開発者行動パターンを捉える上で最適なバランスを提供したことが確認された。
  • プロセスマイニングにより、上位パフォーマンスの開発者とそうでない者を明確に区別できる、明確で解釈可能なワークフローが明らかになった。
  • 上位パフォーマンスの開発者と他の者との間に、プロセスの単純さに顕著な差が認められ、上位パフォーマンスの開発者はよりスムーズで一貫性のあるワークフローを示した。
  • 本手法は、最終出力に依存せずに生産性やコード品質を評価できる一貫性のある開発者指紋を効果的に生成した。
  • 本研究では、IDEイベントシーケンスの自動分析を通じて『ソフトウェア開発プロセスの悪しき兆候』を検出する可能性が示された。
  • 結果から、こうしたプロファイリング手法は、非効率な開発習慣の早期検出や、より良いチームリソースの割り当てを支援する可能性を示唆している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。