सॉफ्टवेयर बॉट

सॉफ़्टवेयर बॉट सॉफ़्टवेयर प्रोजेक्ट प्रबंधन और सॉफ़्टवेयर इंजीनियरिंग की सेवा में एक प्रकार का सॉफ्टवेयर एजेंट है। अपने हितधारकों की सेवा करने के लिए एक सॉफ़्टवेयर बॉट की एक पहचान और संभावित रूप से व्यक्तिगत पहलू होते हैं। सॉफ़्टवेयर बॉट अक्सर सॉफ़्टवेयर सेवाओं की रचना करते हैं और एक वैकल्पिक उपयोगकर्ता इंटरफ़ेस प्रदान करते हैं, जो कभी-कभी होता है, लेकिन जरूरी नहीं कि संवादी हो।

सॉफ़्टवेयर बॉट्स का उपयोग आमतौर पर कार्यों को निष्पादित करने, कार्यों का सुझाव देने, संवाद में संलग्न होने और सॉफ़्टवेयर प्रोजेक्ट के सामाजिक और सांस्कृतिक पहलुओं को बढ़ावा देने के लिए किया जाता है। बॉट शब्द रोबोट से लिया गया है। हालाँकि, रोबोट भौतिक दुनिया में काम करते हैं और सॉफ्टवेयर बॉट केवल डिजिटल स्पेस में काम करते हैं। कुछ सॉफ़्टवेयर बॉट्स को चैटबॉट्स के रूप में डिज़ाइन और व्यवहार किया जाता है, लेकिन सभी चैटबॉट्स सॉफ़्टवेयर बॉट्स नहीं होते हैं। एर्लेनहोव एट अल। सॉफ्टवेयर बॉट्स के अतीत और भविष्य पर चर्चा करें और दिखाएं कि सॉफ्टवेयर बॉट्स को कई सालों से अपनाया गया है।

उपयोग
सॉफ़्टवेयर बॉट्स का उपयोग विकास गतिविधियों का समर्थन करने के लिए किया जाता है, जैसे सॉफ़्टवेयर डेवलपर्स के बीच संचार और दोहराए जाने वाले कार्यों का स्वचालन। सॉफ्टवेयर विकास से संबंधित कई समुदायों द्वारा सॉफ्टवेयर बॉट्स को अपनाया गया है, जैसे कि गिटहब पर ओपन-सोर्स समुदाय और ढेर अतिप्रवाह।

गिटहब बॉट्स के पास उपयोगकर्ता खाते हैं और वितरित संस्करण नियंत्रण # पुल अनुरोध और सॉफ़्टवेयर प्रोजेक्ट प्रबंधन # समस्या पर खोल, बंद या टिप्पणी कर सकते हैं। गिटहब बॉट्स का उपयोग समीक्षकों को असाइन करने के लिए किया गया है, योगदानकर्ताओं को योगदानकर्ता लाइसेंस समझौते पर हस्ताक्षर करने के लिए कहें, निरंतर एकीकरण विफलताओं की रिपोर्ट करें, कोड की समीक्षा करें और अनुरोधों को खींचें, नवागंतुकों का स्वागत करें, स्वचालित परीक्षण चलाएं, पुल अनुरोधों को मर्ज करें, बग और कमजोरियों को ठीक करें, वगैरह।

सुस्त (सॉफ्टवेयर) टूल में सॉफ्टवेयर बॉट विकसित करने के लिए एक एपीआई शामिल है। टूडू सूचियों पर नज़र रखने, स्टैंडअप बैठकों के समन्वय और समर्थन टिकटों के प्रबंधन के लिए सुस्त बॉट हैं। चैटबॉट कंपनी उत्पाद कस्टम स्लैक बॉट बनाने की प्रक्रिया को और सरल करते हैं।

