CodeGym /Java Blog /अनियमित /यूएमएल वर्ग आरेख
John Squirrels
स्तर 41
San Francisco

यूएमएल वर्ग आरेख

अनियमित ग्रुप में प्रकाशित

परिचय

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

यूएमएल क्या है?

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

विकिपीडिया के अनुसार,

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

आवेदन

आइए जानें कि हम आईडीई में यूएमएल के साथ काम कर सकते हैं। हम अपने IDE के रूप में IntelliJ IDEA का उपयोग करेंगे। यदि आप IntelliJ IDEA अल्टीमेट का उपयोग कर रहे हैं, तो हमारे पास "आउट ऑफ द बॉक्स" "UML सपोर्ट" प्लगइन स्थापित होगा। यह आपको स्वचालित रूप से सुंदर वर्ग आरेख उत्पन्न करने देता है। उदाहरण के लिए, ArrayList क्लास में जाने के लिए Ctrl+N या "नेविगेट" -> "क्लास" मेनू आइटम का उपयोग करें। अब कक्षा के नाम के संदर्भ मेनू में, "आरेख" चुनें -> "आरेख पॉपअप दिखाएं"। नतीजतन, हमें एक सुंदर आरेख मिलता है। यूएमएल: थ्योरी से प्रैक्टिस तक - 2 लेकिन क्या होगा यदि आप स्वयं चित्र बनाना चाहते हैं? और क्या होगा यदि आपके पास अंतिम संस्करण नहीं है? IntelliJ IDEA कम्युनिटी एडिशन का उपयोग करते हुए, हमारे पास कोई अन्य विकल्प नहीं है। इसलिए हमें यह समझने की जरूरत है कि यूएमएल आरेख कैसे व्यवस्थित किया जाता है। पहला,. यह ग्राफ़ विज़ुअलाइज़ेशन टूल का एक सेट है। हम जिस प्लगइन का उपयोग करेंगे, वह इस पर निर्भर करता है। स्थापना के बाद, आपको बिन निर्देशिका को ग्राफ़विज़ स्थापना निर्देशिका से PATH पर्यावरण चर में जोड़ने की आवश्यकता है। उसके बाद, IntelliJ IDEA में, मेनू में फ़ाइल -> सेटिंग चुनें। "सेटिंग्स" विंडो में, "प्लगइन्स" श्रेणी का चयन करें, "रिपॉजिटरी ब्राउज़ करें" बटन पर क्लिक करें, और प्लांटयूएमएल एकीकरण प्लगइन स्थापित करें। प्लांटयूएमएल के बारे में इतना अच्छा क्या है? यह "डॉट" नामक एक ग्राफ विवरण भाषा का उपयोग करके यूएमएल का वर्णन करता है, जो इसे अधिक सार्वभौमिक बनाता है, क्योंकि डॉट भाषा का उपयोग केवल प्लांटयूएमएल से अधिक द्वारा किया जाता है। और तो और, नीचे हम जो कुछ भी करते हैं वह न केवल आईडीई में किया जा सकता है, बल्कि planttext.com पर ऑनलाइन भी किया जा सकता है. प्लांटयूएमएल प्लगइन स्थापित करने के बाद, हम "फ़ाइल" -> "नया" का उपयोग करके यूएमएल आरेख बनाने में सक्षम होंगे। चलिए एक "UML क्लास" डायग्राम बनाते हैं। यह स्वचालित रूप से एक उदाहरण के साथ एक टेम्पलेट उत्पन्न करेगा। हम इसकी सामग्री हटा देंगे और अपनी सामग्री जोड़ देंगे। यह समझने के लिए कि पाठ में इसे कैसे प्रस्तुत किया जाए, प्लांटयूएमएल मैनुअल देखें: plantuml class-diagram। यूएमएल: थ्योरी से प्रैक्टिस तक - 3इन सामग्रियों के आधार पर, आइए अपना यूएमएल आरेख बनाना शुरू करें। निम्न सामग्री जोड़ें, जो दो वर्गों का वर्णन करती है:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
आईडिया में परिणाम देखने के लिए, "व्यू" -> "टूल विंडोज" -> "प्लांटयूएमएल" चुनें। हमें केवल दो वर्ग मिलते हैं जो वर्गों का प्रतिनिधित्व करते हैं। हम जानते हैं कि ये दोनों वर्ग सूची इंटरफ़ेस को लागू करते हैं। इस वर्ग संबंध को बोध कहा जाता है। इस संबंध को एक बिंदीदार रेखा के साथ एक तीर का उपयोग करके दर्शाया गया है। आइए इसे ड्रा करें:

