डोमेन-स्पेसिफिक मॉडलिंग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
'''डोमेन-स्पेसिफिक मॉडलिंग''' (डीएसएम) [[कंप्यूटर सॉफ्टवेयर]] जैसे सिस्टम को डिजाइन और विकसित करने के लिए एक [[सॉफ्टवेयर इंजीनियरिंग]] पद्धति (सॉफ्टवेयर इंजीनियरिंग) है। इसमें किसी सिस्टम के विभिन्न पहलुओं का प्रतिनिधित्व करने के लिए [[डोमेन-विशिष्ट भाषा|डोमेन-स्पेसिफिक लैंग्वेज]] का व्यवस्थित उपयोग सम्मिलित है।
'''डोमेन-स्पेसिफिक मॉडलिंग''' (डीएसएम) [[कंप्यूटर सॉफ्टवेयर]] जैसे सिस्टम को डिजाइन और विकसित करने के लिए एक [[सॉफ्टवेयर इंजीनियरिंग]] पद्धति (सॉफ्टवेयर इंजीनियरिंग) है। इसमें किसी सिस्टम के विभिन्न पहलुओं का प्रतिनिधित्व करने के लिए [[डोमेन-विशिष्ट भाषा|डोमेन-स्पेसिफिक लैंग्वेज]] का व्यवस्थित उपयोग सम्मिलित है।


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


