यूएमएल उपकरण

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

यूएमएल उपकरण का उपयोग यहां व्यापक रूप से उन अनुप्रयोग प्रोग्रामों को सम्मिलित करने के लिए किया जाता है जो विशेष रूप से यूएमएल पर केंद्रित नहीं हैं, लेकिन जो यूएमएल के कुछ कार्यों का या तो योगात्मक के रूप में, घटक के रूप में ' या उनकी समग्र कार्यक्षमता के भाग के रूप में समर्थन करते हैं।

कार्यक्षमता के प्रकार
यूएमएल उपकरण निम्नलिखित प्रकार की कार्यक्षमता का समर्थन करते हैं:

आरेखण
इस संदर्भ में आरेखण का अर्थ है यूएमएल आरेख बनाना और संपादित करना; यह ऐसे आरेख हैं जो एकीकृत प्रतिरूपण भाषा के ग्राफिकल संकेत चिन्हों का अनुसरण करते हैं।

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

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

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

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

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

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

प्रतिरूप और आरेख पस्पर विनिमय
एक्सएमएल मेटाडेटा इंटरचेंज (XMI) यूएमएल प्रतिरूप इंटरचेंज का प्रारूप है। एक्सएमआई यूएमएल आरेख इंटरचेंज  का समर्थन नहीं करता है, जो यूएमएल डायग्राम को एक प्रतिरूप से दूसरे प्रतिरूप में आयात करने की अनुमति देता है।

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

यह भी देखें

 * एकीकृत प्रतिरूपण भाषा उपकरणों की सूची
 * इंजीनियरिंग उपकरणों की आवश्यकताओं की सूची
 * मेटाप्रतिरूपण
 * प्रतिरूप-संचालित इंजीनियरिंग
 * क्यूवीटी
 * विशिष्टता और विवरण भाषा (एसडीएल)

बाहरी संबंध

 * UML Tools Directory
 * UML Tools Directory