सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग''' (SBSE) मुख्य रूप से सॉफ़्टवेयर इंजीनियरिंग में आने वाली विभिन्न समस्याओं के लिए [[आनुवंशिक एल्गोरिदम|जेनेटिक एल्गोरिदम]], [[ तैयार किए हुयी धातु पे पानी चढाने की कला |सिम्यूलेटेड एन्यूलिंग]] और टैबू खोज जैसी [[मेटाह्यूरिस्टिक]] खोज से जुड़ी विधियों को लागू करती है। इस प्रकार की [[सॉफ्टवेयर इंजीनियरिंग]] में कई गतिविधियों को [[अनुकूलन (गणित)|अनुकूलित (गणित)]] करके विभिन्न समस्याओं के रूप में परिभाषित किया जा सकता है। इस प्रकार से संचालित होने वाले विभिन्न अनुसंधानों की अनुकूलन (गणित) विधि जैसे [[रैखिक प्रोग्रामिंग|लीनियर प्रोग्रामिंग]] या [[गतिशील प्रोग्रामिंग|डायनैमिक प्रोग्रामिंग]] अधिकांशतः बड़े पैमाने पर सॉफ्टवेयर इंजीनियरिंग समस्याओं के लिए उनके [[कम्प्यूटेशनल जटिलता सिद्धांत]] या समस्या संरचना पर उनकी धारणाओं के कारण अव्यावहारिक होती हैं। इसके आधार पर शोधकर्ता और चिकित्सक मेटाह्यूरिस्टिक खोज तकनीकों का उपयोग करते हैं, जो इस प्रकार के निकट या इष्टतम या अच्छी तरह से पर्याप्त मात्रा में हल को खोजने के लिए विभिन्न प्रकार की समस्याओं से जुड़ी संरचनाओं पर छोटी धारणाएं प्रतिपादित करते हैं।
'''सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग''' (SBSE) मुख्य रूप से सॉफ़्टवेयर इंजीनियरिंग में आने वाली विभिन्न समस्याओं के लिए [[आनुवंशिक एल्गोरिदम|जेनेटिक एल्गोरिदम]], [[ तैयार किए हुयी धातु पे पानी चढाने की कला |सिम्यूलेटेड एन्यूलिंग]] और टैबू सर्च जैसी [[मेटाह्यूरिस्टिक]] सर्च से जुड़ी विधियों को लागू करती है। इस प्रकार की [[सॉफ्टवेयर इंजीनियरिंग]] में कई गतिविधियों को [[अनुकूलन (गणित)|आप्टीमाइजेशन (गणित)]] करके विभिन्न समस्याओं के रूप में परिभाषित किया जा सकता है। इस प्रकार से संचालित होने वाले विभिन्न अनुसंधानों के लिए आप्टीमाइजेशन (गणित) विधि जैसे [[रैखिक प्रोग्रामिंग|लीनियर प्रोग्रामिंग]] या [[गतिशील प्रोग्रामिंग|डायनैमिक प्रोग्रामिंग]] अधिकांशतः बड़े पैमाने पर सॉफ्टवेयर इंजीनियरिंग समस्याओं के लिए उनके [[कम्प्यूटेशनल जटिलता सिद्धांत|कम्प्यूटेशनल काॅम्पलेक्सिटी]] या समस्या संरचना पर उनकी धारणाओं के कारण अव्यावहारिक होती हैं। इसके आधार पर शोधकर्ता और चिकित्सक मेटाह्यूरिस्टिक सर्च तकनीकों का उपयोग करते हैं, जो इस प्रकार के निकट या इष्टतम या अच्छी तरह से पर्याप्त मात्रा में हल को सर्च करने के लिए विभिन्न प्रकार की समस्याओं से जुड़ी संरचनाओं पर छोटी धारणाएं प्रतिपादित करते हैं।


एसबीएसई समस्याओं को दो प्रकारों में विभाजित किया जा सकता है:
एसबीएसई समस्याओं को दो प्रकारों में विभाजित किया जा सकता है:


* ब्लैक-बॉक्स अनुकूलन समस्याएँ, उदाहरण के लिए, लोगों को कार्य को सौंपना होता हैं, जिसके आधार पर विशिष्ट कॉम्बिनेटरियल अनुकूलन समस्या को हल किया जाता हैं।
* ब्लैक-बॉक्स आप्टीमाइजेशन समस्याएँ, उदाहरण के लिए लोगों को इस प्रकार के कार्यों को सौंपना होता हैं, जिसके आधार पर विशिष्ट कॉम्बिनेटरियल आप्टीमाइजेशन समस्या को हल किया जाता हैं।
* व्हाइट-बॉक्स समस्याएं जहां स्रोत कोड पर संचालन पर विचार करने की आवश्यकता है।<ref>
* व्हाइट-बॉक्स समस्याएं जहां स्रोत कोड पर संचालन पर विचार करने की आवश्यकता है।<ref>
{{Cite conference
{{Cite conference
Line 16: Line 16:
}}</ref>
}}</ref>
==परिभाषा==
==परिभाषा==
एसबीएसई सॉफ्टवेयर इंजीनियरिंग समस्या को कम्प्यूटेशनल खोज समस्या में परिवर्तित करता है जिसे मेटाह्यूरिस्टिक से निपटाया जा सकता है। इसमें खोज स्थान, या संभावित समाधानों के सेट को परिभाषित करना सम्मिलित है। यह स्थान सामान्यतः विस्तृत रूप से अन्वेषण करने के लिए बहुत बड़ा है, जो मेटाह्यूरिस्टिक दृष्टिकोण का सुझाव देता है। इस प्रकार से मीट्रिक<ref>
एसबीएसई सॉफ्टवेयर इंजीनियरिंग समस्या को कम्प्यूटेशनल सर्च समस्या में परिवर्तित करता है जिसे मेटाह्यूरिस्टिक से निपटाया जा सकता है। इसमें सर्च स्थान, या संभावित समाधानों के सेट को परिभाषित करना सम्मिलित है। यह स्थान सामान्यतः विस्तृत रूप से अन्वेषण करने के लिए बहुत बड़ा है, जो मेटाह्यूरिस्टिक दृष्टिकोण का सुझाव देता है। इस प्रकार से मीट्रिक<ref>
{{Cite conference
{{Cite conference
| doi = 10.1109/METRIC.2004.1357891
| doi = 10.1109/METRIC.2004.1357891
Line 27: Line 27:
| book-title = Proceedings of the 10th International Symposium on Software Metrics, 2004  
| book-title = Proceedings of the 10th International Symposium on Software Metrics, 2004  
| year = 2004
| year = 2004
}}</ref> या जिसे फिटनेस फ़ंक्शन, लागत फ़ंक्शन, उद्देश्य फ़ंक्शन या गुणवत्ता माप भी कहा जाता है, इसका उपयोग करके संभावित हलों की गुणवत्ता को मापने के लिए किया जाता है। इस प्रकार कई सॉफ्टवेयर इंजीनियरिंग समस्याओं को कम्प्यूटेशनल खोज समस्या के रूप में दोबारा तैयार किया जा सकता है।<ref>{{Cite journal
}}</ref> या जिसे फिटनेस फ़ंक्शन, लागत फ़ंक्शन, उद्देश्य फ़ंक्शन या गुणवत्ता माप भी कहा जाता है, इसका उपयोग करके संभावित हलों की गुणवत्ता को मापने के लिए किया जाता है। इस प्रकार कई सॉफ्टवेयर इंजीनियरिंग समस्याओं को कम्प्यूटेशनल सर्च समस्या के रूप में दोबारा तैयार किया जा सकता है।<ref>{{Cite journal
| doi = 10.1049/ip-sen:20030559
| doi = 10.1049/ip-sen:20030559
| issn = 1462-5970
| issn = 1462-5970
Line 61: Line 61:
}}</ref>
}}</ref>


इसके विपरीत, [[खोज-आधारित अनुप्रयोग]] शब्द, किसी अन्य औद्योगिक अनुप्रयोग में खोज तकनीकों के अतिरिक्त [[खोज-इंजन प्रौद्योगिकी]] का उपयोग करने को संदर्भित करता है।
इसके विपरीत, [[खोज-आधारित अनुप्रयोग|सर्च-बेस्ड एप्लीकेशन]] शब्द, किसी अन्य औद्योगिक अनुप्रयोग में सर्च तकनीकों के अतिरिक्त [[खोज-इंजन प्रौद्योगिकी|सर्च-इंजन इंजीनियरिंग]] का उपयोग करने को संदर्भित करता है।


==संक्षिप्त इतिहास==
==संक्षिप्त इतिहास==
Line 79: Line 79:
| year = 1976
| year = 1976
| s2cid = 18875300
| s2cid = 18875300
}}</ref> इस प्रकार 1992 में, एस. ज़ैंथाकिस और उनके सहयोगियों ने पहली बार किसी सॉफ़्टवेयर इंजीनियरिंग से जुड़ी समस्याओं के लिए खोज तकनीक लागू की गई थी।<ref>S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, "Application of genetic algorithms to software testing," in ''Proceedings of the 5th International Conference on Software Engineering and its Applications'', Toulouse, France, 1992, pp.&nbsp;625–636</ref> इस प्रकार इसके आधार पर एसबीएसई शब्द का प्रयोग पहली बार 2001 में [[मार्क हरमन (कंप्यूटर वैज्ञानिक)]] और जोन्स द्वारा किया गया था।<ref>
}}</ref> इस प्रकार 1992 में, एस. ज़ैंथाकिस और उनके सहयोगियों ने पहली बार किसी सॉफ़्टवेयर इंजीनियरिंग से जुड़ी समस्याओं के लिए सर्च तकनीक लागू की गई थी।<ref>S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, "Application of genetic algorithms to software testing," in ''Proceedings of the 5th International Conference on Software Engineering and its Applications'', Toulouse, France, 1992, pp.&nbsp;625–636</ref> इस प्रकार इसके आधार पर एसबीएसई शब्द का प्रयोग पहली बार 2001 में [[मार्क हरमन (कंप्यूटर वैज्ञानिक)]] और जोन्स द्वारा किया गया था।<ref>
{{Cite journal
{{Cite journal
| doi = 10.1016/S0950-5849(01)00189-6
| doi = 10.1016/S0950-5849(01)00189-6
Line 111: Line 111:
| citeseerx = 10.1.1.122.33
| citeseerx = 10.1.1.122.33
| s2cid = 17408871
| s2cid = 17408871
}}</ref> इस प्रकार की खोज से जुड़ी विधियों को अन्य सॉफ़्टवेयर इंजीनियरिंग गतिविधियों पर लागू किया गया है, उदाहरण के लिए आवश्यकताओं का विश्लेषण,<ref>
}}</ref> इस प्रकार की सर्च से जुड़ी विधियों को अन्य सॉफ़्टवेयर इंजीनियरिंग गतिविधियों पर लागू किया गया है, उदाहरण के लिए आवश्यकताओं का विश्लेषण,<ref>
{{Cite journal
{{Cite journal
| doi = 10.1016/j.infsof.2003.07.002
| doi = 10.1016/j.infsof.2003.07.002
Line 192: Line 192:
}}</ref>
}}</ref>
===रिक्वायरमेंट इंजीनियरिंग===
===रिक्वायरमेंट इंजीनियरिंग===
[[आवश्यकताएं इंजिनीयरिंग|रिक्वायरमेंट इंजीनियरिंग]] वह प्रक्रिया है जिसके द्वारा किसी सॉफ़्टवेयर के उपयोगकर्ताओं और वातावरण की आवश्यकताएं निर्धारित और प्रबंधित की जाती हैं। इस प्रकार आवश्यकताओं के चयन और अनुकूलन के लिए खोज-आधारित तरीकों का उपयोग करके आवश्यकताओं के सर्वोत्तम संभव उपसमूह को खोजने के लक्ष्य के साथ किया गया है, जो सीमित संसाधनों और आवश्यकताओं के बीच अन्योन्याश्रय जैसी बाधाओं के बीच उपयोगकर्ता के अनुरोधों से मेल खाता है। इस समस्या को अधिकांशतः [[एमसीडीएम]] या बहु-मानदंड निर्णय लेने की समस्या के रूप में निपटाया जाता है, और सामान्यतः निर्णय निर्माता को लागत और उपयोगकर्ता संतुष्टि के साथ-साथ आवश्यकताओं के खतरों के बीच अच्छे समझौतों के सेट के साथ प्रस्तुत करना सम्मिलित होता है।<ref>
[[आवश्यकताएं इंजिनीयरिंग|रिक्वायरमेंट इंजीनियरिंग]] वह प्रक्रिया है जिसके द्वारा किसी सॉफ़्टवेयर के उपयोगकर्ताओं और इस प्रकार के इनवायरमेंट की आवश्यकताएं निर्धारित और प्रबंधित की जाती हैं। इस प्रकार आवश्यकताओं के चयन और आप्टीमाइजेशन के लिए सर्च-आधारित तरीकों का उपयोग करके आवश्यकताओं के सर्वोत्तम संभव उपसमूह को सर्च करने के टार्गेट के साथ किया गया है, जो सीमित संसाधनों और आवश्यकताओं के बीच अन्योन्याश्रय जैसी बाधाओं के बीच उपयोगकर्ता के अनुरोधों से मेल खाता है। इस समस्या को अधिकांशतः [[एमसीडीएम]] या मल्टीपल क्राइटेरिया डिसीजन लेने की समस्या के रूप में निपटाया जाता है, और सामान्यतः निर्णय निर्माता को लागत और उपयोगकर्ता संतुष्टि के साथ-साथ आवश्यकताओं के खतरों के बीच इस प्रकार के आदान-प्रदान के कारण सेट के साथ प्रस्तुत करना सम्मिलित होता है।<ref>
{{Cite thesis
{{Cite thesis
| type = PhD
| type = PhD
Line 205: Line 205:
Y.&nbsp;Zhang and M.&nbsp;Harman and S.&nbsp;L.&nbsp;Lim, "[http://www.cs.ucl.ac.uk/fileadmin/UCL-CS/images/Research_Student_Information/RN_11_12.pdf Search Based Optimization of Requirements Interaction Management]," Department of Computer Science, University College London, Research Note RN/11/12, 2011.
Y.&nbsp;Zhang and M.&nbsp;Harman and S.&nbsp;L.&nbsp;Lim, "[http://www.cs.ucl.ac.uk/fileadmin/UCL-CS/images/Research_Student_Information/RN_11_12.pdf Search Based Optimization of Requirements Interaction Management]," Department of Computer Science, University College London, Research Note RN/11/12, 2011.
</ref><ref>{{cite book|last1=Li|first1=Lingbo|last2=Harman|first2=Mark|last3=Letier|first3=Emmanuel|last4=Zhang|first4=Yuanyuan|title=Robust Next Release Problem: Handling Uncertainty During Optimization|journal=Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation|date=2014|pages=1247–1254|doi=10.1145/2576768.2598334|isbn=9781450326629|series=Gecco '14|s2cid=8423690}}</ref><ref>{{cite journal|last1=Li|first1=L.|last2=Harman|first2=M.|last3=Wu|first3=F.|last4=Zhang|first4=Y.|title=आवश्यकताओं के चयन में सटीक विश्लेषण का मूल्य|journal=IEEE Transactions on Software Engineering|date=2017|volume=43|issue=6|pages=580–596|doi=10.1109/TSE.2016.2615100|s2cid=8398275|issn=0098-5589|url=https://discovery.ucl.ac.uk/id/eprint/1554255/1/Harman_07582553.pdf}}</ref>
</ref><ref>{{cite book|last1=Li|first1=Lingbo|last2=Harman|first2=Mark|last3=Letier|first3=Emmanuel|last4=Zhang|first4=Yuanyuan|title=Robust Next Release Problem: Handling Uncertainty During Optimization|journal=Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation|date=2014|pages=1247–1254|doi=10.1145/2576768.2598334|isbn=9781450326629|series=Gecco '14|s2cid=8423690}}</ref><ref>{{cite journal|last1=Li|first1=L.|last2=Harman|first2=M.|last3=Wu|first3=F.|last4=Zhang|first4=Y.|title=आवश्यकताओं के चयन में सटीक विश्लेषण का मूल्य|journal=IEEE Transactions on Software Engineering|date=2017|volume=43|issue=6|pages=580–596|doi=10.1109/TSE.2016.2615100|s2cid=8398275|issn=0098-5589|url=https://discovery.ucl.ac.uk/id/eprint/1554255/1/Harman_07582553.pdf}}</ref>
===[[डिबगिंग]] और रखरखाव===
===[[डिबगिंग]] एंड मेन्टिनेंस===
[[सॉफ़्टवेयर बग]] (या [[कोड गंध|कोड स्मेल]]) की पहचान करना और फिर सॉफ़्टवेयर को डीबग करना (या [[पुनर्रचना]]) करना अत्यधिक सीमा तक मैन्युअल और श्रम-गहन प्रयास है, चूंकि यह प्रक्रिया टूल-समर्थित है। इस प्रकार एसबीएसई का उद्देश्य स्वचालित रूप से बग की पहचान करना और उन्हें ठीक करना है, इसके उदाहरण के लिए [[उत्परिवर्तन परीक्षण]] के माध्यम से की जा सकती हैं।
[[सॉफ़्टवेयर बग]] (या [[कोड गंध|कोड स्मेल]]) की पहचान करना और फिर सॉफ़्टवेयर को डीबग करना (या रिफैक्टरिंग) करना अत्यधिक सीमा तक मैन्युअल और श्रम-गहन प्रयास है, चूंकि यह प्रक्रिया टूल-समर्थित है। इस प्रकार एसबीएसई का उद्देश्य स्वचालित रूप से बग की पहचान करना और उन्हें ठीक करना है, इसके उदाहरण के लिए [[उत्परिवर्तन परीक्षण|म्यूटेशन टेस्टिंग]] के माध्यम से की जा सकती हैं।


[[ आनुवंशिक प्रोग्रामिंग |जेनेटिक प्रोग्रामिंग]] , जैविक रूप से प्रेरित तकनीक जिसमें क्रॉसओवर और म्यूटेशन के उपयोग के माध्यम से प्रोग्राम विकसित करना सम्मिलित है, जिसका उपयोग स्रोत कोड की कुछ पंक्तियों को परिवर्तित करके प्रोग्राम को ठीक करने की खोज के लिए किया गया है। [http://dijkstra.cs.virginia.edu/genprog/ जेन प्राॅग इवोल्यूशनरी प्रोग्राम रिपेयर] सॉफ़्टवेयर ने परीक्षण में प्रत्येक के लिए लगभग $8 में 105 में से 55 बग की मरम्मत की जाती हैं।<ref>{{Cite conference
[[ आनुवंशिक प्रोग्रामिंग |जेनेटिक प्रोग्रामिंग]] , जैविक रूप से प्रेरित तकनीक जिसमें क्रॉसओवर और म्यूटेशन के उपयोग के माध्यम से प्रोग्राम विकसित करना सम्मिलित है, जिसका उपयोग स्रोत कोड की कुछ पंक्तियों को परिवर्तित करके प्रोग्राम को ठीक करने की सर्च के लिए किया गया है। [http://dijkstra.cs.virginia.edu/genprog/ जेन प्राॅग इवोल्यूशनरी प्रोग्राम रिपेयर] सॉफ़्टवेयर ने परीक्षण में प्रत्येक के लिए लगभग $8 में 105 में से 55 बग को ठीक किया जाता हैं।<ref>{{Cite conference
| doi = 10.1109/ICSE.2012.6227211
| doi = 10.1109/ICSE.2012.6227211
| conference = 2012 34th International Conference on Software Engineering (ICSE)
| conference = 2012 34th International Conference on Software Engineering (ICSE)
Line 225: Line 225:
}}</ref>
}}</ref>


को-इवैलुएशन प्रिडेटर और प्री [[रूपक|मेटाफाॅर]] को अपनाता है, जिसमें फंक्शन का सूट और यूनिट परीक्षण का सूट साथ विकसित होता है और दूसरे को प्रभावित करता है।<ref>{{Cite conference
को-इवैलुएशन प्रिडेटर और प्री [[रूपक|मेटाफाॅर]] को ग्रहण करता है, जिसमें फंक्शन का सूट और यूनिट परीक्षण का सूट साथ विकसित होता है और दूसरे को प्रभावित करता है।<ref>{{Cite conference
| doi = 10.1109/CEC.2008.4630793
| doi = 10.1109/CEC.2008.4630793
| conference = IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence)
| conference = IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence)
Line 237: Line 237:
| year = 2008
| year = 2008
}}</ref>
}}</ref>
===परीक्षण===
===टेस्टिंग===
सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग को सॉफ़्टवेयर परीक्षण के लिए लागू किया गया है, जिसमें परीक्षण की स्थिति में परीक्षण डेटा की स्वचालित पीढ़ी, परीक्षण स्थिति को न्यूनतम करना और परीक्षण स्थिति को प्राथमिकता देना सम्मिलित है।<ref>{{Cite journal|last1=Harman|first1=Mark|last2=Jia|first2=Yue|last3=Zhang|first3=Yuanyuan|date=April 2015|title=खोज आधारित सॉफ़्टवेयर परीक्षण के लिए उपलब्धियाँ, खुली समस्याएँ और चुनौतियाँ|journal=2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)|location=Graz, Austria|publisher=IEEE|pages=1–12|doi=10.1109/ICST.2015.7102580|citeseerx=10.1.1.686.7418|isbn=978-1-4799-7125-1|s2cid=15272060}}</ref> इस प्रकार [[प्रतिगमन परीक्षण]] पर भी कुछ ध्यान दिया गया है।
सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग को सॉफ़्टवेयर परीक्षण के लिए लागू किया गया है, जिसमें परीक्षण की स्थिति में परीक्षण डेटा की स्वचालित पीढ़ी, परीक्षण स्थिति को न्यूनतम करना और परीक्षण स्थिति को प्राथमिकता देना सम्मिलित है।<ref>{{Cite journal|last1=Harman|first1=Mark|last2=Jia|first2=Yue|last3=Zhang|first3=Yuanyuan|date=April 2015|title=खोज आधारित सॉफ़्टवेयर परीक्षण के लिए उपलब्धियाँ, खुली समस्याएँ और चुनौतियाँ|journal=2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST)|location=Graz, Austria|publisher=IEEE|pages=1–12|doi=10.1109/ICST.2015.7102580|citeseerx=10.1.1.686.7418|isbn=978-1-4799-7125-1|s2cid=15272060}}</ref> इस प्रकार [[प्रतिगमन परीक्षण|रिग्रेशन टेस्टिंग]] पर भी कुछ ध्यान दिया गया है।


===सॉफ़्टवेयर का अनुकूलन===
===सॉफ़्टवेयर का आप्टीमाइजेशन===
[[कार्यक्रम अनुकूलन]] में एसबीएसई का उपयोग, या गति और संसाधन उपयोग के स्थिति में इसे और अधिक कुशल बनाने के लिए सॉफ़्टवेयर के टुकड़े को संशोधित करना सफल शोध का उद्देश्य रहा है।<ref>{{cite journal |last1=Memeti |first1=Suejb |last2=Pllana |first2=Sabri |last3=Binotto |first3=Alecio |last4=Kolodziej |first4=Joanna |last5=Brandic |first5=Ivona |author5-link= Ivona Brandić |title=Using meta-heuristics and machine learning for software optimization of parallel computing systems: a systematic literature review |journal=Computing |volume=101 |issue=8 |date=2018 |pages=893–936 |doi=10.1007/s00607-018-0614-9 |arxiv=1801.09444 |bibcode=2018arXiv180109444M |s2cid=13868111 }}</ref> उदाहरण में, 50,000 लाइन प्रोग्राम में जेनेटिक रूप से सुधार किया गया, जिसके परिणामस्वरूप प्रोग्राम औसतन 70 गुना तेज हो गया हैं।<ref>
[[कार्यक्रम अनुकूलन|प्रोग्राम आप्टीमाइजेशन]] में एसबीएसई का उपयोग, या गति और संसाधन उपयोग के स्थिति में इसे और अधिक कुशल बनाने के लिए सॉफ़्टवेयर के टुकड़े को संशोधित करना सफल शोध का उद्देश्य रहा है।<ref>{{cite journal |last1=Memeti |first1=Suejb |last2=Pllana |first2=Sabri |last3=Binotto |first3=Alecio |last4=Kolodziej |first4=Joanna |last5=Brandic |first5=Ivona |author5-link= Ivona Brandić |title=Using meta-heuristics and machine learning for software optimization of parallel computing systems: a systematic literature review |journal=Computing |volume=101 |issue=8 |date=2018 |pages=893–936 |doi=10.1007/s00607-018-0614-9 |arxiv=1801.09444 |bibcode=2018arXiv180109444M |s2cid=13868111 }}</ref> उदाहरण में, 50,000 लाइन प्रोग्राम में जेनेटिक रूप से सुधार किया गया, जिसके परिणामस्वरूप प्रोग्राम औसतन 70 गुना तेज हो गया हैं।<ref>
{{Cite journal
{{Cite journal
| last1 = Langdon
| last1 = Langdon
Line 252: Line 252:
}}</ref>
}}</ref>


बेसियोस एट अल द्वारा वर्तमान कार्य का पता चलता है कि डेटा संरचना को अनुकूलित करके, गूगल गुवा ने निष्पादन समय पर 9% सुधार, मेमोरी खपत पर 13% सुधार और सीपीयू उपयोग पर 4% सुधार किया गया हैं।<ref>{{cite book|last1=Basios|first1=Michail|last2=Li|first2=Lingbo|last3=Wu|first3=Fan|last4=Kanthan|first4=Leslie|last5=Barr|first5=Earl T.|title=Google अमरूद पर डार्विनियन डेटा संरचनाओं का अनुकूलन|journal=Search Based Software Engineering|volume=10452|date=9 September 2017|pages=161–167|doi=10.1007/978-3-319-66299-2_14|language=en|series=Lecture Notes in Computer Science|isbn=978-3-319-66298-5|url=http://discovery.ucl.ac.uk/10062895/1/ssbse_dariwnian_guava.pdf}}</ref>
बेसियोस एट अल द्वारा वर्तमान कार्य का पता चलता है कि डेटा संरचना को आप्टीमाइजेशन करके, गूगल गुवा ने निष्पादन समय पर 9% सुधार, मेमोरी खपत पर 13% सुधार और सीपीयू उपयोग पर 4% सुधार किया गया हैं।<ref>{{cite book|last1=Basios|first1=Michail|last2=Li|first2=Lingbo|last3=Wu|first3=Fan|last4=Kanthan|first4=Leslie|last5=Barr|first5=Earl T.|title=Google अमरूद पर डार्विनियन डेटा संरचनाओं का अनुकूलन|journal=Search Based Software Engineering|volume=10452|date=9 September 2017|pages=161–167|doi=10.1007/978-3-319-66299-2_14|language=en|series=Lecture Notes in Computer Science|isbn=978-3-319-66298-5|url=http://discovery.ucl.ac.uk/10062895/1/ssbse_dariwnian_guava.pdf}}</ref>
===परियोजना प्रबंधन===
===प्रोजेक्ट मैनेजमेंट===
कई निर्णय जो सामान्यतः प्रोजेक्ट मैनेजर द्वारा लिए जाते हैं, इस प्रकार स्वचालित रूप से किए जा सकते हैं, उदाहरण के लिए, प्रोजेक्ट शेड्यूलिंग इसका प्रमुख उदाहरण हैं।<ref>
कई निर्णय जो सामान्यतः प्रोजेक्ट मैनेजर द्वारा लिए जाते हैं, इस प्रकार स्वचालित रूप से किए जा सकते हैं, उदाहरण के लिए, प्रोजेक्ट शेड्यूलिंग इसका प्रमुख उदाहरण हैं।<ref>
{{Cite conference
{{Cite conference
Line 272: Line 272:
| year = 2012
| year = 2012
}}</ref>
}}</ref>
==उपकरण==
==टूल्स==
एसबीएसई के लिए उपलब्ध टूल में ओपेन-पीएटी,<ref>
एसबीएसई के लिए उपलब्ध टूल में ओपेन-पीएटी,<ref>
{{cite journal
{{cite journal
Line 290: Line 290:
|isbn = 978-3-642-39741-7
|isbn = 978-3-642-39741-7
|hdl-access= free
|hdl-access= free
}}</ref> [[इवोसु]]<ref>{{cite web |url=http://www.evosuite.org/ |title=घर|website=evosuite.org}}</ref> और [https://coverage.readthedocs.io/ कवरेज], पायथन के लिए कोड कवरेज माप उपकरण इसका प्रमुख उदाहरण हैं।<ref>{{Citation|last=others|first=Ned Batchelder and 100|title=coverage: Code coverage measurement for Python|url=https://bitbucket.org/ned/coveragepy|access-date=2018-03-14}}
}}</ref> [[इवोसु]]<ref>{{cite web |url=http://www.evosuite.org/ |title=घर|website=evosuite.org}}</ref> और [https://coverage.readthedocs.io/ कवरेज], पायथन के लिए कोड कवरेज की माप के लिए उपयोग किए जाने वाले विभिन्न टूल्स इसके प्रमुख उदाहरण हैं।<ref>{{Citation|last=others|first=Ned Batchelder and 100|title=coverage: Code coverage measurement for Python|url=https://bitbucket.org/ned/coveragepy|access-date=2018-03-14}}
</ref>
</ref>
==विधि और तकनीक==
==विधि और तकनीक==
Line 296: Line 296:
* [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]]<ref>{{Cite web | url=http://java-source.net/open-source/profilers | title=Open Source Profilers in Java}}</ref> किसी प्रोग्राम के निष्पादित होने पर उसके कुछ भागों की जांच करने के लिए [[ इंस्ट्रुमेंटेशन |इंस्ट्रुमेंटेशन]] के माध्यम से की जाती हैं।
* [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]]<ref>{{Cite web | url=http://java-source.net/open-source/profilers | title=Open Source Profilers in Java}}</ref> किसी प्रोग्राम के निष्पादित होने पर उसके कुछ भागों की जांच करने के लिए [[ इंस्ट्रुमेंटेशन |इंस्ट्रुमेंटेशन]] के माध्यम से की जाती हैं।
* किसी फंक्शन से जुड़े [[अमूर्त वाक्यविन्यास वृक्ष|एब्स्टैक्क सिंटैक्स ट्री]] को प्राप्त करना, जिसकी संरचना में अंतर्दृष्टि प्राप्त करने के लिए स्वचालित रूप से जांच की जा सकती है।
* किसी फंक्शन से जुड़े [[अमूर्त वाक्यविन्यास वृक्ष|एब्स्टैक्क सिंटैक्स ट्री]] को प्राप्त करना, जिसकी संरचना में अंतर्दृष्टि प्राप्त करने के लिए स्वचालित रूप से जांच की जा सकती है।
* एसबीएसई के लिए प्रासंगिक [[प्रोग्राम स्लाइसिंग]] के अनुप्रयोगों में सॉफ्टवेयर रखरखाव, [[अनुकूलन (कंप्यूटर विज्ञान)]] और प्रोग्राम विश्लेषण (कंप्यूटर विज्ञान) सम्मिलित हैं।
* एसबीएसई के लिए प्रासंगिक [[प्रोग्राम स्लाइसिंग]] के अनुप्रयोगों में सॉफ्टवेयर रखरखाव, [[अनुकूलन (कंप्यूटर विज्ञान)|आप्टीमाइजेशन (कंप्यूटर विज्ञान)]] और प्रोग्राम विश्लेषण (कंप्यूटर विज्ञान) सम्मिलित हैं।
* [[ कोड कवरेज़ |कोड कवरेज़]] यह मापने की अनुमति देता है कि इनपुट डेटा के दिए गए समुच्चयों के साथ कितना कोड निष्पादित किया गया है।
* [[ कोड कवरेज़ |कोड कवरेज़]] यह मापने की अनुमति देता है कि इनपुट डेटा के दिए गए समुच्चयों के साथ कितना कोड निष्पादित किया गया है।
* [[स्थैतिक कार्यक्रम विश्लेषण|स्टैटिक प्रोग्राम एनालिसिस]]
* [[स्थैतिक कार्यक्रम विश्लेषण|स्टैटिक प्रोग्राम एनालिसिस]]
Line 303: Line 303:
अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है।
अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है।


उद्योग में एसबीएसई के सफल अनुप्रयोग अधिकांशतः सॉफ्टवेयर परीक्षण के भीतर पाए जा सकते हैं, जहां बड़े पैमाने पर बग को उजागर करने के लिए स्वचालित रूप से यादृच्छिक परीक्षण इनपुट उत्पन्न करने की क्षमता कंपनियों के लिए आकर्षक है। इस प्रकार 2017 में, [[फेसबुक]] ने सॉफ्टवेयर स्टार्टअप माजिके लिमिटेड का अधिग्रहण किया, जिसने खोज-आधारित बग ढूंढने वाला ऐप सैपिएंज विकसित किया गया था।<ref>{{cite web
उद्योग में एसबीएसई के सफल अनुप्रयोग अधिकांशतः सॉफ्टवेयर परीक्षण के भीतर पाए जा सकते हैं, जहां बड़े पैमाने पर बग को उजागर करने के लिए स्वचालित रूप से यादृच्छिक परीक्षण इनपुट उत्पन्न करने की क्षमता कंपनियों के लिए आकर्षक है। इस प्रकार 2017 में, [[फेसबुक]] ने सॉफ्टवेयर स्टार्टअप माजिके लिमिटेड का अधिग्रहण किया, जिसने सर्च-आधारित बग ढूंढने वाला ऐप सैपिएंज विकसित किया गया था।<ref>{{cite web
  |url        = https://venturebeat.com/2018/12/30/sapienz-facebooks-push-to-automate-software-testing/
  |url        = https://venturebeat.com/2018/12/30/sapienz-facebooks-push-to-automate-software-testing/
  |title      = Sapienz: Facebook's push to automate software testing
  |title      = Sapienz: Facebook's push to automate software testing
Line 321: Line 321:
  |access-date = 31 October 2013
  |access-date = 31 October 2013
}}
}}
</ref> इन फंक्शन को सही करने या सुधारने में एसबीएसई के उपयोग के संदर्भ में, डेवलपर्स को आश्वस्त होना चाहिए कि कोई भी स्वचालित रूप से उत्पादित संशोधन सिस्टम की आवश्यकताओं और परीक्षण वातावरण की सीमा से बाहर अप्रत्याशित व्यवहार उत्पन्न नहीं करता है। यह ध्यान में रखते हुए कि पूर्ण रूप से स्वचालित प्रोग्रामिंग अभी तक हासिल नहीं की जा सकी है, ऐसे संशोधनों की वांछनीय संपत्ति यह होगी कि रखरखाव गतिविधियों का समर्थन करने के लिए उन्हें मनुष्यों द्वारा सरलता से समझा जाना चाहिए।<ref>
</ref> इन फंक्शन को सही करने या सुधारने में एसबीएसई के उपयोग के संदर्भ में, डेवलपर्स को आश्वस्त होना चाहिए कि कोई भी स्वचालित रूप से उत्पादित होने वाले संशोधन से सिस्टम की आवश्यकताओं और टेस्टिंग इनवायरमेंट की सीमा से बाहर अप्रत्याशित व्यवहार उत्पन्न नहीं करता है। यह ध्यान में रखते हुए कि पूर्ण रूप से स्वचालित प्रोग्रामिंग अभी तक हासिल नहीं की जा सकी है, ऐसे संशोधनों की वांछनीय संपत्ति यह होगी कि रखरखाव गतिविधियों का समर्थन करने के लिए उन्हें मनुष्यों द्वारा सरलता से समझा जाना चाहिए।<ref>
{{Cite journal
{{Cite journal
| doi = 10.1007/s11219-013-9208-0
| doi = 10.1007/s11219-013-9208-0
Line 372: Line 372:
*[http://www.sigevo.org/wiki/tiki-index.php Genetic and Evolutionary Computation (GECCO)]
*[http://www.sigevo.org/wiki/tiki-index.php Genetic and Evolutionary Computation (GECCO)]
*[https://scholar.google.co.uk/citations?view_op=search_authors&hl=en&mauthors=label:sbse गूगल Scholar page on Search-based software engineering]
*[https://scholar.google.co.uk/citations?view_op=search_authors&hl=en&mauthors=label:sbse गूगल Scholar page on Search-based software engineering]
[[Category: 2001 में कंप्यूटर से संबंधित परिचय]] [[Category: सॉफ़्टवेयर परीक्षण]] [[Category: एल्गोरिदम खोजें]] [[Category: अनुकूलन एल्गोरिदम और विधियाँ]] [[Category: आनुवंशिक एल्गोरिदम]] [[Category: सॉफ्टवेयर गुणवत्ता]] [[Category: कार्यक्रम विश्लेषण]]


 
[[Category:2001 में कंप्यूटर से संबंधित परिचय]]
 
[[Category:CS1 English-language sources (en)]]
[[Category: Machine Translated Page]]
[[Category:Created On 11/07/2023]]
[[Category:Created On 11/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:अनुकूलन एल्गोरिदम और विधियाँ]]
[[Category:आनुवंशिक एल्गोरिदम]]
[[Category:एल्गोरिदम खोजें]]
[[Category:कार्यक्रम विश्लेषण]]
[[Category:सॉफ़्टवेयर परीक्षण]]
[[Category:सॉफ्टवेयर गुणवत्ता]]

Latest revision as of 10:08, 23 August 2023

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

एसबीएसई समस्याओं को दो प्रकारों में विभाजित किया जा सकता है:

  • ब्लैक-बॉक्स आप्टीमाइजेशन समस्याएँ, उदाहरण के लिए लोगों को इस प्रकार के कार्यों को सौंपना होता हैं, जिसके आधार पर विशिष्ट कॉम्बिनेटरियल आप्टीमाइजेशन समस्या को हल किया जाता हैं।
  • व्हाइट-बॉक्स समस्याएं जहां स्रोत कोड पर संचालन पर विचार करने की आवश्यकता है।[1]

परिभाषा

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

इसके विपरीत, सर्च-बेस्ड एप्लीकेशन शब्द, किसी अन्य औद्योगिक अनुप्रयोग में सर्च तकनीकों के अतिरिक्त सर्च-इंजन इंजीनियरिंग का उपयोग करने को संदर्भित करता है।

संक्षिप्त इतिहास

सॉफ़्टवेयर इंजीनियरिंग समस्या के लिए ऑप्टिमाइज़ेशन (गणित) लागू करने के प्रारंभिक प्रयासों में से सॉफ़्टवेयर परीक्षण के क्षेत्र में 1976 में वेब मिलर और डेविड स्पूनर द्वारा रिपोर्ट किया गया था।[4] इस प्रकार 1992 में, एस. ज़ैंथाकिस और उनके सहयोगियों ने पहली बार किसी सॉफ़्टवेयर इंजीनियरिंग से जुड़ी समस्याओं के लिए सर्च तकनीक लागू की गई थी।[5] इस प्रकार इसके आधार पर एसबीएसई शब्द का प्रयोग पहली बार 2001 में मार्क हरमन (कंप्यूटर वैज्ञानिक) और जोन्स द्वारा किया गया था।[6] इस प्रकार 2013 तक शोध समुदाय में 800 से अधिक लेखक सम्मिलित हो गए, जिसमें इसके कारण 40 देशों के लगभग 270 संस्थान सम्मिलित थे।[7]

आवेदन क्षेत्र

सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग सॉफ़्टवेयर जीवन चक्र के लगभग सभी चरणों पर लागू होती है। इस प्रकार सॉफ़्टवेयर परीक्षण प्रमुख अनुप्रयोगों में से रहा है।[8] इस प्रकार की सर्च से जुड़ी विधियों को अन्य सॉफ़्टवेयर इंजीनियरिंग गतिविधियों पर लागू किया गया है, उदाहरण के लिए आवश्यकताओं का विश्लेषण,[9][10] सॉफ्टवेर डिज़ाइन,[11][12] कोड रीफैक्टरिंग,[13] सॉफ्टवेयर डेवलपमेंट,[14] और सॉफ्टवेयर का रखरखाव इत्यादि सम्मिलित हैं।[15]

रिक्वायरमेंट इंजीनियरिंग

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

डिबगिंग एंड मेन्टिनेंस

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

जेनेटिक प्रोग्रामिंग , जैविक रूप से प्रेरित तकनीक जिसमें क्रॉसओवर और म्यूटेशन के उपयोग के माध्यम से प्रोग्राम विकसित करना सम्मिलित है, जिसका उपयोग स्रोत कोड की कुछ पंक्तियों को परिवर्तित करके प्रोग्राम को ठीक करने की सर्च के लिए किया गया है। जेन प्राॅग इवोल्यूशनरी प्रोग्राम रिपेयर सॉफ़्टवेयर ने परीक्षण में प्रत्येक के लिए लगभग $8 में 105 में से 55 बग को ठीक किया जाता हैं।[20]

को-इवैलुएशन प्रिडेटर और प्री मेटाफाॅर को ग्रहण करता है, जिसमें फंक्शन का सूट और यूनिट परीक्षण का सूट साथ विकसित होता है और दूसरे को प्रभावित करता है।[21]

टेस्टिंग

सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग को सॉफ़्टवेयर परीक्षण के लिए लागू किया गया है, जिसमें परीक्षण की स्थिति में परीक्षण डेटा की स्वचालित पीढ़ी, परीक्षण स्थिति को न्यूनतम करना और परीक्षण स्थिति को प्राथमिकता देना सम्मिलित है।[22] इस प्रकार रिग्रेशन टेस्टिंग पर भी कुछ ध्यान दिया गया है।

सॉफ़्टवेयर का आप्टीमाइजेशन

प्रोग्राम आप्टीमाइजेशन में एसबीएसई का उपयोग, या गति और संसाधन उपयोग के स्थिति में इसे और अधिक कुशल बनाने के लिए सॉफ़्टवेयर के टुकड़े को संशोधित करना सफल शोध का उद्देश्य रहा है।[23] उदाहरण में, 50,000 लाइन प्रोग्राम में जेनेटिक रूप से सुधार किया गया, जिसके परिणामस्वरूप प्रोग्राम औसतन 70 गुना तेज हो गया हैं।[24]

बेसियोस एट अल द्वारा वर्तमान कार्य का पता चलता है कि डेटा संरचना को आप्टीमाइजेशन करके, गूगल गुवा ने निष्पादन समय पर 9% सुधार, मेमोरी खपत पर 13% सुधार और सीपीयू उपयोग पर 4% सुधार किया गया हैं।[25]

प्रोजेक्ट मैनेजमेंट

कई निर्णय जो सामान्यतः प्रोजेक्ट मैनेजर द्वारा लिए जाते हैं, इस प्रकार स्वचालित रूप से किए जा सकते हैं, उदाहरण के लिए, प्रोजेक्ट शेड्यूलिंग इसका प्रमुख उदाहरण हैं।[26]

टूल्स

एसबीएसई के लिए उपलब्ध टूल में ओपेन-पीएटी,[27] इवोसु[28] और कवरेज, पायथन के लिए कोड कवरेज की माप के लिए उपयोग किए जाने वाले विभिन्न टूल्स इसके प्रमुख उदाहरण हैं।[29]

विधि और तकनीक

कई विधियाँ और तकनीकें उपलब्ध हैं, जिनमें निम्न बिंदुओ को सम्मिलित किया गया हैं:

उद्योग स्वीकृति

अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है।

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

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

इस क्रिया में एक चिंता यह भी है कि एसबीएसई सॉफ्टवेयर इंजीनियर को निरर्थक बना सकता है। इस कारण विशेष समर्थकों का प्रमाण यह है कि एसबीएसई की प्रेरणा इंजीनियर और कार्यक्रम के बीच संबंध को बढ़ाना होता है।[34]

यह भी देखें

संदर्भ

  1. Harman, Mark (2010). "Why Source Code Analysis and Manipulation Will Always be Important". 10th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM 2010). 10th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM 2010). pp. 7–19. doi:10.1109/SCAM.2010.28.
  2. Harman, Mark; John A. Clark (2004). "Metrics are fitness functions too". Proceedings of the 10th International Symposium on Software Metrics, 2004. 10th International Symposium on Software Metrics, 2004. pp. 58–69. doi:10.1109/METRIC.2004.1357891.
  3. Clark, John A.; Dolado, José Javier; Harman, Mark; Hierons, Robert M.; Jones, Bryan F.; Lumkin, M.; Mitchell, Brian S.; Mancoridis, Spiros; Rees, K.; Roper, Marc; Shepperd, Martin J. (2003). "Reformulating software engineering as a search problem". IEE Proceedings - Software. 150 (3): 161–175. CiteSeerX 10.1.1.144.3059. doi:10.1049/ip-sen:20030559. ISSN 1462-5970.
  4. Miller, Webb; Spooner, David L. (1976). "Automatic Generation of Floating-Point Test Data". IEEE Transactions on Software Engineering. SE-2 (3): 223–226. doi:10.1109/TSE.1976.233818. ISSN 0098-5589. S2CID 18875300.
  5. S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, "Application of genetic algorithms to software testing," in Proceedings of the 5th International Conference on Software Engineering and its Applications, Toulouse, France, 1992, pp. 625–636
  6. Harman, Mark; Jones, Bryan F. (2001-12-15). "Search-based software engineering". Information and Software Technology. 43 (14): 833–839. CiteSeerX 10.1.1.143.9716. doi:10.1016/S0950-5849(01)00189-6. ISSN 0950-5849.
  7. Harman, Mark; Mansouri, S. Afshin; Zhang, Yuanyuan (2012-11-01). "Search-based software engineering: Trends, techniques and applications". ACM Computing Surveys (in English). 45 (1): 1–61. doi:10.1145/2379776.2379787. S2CID 207198163.
  8. McMinn, Phil (2004). "Search-based software test data generation: a survey". Software Testing, Verification and Reliability. 14 (2): 105–156. CiteSeerX 10.1.1.122.33. doi:10.1002/stvr.294. ISSN 1099-1689. S2CID 17408871.
  9. Greer, Des; Ruhe, Guenther (2004-03-15). "Software release planning: an evolutionary and iterative approach". Information and Software Technology. 46 (4): 243–253. CiteSeerX 10.1.1.195.321. doi:10.1016/j.infsof.2003.07.002. ISSN 0950-5849. S2CID 710923.
  10. Colares, Felipe; Souza, Jerffeson; Carmo, Raphael; Pádua, Clarindo; Mateus, Geraldo R. (2009). "A New Approach to the Software Release Planning". XXIII Brazilian Symposium on Software Engineering, 2009. SBES '09. XXIII Brazilian Symposium on Software Engineering, 2009. SBES '09. pp. 207–215. doi:10.1109/SBES.2009.23.
  11. Clark, John A.; Jacob, Jeremy L. (2001-12-15). "Protocols are programs too: the meta-heuristic search for security protocols". Information and Software Technology. 43 (14): 891–904. CiteSeerX 10.1.1.102.6016. doi:10.1016/S0950-5849(01)00195-1. ISSN 0950-5849.
  12. Räihä, Outi (2010-11-01). "खोज-आधारित सॉफ़्टवेयर डिज़ाइन पर एक सर्वेक्षण" (PDF). Computer Science Review. 4 (4): 203–249. CiteSeerX 10.1.1.188.9036. doi:10.1016/j.cosrev.2010.06.001. ISSN 1574-0137.
  13. Mariani, Thainá; Vergilio, Silvia Regina (2017-03-01). "खोज-आधारित रीफैक्टरिंग पर एक व्यवस्थित समीक्षा". Information and Software Technology. 83: 14–34. doi:10.1016/j.infsof.2016.11.009. ISSN 0950-5849.
  14. Alba, Enrique; Chicano, J. Francisco (2007-06-01). "Software project management with GAs". Information Sciences. 177 (11): 2380–2401. doi:10.1016/j.ins.2006.12.020. hdl:10630/8145. ISSN 0020-0255.
  15. Antoniol, Giuliano; Di Penta, Massimiliano; Harman, Mark (2005). "Search-based techniques applied to optimization of project planning for a massive maintenance project". Proceedings of the 21st IEEE International Conference on Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on Software Maintenance, 2005. ICSM'05. pp. 240–249. CiteSeerX 10.1.1.63.8069. doi:10.1109/ICSM.2005.79.
  16. Zhang, Yuanyuan (February 2010). Multi-Objective Search-based Requirements Selection and Optimisation (PhD). Strand, London, UK: University of London.
  17. Y. Zhang and M. Harman and S. L. Lim, "Search Based Optimization of Requirements Interaction Management," Department of Computer Science, University College London, Research Note RN/11/12, 2011.
  18. Li, Lingbo; Harman, Mark; Letier, Emmanuel; Zhang, Yuanyuan (2014). Robust Next Release Problem: Handling Uncertainty During Optimization. pp. 1247–1254. doi:10.1145/2576768.2598334. ISBN 9781450326629. S2CID 8423690. {{cite book}}: |journal= ignored (help)
  19. Li, L.; Harman, M.; Wu, F.; Zhang, Y. (2017). "आवश्यकताओं के चयन में सटीक विश्लेषण का मूल्य" (PDF). IEEE Transactions on Software Engineering. 43 (6): 580–596. doi:10.1109/TSE.2016.2615100. ISSN 0098-5589. S2CID 8398275.
  20. Le Goues, Claire; Dewey-Vogt, Michael; Forrest, Stephanie; Weimer, Westley (2012). "A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each". 2012 34th International Conference on Software Engineering (ICSE). 2012 34th International Conference on Software Engineering (ICSE). pp. 3–13. doi:10.1109/ICSE.2012.6227211.
  21. Arcuri, Andrea; Yao, Xin (2008). "A novel co-evolutionary approach to automatic software bug fixing". IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence). IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence). pp. 162–168. doi:10.1109/CEC.2008.4630793.
  22. Harman, Mark; Jia, Yue; Zhang, Yuanyuan (April 2015). "खोज आधारित सॉफ़्टवेयर परीक्षण के लिए उपलब्धियाँ, खुली समस्याएँ और चुनौतियाँ". 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST). Graz, Austria: IEEE: 1–12. CiteSeerX 10.1.1.686.7418. doi:10.1109/ICST.2015.7102580. ISBN 978-1-4799-7125-1. S2CID 15272060.
  23. Memeti, Suejb; Pllana, Sabri; Binotto, Alecio; Kolodziej, Joanna; Brandic, Ivona (2018). "Using meta-heuristics and machine learning for software optimization of parallel computing systems: a systematic literature review". Computing. 101 (8): 893–936. arXiv:1801.09444. Bibcode:2018arXiv180109444M. doi:10.1007/s00607-018-0614-9. S2CID 13868111.
  24. Langdon, William B.; Harman, Mark. "Optimising Existing Software with Genetic Programming" (PDF). IEEE Transactions on Evolutionary Computation.
  25. Basios, Michail; Li, Lingbo; Wu, Fan; Kanthan, Leslie; Barr, Earl T. (9 September 2017). Google अमरूद पर डार्विनियन डेटा संरचनाओं का अनुकूलन (PDF). pp. 161–167. doi:10.1007/978-3-319-66299-2_14. ISBN 978-3-319-66298-5. {{cite book}}: |journal= ignored (help)
  26. Minku, Leandro L.; Sudholt, Dirk; Yao, Xin (2012). "Evolutionary algorithms for the project scheduling problem: runtime analysis and improved design". Proceedings of the fourteenth international conference on Genetic and evolutionary computation conference. GECCO '12. New York, NY, USA: ACM. pp. 1221–1228. doi:10.1145/2330163.2330332. ISBN 978-1-4503-1177-9.
  27. Mayo, M.; Spacey, S. (2013). "Predicting Regression Test Failures Using Genetic Algorithm-Selected Dynamic Performance Analysis Metrics" (PDF). Proceedings of the 5th International Symposium on Search-Based Software Engineering (SSBSE). Lecture Notes in Computer Science. 8084: 158–171. doi:10.1007/978-3-642-39742-4_13. hdl:10289/7763. ISBN 978-3-642-39741-7.
  28. "घर". evosuite.org.
  29. others, Ned Batchelder and 100, coverage: Code coverage measurement for Python, retrieved 2018-03-14
  30. "Open Source Profilers in Java".
  31. "Sapienz: Facebook's push to automate software testing". VentureBeat. 30 December 2018. Retrieved 29 September 2020.
  32. Jones, Derek (18 October 2013). "Programming using genetic algorithms: isn't that what humans already do ;-)". The Shape of Code. Retrieved 31 October 2013.
  33. Le Goues, Claire; Forrest, Stephanie; Weimer, Westley (2013-09-01). "Current challenges in automatic software repair". Software Quality Journal. 21 (3): 421–443. CiteSeerX 10.1.1.371.5784. doi:10.1007/s11219-013-9208-0. ISSN 1573-1367. S2CID 16435531.
  34. Simons, Christopher L. (May 2013). Whither (away) software engineers in SBSE?. First International Workshop on Combining Modelling with Search-Based Software Engineering, First International Workshop on Combining Modelling with Search-Based Software Engineering. San Francisco, USA: IEEE Press. pp. 49–50. Retrieved 2013-10-31.


बाहरी संबंध