विकिपीडिया पर, विकिपीडिया बॉट्स कई प्रकार के कार्यों को स्वचालित करता है, जैसे कि स्टब लेख बनाना, कई लेखों के प्रारूप को लगातार अद्यतन करना, और इसी तरह। क्लूबॉट एनजी जैसे बॉट विकिपीडिया पर बर्बरता को पहचानने में सक्षम हैं और विघटनकारी सामग्री को स्वचालित रूप से हटा देते हैं।

वर्गीकरण और वर्गीकरण फ्रेमवर्क
लेबेफ एट अल। साहित्य समीक्षा के आधार पर बॉट्स को चिह्नित करने के लिए एक पहलू वर्गीकरण प्रदान करें। यह 3 मुख्य पहलुओं से बना है: (i) पर्यावरण के गुण जिसमें बॉट बनाया गया था; (ii) स्वयं बॉट के आंतरिक गुण; और (iii) अपने पर्यावरण के भीतर बॉट की अंतःक्रिया। वे प्रत्येक मुख्य पहलू के तहत पहलुओं को उप-पहलुओं के सेट में विस्तृत करते हैं।

पैकारी और वैन डेर होक ने सॉफ्टवेयर बॉट्स की तुलना करने में सक्षम करने के लिए आयामों के एक सेट को परिभाषित किया, विशेष रूप से चैटबॉट्स पर लागू किया गया। इसके परिणामस्वरूप छह आयाम हुए:
 * प्रकार: बॉट का मुख्य उद्देश्य (सूचना, सहयोग या स्वचालन)
 * बातचीत की दिशा (इनपुट, आउटपुट, या द्वि-दिशात्मक)
 * मार्गदर्शन (मानव-मध्यस्थ, या स्वायत्त)
 * पूर्वानुमेयता (नियतात्मक, या विकसित)
 * इंटरेक्शन शैली (सुस्त, वैकल्पिक शब्दावली, संबंध-निर्माता, मानव-समान)
 * संचार चैनल (पाठ, आवाज, या दोनों)

एर्लेनहोव एट अल। रेफरी का नाम = एर्लेनहोव2020> ने बॉट और साधारण ऑटोमेशन के बीच अंतर का सवाल उठाया, क्योंकि सॉफ्टवेयर बॉट्स के नाम पर किए गए बहुत से शोध विभिन्न विभिन्न उपकरणों का वर्णन करने के लिए बॉट शब्द का उपयोग करते हैं और कभी-कभी चीजें केवल पुराने विकास उपकरण हैं। 100 से अधिक डेवलपर्स के साक्षात्कार और सर्वेक्षण के बाद लेखकों ने पाया कि एक नहीं, बल्कि तीन परिभाषाएँ समुदाय पर हावी हैं। उन्होंने इन परिभाषाओं के आधार पर तीन व्यक्तित्वों का निर्माण किया और तीन व्यक्तियों को एक बॉट के रूप में देखने के बीच का अंतर मुख्य रूप से एक अलग के साथ संबंध है मानव जैसे लक्षणों का समूह। लेखक अनुशंसा करते हैं कि बॉट्स के बारे में शोध या लेखन करने वाले लोग अपने काम को किसी एक व्यक्ति के संदर्भ में रखने की कोशिश करें क्योंकि व्यक्तियों की उपकरणों के साथ अलग-अलग अपेक्षाएँ और समस्याएं होती हैं।
 * चैट बॉट व्यक्तित्व (चार्ली) मुख्य रूप से बॉट्स को उपकरण के रूप में सोचता है जो डेवलपर के साथ एक प्राकृतिक भाषा इंटरफ़ेस (आमतौर पर आवाज या चैट) के माध्यम से संचार करता है, और इस बारे में बहुत कम देखभाल करता है कि बॉट का उपयोग किस कार्य के लिए किया जाता है या यह वास्तव में इन कार्यों को कैसे लागू करता है।
 * स्वायत्त बॉट व्यक्तित्व (एलेक्स) बॉट्स को उपकरण के रूप में सोचता है जो अपने आप काम करता है (डेवलपर से अधिक इनपुट की आवश्यकता के बिना) एक ऐसे कार्य पर जो सामान्य रूप से मानव द्वारा किया जाता है।
 * स्मार्ट बॉट व्यक्तित्व (सैम) एक उपकरण कितना स्मार्ट (तकनीकी रूप से परिष्कृत) है, इसके माध्यम से बॉट्स और सादे पुराने विकास उपकरणों को अलग करता है। सैम इस बात की कम परवाह करता है कि उपकरण कैसे संचार करता है, लेकिन इस बारे में अधिक कि क्या यह किसी कार्य को निष्पादित करने में असामान्य रूप से अच्छा या अनुकूली है।

