Visual Paradigm Desktop | Visual Paradigm Online
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

UML क्लास डायग्राम्स: अवधारणाएं, नोटेशन और सर्वोत्तम प्रथाओं का पूर्ण मार्गदर्शिका

UML7 months ago

UML क्लास डायग्राम्स: अवधारणाएं, नोटेशन और सर्वोत्तम प्रथाओं का पूर्ण मार्गदर्शिका

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

मुख्य अवधारणाएं

किसी डायग्राम को बनाने से पहले, क्लास डायग्राम के निर्माण में शामिल मूल तत्वों को समझना आवश्यक है।

1. क्लास क्या है?

एक क्लास प्रणाली में समान भूमिका वाले वस्तुओं के समूह का वर्णन प्रस्तुत करता है। इसमें दो मुख्य विशेषताएं होती हैं:

  • संरचनात्मक विशेषताएं (गुण): ये वस्तुओं के बारे में बताते हैं कि क्लास की वस्तुएं “क्या जानती हैं।” ये वस्तु की स्थिति का प्रतिनिधित्व करते हैं और स्थिर विशेषताओं का वर्णन करते हैं।
  • व्यवहारात्मक विशेषताएं (संचालन): ये वस्तुओं के बारे में बताते हैं कि क्लास की वस्तुएं “क्या कर सकती हैं।” ये गतिशील विशेषताओं और वस्तुओं के बीच बातचीत के तरीके का वर्णन करते हैं।

2. क्लास नोटेशन

मानक UML नोटेशन एक क्लास को तीन विशिष्ट भागों में विभाजित आयत के रूप में दर्शाता है:

  1. क्लास का नाम: पहले भाग में स्थित है। यदि यह एक अमूर्त क्लास है, तो नाम इटैलिक में दिखाया जाता है।
  2. क्लास गुण: दूसरे भाग में दिखाया जाता है। सिंटैक्स आमतौर पर गुण के नाम के बाद एक दांते और प्रकार के साथ दिखाता है (उदाहरण के लिए, त्रिज्या : फ्लोट)। इनका कोड में सदस्य चरों से मिलान होता है।
  3. क्लास संचालन (विधियाँ): तीसरे भाग में दिखाया जाता है। ये क्लास द्वारा प्रदान किए जाने वाले सेवाओं का प्रतिनिधित्व करते हैं। रिटर्न प्रकार विधि सिग्नेचर के बाद आता है (उदाहरण के लिए, क्षेत्रफल() : डबल).

3. क्लास संबंध

क्लासेस अक्सर अकेले नहीं रहती हैं। वे विशिष्ट संबंधों के माध्यम से जुड़ी होती हैं, जिनमें से प्रत्येक का एक अलग ग्राफिकल प्रतिनिधित्व होता है:

  • विरासत (सामान्यीकरण): एक “है-एक” संबंध का प्रतिनिधित्व करता है। यह वर्गीकरण के माध्यम से विश्लेषण को सरल बनाता है, जहां बच्चा क्लास माता-पिता से गुण और संचालन विरासत में प्राप्त करती है।नोटेशन: एक ठोस रेखा जिसके एक खाली तीर के सिरे माता-पिता की ओर इशारा करता है।
  • सरल संबंध: दो समकक्ष क्लासेस के बीच एक संरचनात्मक संबंध।नोटेशन: दो कक्षाओं को जोड़ने वाली एक ठोस रेखा।
  • एग्रीगेशन: एक “हिस्सा-है” संबंध जहां बच्चा माता-पिता के बिना स्वतंत्र रूप से अस्तित्व में हो सकता है (उदाहरण के लिए, एक पहिया एक कार का हिस्सा है, लेकिन अलग से अस्तित्व में हो सकता है)।नोटेशन: संयुक्त छोर पर खाली हीरे वाली एक ठोस रेखा।
  • संघटन: एक मजबूत एग्रीगेशन का प्रकार जहां भागों को जब पूर्ण को नष्ट कर दिया जाता है तो उन्हें भी नष्ट कर दिया जाता है (उदाहरण के लिए, एक वृत्त के भीतर एक बिंदु)।नोटेशन: संयुक्त छोर पर भरे हीरे वाली एक ठोस रेखा।
  • निर्भरता: तब मौजूद होता है जब एक कक्षा के परिभाषा में परिवर्तन करने से दूसरी कक्षा में परिवर्तन हो सकता है।नोटेशन: एक बिंदीदार रेखा जिसके साथ एक खुला तीर है।

गहन अध्ययन: दृश्यता और बहुलता

गुणों और संचालनों की दृश्यता

वस्तु-उन्मुख डिजाइन में, पहुंच नियंत्रण बहुत महत्वपूर्ण है। UML दृश्यता को दर्शाने के लिए प्रतीकों का उपयोग करता है:

  • + (सार्वजनिक): किसी भी अन्य कक्षा द्वारा प्राप्त किया जा सकता है।
  • – (निजी): केवल उसी कक्षा के सदस्यों द्वारा प्राप्त किया जा सकता है।
  • # (संरक्षित): उसी कक्षा के सदस्यों और व्युत्पन्न कक्षाओं द्वारा प्राप्त किया जा सकता है।
  • ~ (पैकेज): उसी पैकेज में स्थित कक्षाओं द्वारा प्राप्त किया जा सकता है।

