概要
1 はじめに
2 データ収集
3 RQ1: 開発者は初期プロンプトでどのようなソフトウェアエンジニアリングの質問をChatGPTに提示するか?
4 RQ2: 開発者はマルチターン会話でどのように質問をChatGPTに提示するか?
5 RQ3: 共有行動の特徴は何か?
6 考察
7 妥当性への脅威
8 関連研究
9 結論と今後の研究
参考文献
\
==動機:== 図3と図4に示された結果から、DevGPT-PRs(33.2%)とDevGPT-Issues(26.9%)の相当部分がマルチターン会話を含んでいることが明らかになりました。シングルターン会話では、開発者は初期プロンプトでSE関連の質問を提示し、ChatGPTから1つの応答を受け取り、明確で直接的なやり取りを提供します。しかし、マルチターン会話のダイナミクスは複雑さをもたらします。これらのインタラクションは単純な質問と応答を超え、初期の質問を潜在的に洗練、拡張、または明確化する一連のやり取りを含みます。
\ この層状のコミュニケーションは、開発者が複数のターンにわたって質問を明確に表現するための戦略について疑問を投げかけます。そこで、マルチターン会話における開発者のプロンプトの性質を研究するRQ2を導入します。包括的な分析を容易にするために、さらに2つのサブRQを導入します:
– RQ2.1: マルチターン会話における開発者プロンプトの役割は何か? この質問は、対応するマルチターン会話における各プロンプトの構造的役割を分類することを目的としています。
– RQ2.2: マルチターン会話におけるフローパターンは何か? RQ2.1の回答として提案された分類法に基づき、この質問はマルチターン会話で特定されたプロンプトの役割の頻繁な遷移パターンを探ります。上記のサブRQへの回答は、複数回のインタラクションを通じてChatGPTを活用する開発者のダイナミクスと実践について研究者に洞察を提供します。
\ 4.1 アプローチ
RQ2.1では、189のマルチターン会話すべてのプロンプト、つまりDevGPT-PRsから64の会話とDevGPT-Issuesから125の会話を考慮します。RQ1と同様の方法に従い、オープンコーディングを使用して、3ラウンドにわたるマルチターン会話の645のプロンプト(DevGPT-PRsから236のプロンプトとDevGPT-Issuesから409のプロンプト)を手動でラベル付けしました:
– 第1ラウンドでは、5人の共著者が独立して、マルチターンDevGPT-PRsとDevGPT-Issuesデータセットの両方からランダムに選択された20の会話(合計40の会話と123のプロンプト)にラベルを付けました。議論後、7つの異なるラベルからなるコーディングブックを開発しました。
– 第2ラウンドでは、既存のコーディングブックに基づいて、2人の注釈者が独立して、マルチターンDevGPT-PRsとDevGPT-Issuesデータセットのそれぞれからさらに20の会話(合計144のプロンプト)にラベルを付けました。2人の注釈者はCohenのカッパ係数で測定された0.89の評価者間一致スコアを達成し、これはほぼ完全な一致を表しています(Landis and Koch, 1977)。その後、注釈者はコーディングブックを議論し、改良しました。
\ – 最後に、第2ラウンドの2人の注釈者がそれぞれ独立して残りのデータにラベルを付けました。RQ2.2では、マルコフ遷移グラフをプロットすることで会話フローパターンを分析するためにマルコフモデル(Gagniuc, 2017)を使用します。マルコフ遷移グラフは、様々な状態またはノード間の確率的遷移を示す有向グラフです。
私たちの場合、グラフの各ノードはRQ2.1で開発された特定のカテゴリを表し、ノード間の有向エッジは、収集したマルチターン会話に基づいて、ある分類から別の分類への遷移の可能性を示します。マルコフ遷移グラフから意味のある洞察を抽出するために、以下の後処理ステップを提案します:
確率が0.05未満の遷移を削除してグラフを整理し、統計的に有意な関係に焦点を当てることを確保します。
開始ノードと終了ノードを除いて、入力と出力のエッジがないノードを削除することでグラフ構造を改良します。このステップは、必須コンポーネントのみを保持することで単純化を確保します。
マルコフ遷移グラフをフローチャートに体系的に再編成して解釈可能性を高め、フローパターンのより理解しやすい表現を提供します。
\ 4.2 結果
4.2.1 RQ 2.1 マルチターン会話における開発者プロンプトの役割は何か? 表4は、マルチターン会話内のプロンプトを分類するための提案された分類法を示しています。私たちの分析により、プルリクエストと課題の両方において、マルチターン会話には3つの主要なタイプのプロンプトが含まれていることが明らかになりました:フォローアップの質問を提起するもの(M1)、初期タスクを紹介するもの(M2)、および以前のプロンプトから洗練されたもの(M3)。DevGPT-PRsからの1つのプロンプトとDevGPT-Issuesからの6つのプロンプトは、カジュアルな会話であるか、または役割を決定するのに十分な詳細が欠けているという性質のため、「その他」に分類されました。
\ 以下、各カテゴリについて詳しく説明します。
==(M1) 反復的フォローアップ:== マルチターンDevGPT-PRsの33%とDevGPT-Issuesの40%のプロンプトでは、開発者はChatGPTの以前の応答や進行中のコンテキストに直接基づいたクエリを投稿しています。例えば、ChatGPTによるコード生成後のデバッグや修正などです。このような反復的フォローアップは、通常、初期タスクがChatGPTが単一のインタラクションで完全に解決できない複雑な課題を提示する場合に発生します。その結果、開発者はフォローアップリクエストを指定するプロンプトに取り組み、ChatGPTが人間のフィードバックを取り入れ、提案されたソリューションを反復的に強化できるようにします。
\ ==(M2) 初期タスクの公開:== マルチターンDevGPT-PRsの26%とマルチターンDevGPT-Issuesの29%という同様の割合のプロンプトが、ChatGPTに初期タスクを紹介するために機能していることがわかりました。この分布は、マルチターン会話では、唯一のプロンプトが主要タスクの概要を説明することに専念するシングルターン会話とは異なり、他の目的を果たす相当数のプロンプトが存在することを強調しています。
\ ==(M3) プロンプトの洗練:== 反復的フォローアップ(M1)に加えて、開発者はまた、追加のコンテキストや制約を含む洗練されたリクエストプロンプトを提供することで、ChatGPTによって提案されたソリューションを改善する傾向があります。目的は、前のプロンプトで投稿された同じクエリに対する応答の質を向上させることです。洗練されたプロンプトは、マルチターンDevGPT-PRsのプロンプトの17%とDevGPT-Issuesの14%を占めています。
\ ==(M4) 情報提供:== マルチターンDevGPT-PRsの8%とDevGPT-issuesの6%のプロンプトでは、開発者はChatGPTに対してリクエストを投稿せず、むしろChatGPTと知識やコンテキストを共有しています。
\ ==(M5) 新しいタスクの公開== マルチターンDevGPT-PRsの7%とDevGPT-issuesの4%のプロンプトが、以前のプロンプトで関心のあったタスクとは異なる新しいタスクをChatGPTに投稿していることを観察しました。このカテゴリは、新しいタスクがChatGPTの以前の応答に関連したり、それに基づいたりせず、異なる目標を目指すため、反復的フォローアップ(M1)との明確な違いを表しています。例えば、開発者は最初にChatGPTにDjangoクエリセットに対応するSQLを生成するよう要求し、その後のプロンプトで異なるクエリセットのSQLを要求し、それによって会話の焦点を以前の関連性のない全く新しいタスクに移しました。
\ ==(M6) ネガティブフィードバック:== マルチターン会話内で、少数(DevGPT-PRsの6%とDevGPT-Issuesの2%)のプロンプトには、ChatGPTが改善したり、さらに解決したりするための情報を提供せずに、ChatGPTの以前の応答に向けられたネガティブフィードバックのみが含まれています。例えば、「あなたのコードは間違っています」、「同じエラーが続いています」、「...機能しません」などです。このカテゴリは、開発者がさらなる支援や明確化を求めることなく、ChatGPTの欠点を知らせようとする例を強調しています。
\ (M7) 明確化の要求: マルチターンDevGPTPRsの4%とDevGPT-Issuesの5%のプロンプトは、ChatGPTに応答の詳細を求めています。これらの詳細の要求は、ソリューションの包括性を確保することを目的としています。例えば、「他に何かする必要がありますか?」などです。また、特定のタスクを処理するChatGPTの能力の検証や、応答で特定の条件が考慮されているかどうかを確認するための問い合わせも含まれます。さらに、開発者はChatGPTがなぜ一部の代替案を見落としたのかを尋ねることがあり、これは提案されたソリューションとのより深い関わりと、ChatGPTが提案したソリューションの背後にある理論的根拠を理解したいという欲求を示しています。
4.2.2 RQ 2.2 マルチターン会話におけるフローパターンは何か?
図5は、RQ2.1の結果として注釈付けされた会話に基づいてマルコフ遷移グラフに後処理ステップを適用した後の結果のフローチャートを示しています。フローチャートはDevGPT-PRsとDevGPT-Issuesの両方のマルチターン会話に適用されます。図5に示されているように、マルチターン会話は通常、初期タスク(M2)またはコンテキスト情報(M4)の提示から始まります。
\ 私たちの詳細なフォローアップ分析

![[LENTE | 更新] 2026年BARMM選挙に向けた有権者教育がタウィタウィで継続中](https://lente.rappler.com/tachyon/sites/12/2026/04/BCPCH-2-2-scaled.png?resize=75%2C75&crop_strategy=attention)