एफिल स्टूडियो

From alpha
Jump to navigation Jump to search

EiffelStudio, Eiffel (प्रोग्रामिंग भाषा) के लिए विकास का वातावरण है, जिसे Eiffel Software द्वारा विकसित और वितरित किया गया है।

EiffelStudio में एकल उपयोगकर्ता इंटरफ़ेस के तहत एकीकृत उपकरणों का एक संयोजन शामिल है: कंपाइलर, इंटरप्रेटर, डीबगर, ब्राउज़र, मेट्रिक्स टूल, प्रोफाइलर, डायग्राम और कोड इंस्पेक्टर टूल। उपयोगकर्ता इंटरफ़ेस कई विशिष्ट UI प्रतिमानों पर निर्भर करता है, विशेष रूप से प्रभावी ब्राउज़िंग के लिए पिक-एंड-ड्रॉप।

EiffelStudio Microsoft Windows, Linux, Mac OS, Solaris (ऑपरेटिंग सिस्टम), OpenVMS, Raspberry_Pi सहित कई प्लेटफ़ॉर्म पर उपलब्ध है। स्रोत जीएनयू जनरल पब्लिक लाइसेंस के तहत उपलब्ध है; अन्य वाणिज्यिक लाइसेंस भी उपलब्ध हैं।

A window containing three panes: एक संपादक फलक जिसमें वर्ग स्रोत कोड होता है, एक विशेषता फलक जिसमें संपादन के अंतर्गत वर्ग स्रोत कोड की विशेषताओं की सूची होती है, और आरेख फलक कक्षा को अन्य वर्गों के साथ संबंधों के साथ एक चिह्न के रूप में दिखाता है
EiffelStudio संस्करण 7.2, संपादक, सुविधाएँ दिखा रहा है, और आरेख फलक

स्थिति, लाइसेंस और सामुदायिक प्रक्रिया

EiffelStudio एक ओपन-सोर्स मॉडल है | ओपन-सोर्स डेवलपमेंट के साथ अगली रिलीज़ के विकास के चरण को नियमित रूप से उपलब्ध कराया जाता है।

एफिल समुदाय इसके विकास में सक्रिय रूप से भाग लेता है; इसकी आधिकारिक वेबसाइट Eiffel.org है, जहां परियोजनाएं और संसाधन सूचीबद्ध हैं। स्रोत कोड आधार आमतौर पर अपाचे तोड़फोड़ या गिट के माध्यम से चेक-आउट के लिए उपलब्ध होता है। चर्चा मंच और पसंद भी उपलब्ध हैं।

संकलन प्रौद्योगिकी

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

EiffelStudio का दुभाषिया भाग एक बायटेकोड-उन्मुख आभासी मशीन पर निर्भर करता है। कंपाइलर या तो C (प्रोग्रामिंग लैंग्वेज) या .NET फ्रेमवर्क | .NET CIL (कॉमन इंटरमीडिएट लैंग्वेज) उत्पन्न करता है।

राउंड-ट्रिप इंजीनियरिंग

EiffelStudio का डायग्राम टूल सॉफ़्टवेयर संरचनाओं का ग्राफ़िकल दृश्य प्रदान करता है। इसे दोनों में इस्तेमाल किया जा सकता है

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

टूल पूर्ण राउंडट्रिप इंजीनियरिंग के लिए किसी भी शैली में किए गए परिवर्तनों की अखंडता की गारंटी देता है।

ग्राफिकल नोटेशन या तो बिजनेस ऑब्जेक्ट नोटेशन (बिजनेस ऑब्जेक्ट नोटेशन, ग्रंथ सूची देखें) या एकीकृत मॉडलिंग भाषा है। बॉन डिफ़ॉल्ट है।

प्रयोक्ता इंटरफ़ेस प्रतिमान

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

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

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

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

इकाई और एकीकरण परीक्षण

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

EiffelStudio AutoTest उपयोगकर्ता को टेस्ट केस बनाने की तीन विधियाँ प्रदान करता है।

सबसे पहले, मैन्युअल रूप से बनाए गए परीक्षणों के लिए EiffelStudio AutoTest एक टेस्ट क्लास बनाता है जिसमें टेस्ट के लिए एक फ्रेमवर्क होता है। उपयोगकर्ता को केवल टेस्ट कोड ही प्रदान करने की आवश्यकता है।

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

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

इतिहास

EiffelStudio 1986 में जारी इंटरएक्टिव सॉफ्टवेयर इंजीनियरिंग इंक (एफिल सॉफ्टवेयर के पूर्ववर्ती) द्वारा एफिल के पहले कार्यान्वयन के लिए अपनी जड़ों का पता लगाता है। भाषा का एफिल 3 संस्करण (जैसा कि एफिल: द लैंग्वेज में प्रलेखित है, ग्रंथ सूची देखें)। 2001 के आसपास एफिलबेंच का नाम बदलकर एफिलस्टूडियो कर दिया गया; यह वह समय भी है जब विंडोज़ और अन्य प्लेटफार्मों को लक्षित करने के लिए पर्यावरण अपने यूनिक्स मूल से परे चला गया।