बहुलता

बहुलता यह दर्शाती है कि प्रत्येक कक्षा के कितने वस्तुएं संबंध में भाग लेती हैं:

  • 1: बिल्कुल एक।
  • 0..1: शून्य या एक।
  • *: बहुत सारे (0 या अधिक)।
  • 1..*: एक या अधिक।

उदाहरण के लिए, एक विश्वविद्यालय प्रणाली में, एक छात्र बहुत से कोर्स ले सकता है (0..*), और एक कोर्स में बहुत से छात्र नामांकित हो सकते हैं।

प्रभावी क्लास डायग्राम के लिए दिशानिर्देश

स्पष्ट और उपयोगी डायग्राम बनाने के लिए सीमा और दृष्टिकोण के संबंध में विशिष्ट दिशानिर्देशों का पालन करना आवश्यक है।

1. प्रणाली की जटिलता का प्रबंधन

जब बड़ी प्रणालियों या व्यापार क्षेत्रों का मॉडलिंग कर रहे हों, तो एक ही क्लास डायग्राम पर हर एक एंटिटी को मॉडल करने की लालसा को बचने की कोशिश करें। इसके बजाय, बहुत से क्लास डायग्राम का उपयोग करें। प्रणाली को बहुत से डायग्राम में विभाजित करने से इसे समझना आसान हो जाता है, जहां प्रत्येक डायग्राम एक विशिष्ट उपप्रणाली का ग्राफिकल प्रतिनिधित्व करता है।

2. सॉफ्टवेयर विकास चक्र में दृष्टिकोण

क्लास डायग्राम को विकास चरणों के माध्यम से विकसित होना चाहिए। इन तीन दृष्टिकोणों को क्रमिक रूप से अपनाएं:

  • अवधारणात्मक दृष्टिकोण: वास्तविक दुनिया की चीजों का वर्णन करता है। इन डायग्राम में अध्ययन के क्षेत्र में अवधारणाओं का प्रतिनिधित्व किया जाता है और ये आम तौर पर भाषा-स्वतंत्र होते हैं।
  • विनिर्माण दृष्टिकोण: सॉफ्टवेयर अभिन्नताओं या घटकों का वर्णन करता है जिनमें इंटरफेस होते हैं लेकिन विशिष्ट कार्यान्वयन तर्क के प्रति कोई प्रतिबद्धता नहीं होती है। “क्या” सॉफ्टवेयर करता है, उस पर ध्यान केंद्रित करें, न कि “कैसे।”
  • कार्यान्वयन दृष्टिकोण: चयनित तकनीक और भाषा में विशिष्ट सॉफ्टवेयर कार्यान्वयन का वर्णन करता है। इस स्तर पर वास्तविक क्लास संरचना का विवरण दिया जाता है जैसे कि इसे कोड किया जाएगा।

3. संबंधों के नामकरण

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

चेकलिस्ट: अपने क्लास डायग्राम की जांच करें

अपने डायग्राम को अंतिम रूप देने से पहले, सटीकता और पठनीयता सुनिश्चित करने के लिए इस चेकलिस्ट को दोहराएं:

  • प्रतीक सटीकता:क्या क्लास को तीन भागों (नाम, गुण, क्रियाएं) में विभाजित किया गया है?
  • संबंध तर्क:क्या विरासत रेखाएं माता-पिता की ओर इशारा करती हैं? क्या एग्रीगेशन/कंपोजिशन रेखाओं के संघटक (पूर्ण) तरफ डायमंड रखे गए हैं?
  • दृश्यता जाँच: क्या आपने सही तरीके से लागू किया है +, -, #, या ~ एट्रिब्यूट और मेथड्स के लिए एनकैप्सुलेशन की आवश्यकताओं के आधार पर?
  • बहुलता परिभाषित: कार्डिनैलिटी (उदाहरण के लिए, 1..*) प्रत्येक संबंध के लिए स्पष्ट है?
  • नेविगेबिलिटी: क्या तीर स्पष्ट रूप से इंगित करते हैं कि कौन सा क्लास दूसरे के उदाहरणों को निर्धारित कर सकता है?
  • जटिलता जाँच: क्या आरेख बहुत भीड़ भरा है? यदि हाँ, तो क्या इसे कई आरेखों में विभाजित किया जाना चाहिए?
  • दृष्टिकोण संरेखण: क्या विवरण स्तर आपके वर्तमान चरण (अवधारणा बनाम कार्यान्वयन) के अनुरूप है?

UML क्लास आरेख एक प्रणाली की स्थैतिक संरचना को दृश्यमान बनाने के लिए शक्तिशाली उपकरण हैं। इन नोटेशन और संबंधों को समझकर, आप जटिल प्रणालियों को प्रभावी ढंग से मॉडल कर सकते हैं, व्यापार अवधारणाओं और तकनीकी कोड के बीच के अंतर को पार कर सकते हैं।

Loading

Signing-in 3 seconds...

Signing-up 3 seconds...