ソフトウェアボット

ソフトウェアボットは、ソフトウェアプロジェクト管理やソフトウェアエンジニアリングを支援するソフトウェアエージェントの一種です。ソフトウェアボットは、ステークホルダーにサービスを提供するために、アイデンティティを持ち、擬人化された側面を持つこともあります。 [ 1 ]ソフトウェアボットは、多くの場合、ソフトウェアサービスを構成し、代替ユーザーインターフェースを提供します。このインターフェースは、必ずしも会話型であるとは限りませんが、場合によっては会話型です。

ソフトウェアボットは通常、タスクの実行、アクションの提案、対話、ソフトウェアプロジェクトの社会的・文化的側面の促進に使用されます。[ 2 ]

ボットという用語はロボットに由来しています。しかし、ロボットは現実世界で行動するのに対し、ソフトウェアボットはデジタル空間でのみ行動します。[ 1 ]一部のソフトウェアボットはチャットボットとして設計・動作しますが、すべてのチャットボットがソフトウェアボットというわけではありません。[ 3 ]ソフトウェアボットの過去と未来に関する議論を見ると、ソフトウェアボットは長年にわたって導入されてきたことがわかります。

使用法

ソフトウェアボットは、ソフトウェア開発者間のコミュニケーションや反復タスクの自動化など、開発活動を支援するために使用されます。ソフトウェアボットは、 GitHub [ 4 ]Stack Overflowなどのオープンソースコミュニティなど、ソフトウェア開発に関連するいくつかのコミュニティで採用されています。

GitHubボットにはユーザーアカウントがあり、プルリクエスト問題を開いたり、閉じたり、コメントしたりできます。GitHubボットは、レビュアーの割り当て、貢献者に貢献者ライセンス契約への署名の依頼、継続的インテグレーションの失敗の報告、コードとプルリクエストのレビュー、新規ユーザーの歓迎、自動テストの実行、プルリクエストのマージ、バグや脆弱性の修正など に使用されてきました[ 5 ]。

Slackツールにはソフトウェアボット開発用のAPIが含まれています。[ 6 ] ToDoリストの追跡、スタンドアップミーティングの調整、サポートチケットの管理などを行うSlackボットがあります。ChatBot Company [ 7 ]の製品は、カスタムSlackボットの作成プロセスをさらに簡素化します。

Wikipediaでは、Wikipediaボットがスタブ記事の作成、複数の記事のフォーマットの継続的な更新など、様々なタスクを自動化しています。ClueBot NGのようなボットは、荒らし行為を認識し、破壊的なコンテンツを自動的に削除することができます。[ 8 ]

分類法と分類フレームワーク

Lebeufら[ 1 ]は、文献レビューに基づいてボットを特徴付けるファセット分類法を提示している。これは3つの主要なファセット、すなわち(i)ボットが作成された環境の特性、(ii)ボット自体の固有の特性、(iii)環境内でのボットの相互作用から構成される。彼らはさらに、各ファセットをサブファセットの集合へと詳細化している。

Paikariとvan der Hoek [ 9 ] は、ソフトウェアボットの比較を可能にするための一連の次元を定義し、特にチャットボットに適用した。その結果、以下の6つの次元が得られた。

  • タイプ: ボットの主な目的 (情報、コラボレーション、自動化)
  • 「会話」の方向(入力、出力、双方向)
  • ガイダンス(人間による、または自律的)
  • 予測可能性(決定論的または進化的)
  • インタラクションスタイル(退屈、代替語彙、関係構築、人間的)
  • 通信チャネル(テキスト、音声、またはその両方)

Erlenhovら[ 10 ]は、ボットと単純な自動化の違いについて疑問を提起しました。ソフトウェアボットという名称で行われた多くの研究では、「ボット」という用語が様々なツールを指すために使用されており、時には「単なる」古い開発ツールを指す場合もあるからです。100人以上の開発者にインタビューと調査を行った結果、著者らは、コミュニティでは1つではなく3つの定義が支配的であることを発見しました。彼らはこれらの定義に基づいて3つのペルソナを作成しましたが、3つのペルソナがボットと見なすものの違いは、主に人間のような特性の異なるセットとの関連性にあります。

  • チャット ボット ペルソナ (チャーリー) は、主にボットを自然言語インターフェイス (通常は音声またはチャット) を通じて開発者と通信するツールと考えており、ボットがどのようなタスクに使用されるか、または実際にこれらのタスクをどのように実装するかについてはほとんど考慮していません。
  • 自律型ボット ペルソナ (Alex)は、ボットを、通常は人間が行うタスクを (開発者からの入力をあまり必要とせずに) 独自に実行するツールであると考えています。
  • スマートボットペルソナ(サム)は、ツールのスマートさ(技術的に高度であるかどうか)によって、ボットと従来の開発ツールを区別します。サムは、ツールがどのように通信するかよりも、タスクの実行において並外れて優れているか、あるいは適応性があるかを重視します。

