ソフトウェアボット

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

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

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

使用法

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

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

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

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

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

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

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

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

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

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

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

注目すべきボットの例

  • Dependabot と Renovatebot はソフトウェアの依存関係を更新し、脆弱性を検出します。(https://dependabot.com/)
  • Probot は GitHub 用のボットを作成および保守する組織です。Probot を使用したボットの例は次のとおりです。
    • 自動割り当て (https://probot.github.io/apps/auto-assign/)
    • ライセンスボット (https://probot.github.io/)
    • 感情ボット (https://probot.github.io/apps/sentiment-bot/)
    • Untrivializer ボット (https://probot.github.io/apps/untrivializer/)
  • Refactoring-Bot (Refactoring-Bot): 静的コード分析に基づくリファクタリングを提供します
  • Looks good to me bot (LGTM) は、GitHubのプル リクエストのコード スタイルと安全でないコード プラクティスを検査するSemmle製品です。

問題と脅威

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

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

参照

参考文献

  1. ^ abc 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 ブログ。201911 月 22 日閲覧
  3. ^ Erlenhov, Linda; Gomes de Oliveira Neto, Francisco; Scandariato, Riccardo; Leitner, Philipp (2019). 「ソフトウェア開発における現在のボットと将来のボット」。2019 IEEE /ACM 1st International Workshop on Bots in Software Engineering (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/3274451。S2CID  53235433。
  5. ^ 「パッチをここで入手しましょう!GitHub は脆弱性修正が組み込まれた自動プルリクエストの作成を提供しています」。www.theregister.co.uk 。201911 月 22 日閲覧
  6. ^ Guay, Matthew (2019 年 11 月 22 日)。「5 分で Slack ボットを作成する方法」。Slackブログ。201911 月 22 日閲覧
  7. ^ 「Slack 統合: AI チャットボット」。LiveChat Inc. 2019 年 11 月 22 日。201911 月 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。201911 月 22 日閲覧
「https://en.wikipedia.org/w/index.php?title=Software_bot&oldid=1262912097」から取得