2001 के बाद से प्रमुख रिलीज, और प्रत्येक के लिए कुछ नई विशेषताएं इस प्रकार हैं:

  • 5.0, जुलाई 2001: एफिलस्टूडियो उचित होने वाला पहला संस्करण; EiffelStudio के डायग्राम टूल के रूप में EiffelBench के साथ ग्राफिकल डिज़ाइन के लिए पिछले EiffelCase टूल का एकीकरण)
  • 5.1, दिसंबर 2001: .NET को समर्थन देने वाला पहला संस्करण (प्रेस रिलीज (पीडीएफ))। [2] जारी करने से पहले इसे एफिल# कहा जाता था।
  • 5.2, नवंबर 2002: जीयूआई डिजाइन के लिए नया एफिलबिल्ड, विस्तारित डिबगिंग, सी और सी++ एकीकरण के लिए नई तंत्र, आरेख उपकरण के लिए बेहतर राउंडट्रिपिंग सुविधाएं (eiffel.com/general/news/12-18-2002.html प्रेस विज्ञप्ति)।
  • 5.3, मार्च 2003: एफिल .NET के लिए इंक्रीमेंटल कंपाइलर तकनीक उपलब्ध। Eiffel2Java Java इंटरफ़ेस, EiffelStore (रिलेशनल डेटाबेस इंटरफ़ेस) अब .NET, पहले Mac OS संस्करण, प्रदर्शन संवर्द्धन के लिए उपलब्ध है (/studio53pressrelease.html प्रेस विज्ञप्ति)।
  • 5.4, नवंबर 2003: नया रूपांतरण तंत्र, प्रमुख रन-टाइम प्रदर्शन में सुधार (विशेष रूप से एफिल (प्रोग्रामिंग भाषा)#एजेंट्स के लिए), प्रमुख संकलन गति में सुधार, मल्टीथ्रेडिंग के लिए बेहतर समर्थन, प्रमुख एफिलबिल्ड संवर्द्धन, परिभाषित नए तंत्र के लिए पहला समर्थन एक्मा इंटरनेशनल एफिल कमेटी द्वारा, बाहरी (जैसे सी) रूटीन में पूर्व शर्त और पोस्ट कंडीशन के लिए समर्थन, एफिल से ओवरलोडेड .NET रूटीन को कॉल करने का पारदर्शी तरीका (eiffel.com/general/news/studio54pressrelease.html प्रेस विज्ञप्ति)।
  • 5.5, सितंबर 2004: डॉकिंग, बेहतर डिबगर, नई ईसीएमए भाषा सुविधाएँ (प्रेस विज्ञप्ति) .
  • 5.6, अगस्त 2005: उन्नत आरेख उपकरण (यूएमएल समर्थन, बल-निर्देशित ग्राफ, बेहतर राउंडट्रिपिंग), घटक वस्तु मॉडल घटकों की पीढ़ी के लिए नया एफिलकॉम विज़ार्ड, बेहतर वर्ग पूर्णता, तेज़ .NET कोड जनरेशन (आर्काइव.ऑर्ग/वेब/20061017131505/https://www.eiffel.com/general/news/EiffelStudio56pressrelease.html प्रेस विज्ञप्ति)।
  • 5.7, अक्टूबर 2006: ISO/ECMA एफिल एडिशन (इनलाइन एजेंट, नए विस्तारित शब्दार्थ, टुपल्स नाम, यूनिकोड सपोर्ट), रीफैक्टरिंग सुविधाएं, प्रोजेक्ट सिस्टम को कॉन्फ़िगर करने का नया तरीका, मेट्रिक्स (वेब/20090210140801/http://eiffel.com/general/news/EiffelStudio57pressrelease.html प्रेस विज्ञप्ति)।
  • 6.0, जून 2007: आईएसओ/ईसीएमए एफिल एडिशन (इंटीजर के लिए मल्टीपल कंस्ट्रेंट जेनेरिटी, ऑक्टल और बाइनरी नोटेशन), नया टैब्ड एडिटर, नई डॉकिंग सुविधाएं ताकि उपयोगकर्ता अपने वर्कस्पेस को परिभाषित कर सकें, पिक एंड ड्रॉप, डिपेंडेंसी के अलावा कॉन्टेक्स्ट मेन्यू उपलब्ध है टूल (प्रेस विज्ञप्ति)।
  • 6.1, नवंबर 2007: (प्रेस विज्ञप्ति)।
  • 6.2, मई 2008: (प्रेस विज्ञप्ति)।
  • 6.3, दिसंबर 2008: (प्रेस विज्ञप्ति)।
  • 6.4, जून 2009: (प्रेस विज्ञप्ति)।
  • 6.5, नवंबर 2009: (प्रेस विज्ञप्ति)।
  • 6.6, मई 2010: (प्रेस विज्ञप्ति)।
  • 6.7, नवंबर 2010: (प्रेस विज्ञप्ति)।
  • 6.8, मई 2011। स्कूप (सॉफ्टवेयर), सरल समवर्ती वस्तु-उन्मुख प्रोग्रामिंग का समर्थन करने वाली सुविधाओं का पहला कार्यान्वयन शामिल है। (प्रेस विज्ञप्ति)।
  • 7.0, नवंबर 2011। स्कूप (सॉफ्टवेयर) समानांतर विकास सुविधा, जीयूआई पुस्तकालय और रिबन (कंप्यूटिंग) इंटरफ़ेस संरचनाओं के लिए उपकरण समर्थन, शून्य सुरक्षा के लिए बेहतर समर्थन के लिए प्रदर्शन और कार्यात्मक संवर्द्धन शामिल हैं। शून्य-सुरक्षित सॉफ्टवेयर विकास, और कई अन्य सुधार .
  • 7.1, जून 2012। स्कूप (सॉफ्टवेयर) प्रोसेसर कचरा संग्रह शामिल है। एफिल इंफॉर्मेशन सिस्टम में कई सुधार एप्लिकेशन कोड को उपयुक्त बाहरी संसाधनों जैसे आवश्यकता दस्तावेजों से जोड़ते हैं।
  • 7.2, फरवरी 2013।
  • 7.3, जुलाई 2013।
  • 13.11, दिसंबर 2013। यह रिलीज एक नई वर्जन नंबरिंग स्कीम का उपयोग करने की शुरुआत को चिह्नित करता है। (रिलीज़ नोट) (दबाएं मुक्त करना)।
  • 14.05, मई 2014। नया एफिल इंस्पेक्टर टूल (उच्च कोड गुणवत्ता बनाए रखने में मदद करने के लिए स्थिर विश्लेषण उपकरण) शामिल है। (प्रेस विज्ञप्ति)।
  • 15.01, जनवरी 2015। नया स्कूप रनटाइम महत्वपूर्ण प्रदर्शन सुधार लाता है। (प्रेस विज्ञप्ति)।
  • 16.05, मई 2016। रखरखाव रिलीज। (प्रेस विज्ञप्ति)।
  • 17.01, जनवरी 2017। समर्थित संकलन विकल्पों को दस्तावेज और लागू करने के लिए पुस्तकालय क्षमता तंत्र। कोड टेम्प्लेट। (17.01 रिलीज़)
  • 17.05, मई 2017। अप्रचलित सुविधाओं का बेहतर पता लगाना। स्थानीय चरों के लिए चुनें और छोड़ें। (17.05 रिलीज़)
  • 18.01, फरवरी 2018। गहरा एकीकृत कोड विश्लेषक। सशर्त अभिव्यक्तियों और प्रकट सरणियों के लिए बेहतर प्रकार के नियम। वर्ग सुविधाएँ। (18.01 रिलीज़)।
  • 18.07, जुलाई 2018। वर्ग सुविधाओं के लिए नियमों में ढील। बाद के कोष्ठक भाव। दूरस्थ परियोजना लक्ष्य। (18.07 रिलीज़)।
  • 18.11, दिसंबर 2018। सभी कंटेनरों को लूप के पुनरावृति रूप में इस्तेमाल किया जा सकता है, और रैखिक वाले को दूसरों से आरंभ किया जा सकता है। (18.11 रिलीज़)।
  • 19.05, मई 2019। यूनिकोड ऑपरेटर्स, HiDPI, डेड 'क्लास' रिमूवल, कंपाइलर ऑप्टिमाइज़ेशन। (19.05 रिलीज़)।
  • 20.05, मई 2020। मल्टी-ब्रांच एक्सप्रेशन, अनटाइप्ड मैनिफेस्टसामग्री के आधार पर स्ट्रिंग मूल्यांकन। (20.05 रिलीज़)।
  • 20.11, नवंबर 2020। एक बार क्लास, रैपसी। (20.11 रिलीज़)।
  • 21.11, नवंबर 2021। लिनक्स, यूनिक्स और मैक ओएस पर बेहतर उपस्थिति के लिए जीटीके 3 पर जाना, नया स्रोत नियंत्रण उपकरण। (21.11 रिलीज़)।
  • 22.05, मई 2022। स्रोत नियंत्रण उपकरण और यूआई सुधार। (22.05 रिलीज़)।
  • '22.12', दिसंबर 2022। नया प्लेटफॉर्म, ARM सपोर्ट (22.12 रिलीज़)।

कोड विश्लेषक

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

यह भी देखें

संदर्भ

  1. Zurfluh, Stefan; Tschannen, Julian; Meyer, Bertrand (April 1, 2014), Rule-Based Code Analysis (PDF), ETH Zurich, retrieved May 25, 2014


ग्रन्थसूची

  • Eiffel Software: EiffelStudio manual. Online at https://www.eiffel.org/documentation
  • Bertrand Meyer: Eiffel: The Language, Prentice Hall, 1991 (second revised printing, 1992).
  • Bertrand Meyer.: An Object-Oriented Environment: Principles and Applications, Prentice Hall. 1995 (describes the principles underlying the original EiffelBench).
  • Kim Waldén and Jean-Marc Nerson: Seamless Object-Oriented Software Architecture, Prentice Hall, 1995 (contains a description of the BON method and notation).


बाहरी संबंध