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

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

वर्ग का आलेखीय प्रतिनिधित्वमेरा_वर्ग ऊपर दिखाए गए के रूप में:
- मेरा_वर्ग में 3 गुण और 3 संचालन हैं
- op2 के पैरामीटर p3 प्रकार int का है
- op2 एक float लौटाता है
- op3 Class6 की ओर एक संकेतक (चिह्नित द्वारा *) लौटाता है
वर्ग संबंध
एक वर्ग एक या एक से अधिक अन्य वर्गों के साथ संबंध में शामिल हो सकता है। संबंध निम्नलिखित प्रकार के हो सकते हैं: (आलेखीय प्रतिनिधित्व के लिए दाएँ तरफ के चित्र को देखें)।
| संबंध प्रकार | आरेख |
|---|---|
विरासत (या सामान्यीकरण):
|
![]() |
सरल संबंध:
|
![]() |
एग्ग्रीगेशन:
|
![]() |
संघटन:
|
![]() |
निर्भरता:
|
![]() |
संबंध के नाम
- संबंध के नाम संबंध रेखा के बीच में लिखे जाते हैं।
- अच्छे संबंध नाम उच्चारण करने पर सार्थक होते हैं:
-
- “प्रत्येक स्प्रेडशीट में शामिल है कुछ सेल हैं”
<li” व्यंजक मूल्यांकन करता है एक मान के रूप में”
-
- वे अक्सर एक छोटी तीर जो दिशा का संकेत करती हैपढ़ाई की दिशा, उदाहरण के लिए, व्यंजक मूल्य के रूप में मूल्यांकन करता है, लेकिन मूल्य व्यंजक के रूप में मूल्यांकन नहीं करता है।

संबंध – भूमिकाएँ
- भूमिका संबंध में दिशा के उद्देश्य को परिभाषित करती है।
- भूमिका संबंध रेखा के अंत में लिखी जाती है और उस संबंध में एक क्लास की भूमिका का वर्णन करती है।
- उदाहरण के लिए, सेल एक्सप्रेशन से संबंधित है। संबंध की प्रकृति यह है कि एक्सप्रेशन सेल का सूत्रहै।
क्लास सदस्यों की दृश्यता
वस्तु-आधारित डिजाइन में, गुणों और संचालनों की दृश्यता का प्रतिनिधित्व किया जाता है। UML चार प्रकार की दृश्यता को परिभाषित करता है: सार्वजनिक, सुरक्षित, – निजी गुण या संचालन को इंगित करता है, और पैकेज.
गुण और संचालन के नाम के पहले +, -, #, और ~ प्रतीक दृश्यता को इंगित करते हैं:
- + सार्वजनिक गुण या संचालन को इंगित करता है
- – निजी गुण या संचालन को इंगित करता है
- # सुरक्षित गुण या संचालन को इंगित करता है
- ~ पैकेज गुण या संचालन को इंगित करता है
क्लास दृश्यता उदाहरण

