ربات نرم‌افزاری کیست؟ توضیح بده.
ربات نرم‌افزاری نوعی عامل نرم‌افزاری است که در مدیریت پروژه‌های نرم‌افزاری و مهندسی نرم‌افزار به‌کار می‌رود. یک ربات نرم‌افزاری دارای هویت و گاه ویژگی‌های شخصیتی شبیه انسانی است تا بتواند به ذی‌نفعان خود خدمات ارائه دهد. ربات‌های نرم‌افزاری اغلب خدمات نرم‌افزاری را ترکیب کرده و یک رابط کاربری جایگزین ارائه می‌کنند که این رابط گاهی اوقات، اما نه لزوماً، محاوره‌ای است.ربات‌های نرم‌افزاری معمولاً برای انجام وظایف، پیشنهاد اقدامات، ایجاد گفت‌وگو و ترویج جنبه‌های اجتماعی و فرهنگی یک پروژه نرم‌افزاری به‌کار می‌روند.واژهٔ bot از کلمهٔ ربات (robot) گرفته شده‌است. با این وجود، در حالی که ربات‌ها در دنیای فیزیکی عمل می‌کنند، ربات‌های نرم‌افزاری تنها در فضاهای دیجیتال فعال هستند.برخی از ربات‌های نرم‌افزاری به گونه‌ای طراحی و رفتار می‌کنند که همانند چت‌بات‌ها هستند، اما همهٔ چت‌بات‌ها ربات نرم‌افزاری به شمار نمی‌روند. بررسی‌ها در مورد گذشته و آیندهٔ ربات‌های نرم‌افزاری نشان می‌دهد که این ربات‌ها سال‌هاست مورد استفاده قرار می‌گیرند.کاربرد.ربات‌های نرم‌افزاری برای پشتیبانی از فعالیت‌های توسعه، مانند ارتباط میان توسعه‌دهندگان نرم‌افزار و خودکارسازی وظایف تکراری استفاده می‌شوند. ربات‌های نرم‌افزاری توسط چندین جامعه مرتبط با توسعه نرم‌افزار، همچون جوامع متن‌باز در گیت‌هابو استک اورفلو پذیرفته شده‌اند.ربات‌های گیت‌هاب دارای حساب کاربری هستند و می‌تواننددرخواست‌های کشش (pull request)و مشکلات (issue) را باز، بسته یا دربارهٔ آن‌ها نظر دهند. این ربات‌ها برای تعیین بررسی‌کننده‌ها، درخواست امضای توافق‌نامه مجوز مشارکت‌کننده، گزارش خطاهای یکپارچه‌سازی مستمر، بازبینی کدها و درخواست‌های کشش، خوشامدگویی به تازه‌واردان، اجرای تست‌های خودکار، ادغام درخواست‌های کشش، رفع اشکالات و آسیب‌پذیری‌هاو غیره به کار می‌روند.ابزار اسلک یک API برای توسعه ربات‌های نرم‌افزاری فراهم می‌کند. برخی ربات‌های اسلک برای مدیریت فهرست انجام کارها (todo list)، هماهنگی جلسات ایستاده و رسیدگی به تیکت‌های پشتیبانی ساخته شده‌اند. محصولات شرکت ChatBotاین فرآیند ساخت ربات شخصی اسلک را ساده‌تر می‌کنند.در ویکی‌پدیا، ربات‌های ویکی‌پدیا طیفی از وظایف را خودکار می‌کنند؛ از ایجاد مقاله‌های کوتاه گرفته تا به‌روزرسانی هماهنگ قالب چندین صفحه و موارد مشابه. ربات‌هایی نظیر ClueBot NG توانایی شناسایی تخریب و حذف خودکار محتوای مخرب را دارند.طبقه‌بندی‌ها و چارچوب‌های رده‌بندی.Lebeuf و همکارانش یک رده‌بندی چندبُعدی برای توصیف ربات‌ها بر اساس مرور ادبیات ارائه داده‌اند. این رده‌بندی شامل سه بُعد اصلی است: (۱) ویژگی‌های محیطی که ربات در آن ساخته شده‌است؛ (۲) ویژگی‌های ذاتی خود ربات؛ و (۳) تعاملات ربات با محیط خود. آن‌ها هریک از این ابعاد اصلی را به مجموعه‌هایی از زیر‌ابعاد نیز تقسیم کرده‌اند.&lt;BR&gt;Paikari و van der Hoekمجموعه‌ای از ابعاد را برای مقایسه ربات‌های نرم‌افزاری (به طور خاص، چت‌بات‌ها) تعریف کرده‌اند. این ابعاد عبارت‌اند از:Erlenhov و همکارانش به تفاوت میان یک ربات و خودکارسازی ساده اشاره کرده‌اند، چرا که بسیاری از پژوهش‌ها در حوزهٔ ربات‌های نرم‌افزاری، واژهٔ «ربات» را برای توصیف ابزارهای مختلفی به کار می‌برند و گاهی نیز صرفاً به ابزارهای توسعه متعارف اطلاق می‌کنند. پس از مصاحبه و بررسی نظرسنجی بیش از ۱۰۰ توسعه‌دهنده، نویسندگان دریافتند که نه یک، بلکه سه تعریف غالب در جامعه وجود دارد. آنان سه شخصیت (persona) بر اساس این تعاریف ایجاد کردند و تفاوت برداشت این سه شخصیت از معنای ربات، عمدتاً به نسبت دادن مجموعه‌ای متفاوت از ویژگی‌های انسان‌مانند بازمی‌گردد.نویسندگان توصیه می‌کنند که پژوهشگران یا افرادی که دربارهٔ ربات‌ها می‌نویسند، تلاش کنند کار خود را در قالب یکی از این شخصیت‌ها ارائه دهند، زیرا هر شخصیت انتظارات و چالش‌های متفاوتی با ابزارهای ربات دارد.مسائل و تهدیدها.ربات‌های نرم‌افزاری ممکن است به خوبی توسط انسان‌ها پذیرفته نشوند. یک مطالعه از دانشگاه آنتورپ مقایسه کرده است که چگونه توسعه‌دهندگان فعال در Stack Overflow پاسخ‌های تولیدشده توسط ربات‌های نرم‌افزاری را درک می‌کنند. یافته‌ها نشان می‌دهد وقتی هویت ربات نرم‌افزاری آشکار باشد، کیفیت پاسخ‌های تولیدشده توسط ربات در نظر توسعه‌دهندگان به‌طور قابل توجهی پایین‌تر ارزیابی می‌شود. در مقابل، پاسخ‌هایی که با هویت انسانی از سوی ربات ارسال شده‌اند، بهتر پذیرفته می‌شوند. در عمل، در پلتفرم‌هایی مانند GitHub یا ویکی‌پدیا، نام کاربری ربات‌ها معمولاً به وضوح نشان می‌دهد که آن‌ها ربات هستند؛ برای نمونه: DependaBot، RenovateBot، DatBot، SineBot.ربات‌ها ممکن است مشمول مقررات ویژه‌ای باشند. برای مثال، شرایط خدمات GitHub وجود «ربات» را نمی‌پذیرد اما حساب‌های ماشین (machine account) را قبول می‌کند؛ به‌طوری که «حساب ماشین» دو ویژگی دارد: ۱) یک انسان تمام مسئولیت اقدامات ربات را می‌پذیرد ۲) این حساب نمی‌تواند حساب دیگری ایجاد کند.