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

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

परिभाषाएँ

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

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

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

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

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

इतिहास
मई 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