Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# ソフトウェア工学# 機械学習

新しいツールでOSS開発者のタスク選択が改善!

GiveMeLabeledIssuesは、開発者が自分のスキルに合ったタスクを見つけるのを手助けするよ。

― 1 分で読む


開発者のためのスリム化され開発者のためのスリム化されたタスク選択題にマッチさせるよ。新しいツールが開発者を適合するOSSの課
目次

多くの開発者がオープンソースソフトウェア(OSS)プロジェクトでのタスク選びに苦労してるんだ。イシュー追跡システムはタスクがたくさんあって、どれが自分のスキルに合ってるか判断するのが難しい。タスクを正しくラベル付けすることで、開発者が適切な仕事を選ぶ手助けになるけど、今のツールはバグや質問、機能といったタイプに基づいてしかタスクを分類してない。

この記事では、GiveMeLabeledIssuesっていう新しいツールについて話してる。このツールは、解決するのに必要なスキルを見てイシューをもっと効果的にラベル付けするのを手助けするんだ。解決に関わるAPIのタイプを考慮して、必要なスキルを判断するんだよ。このツールは、開発者が自分のスキルとタスクをマッチさせるのに役立って、プロジェクトのメンテナがイシューを管理しやすくする。

オープンソースプロジェクトにおける開発者の課題

開発者はOSSプロジェクトで取り組めるイシューを見つけるのに苦労することが多い。主な理由は、特定のイシューに対処するのに必要なスキルを見極めるのが難しいから。手動でのラベル付けはこのプロセスを助けるけど、プロジェクトのメンテナには余分な手間がかかる。多くのプロジェクトはこの追加の労力のためにタスクをラベル付けしてない。

過去のいくつかの研究では、ソフトウェアリポジトリをマイニングすることで、バグや良い初めのイシューといった基本的なラベルを付ける手助けになると提案されてる。でも、これらの方法では新しいプロジェクトの参加者のさまざまなスキルレベルには対応できてない。

API(アプリケーションプログラミングインターフェース)は特定の機能を持ったモジュールを表してる。もし解決するのに使われるAPIを予測できれば、新しい開発者を関連するタスクに導く手助けができる。ただ、プロジェクトに数え切れないほどのAPIがあるから、個別にラベル付けするのは現実的じゃない。そこで、APIをより広いカテゴリーやドメインにグループ化して、ラベル管理をしやすくしてるんだ。

APIドメインの考え方

APIドメインは、APIをユーザーインターフェース(UI)、データベース(DB)、テスト(Test)などのグループにカテゴライズする方法を提供する。この前の研究では31の異なるAPIドメインが使われた。異なるプロジェクトはさまざまなスキルを必要とするから、これらのラベルはそれに応じて変わることがあるんだ。

研究によると、APIドメインラベルを使うことで、開発者は自分のスキルに合ったOSSタスクを見つけやすくなる。

GiveMeLabeledIssuesの紹介

GiveMeLabeledIssuesは、解決するのに必要なスキルに基づいてイシューを分類するためのウェブツールなんだ。現在、JabRef、PowerToys、Audacityの3つのオープンソースプロジェクトで動作するよ。ユーザーはプロジェクトを選んで、定義されたカテゴリーに基づいて自分のスキルを入力すると、そのスキルに合ったオープンイシューのリストがもらえる。

このツールは、クローズされたイシューと、それらのイシューに対処したソースコードに使われたAPIのデータを使ってトレーニングされてる。関連するAPIドメインを予測する精度は約83.9%って示されてる。

ツールの動作

GiveMeLabeledIssuesは、フロントエンドのウェブインターフェースとバックエンドのREST APIという2つの主要なレイヤーで動作する。フロントエンドインターフェースはユーザーがツールとやり取りするために設計されてて、バックエンドAPIはトレーニングされたモデルを含んで、データ処理を担当してる。

モデルのトレーニング

各プロジェクトのモデルを作成するために、イシューとマージされたプルリクエストのデータが集められる。ツールは、イシューのテキストを、それらのイシューを解決するために使われたAPIにマッピングするんだ。

選ばれたプロジェクトからは、合計で18,482のイシューと3,129のプルリクエストが集められた。タイトルやコメント、クローズ日などの重要な情報を集めるためにGitHub REST APIが使われた。

APIの解析

ソースファイルを分析するためにパーサーが使われて、影響を受けたコードの中のAPIを識別する。ここで、3,686の異なるAPIが見つかった。

データセットの構築

データセットには、マージされたクローズされたプルリクエストに関連するイシューのデータだけが含まれる。これにより、イシューのデータを解決に関わるAPIと関連付けることができる。

APIのカテゴライズ

31のAPIドメインのカテゴリーは専門家によって定義されてる。この組織化により、ツールはさまざまなプロジェクトのAPIを効率的に分類できるようになってる。

コーパスの構築