interface List
List <|.. ArrayList
List <|.. LinkedList
सूची संग्रह वर्ग के बच्चों में से एक है । यानी, यह संग्रह प्राप्त करता है । इस संबंध को सामान्यीकरण कहा जाता है। यह एक साधारण निरंतर रेखा वाले तीर की तरह दिखता है। आइए इसे ड्रा करें:

interface Collection
Collection <|-- List
अगले प्रकार के संबंध के लिए, ArrayList वर्ग विवरण में तत्वों के पैकेज निजी सरणी के बारे में एक प्रविष्टि जोड़ें:

~Object[] elementData
अब हम दिखाना चाहते हैं कि ArrayList में कुछ ऑब्जेक्ट हैं। इस मामले में, एक एकत्रीकरण संबंध होगा। सारणी सूचीएक समुच्चय है, क्योंकि इसमें अन्य वस्तुएँ हैं। हम कहते हैं एकत्रीकरण क्योंकि सूची की वस्तुएं सूची के बिना मौजूद हो सकती हैं: वे सूची के अभिन्न अंग नहीं हैं। उनका जीवनकाल सूची के जीवनकाल से बंधा नहीं है। शब्द "एग्रीगेट" लैटिन से हमारे पास आता है और "इकट्ठे" के रूप में अनुवाद करता है, जो कि कुछ से बना है। उदाहरण के लिए, जीवन में, हमारे पास एक पंप असेंबली (एग्रीगेट) होती है, जिसमें एक पंप और एक मोटर होती है। असेंबली को स्वयं अलग किया जा सकता है, और हम इसके कुछ घटकों को अकेला छोड़ सकते हैं। उदाहरण के लिए, बेचने के लिए या किसी अन्य विधानसभा में डालने के लिए। यह एक सूची में उसी तरह है। यह समग्र और एक सतत रेखा पर एक खाली रोम्बस के साथ व्यक्त किया गया है। हम इसका प्रतिनिधित्व इस प्रकार करेंगे:

class Object{
}
ArrayList o- Object
अब हम यह दिखाना चाहते हैं कि ArrayList के विपरीत , LinkedList वर्ग में नोड s - कंटेनर होते हैं जो संग्रहीत डेटा को संदर्भित करते हैं। इस मामले में, नोड लिंक्डलिस्ट का हिस्सा हैं और उनका स्वतंत्र अस्तित्व नहीं है। एक नोड सामग्री ही नहीं है। इसमें केवल सामग्री का संदर्भ होता है। उदाहरण के लिए, जब हम LinkedList में एक स्ट्रिंग जोड़ते हैं , तो हम एक नया नोड जोड़ रहे होते हैं जिसमें स्ट्रिंग का संदर्भ होता है, साथ ही पिछले और अगले नोड का लिंक भी होता है।. इस संबंध को रचना कहा जाता है। यह समग्र (घटक भागों से बना कुछ) पर भरे हुए रोम्बस के साथ एक सतत रेखा खींचकर दर्शाया गया है। अब हम संबंध को पाठ के रूप में प्रस्तुत करेंगे:

