यूएमएल उपकरण

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

 * UML Tools Directory
 * UML Tools Directory