著者は、ボットについて研究したり執筆したりする人は、ペルソナごとにツールに対する期待や問題が異なるため、自分の仕事をペルソナの 1 つのコンテキストに置くように推奨しています。

注目すべきボットの例

問題と脅威

ソフトウェアボットは人間に受け入れられにくい可能性があります。アントワープ大学の研究[ 11 ]では、Stack Overflowで活動する開発者がソフトウェアボットによって生成された回答をどのように認識しているかを比較しました。その結果、ソフトウェアボットの正体が明らかになると、開発者はソフトウェアボットが生成した回答の質が著しく低下すると認識していることがわかりました。対照的に、人間のような正体を持つソフトウェアボットからの回答はより受け入れられました。実際には、GitHubやWikipediaなどのプラットフォームでソフトウェアボットが使用される場合、そのユーザー名からボットであることがわかります(例:DependaBot、RenovateBot、DatBot、SineBot)。

ボットには特別なルールが適用される場合があります。例えば、GitHubの利用規約[ 12 ]では「ボット」は認められていませんが、「マシンアカウント」は認められています。「マシンアカウント」には2つの特性があります。1) ボットの行動は人間が全責任を負う。2) 他のアカウントを作成できない。

参照

参考文献

  1. ^ a b c Lebeuf, Carlene; Zagalsky, Alexey; Foucault, Matthieu; Storey, Margaret-Anne (2019). 「ソフトウェアボットの定義と分類:ファセット分類法」. 2019 IEEE/ACM 第1回ソフトウェアエンジニアリングにおけるボットに関する国際ワークショップ (BotSE) . pp.  1– 6. doi : 10.1109/BotSE.2019.00008 . ISBN 978-1-7281-2262-5. S2CID  195064960 .
  2. ^チーム、The SOBotics (2019年9月17日). 「Stack Overflowのモデレートを支援するボットたち」 . Stack Overflowブログ. 2019年11月22日閲覧.
  3. ^ Erlenhov, Linda; Gomes de Oliveira Neto, Francisco; Scandariato, Riccardo; Leitner, Philipp (2019). 「ソフトウェア開発におけるボットの現在と未来」. 2019 IEEE/ACM 第1回ソフトウェアエンジニアリングにおけるボットに関する国際ワークショップ (BotSE) . モントリオール, ケベック州, カナダ: IEEE. pp.  7– 11. doi : 10.1109/BotSE.2019.00009 . ISBN 978-1-7281-2262-5. S2CID  195065273 .
  4. ^ヴェッセル、マリリエリ;デ・ソウザ、ブルーノ・メンデス。スタインマッハー、イゴール。ヴィーゼ、イーゴリ S.ポラート、イヴァニルトン。チャベス、アナ・ポーラ。ゲローザ、マルコ A. (2018 年 11 月 1 日)。 「ボットの力: OSS プロジェクトにおけるボットの特徴付けと理解」。ヒューマン コンピューター インタラクションに関する ACM の議事録2 (CSCW): 1–19 .土井: 10.1145/3274451S2CID 53235433 
  5. ^ 「パッチはここから!GitHubが脆弱性修正を含んだプルリクエストの自動生成を提供」 www.theregister.co.uk 201911月22日閲覧
  6. ^ Guay, Matthew (2019年11月22日). 「5分でSlackボットを作成する方法」 . Slackブログ. 2019年11月22日閲覧
  7. ^ 「Slack統合:AIチャットボット」 LiveChat Inc. 2019年11月22日. 2019年11月22日閲覧
  8. ^ 「Wikipediaを編集する『ボット』に会おう」 BBCニュース、2012年7月25日。 2021年9月19日閲覧
  9. ^ Paikari, Elahe; van der Hoek, André (2018). 「チャットボットを理解するためのフレームワークとその将来」.第11回国際ソフトウェア工学における協調的かつ人間的側面ワークショップ - CHASE '18 議事録. pp.  13– 16. doi : 10.1145/3195836.3195859 . ISBN 9781450357258. S2CID  49562888 .
  10. ^ Erlenhov, Linda; Gomes de Oliveira Neto, Francisco; Leitner, Philipp (2020). 「ソフトウェア開発におけるボットの実証的研究:実務家の観点から見た特徴と課題」 .第28回ACM欧州ソフトウェアエンジニアリング会議合同会議およびソフトウェアエンジニアリングの基礎に関するシンポジウム議事録. バーチャルイベント、米国、カナダ:ACM. pp.  445– 455. arXiv : 2005.13969 . doi : 10.1145/3368089.3409680 . ISBN 9781450370431. S2CID  218971687 .
  11. ^ Murgia, Alessandro; Janssens, Daan; Demeyer, Serge; Vasilescu, Bogdan (2016). 「Among the Machines」. 2016 CHI Conference Extended Abstracts on Human Factors in Computing Systems の議事録. pp.  1272– 1279. doi : 10.1145/2851581.2892311 . ISBN 9781450340823. S2CID  13026142 .
  12. ^ 「GitHub 利用規約 - GitHub ヘルプ」 . help.github.com . 2019年11月22日閲覧