ऊपर दिए गए उदाहरण में:
- attribute1 और op1 of MyClassName सार्वजनिक हैं
- attribute3 और op3 सुरक्षित हैं
- attribute2 और op2 निजी हैं
विभिन्न क्लास सदस्यों के लिए एक्सेस अनुमतियाँ नीचे दिखाई गई हैं:
| एक्सेस स्तर | सार्वजनिक (+) | निजी (-) | सुरक्षित (#) | पैकेज (~) |
|---|---|---|---|---|
| एक ही क्लास के सदस्य | हाँ | हाँ | हाँ | हाँ |
| व्युत्पन्न क्लास के सदस्य | हाँ | नहीं | हाँ | हाँ |
| किसी भी अन्य क्लास के सदस्य | हाँ | नहीं | नहीं | केवल समान पैकेज |
बहुलता
बहुलता दर्शाती है कि किसी संबंध में कितने वस्तुएँ भाग लेती हैं। इसे निम्नानुसार व्यक्त किया जा सकता है:
- ठीक 1 – 1
- शून्य या एक – 0..1
- बहुत सारे – 0..* या *
- एक या अधिक – 1..*
- निर्दिष्ट संख्या – उदाहरण के लिए, 3..4 या 6
- जटिल संबंध – उदाहरण के लिए, 0..1, 3..4, 6* का अर्थ है 2 या 5 के अलावा कोई भी संख्या
गणना उदाहरण
- आवश्यकता: एक छात्र बहुत सारे कोर्स में दाखिला ले सकता है, और एक कोर्स में बहुत सारे छात्र दाखिला ले सकते हैं।
- नीचे दिए गए उदाहरण में, वहवर्ग आरेख (बाएं) उपरोक्त आवश्यकता के निर्दिष्ट मॉडल का वर्णन करता है, जबकि वस्तु आरेख (दाएं) सॉफ्टवेयर इंजीनियरिंग और डेटाबेस प्रबंधन कोर्स के लिए कोर्स पंजीकरण (वर्ग आरेख का उदाहरण) का एक फ्रेम दिखाता है।

एग्रीगेशन उदाहरण – कंप्यूटर और घटक
- एग्रीगेशन एक विशेष स्थिति है जो एक “समावेश” व्यवस्था का प्रतिनिधित्व करती है।
- एग्रीगेशन माता-पिता वर्ग है, घटक बच्चा वर्ग है।

विरासत उदाहरण – सेल वर्गीकरण
- विरासत एक अन्य विशेष स्थिति है जो एक “प्रकार का” व्यवस्था का प्रतिनिधित्व करती है।
- विरासत वर्गीकरण के परिचय के द्वारा विश्लेषण मॉडल को सरल बनाती है।
- उपवर्ग अपने माता-पिता वर्ग से गुण और संचालन विरासत में लेते हैं।

वर्ग आरेख – आरेख उपकरण उदाहरण
वर्ग आरेख वर्ग या संबंधों से जुड़े नोट्स शामिल कर सकते हैं। नोट्स ग्रे रंग में प्रदर्शित किए जाते हैं।

ऊपर दिए गए उदाहरण से, हम आरेख की व्याख्या निम्नलिखित तरीके से कर सकते हैं:
- शेप एक अमूर्त वर्ग है। इसे इटैलिक में दिखाया गया है।
- शेप एक माता-पिता वर्ग है। सर्कल, रेक्टेंगल और पॉलीगॉन शेप से विरासत में लेते हैं। दूसरे शब्दों में, एक सर्कल एक शेप है। यह एक सामान्यीकरण/विरासत संबंध है।
- डायलॉग बॉक्स और डेटा कंट्रोलर के बीच एक संबंध है।
- शेप विंडो का हिस्सा है। यह एक एग्रीगेशन संबंध है। शेप विंडो के बिना भी मौजूद हो सकता है।
- पॉइंट सर्कल का हिस्सा है। यह एक संघटन संबंध है। पॉइंट सर्कल के बिना अस्तित्व में नहीं आ सकता है।
- विंडो इवेंट पर निर्भर है। लेकिन इवेंट विंडो पर निर्भर नहीं है।
- सर्कल के गुण त्रिज्या और केंद्र हैं। यह एक वास्तविक वर्ग है।
- सर्कल के विधियाँ area(), circum(), setCenter(), और setRadius() हैं।
- सर्कल में पैरामीटर रेडियस टाइप float का है।
- सर्कल में विधि area() एक डबल मान लौटाती है।
- रेक्टेंगल के गुण और विधियाँ छिपी हुई हैं। आरेख में कुछ अन्य वर्ग भी अपने गुण और विधियों को छिपाते हैं।
जटिल प्रणालियों का प्रबंधन – बहुल या एकल वर्ग आरेख?
जब बड़ी प्रणालियों या बड़े व्यापार क्षेत्रों के मॉडलिंग करते हैं, तो कई एंटिटीज को ध्यान में रखना आवश्यक होता है। क्या हमें बहुल या एकल वर्ग आरेख का उपयोग करना चाहिए? उत्तर है:
- एक ही आरेख पर प्रत्येक एकाधिक और उनके संबंधों को मॉडल करने के बजाय बहुत सारे क्लास आरेखों का उपयोग करना बेहतर है।
- प्रणाली को बहुत सारे क्लास आरेखों में बांटने से इसे समझना आसान हो जाता है, खासकर जब प्रत्येक आरेख प्रणाली के एक विशिष्ट हिस्से का दृश्य प्रतिनिधित्व हो।
सॉफ्टवेयर विकास चक्र में क्लास आरेखों का दृष्टिकोण
क्लास आरेखों का उपयोग चरणों में किया जा सकता हैसॉफ्टवेयर विकास चक्र (SDLC), और आमतौर पर तीन अलग-अलग विस्तार के स्तर (दृष्टिकोण) को क्रमिक रूप से मॉडल किया जाता है:
अवधारणात्मक दृष्टिकोण: आरेख को वास्तविक दुनिया की चीजों का वर्णन करने के रूप में व्याख्या किया जाता है। इसलिए, यदि आप अवधारणात्मक दृष्टिकोण से शुरू करते हैं, तो आप अध्ययन किए जा रहे क्षेत्र में अवधारणाओं का प्रतिनिधित्व करने वाला आरेख बनाते हैं। इन अवधारणाओं का स्वाभाविक रूप से उन क्लासों से संबंध होता है जो उनका कार्यान्वयन करते हैं। इस दृष्टिकोण कोभाषा-अनुकूल माना जाता है.
विनिर्देश दृष्टिकोण: आरेख को सॉफ्टवेयर अब्स्ट्रैक्शन या घटकों का वर्णन करने के रूप में व्याख्या किया जाता है जिनमें विनिर्देश और इंटरफेस होते हैं, एक विशिष्ट कार्यान्वयन के बारे में निर्णय लिए बिना। इसलिए, यदि आप विनिर्देश दृष्टिकोण से निकट आते हैं, तो आपकार्यान्वयन के बजाय सॉफ्टवेयर इंटरफेस का अध्ययन कर रहे हैं.
कार्यान्वयन दृष्टिकोण: आरेख को एक विशिष्ट तकनीक औरभाषासॉफ्टवेयर के कार्यान्वयन का वर्णन करने के रूप में व्याख्या किया जाता है। इसलिए, यदि आप कार्यान्वयन दृष्टिकोण से निकट आते हैं, तो आपसॉफ्टवेयर कार्यान्वयन का अध्ययन कर रहे हैं.
अभी एक UML क्लास आरेख बनाने का प्रयास करें
मुफ्त डाउनलोड करें