イシューのタイトルと本文がモデルのトレーニング用コーパスになる。ツールは、これらの文書内の単語の重要性を定量化する技術を使う。テキストの前処理をした後、データはランダムフォレスト分類器に供給され、予測を行う。

さらに、ユーザーはBERTモデルを使ってイシューにラベルを付けるオプションも持ってる。

モデルの構築

BERTモデルは特定のPythonパッケージを使って構築され、パフォーマンスを向上させるためにGPUでトレーニングされる。トレーニングされたモデルはバックエンドにホストされて、ユーザーのリクエストに迅速に予測を提供する。

イシューの分類

GiveMeLabeledIssuesは、登録された各プロジェクトのオープンイシューを分類する。このツールは、イシューのタイトルと本文を組み合わせて、分類器が関連するドメインラベルを特定できるように処理する。

イシューとそのラベルはデータベースに保存されて、迅速にアクセスできるようになってる。このシステムは、オープンイシューを再分類することで、データベースが毎日更新されることを保証してる。

ユーザーインターフェース

ツールは、Angularフレームワークで構築されたウェブインターフェースを通じてユーザーに出力を提供する。ユーザーはプロジェクトを選んで、自分が興味のあるAPIドメインラベルを指定できる。

この情報がバックエンドに送信されると、リクエストが処理され、ユーザーに関連するイシューのリストが返される。出力の各イシューには、そのGitHubページへのリンク、そのタイトル、番号が含まれてる。

ツールの評価

ツールのパフォーマンスは、数千のイシュー、プルリクエスト、APIからなるデータセットを使って評価されてる。

精度や再現率といった評価指標は、ランダムフォレストモデルが異なるプロジェクトデータセットでBERTモデルを上回ったことを示してる。

全体として、ランダムフォレストモデルは、単一プロジェクトからの文脈的な語彙を活用する能力のおかげで、より良い結果を提供したんだ。これは、異なるモデルがデータサイズや文脈に基づいてより良いパフォーマンスを示すという過去の研究とも一致してる。

関連する研究

多くの研究が、新しい参加者がOSSプロジェクトでタスクを見つけるのを助けようとしてきた。いくつかは関連するドキュメントを見つけるためのポータルを提案し、他はイシューを自動的にラベル付けすることを目指してた。

ほとんどの自動化の取り組みは、バグレポートと非バグレポートの区別に焦点を当ててきた。既存の他の研究はイシューをカテゴライズしようとしてるけど、しばしば開発者のニーズに基づいてカスタマイズするのではなく、事前設定のラベルを使ったりしてる。

APIの研究も注目を集めてる。潜在的な解決策に関連するAPIを知ることで、新しい参加者が自分のスキルに合ったイシューを選択する手助けになるからだ。しかし、多くの関連研究とは異なり、GiveMeLabeledIssuesはAPIドメインによるイシューのラベル付けに焦点を当ててる。

結論と今後の展望

GiveMeLabeledIssuesは、OSS開発者が自分のスキルセットに合ったタスクを見つけるのに役立つツールなんだ。このツールは新しい貢献者の参加を容易にする一方で、プロジェクトメンテナの負担を軽減することもできる。

今後は、確立された標準によって提供される追加のドメインラベルを考慮することができる。このツールがタスク選択の選択肢にどう影響するかを知るために、ユーザーからのフィードバックを収集する計画もある。

今後の改善では、ソーシャル機能を統合したり、GitHub Actionsやボットと連携してプロセスをさらに効率化することも考えられてる。このプロジェクトは国の資金提供機関からサポートを受けてるよ。

オリジナルソース

タイトル: GiveMeLabeledIssues: An Open Source Issue Recommendation System

概要: Developers often struggle to navigate an Open Source Software (OSS) project's issue-tracking system and find a suitable task. Proper issue labeling can aid task selection, but current tools are limited to classifying the issues according to their type (e.g., bug, question, good first issue, feature, etc.). In contrast, this paper presents a tool (GiveMeLabeledIssues) that mines project repositories and labels issues based on the skills required to solve them. We leverage the domain of the APIs involved in the solution (e.g., User Interface (UI), Test, Databases (DB), etc.) as a proxy for the required skills. GiveMeLabeledIssues facilitates matching developers' skills to tasks, reducing the burden on project maintainers. The tool obtained a precision of 83.9% when predicting the API domains involved in the issues. The replication package contains instructions on executing the tool and including new projects. A demo video is available at https://www.youtube.com/watch?v=ic2quUue7i8

著者: Joseph Vargovich, Fabio Santos, Jacob Penney, Marco A. Gerosa, Igor Steinmacher

最終更新: 2023-03-23 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2303.13418

ソースPDF: https://arxiv.org/pdf/2303.13418

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

類似の記事

ニューラル・コンピューティングと進化コンピューティングPowerPruning: DNNのエネルギー使用を減らす新しい方法

PowerPruningは、ハードウェアを変更せずにディープニューラルネットワークのエネルギー効率を向上させるんだ。

― 1 分で読む