== अवलोकन ==
== अवलोकन ==
डोमेन-स्पेसिफिक मॉडलिंग में अधिकांशतः [[स्वचालित प्रोग्रामिंग]] का विचार भी सम्मिलित होता है: डोमेन-स्पेसिफिक लैंग्वेज मॉडल से सीधे निष्पादन योग्य स्रोत कोड का निर्माण स्रोत कोड के मैन्युअल निर्माण और रखरखाव से मुक्त होने का अर्थ है कि डोमेन-स्पेसिफिक लैंग्वेज डेवलपर उत्पादकता में अधिक सुधार कर सकती है।<ref name="dsmKelly">Kelly, S. and Tolvanen, J.-P., (2008) ''Domain-Specific Modeling: Enabling Full Code Generation,'' John Wiley & Sons, New Jersey. {{ISBN|978-0-470-03666-2}} [http://dsmbook.com]</ref> मैन्युअल कोडिंग की तुलना में स्वचालित पीढ़ी की विश्वसनीयता से परिणामी कार्यक्रमों में दोषों की संख्या भी कम हो जाएगी जिससे गुणवत्ता में सुधार होगा।
डोमेन-स्पेसिफिक मॉडलिंग में अधिकांशतः [[स्वचालित प्रोग्रामिंग]] का विचार भी सम्मिलित होता है: डोमेन-स्पेसिफिक लैंग्वेज मॉडल से सीधे निष्पादन योग्य स्रोत कोड का निर्माण स्रोत कोड के मैन्युअल निर्माण और रखरखाव से मुक्त होने का अर्थ है कि डोमेन-स्पेसिफिक लैंग्वेज डेवलपर उत्पादकता में अधिक सुधार कर सकती है।<ref name="dsmKelly">Kelly, S. and Tolvanen, J.-P., (2008) ''Domain-Specific Modeling: Enabling Full Code Generation,'' John Wiley & Sons, New Jersey. {{ISBN|978-0-470-03666-2}} [http://dsmbook.com]</ref> मैन्युअल कोडिंग की तुलना में स्वचालित पीढ़ी की विश्वसनीयता से परिणामी कार्यक्रमों में दोषों की संख्या भी कम हो जाएगी जिससे गुणवत्ता में सुधार होगा।


डोमेन-स्पेसिफिक लैंग्वेज 1980 के दशक के [[कंप्यूटर एडेड सॉफ्टवेयर इंजीनियरिंग]] टूल या 1990 के दशक के [[एकीकृत मॉडलिंग भाषा|एकीकृत मॉडलिंग लैंग्वेज]] टूल में पहले के कोड जनरेशन प्रयासों से भिन्न है। इन दोनों में, कोड जनरेटर और मॉडलिंग लैंग्वेज उपकरण विक्रेताओं द्वारा बनाई गई थीं।{{fact|date=November 2012}} चूँकि एक उपकरण विक्रेता के लिए एक डोमेन-स्पेसिफिक लैंग्वेज और जेनरेटर बनाना संभव है, एक संगठन के अंदर डोमेन-स्पेसिफिक लैंग्वेज का होना अधिक जनरल है। एक या कुछ विशेषज्ञ डेवलपर मॉडलिंग लैंग्वेज और जनरेटर बनाते हैं, और शेष डेवलपर्स उनका उपयोग करते हैं।
डोमेन-स्पेसिफिक लैंग्वेज 1980 के दशक के [[कंप्यूटर एडेड सॉफ्टवेयर इंजीनियरिंग]] टूल या 1990 के दशक के [[एकीकृत मॉडलिंग भाषा|एकीकृत मॉडलिंग लैंग्वेज]] टूल में पहले के कोड जनरेशन प्रयासों से भिन्न है। इन दोनों में, कोड जनरेटर और मॉडलिंग लैंग्वेज उपकरण विक्रेताओं द्वारा बनाई गई थीं।{{fact|date=November 2012}} चूँकि एक उपकरण विक्रेता के लिए एक डोमेन-स्पेसिफिक लैंग्वेज और जेनरेटर बनाना संभव है, एक संगठन के अंदर डोमेन-स्पेसिफिक लैंग्वेज का होना अधिक जनरल है। एक या कुछ विशेषज्ञ डेवलपर मॉडलिंग लैंग्वेज और जनरेटर बनाते हैं, और शेष डेवलपर्स उनका उपयोग करते हैं।


उनका उपयोग करने वाले संगठन द्वारा निर्मित मॉडलिंग लैंग्वेज और जनरेटर होने से उनके स्पष्ट डोमेन के साथ और डोमेन में परिवर्तनों के उत्तर में टाइट फिट होने की अनुमति मिलती है।
उनका उपयोग करने वाले संगठन द्वारा निर्मित मॉडलिंग लैंग्वेज और जनरेटर होने से उनके स्पष्ट डोमेन के साथ और डोमेन में परिवर्तनों के उत्तर में टाइट फिट होने की अनुमति मिलती है।


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


== विषय ==
== विषय ==


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


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


डोमेन-स्पेसिफिक मॉडलिंग का लोकाचार एक स्पेसिफिक कार्य के लिए एक नई लैंग्वेज के निर्माण का समर्थन करता है, और इसलिए मेटा-मेटामॉडल के रूप में डिजाइन की गई आश्चर्यजनक रूप से नई लैंग्वेज हैं। ऐसी लैंग्वेज का सबसे व्यापक रूप से उपयोग किया जाने वाला वर्ग ओपीआरआर है,<ref name="oprrWelke">R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University. [http://www.dsmforum.org/papers/CASE_Repository.html]
डोमेन-स्पेसिफिक मॉडलिंग का लोकाचार एक स्पेसिफिक कार्य के लिए एक नई लैंग्वेज के निर्माण का समर्थन करता है, और इसलिए मेटा-मेटामॉडल के रूप में डिजाइन की गई आश्चर्यजनक रूप से नई लैंग्वेज हैं। ऐसी लैंग्वेज का सबसे व्यापक रूप से उपयोग किया जाने वाला वर्ग ओपीआरआर है,<ref name="oprrWelke">R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University. [http://www.dsmforum.org/papers/CASE_Repository.html]
</ref><ref name="oprrSmolander">Smolander, K., (1992) OPRR - A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224-239.[https://books.google.com/books?id=tsbNn6auhm8C&pg=PA224]</ref> जीओपीआरआर,<ref name="GOPRR">Kelly, S., Lyytinen, K., and Rossi, M., "MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE Environment," Proceedings of CAiSE'96, 8th Intl. Conference on Advanced Information Systems Engineering, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996. (in [http://www.metacase.com/stevek.html Ph.D.] thesis as 3metools.pdf)</ref> और जीओपीपीआरआर, जो न्यूनतम प्रयास के साथ मॉडलिंग लैंग्वेज में पाई जाने वाली चीजों का समर्थन करने पर ध्यान केंद्रित करते हैं।
</ref><ref name="oprrSmolander">Smolander, K., (1992) OPRR - A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224-239.[https://books.google.com/books?id=tsbNn6auhm8C&pg=PA224]</ref> जीओपीआरआर,<ref name="GOPRR">Kelly, S., Lyytinen, K., and Rossi, M., "MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE Environment," Proceedings of CAiSE'96, 8th Intl. Conference on Advanced Information Systems Engineering, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996. (in [http://www.metacase.com/stevek.html Ph.D.] thesis as 3metools.pdf)</ref> और जीओपीपीआरआर, जो न्यूनतम प्रयास के साथ मॉडलिंग लैंग्वेज में पाई जाने वाली चीजों का समर्थन करने पर ध्यान केंद्रित करते हैं।


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


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


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


अधिकांश उपस्थित डोमेन-स्पेसिफिक लैंग्वेज डोमेन-स्पेसिफिक लैंग्वेज वातावरण के साथ होती है, या तो वाणिज्यिक जैसे [[मेटाएडिट+]] या [[ संपत्तिस्रोत ]], ओपन सोर्स जैसे [[ सामान्य ग्रहण मॉडलिंग प्रणाली | जनरल ग्रहण मॉडलिंग प्रणाली]] , या अकादमिक जैसे जेनेरिक मॉडलिंग पर्यावरण डोमेन-स्पेसिफिक लैंग्वेज की बढ़ती लोकप्रियता के कारण उपस्थित आईडीई में डोमेन-स्पेसिफिक लैंग्वेज फ्रेम जोड़े जा रहे हैं, जैसे [http://www.eclipse.org/modeling/ एक्लिप्स मॉडलिंग प्रोजेक्ट] (ईएमपी) [[ ग्रहण मॉडलिंग ढांचा | ग्रहण मॉडलिंग फ्रेम]] और [[ ग्राफ़िकल मॉडलिंग फ़्रेमवर्क ]] के साथ, या [[ सॉफ्टवेयर फ़ैक्टरी ]] के लिए माइक्रोसॉफ्ट के [https://web.archive.org/web/20060423095834/http://msdn.microsoft.com/vstudio/dsltools/ डीएसएल टूल्स] में है।
अधिकांश उपस्थित डोमेन-स्पेसिफिक लैंग्वेज डोमेन-स्पेसिफिक लैंग्वेज वातावरण के साथ होती है, या तो वाणिज्यिक जैसे [[मेटाएडिट+]] या [[ संपत्तिस्रोत |संपत्तिस्रोत]] , ओपन सोर्स जैसे [[ सामान्य ग्रहण मॉडलिंग प्रणाली |जनरल ग्रहण मॉडलिंग प्रणाली]] , या अकादमिक जैसे जेनेरिक मॉडलिंग पर्यावरण डोमेन-स्पेसिफिक लैंग्वेज की बढ़ती लोकप्रियता के कारण उपस्थित आईडीई में डोमेन-स्पेसिफिक लैंग्वेज फ्रेम जोड़े जा रहे हैं, जैसे [http://www.eclipse.org/modeling/ एक्लिप्स मॉडलिंग प्रोजेक्ट] (ईएमपी) [[ ग्रहण मॉडलिंग ढांचा |ग्रहण मॉडलिंग फ्रेम]] और [[ ग्राफ़िकल मॉडलिंग फ़्रेमवर्क |ग्राफ़िकल मॉडलिंग फ़्रेमवर्क]] के साथ, या [[ सॉफ्टवेयर फ़ैक्टरी |सॉफ्टवेयर फ़ैक्टरी]] के लिए माइक्रोसॉफ्ट के [https://web.archive.org/web/20060423095834/http://msdn.microsoft.com/vstudio/dsltools/ डीएसएल टूल्स] में है।


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


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


यूएमएल विभिन्न मॉडल-संचालित विकास दृष्टिकोणों के लिए एक लोकप्रिय विकल्प है, जिसके अनुसार तकनीकी कलाकृतियां जैसे स्रोत कोड, दस्तावेज़ीकरण, परीक्षण और बहुत कुछ एक डोमेन मॉडल से एल्गोरिदमिक रूप से उत्पन्न होते हैं। उदाहरण के लिए, नियमित दस्तावेज़ मानक [[वह एनटोसो बन गया]] के एप्लिकेशन प्रोफाइल को यूएमएल वर्ग की वस्तुओं में नियमावली अवधारणाओं और ऑन्कोलॉजी का प्रतिनिधित्व करके विकसित किया जा सकता है।<ref>{{Cite book |last=Flatt |first=Amelie |title=अकोमा एनटोसो एप्लिकेशन प्रोफाइल का मॉडल-संचालित विकास - एक्सएमएल सबस्केमास की मॉडल-आधारित पीढ़ी के लिए एक वैचारिक ढांचा|last2=Langner |first2=Arne |last3=Leps |first3=Olof |publisher=Sprinter Nature |year=2022 |isbn=978-3-031-14131-7 |edition=1st |location=Heidelberg |language=en}}</ref>
यूएमएल विभिन्न मॉडल-संचालित विकास दृष्टिकोणों के लिए एक लोकप्रिय विकल्प है, जिसके अनुसार तकनीकी कलाकृतियां जैसे स्रोत कोड, दस्तावेज़ीकरण, परीक्षण और बहुत कुछ एक डोमेन मॉडल से एल्गोरिदमिक रूप से उत्पन्न होते हैं। उदाहरण के लिए, नियमित दस्तावेज़ मानक [[वह एनटोसो बन गया]] के एप्लिकेशन प्रोफाइल को यूएमएल वर्ग की वस्तुओं में नियमावली अवधारणाओं और ऑन्कोलॉजी का प्रतिनिधित्व करके विकसित किया जा सकता है।<ref>{{Cite book |last=Flatt |first=Amelie |title=अकोमा एनटोसो एप्लिकेशन प्रोफाइल का मॉडल-संचालित विकास - एक्सएमएल सबस्केमास की मॉडल-आधारित पीढ़ी के लिए एक वैचारिक ढांचा|last2=Langner |first2=Arne |last3=Leps |first3=Olof |publisher=Sprinter Nature |year=2022 |isbn=978-3-031-14131-7 |edition=1st |location=Heidelberg |language=en}}</ref>




Line 44: Line 44:
* डोमेन-स्पेसिफिक लैंग्वेज  
* डोमेन-स्पेसिफिक लैंग्वेज  
* [[फ्रेमवर्क-विशिष्ट मॉडलिंग भाषा|फ्रेमवर्क-स्पेसिफिक मॉडलिंग लैंग्वेज]]  
* [[फ्रेमवर्क-विशिष्ट मॉडलिंग भाषा|फ्रेमवर्क-स्पेसिफिक मॉडलिंग लैंग्वेज]]  
* जनरल पर्पस मॉडलिंग
* जनरल पर्पस मॉडलिंग
* [[डोमेन-विशिष्ट मल्टीमॉडलिंग|डोमेन-स्पेसिफिक मल्टीमॉडलिंग]]
* [[डोमेन-विशिष्ट मल्टीमॉडलिंग|डोमेन-स्पेसिफिक मल्टीमॉडलिंग]]
* [[मॉडल-संचालित इंजीनियरिंग]]
* [[मॉडल-संचालित इंजीनियरिंग]]

Revision as of 09:18, 3 August 2023

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

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

अवलोकन

डोमेन-स्पेसिफिक मॉडलिंग में अधिकांशतः स्वचालित प्रोग्रामिंग का विचार भी सम्मिलित होता है: डोमेन-स्पेसिफिक लैंग्वेज मॉडल से सीधे निष्पादन योग्य स्रोत कोड का निर्माण स्रोत कोड के मैन्युअल निर्माण और रखरखाव से मुक्त होने का अर्थ है कि डोमेन-स्पेसिफिक लैंग्वेज डेवलपर उत्पादकता में अधिक सुधार कर सकती है।[1] मैन्युअल कोडिंग की तुलना में स्वचालित पीढ़ी की विश्वसनीयता से परिणामी कार्यक्रमों में दोषों की संख्या भी कम हो जाएगी जिससे गुणवत्ता में सुधार होगा।

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

उनका उपयोग करने वाले संगठन द्वारा निर्मित मॉडलिंग लैंग्वेज और जनरेटर होने से उनके स्पष्ट डोमेन के साथ और डोमेन में परिवर्तनों के उत्तर में टाइट फिट होने की अनुमति मिलती है।

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

विषय

डोमेन-स्पेसिफिक लैंग्वेज को परिभाषित करना

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

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

डोमेन-स्पेसिफिक मॉडलिंग का लोकाचार एक स्पेसिफिक कार्य के लिए एक नई लैंग्वेज के निर्माण का समर्थन करता है, और इसलिए मेटा-मेटामॉडल के रूप में डिजाइन की गई आश्चर्यजनक रूप से नई लैंग्वेज हैं। ऐसी लैंग्वेज का सबसे व्यापक रूप से उपयोग किया जाने वाला वर्ग ओपीआरआर है,[2][3] जीओपीआरआर,[4] और जीओपीपीआरआर, जो न्यूनतम प्रयास के साथ मॉडलिंग लैंग्वेज में पाई जाने वाली चीजों का समर्थन करने पर ध्यान केंद्रित करते हैं।

डोमेन-स्पेसिफिक लैंग्वेज के लिए उपकरण समर्थन

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

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

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

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

डोमेन-स्पेसिफिक लैंग्वेज और यूएमएल

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

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

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


यह भी देखें

संदर्भ

  1. Kelly, S. and Tolvanen, J.-P., (2008) Domain-Specific Modeling: Enabling Full Code Generation, John Wiley & Sons, New Jersey. ISBN 978-0-470-03666-2 [1]
  2. R.J. Welke. The CASE Repository: More than another database application. In W.W. Cotterman and J.A. Senn, editors, Proceedings of 1988 INTEC Symposium Systems Analysis and Design: A Research Strategy, Atlanta, Georgia, 1988. Georgia State University. [2]
  3. Smolander, K., (1992) OPRR - A Model for Modeling Systems Development Methods. In: Next Generation CASE Tools (eds. K. Lyytinen, V.-P. Tahvanainen) IOS Press, Amsterdam, Netherlands, pp. 224-239.[3]
  4. Kelly, S., Lyytinen, K., and Rossi, M., "MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE Environment," Proceedings of CAiSE'96, 8th Intl. Conference on Advanced Information Systems Engineering, Lecture Notes in Computer Science 1080, Springer-Verlag, pp. 1-21, 1996. (in Ph.D. thesis as 3metools.pdf)
  5. Flatt, Amelie; Langner, Arne; Leps, Olof (2022). अकोमा एनटोसो एप्लिकेशन प्रोफाइल का मॉडल-संचालित विकास - एक्सएमएल सबस्केमास की मॉडल-आधारित पीढ़ी के लिए एक वैचारिक ढांचा (in English) (1st ed.). Heidelberg: Sprinter Nature. ISBN 978-3-031-14131-7.


बाहरी संबंध