class Node{
}
LinkedList *-- Node
और अब आपको यह सीखने की जरूरत है कि दूसरे महत्वपूर्ण प्रकार के रिश्ते को कैसे चित्रित किया जाए: निर्भरता। इसका उपयोग तब किया जाता है जब एक वर्ग दूसरे का उपयोग करता है, लेकिन वर्ग में प्रयुक्त वर्ग शामिल नहीं होता है और न ही इसका उत्तराधिकारी होता है। उदाहरण के लिए, LinkedList और ArrayList जानते हैं कि ListIterator कैसे बनाया जाता है । हम इसे बिंदीदार रेखा वाले तीरों के रूप में दर्शाते हैं:

class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
यह सब करने के बाद, हमें मिलता है: यूएमएल: थ्योरी से प्रैक्टिस तक - 4आप जितना आवश्यक हो उतना विवरण जोड़ सकते हैं। बेशक, ऐसा आरेख बनाने के बारे में अलौकिक कुछ भी नहीं है। अपने कार्यों पर काम करते समय, आप इसे जल्दी से हाथ से निकाल सकते हैं। यह आपको किसी एप्लिकेशन के आर्किटेक्चर के माध्यम से सोचने की क्षमता विकसित करने और कक्षा संरचना में कमियों की पहचान करने में मदद करेगा, न कि उस दिन के बाद जब आप गलत मॉडल को लागू करने में पहले ही दिन बिता चुके हैं। यह कोशिश करने का एक अच्छा कारण लगता है, है ना? :)

स्वचालन

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

mvn archetype:generate
कोई संख्या चुनें या फ़िल्टर लागू करें के जवाब में, डिफ़ॉल्ट छोड़ दें — बस Enter दबाएं. यह हमेशा "मावेन-आर्कटाइप-क्विकस्टार्ट" होगा। नवीनतम संस्करण का चयन करें। इसके बाद, हम कुछ सवालों के जवाब देंगे और प्रोजेक्ट बनाना समाप्त करेंगे: यूएमएल: थ्योरी से प्रैक्टिस तक - 5मावेन इस लेख का विषय नहीं है, इसलिए आप मावेन उपयोगकर्ता केंद्र में मावेन के बारे में अपने सवालों के जवाब पा सकते हैं । उत्पन्न प्रोजेक्ट में, संपादन के लिए प्रोजेक्ट विवरण फ़ाइल, pom.xml खोलें। हम uml-java-docklet स्थापना विवरण से सामग्री को इस फ़ाइल में कॉपी करेंगे। विवरण में प्रयुक्त कलाकृति मावेन सेंट्रल रिपॉजिटरी में नहीं पाई जा सकती। लेकिन निम्नलिखित ने मेरे लिए काम किया: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. दूसरे शब्दों में, विवरण में आपको बस groupId को "info.leadinglight" से "com.chfourie" में बदलना होगा और संस्करण को "1.0.0" पर सेट करना होगा। उसके बाद, हम pom.xml फ़ाइल के साथ निर्देशिका में निम्न आदेश निष्पादित कर सकते हैं:

mvn clean install
और

mvn javadoc: javadoc
यदि अब हम जनरेट किए गए दस्तावेज़ (एक्सप्लोरर टारगेट\साइट\apidocs\index.html) खोलते हैं, तो हम यूएमएल डायग्राम देखेंगे। वैसे, कार्यान्वयन संबंध अब सही ढंग से प्रदर्शित होता है :)

निष्कर्ष

जैसा कि आप देख सकते हैं, यूएमएल आपको अपने आवेदन की संरचना की कल्पना करने देता है। लेकिन यूएमएल और भी बहुत कुछ कर सकता है। आप अपनी कंपनी के भीतर विभिन्न प्रक्रियाओं का वर्णन करने के लिए यूएमएल का उपयोग कर सकते हैं या उस व्यवसाय प्रक्रिया का वर्णन कर सकते हैं जिसमें आपके द्वारा लिखे जा रहे कार्यों को शामिल किया गया है। आपको खुद तय करना होगा कि यूएमएल आपके लिए व्यक्तिगत रूप से कितना उपयोगी है, लेकिन इससे कोई फर्क नहीं पड़ता कि आप क्या तय करते हैं, इसके बारे में अधिक जानने के लिए समय निकालने में मदद मिलेगी।
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION