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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

 * कंप्यूटर एडेड सॉफ्टवेयर इंजीनियरिंग
 * डोमेन-संचालित डिज़ाइन
 * डोमेन-विशिष्ट भाषा
 * फ्रेमवर्क-विशिष्ट मॉडलिंग भाषा
 * सामान्य प्रयोजन मॉडलिंग
 * डोमेन-विशिष्ट मल्टीमॉडलिंग
 * मॉडल-संचालित इंजीनियरिंग
 * मॉडल-संचालित वास्तुकला
 * सॉफ्टवेयर कारखाने
 * सेवा-उन्मुख मॉडलिंग#अनुशासन-विशिष्ट मॉडलिंग|अनुशासन-विशिष्ट मॉडलिंग

बाहरी संबंध

 * Domain-specific modeling for generative software development, Web-article by Martijn Iseger, 2010
 * Domain Specific Modeling in IoC frameworks Web-article by Ke Jin, 2007
 * Domain-Specific Modeling for Full Code Generation from Methods & Tools Web-article by Juha-Pekka Tolvanen, 2005
 * Creating a Domain-Specific Modeling Language for an Existing Framework Web-article by Juha-Pekka Tolvanen, 2006