यह ट्यूटोरियल UML की गहन तुलना प्रदान करता हैऑब्जेक्ट डायग्राम्स और क्लास डायग्राम्स, जो ऑब्जेक्ट डायग्राम्स द्वारा रनटाइम पर सिस्टम के राज्यों को कैप्चर करने के तरीके पर ध्यान केंद्रित करता है, जबकि क्लास डायग्राम्स द्वारा प्रदान की गई स्थिर संरचना के साथ तुलना करता है। इसमें विस्तृत व्याख्याएँ, दोनों डायग्राम प्रकारों और उनके व्यावहारिक अनुप्रयोगों को समझने में पाठकों की मदद करने वाले बहुत सारे उदाहरण शामिल हैं।
1. UML डायग्राम्स का परिचय
यूनिफाइड मॉडलिंग भाषा (UML) एक मानकीकृत तरीका है जिससे सिस्टम के डिज़ाइन और व्यवहार को दृश्य बनाया जा सकता है। इसके डायग्राम प्रकारों में, क्लास डायग्राम्स और ऑब्जेक्ट डायग्राम्स ऑब्जेक्ट-ओरिएंटेड सिस्टम के मॉडलिंग के लिए महत्वपूर्ण हैं, लेकिन वे अलग-अलग उद्देश्यों के लिए हैं:
- क्लास डायग्राम्स वर्णन करते हैं स्थिर संरचना एक सिस्टम की, क्लासेस, उनके गुण, विधियाँ और संबंधों को परिभाषित करते हैं।
- ऑब्जेक्ट डायग्राम्स कैप्चर करते हैं गतिशील अवस्था रनटाइम के दौरान एक विशिष्ट क्षण पर सिस्टम की, जिसमें उद्भवित ऑब्जेक्ट्स और उनके संबंध दिखाए जाते हैं।
यह ट्यूटोरियल ऑब्जेक्ट डायग्राम्स द्वारा रनटाइम अवस्थाओं को दर्शाने के तरीके का अध्ययन करता है, जबकि क्लास डायग्राम्स के समयरहित, संरचनात्मक दृष्टिकोण के साथ तुलना करता है, व्यावहारिक उदाहरणों के साथ।
2. क्लास डायग्राम्स: स्थिर ब्लूप्रिंट
उद्देश्य और संरचना
क्लास डायग्राम्स ऑब्जेक्ट-ओरिएंटेड डिज़ाइन की आधारशिला हैं, जो एक स्थिर दृश्य सिस्टम की संरचना का प्रदान करते हैं। वे परिभाषित करते हैं:
- क्लासेस: ऑब्जेक्ट्स के लिए टेम्पलेट, जो गुण (डेटा) और विधियाँ (व्यवहार) को निर्दिष्ट करते हैं।
- संबंध: क्लासों के बीच संबंध, एकीकरण, संघटना, सामान्यीकरण और निर्भरता।
- सीमाएँ: प्रणाली के संरचना के नियम या शर्तें।
क्लास आरेख हैं समयरहित, जिसका अर्थ है कि वे निष्पादन के एक विशिष्ट बिंदु के संदर्भ के बिना प्रणाली के डिज़ाइन का प्रतिनिधित्व करते हैं। इनका उपयोग प्रणाली डिज़ाइन, कार्यान्वयन योजना और कोड उत्पादन के दौरान किया जाता है।
मुख्य तत्व
- क्लास: तीन भागों (नाम, गुण, विधियाँ) वाले आयत के रूप में प्रतिनिधित्व किया जाता है।
- गुण: क्लास के गुण या डेटा क्षेत्र (उदाहरण के लिए, नाम: स्ट्रिंग)।
- विधियाँ: क्लास द्वारा किए जा सकने वाले संचालन या व्यवहार (उदाहरण के लिए, calculateTotal(): डबल)।
- संबंध:
- संबंध: क्लासों के बीच एक सामान्य संबंध (ठोस रेखा)।
- एकीकरण: एक “है-एक” संबंध (खाली हीरा)।
- संघटना: एक मजबूत “मालिक-है” संबंध (पूर्ण हीरा)।
- सामान्यीकरण: विरासत या “है-एक” संबंध (खाली त्रिभुज वाली तीर)।
- निर्भरता: एक कमजोर संबंध जहाँ एक क्लास दूसरी क्लास पर निर्भर होती है (डैश लाइन)।
उदाहरण परिदृश्य
क्लास आरेख आदर्श हैं:
- सॉफ्टवेयर प्रणाली की संरचना का डिज़ाइन करने के लिए।
- विकासकर्ताओं या हितधारकों को संरचना के बारे में संचार करने के लिए।
- वस्तु-आधारित प्रोग्रामिंग में कोड स्केलेटन उत्पादन करने के लिए।
3. ऑब्जेक्ट डायग्राम: रनटाइम स्नैपशॉट्स
उद्देश्य और संरचना
ऑब्जेक्ट डायग्राम एक प्रदान करते हैंरनटाइम के एक विशिष्ट बिंदु पर सिस्टम का स्नैपशॉट, जो इनस्टेंशिएटेड ऑब्जेक्ट्स, उनके एट्रिब्यूट मानों और उनके संबंधों (लिंक्स) को दिखाते हैं। वे हैंडायनामिक, एक विशिष्ट स्थिति या उपयोग केस में सिस्टम की स्थिति को कैप्चर करते हैं।
ऑब्जेक्ट डायग्राम क्लास डायग्राम से निकले हैं, क्योंकि ऑब्जेक्ट क्लास के उदाहरण होते हैं, और लिंक्स क्लास डायग्राम में परिभाषित संबंधों के उदाहरण होते हैं।
मुख्य तत्व
- ऑब्जेक्ट: ऑब्जेक्ट नाम: क्लास नाम के फॉर्मेट के साथ एक आयत के रूप में दर्शाया जाता है, जो विशिष्ट एट्रिब्यूट मानों को दिखाता है।
- लिंक्स: ऑब्जेक्ट्स के बीच के संबंध, जो क्लास डायग्राम से संबंधों के उदाहरणों का प्रतिनिधित्व करते हैं।
- एट्रिब्यूट मान: एक निर्धारित समय पर ऑब्जेक्ट के एट्रिब्यूट्स के वास्तविक मान (उदाहरण के लिए, मूल्य = 99.99)।
- मल्टीप्लिसिटी: दर्शाता है कि कितने ऑब्जेक्ट्स एक संबंध में शामिल हैं (उदाहरण के लिए, एक से बहुत)।
उदाहरण परिदृश्य
ऑब्जेक्ट डायग्राम उपयोगी हैं:
- एक विशिष्ट उपयोग केस या परीक्षण परिदृश्य के दौरान ऑब्जेक्ट्स की स्थिति को दृश्य बनाने के लिए।
- रनटाइम पर ऑब्जेक्ट इंटरैक्शन को समझने के लिए डीबगिंग करना।
- आवश्यकताओं के खिलाफ सिस्टम व्यवहार की पुष्टि करना।
4. ऑब्जेक्ट और क्लास डायग्राम के बीच मुख्य अंतर
| पहलू | क्लास डायग्राम | ऑब्जेक्ट डायग्राम |
|---|---|---|
| उद्देश्य | क्लास की स्थिर संरचना और संबंधों को परिभाषित करता है। | रनटाइम पर ऑब्जेक्ट्स और उनके संबंधों का एक स्नैपशॉट दिखाता है। |
| फोकस | सारांश वर्ग और उनके संभावित संबंध। | प्रत्यक्ष उदाहरण (वस्तुएँ) और उनकी वर्तमान स्थिति। |
| कालिक दृष्टिकोण | समयरहित, प्रणाली के डिज़ाइन का प्रतिनिधित्व करता है। | कालिक, निष्पादन के एक विशिष्ट क्षण को कैप्चर करता है। |
| सामग्री | गुण, विधियाँ और संबंध (संबंध, सामान्यीकरण)। | विशिष्ट गुणांक मानों और संबंधों वाली वस्तुएँ। |
| उपयोग केस | प्रणाली डिज़ाइन, संरचना, कोड उत्पादन। | डिबगिंग, परिदृश्य सत्यापन, रनटाइम स्थिति विश्लेषण। |
| उदाहरण | मॉडल जैसे गुणों और ड्राइव() जैसी विधियों वाला एक कार वर्ग। | एक myCar: Car वस्तु जिसमें model = “Toyota” है और myEngine: Engine वस्तु से जुड़ी है। |
5. व्यावहारिक उदाहरण
नीचे विभिन्न प्रणालियों के लिए क्लास और वस्तु आरेखों की तुलना करने वाले तीन विस्तृत उदाहरण दिए गए हैं।
उदाहरण 1: ऑनलाइन शॉपिंग प्रणाली
परिदृश्य
एक ऑनलाइन शॉपिंग प्रणाली में ग्राहक, आदेश और उत्पाद होते हैं। एक क्लास आरेख संरचना को परिभाषित करता है, जबकि एक वस्तु आरेख चेकआउट पर ग्राहक के आदेश को दिखाता है।
क्लास आरेख
व्याख्या: क्लास आरेख परिभाषित करता है:
- ग्राहक जिसमें गुण और आदेश देने की विधि है।
- आदेश जिसमें गुण और कुल राशि की गणना करने की विधि है।
- उत्पाद जिसमें गुण और मूल्य प्राप्त करने की विधि है।
- संबंध: एक ग्राहक एक से अधिक आदेश दे सकता है (1-से-बहुत), और एक आदेश में एक से अधिक उत्पाद होते हैं (1-से-बहुत)।
वस्तु आरेख
व्याख्या: वस्तु आरेख दिखाता है:
- एक विशिष्ट ग्राहक (john: Customer) जिसमें वास्तविक गुणांक मान हैं।
- जॉन द्वारा रखा गया एक विशिष्ट आदेश (order123: आदेश), जिसका कुल मूल्य $149.98 है।
- आदेश में दो उत्पाद (लैपटॉप और माउस), उनकी विशिष्ट कीमतों के साथ।
- रनटाइम संबंधों को दिखाने वाले लिंक (उदाहरण के लिए, जॉन ने order123 आदेश रखा, जिसमें लैपटॉप और माउस शामिल हैं)।
उदाहरण 2: पुस्तकालय प्रबंधन प्रणाली
परिदृश्य
एक पुस्तकालय प्रणाली पुस्तकों, सदस्यों और उधार लेने के प्रबंधन करती है। क्लास आरेख संरचना को चित्रित करता है, जबकि ऑब्जेक्ट आरेख एक सदस्य द्वारा पुस्तकें उधार लेने को दिखाता है।
क्लास आरेख
व्याख्या: क्लास आरेख निर्धारित करता है:
- सदस्य जिसमें विशेषताएं और पुस्तकें उधार लेने की विधि है।
- पुस्तक जिसमें विशेषताएं और उपलब्धता की जांच करने की विधि है।
- उधार जिसमें विशेषताएं और उधार बढ़ाने की विधि है।
- संबंध: एक सदस्य के कई उधार हो सकते हैं, और एक पुस्तक कई उधारों में उधार ली जा सकती है।
ऑब्जेक्ट आरेख
व्याख्या: ऑब्जेक्ट आरेख दिखाता है:
- एक विशिष्ट सदस्य (alice: सदस्य) जिसमें वास्तविक विशेषता मान हैं।
- एक विशिष्ट उधार (loan001: उधार) जिसमें उधार लेने और वापसी की तारीखें हैं।
- एक विशिष्ट पुस्तक (book1: पुस्तक) जो एलिस ने उधार ली है।
- रनटाइम अवस्था को दिखाने वाले लिंक (उदाहरण के लिए, एलिस ने loan001 के माध्यम से book1 उधार ली)।
उदाहरण 3: कार डीलरशिप प्रणाली
परिदृश्य
एक कार डीलरशिप प्रणाली कारों, इंजनों और पहियों के प्रबंधन करती है। क्लास आरेख संरचना को परिभाषित करता है, जबकि ऑब्जेक्ट आरेख एक विशिष्ट कार की व्यवस्था को दिखाता है।
क्लास आरेख
व्याख्या: क्लास आरेख निर्धारित करता है:
- कार जिसमें विशेषताएं और इंजन शुरू करने की विधि है।
- इंजन जिसमें विशेषताएं और ज्वलन करने की विधि है।
- पहिया जिसमें विशेषताएं और घूमने की विधि है।
- संबंध: एक कार में एक इंजन (संघटन) और चार पहिये (संघटन) होते हैं।
वस्तु आरेख
व्याख्या: वस्तु आरेख दिखाता है:
- एक विशिष्ट कार (myCar: Car) जिसका मॉडल “Toyota Camry” और वर्ष 2023 है।
- प्रकार V6 का एक विशिष्ट इंजन (engine1: Engine)।
- आकार 17 वाले चार विशिष्ट पहिए (wheel1 से wheel4)।
- लिंक जो रनटाइम संरचना दिखाते हैं (उदाहरण के लिए, myCar में engine1 और चार पहिए हैं)।
6. प्रत्येक आरेख का उपयोग कब करें
जब वर्ग आरेख का उपयोग करें:
- प्रणाली की संरचना या संरचना के डिजाइन करने के लिए।
- डेवलपर्स या स्टेकहोल्डर्स को प्रणाली के ब्लूप्रिंट को संचारित करने के लिए।
- कोड स्केलेटन या डेटाबेस स्कीमा बनाने के लिए।
- वस्तुओं के लिए पुनर्उपयोगी टेम्पलेट को परिभाषित करने के लिए।
जब वस्तु आरेख का उपयोग करें:
- रनटाइम पर वस्तुओं की स्थिति और अंतरक्रिया को समझने के लिए डीबगिंग करने के लिए।
- विशिष्ट परिदृश्य या उपयोग केस की पुष्टि करने के लिए (उदाहरण के लिए, चेकआउट प्रक्रिया का परीक्षण करना)।
- किसी विशिष्ट स्थिति में वस्तुओं के सहयोग के तरीके को दर्शाने के लिए।
- तकनीकी रूप से अप्रतिभागी स्टेकहोल्डर्स को रनटाइम व्यवहार को समझाने या समझाने के लिए।
7. सारांश
- वर्ग आरेख एक देते हैं स्थिर, सारांश दृश्यप्रणाली का, वर्गों, उनके गुण, विधियों और संबंधों को परिभाषित करता है। ये प्रणाली डिजाइन और योजना के लिए आवश्यक हैं।
- वस्तु आरेख एक ग्रहण करते हैं गतिशील, वास्तविक लपेटारनटाइम पर प्रणाली का, विशिष्ट वस्तुओं, उनके गुण और मानों और लिंक को दिखाता है। ये डीबगिंग और परिदृश्य पुष्टि के लिए आदर्श हैं।
- एक साथ, ये आरेख एक दूसरे के पूरक हैं: वर्ग आरेख आधार रखते हैं, जबकि वस्तु आरेख दिखाते हैं कि इस आधार का व्यवहार वास्तविकता में कैसे होता है।
ऑनलाइन शॉपिंग प्रणाली, पुस्तकालय प्रबंधन प्रणाली और कार डीलरशिप प्रणाली जैसे उदाहरणों का उपयोग करके, यह ट्यूटोरियल यूएमएल का उपयोग करके प्रणाली की संरचना और रनटाइम अवस्था को मॉडल करने के तरीके को दिखाता है।
8. संदर्भ
- विजुअल पैराडाइम गाइड्स: वर्ग बनाम ऑब्जेक्ट डायग्राम और यूएमएल अंतरों का नेविगेशन
- सीआईओ विकी: ऑब्जेक्ट डायग्राम
- गिटमाइंड: यूएमएल ऑब्जेक्ट डायग्राम
- स्लाइडशेयर: वर्ग और ऑब्जेक्ट डायग्राम
- ग्लीक: यूएमएल डायग्राम प्रकार
यह ट्यूटोरियल क्लास और ऑब्जेक्ट डायग्राम को समझने और उनके अनुप्रयोग के लिए एक व्यापक गाइड प्रदान करता है। दोनों डायग्राम प्रकार को समझने से आप वस्तु-आधारित प्रणालियों के डिज़ाइन, विश्लेषण और डीबग करने में प्रभावी ढंग से काम कर सकते हैं।











