सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग''' (SBSE) मुख्य रूप से सॉफ़्टवेयर इंजीनियरिंग में आने वाली विभिन्न समस्याओं के लिए [[आनुवंशिक एल्गोरिदम|जेनेटिक एल्गोरिदम]], [[ तैयार किए हुयी धातु पे पानी चढाने की कला |सिम्यूलेटेड एन्यूलिंग]] और टैबू खोज जैसी [[मेटाह्यूरिस्टिक]] खोज से जुड़ी विधियों को लागू करती है। इस प्रकार की [[सॉफ्टवेयर इंजीनियरिंग]] में कई गतिविधियों को [[अनुकूलन (गणित)|अनुकूलित (गणित)]] करके विभिन्न समस्याओं के रूप में परिभाषित किया जा सकता है। इस प्रकार से संचालित होने वाले विभिन्न अनुसंधानों की अनुकूलन (गणित) विधि जैसे [[रैखिक प्रोग्रामिंग|लीनियर प्रोग्रामिंग]] या [[गतिशील प्रोग्रामिंग|डायनैमिक प्रोग्रामिंग]] अधिकांशतः बड़े पैमाने पर सॉफ्टवेयर इंजीनियरिंग समस्याओं के लिए उनके [[कम्प्यूटेशनल जटिलता सिद्धांत]] या समस्या संरचना पर उनकी धारणाओं के कारण अव्यावहारिक होती हैं। इसके आधार पर शोधकर्ता और चिकित्सक मेटाह्यूरिस्टिक खोज तकनीकों का उपयोग करते हैं, जो इस प्रकार के निकट या इष्टतम या अच्छी तरह से पर्याप्त मात्रा में हल को खोजने के लिए विभिन्न प्रकार की समस्याओं से जुड़ी संरचनाओं पर छोटी धारणाएं प्रतिपादित करते हैं। | |||
एसबीएसई समस्याओं को दो प्रकारों में विभाजित किया जा सकता है: | एसबीएसई समस्याओं को दो प्रकारों में विभाजित किया जा सकता है: | ||
* ब्लैक-बॉक्स अनुकूलन समस्याएँ, उदाहरण के लिए, लोगों को कार्य सौंपना | * ब्लैक-बॉक्स अनुकूलन समस्याएँ, उदाहरण के लिए, लोगों को कार्य को सौंपना होता हैं, जिसके आधार पर विशिष्ट कॉम्बिनेटरियल अनुकूलन समस्या को हल किया जाता हैं। | ||
* व्हाइट-बॉक्स समस्याएं जहां स्रोत कोड पर संचालन पर विचार करने की आवश्यकता है।<ref> | * व्हाइट-बॉक्स समस्याएं जहां स्रोत कोड पर संचालन पर विचार करने की आवश्यकता है।<ref> | ||
{{Cite conference | {{Cite conference | ||
Line 16: | Line 16: | ||
}}</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> या जिसे फिटनेस फ़ंक्शन, लागत फ़ंक्शन, उद्देश्य फ़ंक्शन या गुणवत्ता माप भी कहा जाता है, इसका उपयोग करके संभावित हलों की गुणवत्ता को मापने के लिए किया जाता है। इस प्रकार कई सॉफ्टवेयर इंजीनियरिंग समस्याओं को कम्प्यूटेशनल खोज समस्या के रूप में दोबारा तैयार किया जा सकता है।<ref>{{Cite journal | ||
| doi = 10.1049/ip-sen:20030559 | | doi = 10.1049/ip-sen:20030559 | ||
| issn = 1462-5970 | | issn = 1462-5970 | ||
Line 60: | Line 60: | ||
| citeseerx = 10.1.1.144.3059 | | citeseerx = 10.1.1.144.3059 | ||
}}</ref> | }}</ref> | ||
इसके विपरीत, [[खोज-आधारित अनुप्रयोग]] शब्द, किसी अन्य औद्योगिक अनुप्रयोग में खोज तकनीकों के | |||
इसके विपरीत, [[खोज-आधारित अनुप्रयोग]] शब्द, किसी अन्य औद्योगिक अनुप्रयोग में खोज तकनीकों के अतिरिक्त [[खोज-इंजन प्रौद्योगिकी]] का उपयोग करने को संदर्भित करता है। | |||
==संक्षिप्त इतिहास== | ==संक्षिप्त इतिहास== | ||
सॉफ़्टवेयर इंजीनियरिंग समस्या के लिए ऑप्टिमाइज़ेशन (गणित) लागू करने के | सॉफ़्टवेयर इंजीनियरिंग समस्या के लिए ऑप्टिमाइज़ेशन (गणित) लागू करने के प्रारंभिक प्रयासों में से [[सॉफ़्टवेयर परीक्षण]] के क्षेत्र में 1976 में [[वेब मिलर]] और डेविड स्पूनर द्वारा रिपोर्ट किया गया था।<ref> | ||
{{Cite journal | {{Cite journal | ||
| doi = 10.1109/TSE.1976.233818 | | doi = 10.1109/TSE.1976.233818 | ||
Line 78: | Line 79: | ||
| year = 1976 | | year = 1976 | ||
| s2cid = 18875300 | | s2cid = 18875300 | ||
}}</ref> 1992 में, एस. ज़ैंथाकिस और उनके सहयोगियों ने पहली बार किसी सॉफ़्टवेयर इंजीनियरिंग | }}</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. 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 93: | Line 94: | ||
| date = 2001-12-15 | | date = 2001-12-15 | ||
| citeseerx = 10.1.1.143.9716 | | citeseerx = 10.1.1.143.9716 | ||
}}</ref> 2013 तक शोध समुदाय में 800 से अधिक लेखक | }}</ref> इस प्रकार 2013 तक शोध समुदाय में 800 से अधिक लेखक सम्मिलित हो गए, जिसमें इसके कारण 40 देशों के लगभग 270 संस्थान सम्मिलित थे।<ref>{{Cite journal|last1=Harman|first1=Mark|last2=Mansouri|first2=S. Afshin|last3=Zhang|first3=Yuanyuan|date=2012-11-01|title=Search-based software engineering: Trends, techniques and applications|journal=ACM Computing Surveys|language=en|volume=45|issue=1|pages=1–61|doi=10.1145/2379776.2379787|s2cid=207198163|url=http://bura.brunel.ac.uk/handle/2438/8811}}</ref> | ||
==आवेदन क्षेत्र== | ==आवेदन क्षेत्र== | ||
सर्च बेस्ड सॉफ़्टवेयर इंजीनियरिंग सॉफ़्टवेयर जीवन चक्र के लगभग सभी चरणों पर लागू होती है। इस प्रकार सॉफ़्टवेयर परीक्षण प्रमुख अनुप्रयोगों में से रहा है।<ref> | |||
{{Cite journal | {{Cite journal | ||
| doi = 10.1002/stvr.294 | | doi = 10.1002/stvr.294 | ||
Line 110: | Line 111: | ||
| citeseerx = 10.1.1.122.33 | | citeseerx = 10.1.1.122.33 | ||
| s2cid = 17408871 | | s2cid = 17408871 | ||
}}</ref> खोज | }}</ref> इस प्रकार की खोज से जुड़ी विधियों को अन्य सॉफ़्टवेयर इंजीनियरिंग गतिविधियों पर लागू किया गया है, उदाहरण के लिए आवश्यकताओं का विश्लेषण,<ref> | ||
{{Cite journal | {{Cite journal | ||
| doi = 10.1016/j.infsof.2003.07.002 | | doi = 10.1016/j.infsof.2003.07.002 | ||
Line 174: | Line 175: | ||
| hdl = 10630/8145 | | hdl = 10630/8145 | ||
| hdl-access = free | | hdl-access = free | ||
}}</ref> और सॉफ्टवेयर | }}</ref> और सॉफ्टवेयर का रखरखाव इत्यादि सम्मिलित हैं।<ref> | ||
{{Cite conference | {{Cite conference | ||
| doi = 10.1109/ICSM.2005.79 | | doi = 10.1109/ICSM.2005.79 | ||
Line 190: | Line 191: | ||
| citeseerx = 10.1.1.63.8069 | | citeseerx = 10.1.1.63.8069 | ||
}}</ref> | }}</ref> | ||
=== | ===रिक्वायरमेंट इंजीनियरिंग=== | ||
[[आवश्यकताएं इंजिनीयरिंग]] वह प्रक्रिया है जिसके द्वारा किसी सॉफ़्टवेयर के उपयोगकर्ताओं और वातावरण की | [[आवश्यकताएं इंजिनीयरिंग|रिक्वायरमेंट इंजीनियरिंग]] वह प्रक्रिया है जिसके द्वारा किसी सॉफ़्टवेयर के उपयोगकर्ताओं और वातावरण की आवश्यकताएं निर्धारित और प्रबंधित की जाती हैं। इस प्रकार आवश्यकताओं के चयन और अनुकूलन के लिए खोज-आधारित तरीकों का उपयोग करके आवश्यकताओं के सर्वोत्तम संभव उपसमूह को खोजने के लक्ष्य के साथ किया गया है, जो सीमित संसाधनों और आवश्यकताओं के बीच अन्योन्याश्रय जैसी बाधाओं के बीच उपयोगकर्ता के अनुरोधों से मेल खाता है। इस समस्या को अधिकांशतः [[एमसीडीएम]] या बहु-मानदंड निर्णय लेने की समस्या के रूप में निपटाया जाता है, और सामान्यतः निर्णय निर्माता को लागत और उपयोगकर्ता संतुष्टि के साथ-साथ आवश्यकताओं के खतरों के बीच अच्छे समझौतों के सेट के साथ प्रस्तुत करना सम्मिलित होता है।<ref> | ||
{{Cite thesis | {{Cite thesis | ||
| type = PhD | | type = PhD | ||
Line 205: | Line 206: | ||
</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 | ||
| 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 223: | Line 224: | ||
| year = 2012 | | year = 2012 | ||
}}</ref> | }}</ref> | ||
को-इवैलुएशन प्रिडेटर और प्री [[रूपक|मेटाफाॅर]] को अपनाता है, जिसमें फंक्शन का सूट और यूनिट परीक्षण का सूट साथ विकसित होता है और दूसरे को प्रभावित करता है।<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 236: | Line 238: | ||
}}</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=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 249: | Line 251: | ||
| url = http://www0.cs.ucl.ac.uk/staff/w.langdon/ftp/papers/Langdon_2013_ieeeTEC.pdf | | url = http://www0.cs.ucl.ac.uk/staff/w.langdon/ftp/papers/Langdon_2013_ieeeTEC.pdf | ||
}}</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> | |||
===परियोजना प्रबंधन=== | ===परियोजना प्रबंधन=== | ||
कई निर्णय जो | कई निर्णय जो सामान्यतः प्रोजेक्ट मैनेजर द्वारा लिए जाते हैं, इस प्रकार स्वचालित रूप से किए जा सकते हैं, उदाहरण के लिए, प्रोजेक्ट शेड्यूलिंग इसका प्रमुख उदाहरण हैं।<ref> | ||
{{Cite conference | {{Cite conference | ||
| publisher = ACM | | publisher = ACM | ||
Line 270: | Line 273: | ||
}}</ref> | }}</ref> | ||
==उपकरण== | ==उपकरण== | ||
एसबीएसई के लिए उपलब्ध टूल में ओपेन-पीएटी,<ref> | |||
{{cite journal | {{cite journal | ||
|last1 = Mayo | |last1 = Mayo | ||
Line 287: | 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> [[इवोसु]]<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> | ||
== | ==विधि और तकनीक== | ||
कई विधियाँ और तकनीकें उपलब्ध हैं, जिनमें | कई विधियाँ और तकनीकें उपलब्ध हैं, जिनमें निम्न बिंदुओ को सम्मिलित किया गया हैं: | ||
* [[प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)]]<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> किसी प्रोग्राम के निष्पादित होने पर उसके कुछ भागों की जांच करने के लिए [[ इंस्ट्रुमेंटेशन |इंस्ट्रुमेंटेशन]] के माध्यम से की जाती हैं। | ||
* | * किसी फंक्शन से जुड़े [[अमूर्त वाक्यविन्यास वृक्ष|एब्स्टैक्क सिंटैक्स ट्री]] को प्राप्त करना, जिसकी संरचना में अंतर्दृष्टि प्राप्त करने के लिए स्वचालित रूप से जांच की जा सकती है। | ||
* एसबीएसई के लिए प्रासंगिक [[प्रोग्राम स्लाइसिंग]] के अनुप्रयोगों में सॉफ्टवेयर रखरखाव, [[अनुकूलन (कंप्यूटर विज्ञान)]] और प्रोग्राम विश्लेषण (कंप्यूटर विज्ञान) | * एसबीएसई के लिए प्रासंगिक [[प्रोग्राम स्लाइसिंग]] के अनुप्रयोगों में सॉफ्टवेयर रखरखाव, [[अनुकूलन (कंप्यूटर विज्ञान)]] और प्रोग्राम विश्लेषण (कंप्यूटर विज्ञान) सम्मिलित हैं। | ||
* [[ कोड कवरेज़ | कोड कवरेज़]] यह मापने की अनुमति देता है कि इनपुट डेटा के दिए गए | * [[ कोड कवरेज़ |कोड कवरेज़]] यह मापने की अनुमति देता है कि इनपुट डेटा के दिए गए समुच्चयों के साथ कितना कोड निष्पादित किया गया है। | ||
* [[स्थैतिक कार्यक्रम विश्लेषण]] | * [[स्थैतिक कार्यक्रम विश्लेषण|स्टैटिक प्रोग्राम एनालिसिस]] | ||
==उद्योग स्वीकृति== | ==उद्योग स्वीकृति== | ||
अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है। | अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है। | ||
उद्योग में एसबीएसई के सफल अनुप्रयोग | उद्योग में एसबीएसई के सफल अनुप्रयोग अधिकांशतः सॉफ्टवेयर परीक्षण के भीतर पाए जा सकते हैं, जहां बड़े पैमाने पर बग को उजागर करने के लिए स्वचालित रूप से यादृच्छिक परीक्षण इनपुट उत्पन्न करने की क्षमता कंपनियों के लिए आकर्षक है। इस प्रकार 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 307: | Line 310: | ||
|access-date = 29 September 2020 | |access-date = 29 September 2020 | ||
}}</ref> | }}</ref> | ||
अन्य अनुप्रयोग परिदृश्यों में, सॉफ़्टवेयर इंजीनियर उन उपकरणों को अपनाने में अनिच्छुक हो सकते हैं जिन पर उनका बहुत कम नियंत्रण होता है या जो ऐसे समाधान उत्पन्न करते हैं जो मनुष्यों द्वारा उत्पादित समाधानों से भिन्न होते हैं।<ref> | |||
इसके अन्य अनुप्रयोग परिदृश्यों में, सॉफ़्टवेयर इंजीनियर उन उपकरणों को अपनाने में अनिच्छुक हो सकते हैं, जिन पर उनका बहुत कम नियंत्रण होता है या जो ऐसे समाधान उत्पन्न करते हैं जो मनुष्यों द्वारा उत्पादित समाधानों से भिन्न होते हैं।<ref> | |||
{{cite web | {{cite web | ||
|url = http://shape-of-code.coding-guidelines.com/2013/10/18/programming-using-genetic-algorithms-isnt-that-what-humans-already-do/ | |url = http://shape-of-code.coding-guidelines.com/2013/10/18/programming-using-genetic-algorithms-isnt-that-what-humans-already-do/ | ||
Line 317: | Line 321: | ||
|access-date = 31 October 2013 | |access-date = 31 October 2013 | ||
}} | }} | ||
</ref> | </ref> इन फंक्शन को सही करने या सुधारने में एसबीएसई के उपयोग के संदर्भ में, डेवलपर्स को आश्वस्त होना चाहिए कि कोई भी स्वचालित रूप से उत्पादित संशोधन सिस्टम की आवश्यकताओं और परीक्षण वातावरण की सीमा से बाहर अप्रत्याशित व्यवहार उत्पन्न नहीं करता है। यह ध्यान में रखते हुए कि पूर्ण रूप से स्वचालित प्रोग्रामिंग अभी तक हासिल नहीं की जा सकी है, ऐसे संशोधनों की वांछनीय संपत्ति यह होगी कि रखरखाव गतिविधियों का समर्थन करने के लिए उन्हें मनुष्यों द्वारा सरलता से समझा जाना चाहिए।<ref> | ||
{{Cite journal | {{Cite journal | ||
| doi = 10.1007/s11219-013-9208-0 | | doi = 10.1007/s11219-013-9208-0 | ||
Line 337: | Line 341: | ||
}} | }} | ||
</ref> | </ref> | ||
एक | |||
इस क्रिया में एक चिंता यह भी है कि एसबीएसई सॉफ्टवेयर इंजीनियर को निरर्थक बना सकता है। इस कारण विशेष समर्थकों का प्रमाण यह है कि एसबीएसई की प्रेरणा इंजीनियर और कार्यक्रम के बीच संबंध को बढ़ाना होता है।<ref> | |||
{{Cite conference | {{Cite conference | ||
| publisher = IEEE Press | | publisher = IEEE Press | ||
Line 352: | Line 357: | ||
==यह भी देखें== | ==यह भी देखें== | ||
*प्रोग्राम | *प्रोग्राम एनालिसिस (कंप्यूटर विज्ञान) | ||
*[[गतिशील कार्यक्रम विश्लेषण]] | *[[गतिशील कार्यक्रम विश्लेषण|डायनैमिक प्रोग्राम एनालिसिस]] | ||
*[[आनुवंशिक सुधार]] | *[[आनुवंशिक सुधार|जेनेटिक सुधार]] | ||
==संदर्भ== | ==संदर्भ== | ||
Line 366: | Line 371: | ||
*[http://2013.icse-conferences.org/ International Conference on Software Engineering] | *[http://2013.icse-conferences.org/ International Conference on Software Engineering] | ||
*[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 | *[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: सॉफ़्टवेयर परीक्षण]] [[Category: एल्गोरिदम खोजें]] [[Category: अनुकूलन एल्गोरिदम और विधियाँ]] [[Category: आनुवंशिक एल्गोरिदम]] [[Category: सॉफ्टवेयर गुणवत्ता]] [[Category: कार्यक्रम विश्लेषण]] | ||
Revision as of 21:37, 9 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]
विधि और तकनीक
कई विधियाँ और तकनीकें उपलब्ध हैं, जिनमें निम्न बिंदुओ को सम्मिलित किया गया हैं:
- प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग)[30] किसी प्रोग्राम के निष्पादित होने पर उसके कुछ भागों की जांच करने के लिए इंस्ट्रुमेंटेशन के माध्यम से की जाती हैं।
- किसी फंक्शन से जुड़े एब्स्टैक्क सिंटैक्स ट्री को प्राप्त करना, जिसकी संरचना में अंतर्दृष्टि प्राप्त करने के लिए स्वचालित रूप से जांच की जा सकती है।
- एसबीएसई के लिए प्रासंगिक प्रोग्राम स्लाइसिंग के अनुप्रयोगों में सॉफ्टवेयर रखरखाव, अनुकूलन (कंप्यूटर विज्ञान) और प्रोग्राम विश्लेषण (कंप्यूटर विज्ञान) सम्मिलित हैं।
- कोड कवरेज़ यह मापने की अनुमति देता है कि इनपुट डेटा के दिए गए समुच्चयों के साथ कितना कोड निष्पादित किया गया है।
- स्टैटिक प्रोग्राम एनालिसिस
उद्योग स्वीकृति
अनुसंधान के अपेक्षाकृत नए क्षेत्र के रूप में, एसबीएसई को अभी तक व्यापक उद्योग स्वीकृति का अनुभव नहीं हुआ है।
उद्योग में एसबीएसई के सफल अनुप्रयोग अधिकांशतः सॉफ्टवेयर परीक्षण के भीतर पाए जा सकते हैं, जहां बड़े पैमाने पर बग को उजागर करने के लिए स्वचालित रूप से यादृच्छिक परीक्षण इनपुट उत्पन्न करने की क्षमता कंपनियों के लिए आकर्षक है। इस प्रकार 2017 में, फेसबुक ने सॉफ्टवेयर स्टार्टअप माजिके लिमिटेड का अधिग्रहण किया, जिसने खोज-आधारित बग ढूंढने वाला ऐप सैपिएंज विकसित किया गया था।[31]
इसके अन्य अनुप्रयोग परिदृश्यों में, सॉफ़्टवेयर इंजीनियर उन उपकरणों को अपनाने में अनिच्छुक हो सकते हैं, जिन पर उनका बहुत कम नियंत्रण होता है या जो ऐसे समाधान उत्पन्न करते हैं जो मनुष्यों द्वारा उत्पादित समाधानों से भिन्न होते हैं।[32] इन फंक्शन को सही करने या सुधारने में एसबीएसई के उपयोग के संदर्भ में, डेवलपर्स को आश्वस्त होना चाहिए कि कोई भी स्वचालित रूप से उत्पादित संशोधन सिस्टम की आवश्यकताओं और परीक्षण वातावरण की सीमा से बाहर अप्रत्याशित व्यवहार उत्पन्न नहीं करता है। यह ध्यान में रखते हुए कि पूर्ण रूप से स्वचालित प्रोग्रामिंग अभी तक हासिल नहीं की जा सकी है, ऐसे संशोधनों की वांछनीय संपत्ति यह होगी कि रखरखाव गतिविधियों का समर्थन करने के लिए उन्हें मनुष्यों द्वारा सरलता से समझा जाना चाहिए।[33]
इस क्रिया में एक चिंता यह भी है कि एसबीएसई सॉफ्टवेयर इंजीनियर को निरर्थक बना सकता है। इस कारण विशेष समर्थकों का प्रमाण यह है कि एसबीएसई की प्रेरणा इंजीनियर और कार्यक्रम के बीच संबंध को बढ़ाना होता है।[34]
यह भी देखें
- प्रोग्राम एनालिसिस (कंप्यूटर विज्ञान)
- डायनैमिक प्रोग्राम एनालिसिस
- जेनेटिक सुधार
संदर्भ
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ Zhang, Yuanyuan (February 2010). Multi-Objective Search-based Requirements Selection and Optimisation (PhD). Strand, London, UK: University of London.
- ↑ 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.
- ↑ 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) - ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ Langdon, William B.; Harman, Mark. "Optimising Existing Software with Genetic Programming" (PDF). IEEE Transactions on Evolutionary Computation.
- ↑ 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) - ↑ 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.
- ↑ 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.
- ↑ "घर". evosuite.org.
- ↑ others, Ned Batchelder and 100, coverage: Code coverage measurement for Python, retrieved 2018-03-14
- ↑ "Open Source Profilers in Java".
- ↑ "Sapienz: Facebook's push to automate software testing". VentureBeat. 30 December 2018. Retrieved 29 September 2020.
- ↑ Jones, Derek (18 October 2013). "Programming using genetic algorithms: isn't that what humans already do ;-)". The Shape of Code. Retrieved 31 October 2013.
- ↑ 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.
- ↑ 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.