CodeGym /Java Blog /यादृच्छिक /UML वर्ग आकृती
John Squirrels
पातळी 41
San Francisco

UML वर्ग आकृती

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले

परिचय

मला वाटते "दोनदा मोजा, ​​एकदा कापा" ही म्हण सर्वांनी ऐकली असेल. प्रोग्रामिंगमध्ये हा खरा सल्ला आहे. आपण अंमलबजावणीसाठी कोणताही वेळ घालवण्यापूर्वी त्याच्या अंमलबजावणीबद्दल विचार करणे केव्हाही चांगले. अंमलबजावणी दरम्यान, तुम्हाला अनेकदा वर्ग तयार करावे लागतात आणि ते कसे संवाद साधतील याचा विचार करावा लागतो. या सर्वांचे व्हिज्युअल प्रतिनिधित्व तुम्हाला सर्वात योग्य उपाय शोधण्यात मदत करू शकते. इथेच UML वर्ग आकृती आमच्या मदतीला येते.

UML म्हणजे काय?

तुम्ही शोध इंजिनमधील संबंधित प्रतिमा पाहिल्यास, तुम्हाला दिसेल की UML चा आकृती, बाण आणि चौरस यांच्याशी काहीतरी संबंध आहे. तुम्हाला हे माहित असणे आवश्यक आहे की UML म्हणजे युनिफाइड मॉडेलिंग लँग्वेज. युनिफाइड हा इथे महत्त्वाचा शब्द आहे. याचा अर्थ असा की आमची प्रतिमा केवळ आम्हालाच नाही तर UML जाणणाऱ्या इतर कोणालाही समजेल. आकृत्या काढण्यासाठी ही लिंग्वा फ्रँका आहे.

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

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

अर्ज

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

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
IDEA मध्ये निकाल पाहण्यासाठी, "पहा" -> "टूल विंडोज" -> "प्लांटयूएमएल" निवडा. आम्हाला फक्त दोन वर्ग मिळतात जे वर्गांचे प्रतिनिधित्व करतात. आम्हाला माहित आहे की हे दोन्ही वर्ग लिस्ट इंटरफेस लागू करतात. या वर्ग संबंधाला अनुभूती म्हणतात. हा संबंध ठिपके असलेल्या रेषेसह बाण वापरून दर्शविला जातो. चला ते काढूया:

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

interface Collection
Collection <|-- List
पुढील प्रकारच्या नातेसंबंधासाठी, ArrayList वर्ग वर्णनामध्ये घटकांच्या खाजगी अॅरे पॅकेजबद्दलची नोंद जोडा:

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

class Object{
}
ArrayList o- Object
आता आम्हाला दाखवायचे आहे की ArrayList च्या विपरीत , LinkedList क्लासमध्ये Node s — कंटेनर असतात जे संग्रहित डेटाचा संदर्भ देतात. या प्रकरणात, नोड हे LinkedList चा भाग आहेत आणि त्यांचे स्वतंत्र अस्तित्व नाही. नोड ही सामग्री नाही. त्यात फक्त सामग्रीचा संदर्भ आहे. उदाहरणार्थ, जेव्हा आम्ही लिंक्डलिस्टमध्ये स्ट्रिंग जोडतो , तेव्हा आम्ही एक नवीन नोड जोडतो ज्यामध्ये स्ट्रिंगचा संदर्भ असतो, तसेच मागील आणि पुढील नोडची लिंक असते.. या संबंधाला रचना म्हणतात. संमिश्र (घटक भागांपासून बनलेले काहीतरी) वर भरलेल्या समभुज चौकोनासह सतत रेषा रेखाटून त्याचे चित्रण केले जाते. आता आम्ही मजकूर म्हणून संबंध दर्शवू:

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

class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
हे सर्व केल्यानंतर, आम्हाला मिळते: UML: सिद्धांत ते सराव - 4तुम्ही आवश्यक तेवढे तपशील जोडू शकता. अर्थात, असा आराखडा काढण्यात अलौकिक काहीही नाही. आपल्या स्वतःच्या कार्यांवर काम करताना, आपण ते पटकन हाताने काढू शकता. हे तुम्हाला अॅप्लिकेशनच्या आर्किटेक्चरद्वारे विचार करण्याची क्षमता विकसित करण्यात आणि वर्ग रचनेतील उणीवा ओळखण्यात मदत करेल, तुम्ही चुकीचे मॉडेल लागू करण्यात दिवस घालवल्यानंतर नाही. ते प्रयत्न करण्याचे एक चांगले कारण दिसते, नाही का? :)