उल्लेखनीय बॉट्स
का उदाहरण


 * डिपेंडाबॉट और रेनोवेटबॉट सॉफ्टवेयर निर्भरता को अपडेट करते हैं और कमजोरियों का पता लगाते हैं। (https://dependabot.com/)
 * प्रोबोट एक ऐसा संगठन है जो गिटहब के लिए बॉट बनाता है और उसका रखरखाव करता है। प्रोबोट का उपयोग करने वाले उदाहरण बॉट निम्नलिखित हैं।
 * ऑटो असाइन (https://probot.github.io/apps/auto-assign/)
 * लाइसेंस बॉट (https://probot.github.io/)
 * सेंटीमेंट बॉट (https://probot.github.io/apps/sentiment-bot/)
 * अनट्रिविअलाइज़र बॉट (https://probot.github.io/apps/untrivializer/)
 * रिफैक्टरिंग-बॉट (Refactoring-Bot): स्थिर कोड विश्लेषण के आधार पर रीफैक्टरिंग प्रदान करता है
 * मेरे लिए अच्छा लग रहा है बॉट (LGTM) एक लुढ़काना  उत्पाद है जो कोड शैली और असुरक्षित कोड प्रथाओं के लिए गिटहब पर पुल अनुरोधों का निरीक्षण करता है।

मुद्दे और खतरे
सॉफ़्टवेयर बॉट्स मनुष्यों द्वारा अच्छी तरह से स्वीकार नहीं किए जा सकते हैं। एंटवर्प विश्वविद्यालय से एक अध्ययन ने तुलना की है कि स्टैक ओवरफ्लो पर सक्रिय डेवलपर्स सॉफ्टवेयर बॉट्स द्वारा उत्पन्न उत्तरों को कैसे देखते हैं। वे पाते हैं कि यदि सॉफ़्टवेयर बॉट की पहचान स्पष्ट की जाती है, तो डेवलपर्स सॉफ़्टवेयर बॉट-जनित उत्तरों की गुणवत्ता को काफी खराब मानते हैं। इसके विपरीत, मानव जैसी पहचान वाले सॉफ़्टवेयर बॉट्स के उत्तर बेहतर प्राप्त हुए। व्यवहार में, जब सॉफ्टवेयर बॉट्स का उपयोग गिटहब या विकिपीडिया जैसे प्लेटफार्मों पर किया जाता है, तो उनका उपयोगकर्ता नाम यह स्पष्ट करता है कि वे बॉट्स हैं, जैसे, डेपेंडाबॉट, रेनोवेटबॉट, डेटबॉट, साइनबॉट।

बॉट विशेष नियमों के अधीन हो सकते हैं। उदाहरण के लिए, GitHub सेवा की शर्तें 'बॉट' की अनुमति नहीं देता है लेकिन 'मशीन अकाउंट' को स्वीकार करता है, जहां 'मशीन अकाउंट' में दो गुण होते हैं: 1) मानव बॉट के कार्यों की पूरी जिम्मेदारी लेता है 2) यह अन्य अकाउंट नहीं बना सकता है।

यह भी देखें

 * चैटबॉट
 * डेमन (कंप्यूटिंग)
 * इंटरनेट बॉट
 * सॉफ्टवेयर एजेंट