सॉफ्टवेयर एनालिटिक्स

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

परिभाषाएँ

 * सॉफ्टवेयर एनालिटिक्स का उद्देश्य सॉफ्टवेयर कलाकृतियों से व्यावहारिक और कार्रवाई योग्य जानकारी प्राप्त करना है जो चिकित्सकों को सॉफ्टवेयर विकास, प्रणाली और उपयोगकर्ताओं से संबंधित कार्यों को पूरा करने में मदद करता है। एक सॉफ्टवेयर प्रणाली  से बनी कलाकृतियों पर लागू एनालिटिक्स पर केंद्र।   सॉफ्टवेयर एनालिटिक्स का उद्देश्य सॉफ्टवेयर विकास, प्रणाली और उपयोगकर्ताओं से संबंधित कार्यों को प्रदर्शित करने में व्यवहारकर्ताओं की मदद करने वाली सॉफ्टवेयर कलाकृतियों से अच्छी और कार्यवाहीयोग्य जानकारी प्राप्त करना है।"[1] केंद्र एक सॉफ्टवेयर प्रणाली से मिलकर बनी कलाकृतियों पर विश्लेषण करने पर है।
 * सॉफ्टवेयर एनालिटिक्स प्रबंधकों और सॉफ्टवेयर इंजीनियरों के लिए सॉफ्टवेयर डेटा पर एनालिटिक्स है, जिसका उद्देश्य सॉफ्टवेयर विकास व्यक्तियों और टीमों को बेहतर निर्णय लेने के लिए अपने डेटा को प्राप्त करने और साझा करने के लिए सशक्त बनाना है। सॉफ्टवेयर एनालिटिक्स के विधियों और तकनीकों के लिए मुख्य उद्देश्यों को स्थिर करता है, सॉफ्टवेयर कलाकृतियों और सम्मिलित डेवलपर्स और टीमों की गतिविधियों दोनों पर ध्यान केंद्रित करता है।
 * सॉफ्टवेयर एनालिटिक्स बड़े डेटा एनालिटिक्स की एक शाखा का प्रतिनिधित्व करता है। एसए सभी सॉफ्टवेयर कलाकृतियों के विश्लेषण से संबंधित है, न मात्र स्रोत कूट से, ये स्तर प्रबंधन बोर्ड के उच्च स्तर से भिन्न होते हैं और सॉफ्टवेयर डेवलपर्स द्वारा परियोजना प्रबंधन योजना और कार्यान्वयन के माध्यम से उद्यम दृष्टि और पोर्टफोलियो प्रबंधन की स्थापना करते हैं। विभिन्न हितधारकों सहित एक व्यापक वर्णक्रम को प्रदर्शित है।

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

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

कोर डेटा स्रोतों में स्रोत कूट, चेक-इन, कार्य आइटम, बग रिपोर्ट और परीक्षण निष्पादन शामिल हैं [...] सॉफ्टवेयर रिपॉजिटरी जैसे सीवीएस, सबवर्सन, जीआईटी और बगजिला में दर्ज हैं। टेलीमेट्री के साथ-साथ निष्पादन अंश या लॉग को भी ध्यान में रखा जा सकता है।

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

इतिहास
मई 2009 में, सॉफ्टवेयर एनालिटिक्स को पहली बार गढ़ा और प्रस्तावित किया गया था जब डोंमेई झांग ने माइक्रोसॉफ्ट रिसर्च एशिया (एमएसआरए) में सॉफ्टवेयर एनालिटिक्स ग्रुप (एसए) की स्थापना की थी। झांग और उनके सहयोगियों द्वारा सॉफ्टवेयर इंजीनियरिंग सम्मेलनों में सॉफ्टवेयर इंजीनियरिंग सम्मेलनों में झांग और उनके सहयोगियों द्वारा सॉफ्टवेयर इंजीनियरिंग अनुसंधान समुदाय में ट्यूटोरियल की एक श्रृंखला के बाद यह शब्द अच्छी तरह से जाना जाता है। स्वचालित सॉफ़्टवेयर इंजीनियरिंग पर IEEE/ACM अंतर्राष्ट्रीय सम्मेलन (ASE 2011), सॉफ्टवेयर इंजीनियरिंग में मशीन लर्निंग टेक्नोलॉजीज पर अंतर्राष्ट्रीय कार्यशाला (MALETS 2011) में एक वार्ता, सॉफ्टवेयर इंजीनियरिंग शिक्षा और प्रशिक्षण पर IEEE-CS सम्मेलन में झांग द्वारा दिया गया एक ट्यूटोरियल और एक मुख्य भाषण, सॉफ्टवेयर इंजीनियरिंग पर अंतर्राष्ट्रीय सम्मेलन में एक ट्यूटोरियल - प्रैक्टिस ट्रैक में सॉफ्टवेयर इंजीनियरिंग, और खनन सॉफ्टवेयर रिपॉजिटरी पर कार्य सम्मेलन में झांग द्वारा दी गई एक मुख्य वार्ता।

नवंबर 2010 में, सॉफ्टवेयर डेवलपमेंट एनालिटिक्स (सॉफ्टवेयर डेवलपमेंट पर फोकस के साथ सॉफ्टवेयर एनालिटिक्स) का प्रस्ताव थॉमस ज़िम्मरमैन और उनके सहयोगियों ने माइक्रोसॉफ्ट रिसर्च रेडमंड में उनके FoSER 2010 पेपर में एम्पिरिकल सॉफ्टवेयर इंजीनियरिंग ग्रुप (ESE) में दिया था। सॉफ़्टवेयर इंजीनियरिंग, सॉफ़्टवेयर इंजीनियरिंग इन प्रैक्टिस ट्रैक पर अंतर्राष्ट्रीय सम्मेलन में वेस्ट वर्जीनिया विश्वविद्यालय के ज़िम्मरमैन और टिम मेन्ज़ीस द्वारा सॉफ़्टवेयर डेवलपमेंट एनालिटिक्स पर एक गोल्डफ़िश बाउल पैनल का आयोजन किया गया था।

यह भी देखें

 * खनन सॉफ्टवेयर भंडार
 * सॉफ्टवेयर की रखरखाव
 * सॉफ्टवेयर पुरातत्व
 * सॉफ्टवेयर डेवलपमेंट
 * सॉफ्टवेयर विकास प्रक्रिया
 * प्रयोगकर्ता का अनुभव
 * कंप्यूटर सॉफ्टवेयर
 * अनुप्रयोग प्रक्रिया सामग्री
 * सॉफ्टवेयर उद्योग
 * विश्लेषिकी

बाहरी संबंध

 * InfoWorld: Turn application metrics into business value
 * Microsoft Research Asia Software Analytics Group (SA)
 * Microsoft Research Redmond Empirical Software Engineering Group (ESE)
 * Software Analytics in Practice and Its Implications for Education and Training, Keynote by Dongmei Zhang at the 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2012)
 * Software Analytics in Practice – Approaches and Experiences, Keynote slides by Dongmei Zhang at the 9th Working Conference on Mining Software Repositories (MSR 2012)
 * Software Analytics in Practice, Mini-tutorial slides by Dongmei Zhang and Tao Xie at the 34th International Conference on Software Engineering (ICSE 2012)
 * Software Analytics Pinterest
 * Microsoft Azure - Application Insights in Azure