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