ऑटोमेशन

PlantUML आकृत्या आपोआप निर्माण करण्याचे विविध मार्ग आहेत. उदाहरणार्थ, IDEA मध्ये SketchIT प्लगइन आहे, परंतु ते संपूर्णपणे योग्यरित्या रेखाचित्रे काढत नाही. समजा इंटरफेसची अंमलबजावणी चुकीच्या पद्धतीने काढली गेली आहे (ते वारसा म्हणून प्रदर्शित केले आहे). तुमच्या प्रोजेक्टच्या बिल्ड प्रक्रियेमध्ये हे कसे समाकलित करायचे याची उदाहरणे इंटरनेटमध्ये आहेत. उदाहरणार्थ, Maven सह uml-java-docklet कसे वापरायचे ते तुम्ही शोधू शकता . प्रदर्शित करण्यासाठी, आम्ही द्रुतपणे एक Maven प्रकल्प तयार करण्यासाठी Maven Archetype वापरू . धावा

mvn archetype:generate
नंबर निवडा किंवा फिल्टर लागू करा याला प्रतिसाद म्हणून, डीफॉल्ट सोडा — फक्त एंटर दाबा. हे नेहमी "maven-archetype-quickstart" असेल. नवीनतम आवृत्ती निवडा. पुढे, आम्ही काही प्रश्नांची उत्तरे देऊ आणि प्रकल्प तयार करणे पूर्ण करू: UML: सिद्धांत ते सराव - 5Maven हा या लेखाचा विषय नाही, त्यामुळे तुम्ही Maven बद्दलच्या तुमच्या प्रश्नांची उत्तरे Maven Users Center मध्ये शोधू शकता . व्युत्पन्न केलेल्या प्रकल्पामध्ये, संपादनासाठी प्रकल्प वर्णन फाइल, pom.xml उघडा. आम्ही या फाईलमध्ये uml-java-docklet इंस्टॉलिंग वर्णनातील सामग्री कॉपी करू . वर्णनात वापरलेली कलाकृती Maven सेंट्रल रिपॉजिटरीमध्ये आढळू शकत नाही. परंतु खालील माझ्यासाठी कार्य केले: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0. दुसऱ्या शब्दांत, वर्णनात तुम्हाला फक्त "info.leadinglight" वरून "com.chfourie" वर ग्रुपआयडी बदलण्याची आणि आवृत्ती "1.0.0" वर सेट करण्याची आवश्यकता आहे. त्यानंतर, आपण pom.xml फाइलसह डिरेक्टरीमध्ये खालील कमांड्स कार्यान्वित करू शकतो:

mvn clean install
आणि

mvn javadoc: javadoc
जर आपण आता जनरेट केलेले डॉक्युमेंटेशन (एक्सप्लोरर टार्गेट\site\apidocs\index.html) उघडले तर आपल्याला UML डायग्राम्स दिसतील. तसे, अंमलबजावणी संबंध आता योग्यरित्या प्रदर्शित केले आहे :)

निष्कर्ष

तुम्ही बघू शकता, UML तुम्हाला तुमच्या अर्जाची रचना पाहू देते. पण UML अजून बरेच काही करू शकते. तुम्ही तुमच्या कंपनीतील विविध प्रक्रियांचे वर्णन करण्यासाठी किंवा तुम्ही लिहित असलेल्या कार्याचा समावेश असलेल्या व्यवसाय प्रक्रियेचे वर्णन करण्यासाठी UML वापरू शकता. UML वैयक्तिकरित्या तुमच्यासाठी किती उपयुक्त आहे हे तुम्हाला स्वतः ठरवावे लागेल, परंतु तुम्ही काय निर्णय घेतलात तरीही, त्याबद्दल अधिक जाणून घेण्यासाठी वेळ शोधणे उपयुक्त ठरेल.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION