यूएमएल उपकरण

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

 * UML Tools Directory
 * UML Tools Directory