वर्ग आरेख (क्लास डायग्राम)

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

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

डायग्राम में, क्लासों को उन बक्सों के साथ दर्शाया गया है जिनमें तीन कम्पार्टमेंट हैं: एक सिस्टम के डिज़ाइन में, कई क्लासों की पहचान की जाती है और उन्हें एक क्लास डायग्राम में एक साथ समूहीकृत किया जाता है जो उनके बीच स्थिर संबंधों को निर्धारित करने में सहायता करता है। विस्तृत मॉडलिंग में, कांसेप्टचुअल डिज़ाइन की क्लासों को अधिकांशतः उपक्लासों में विभाजित किया जाता है। सिस्टम के सम्बन्ध का और वर्णन करने के लिए, इन क्लास डायग्रामों को स्थिति डायग्राम या यूएमएल स्टेट मशीन द्वारा पूरक किया जा सकता है।
 * शीर्ष कम्पार्टमेंट में क्लास का नाम होता है। यह बोल्ड और बीच में है, और पहला अक्षर बड़े अक्षरों में है।
 * मध्य कम्पार्टमेंट में क्लास की एट्रिब्यूट सम्मिलित हैं। वे बाएँ-संरेखित हैं और पहला अक्षर लोअरकेस है।
 * निचले कम्पार्टमेंट में वे ऑपरेशन सम्मिलित हैं जिन्हें क्लास निष्पादित कर सकती है। वे भी बाएँ-संरेखित हैं और पहला अक्षर लोअरकेस है।

सदस्य
यूएमएल क्लास के सदस्यों का प्रतिनिधित्व करने के लिए मैकेनिज्म प्रदान करता है, जैसे कि एट्रिब्यूट और मेथड, और कंस्ट्रक्टर्स की तरह उनके बारे में अतिरिक्त जानकारी दी जाती है ।

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

एक डेरिवेद प्रॉपर्टी को उसके नाम के पहले फॉरवर्ड स्लैश '/' के साथ दिखाया जाता है।

स्कोप
यूएमएल सदस्यों के लिए दो प्रकार के सीमा (कंप्यूटर विज्ञान) निर्दिष्ट करता है: उदाहरण और क्लास, और बाद वाले को रेखांकित नामों द्वारा दर्शाया जाता है।
 * इंस्टेंस सदस्यों का सीमा एक विशिष्ट इंस्टेंस तक होता है।
 * एट्रिब्यूटमान उदाहरणों के बीच भिन्न हो सकते हैं
 * विधि इनवोकेशन उदाहरण की स्थिति को प्रभावित कर सकता है (अर्थात उदाहरण की विशेषताओं को बदलें)
 * कई प्रोग्रामिंग भाषाओं में क्लास के सदस्यों को समान्यत: "स्थैतिक" के रूप में पहचाना जाता है। कार्यक्षेत्र का अंत क्लास ही है।
 * एट्रिब्यूट मान सभी उदाहरणों के लिए समान हैं
 * विधि इनवोकेशन क्लासिफायरियर की स्थिति को प्रभावित नहीं करता है

किसी सदस्य के लिए क्लासिफायर स्कोप को निरुपित करने के लिए, उसके नाम को रेखांकित किया जाना चाहिए। अन्यथा, उदाहरण का सीमा डिफ़ॉल्ट रूप से मान लिया जाता है।

संबंध
संबंध एक सामान्य शब्द है जो क्लास और वस्तु डायग्रामों पर पाए जाने वाले विशिष्ट प्रकार के लॉजिकल कनेक्शनों को कवर करता है। यूएमएल निम्नलिखित संबंधों को परिभाषित करता है:

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

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

अग्रेगैसन
अग्रेगैसन (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) एक एसोसिएशन संबंध का एक प्रकार है; अग्रेगैसन एसोसिएशन की तुलना में अधिक विशिष्ट है। यह एक ऐसा संघ है जो आंशिक-संपूर्ण या आंशिक-संबंध का प्रतिनिधित्व करता है। जैसा कि छवि में दिखाया गया है, एक प्रोफेसर के पास पढ़ाने के लिए एक क्लास है। एक प्रकार के संघ के रूप में, एक अग्रेगैसन को नाम दिया जा सकता है और इसमें वही अलंकरण हो सकते हैं जो एक संघ में हो सकते हैं। चूँकि एक अग्रेगैसन में दो से अधिक क्लास सम्मिलित नहीं हो सकते हैं; यह एक द्विआधारी संघ होना चाहिए. इसके अतिरिक्त, कार्यान्वयन के समय अग्रेगैसन और संघों के बीच संभवतः ही कोई अंतर होता है, और डायग्राम अग्रेगैसन संबंधों को पूरी तरह से छोड़ सकता है। अग्रेगैसन तब हो सकता है जब एक क्लास अन्य क्लासों का संग्रह या कंटेनर होता है, किन्तु निहित क्लासों में कंटेनर पर शक्तिशाली जीवनचक्र डिपेंडेंसी नहीं होती है। कंटेनर के नष्ट हो जाने पर भी कंटेनर की सामग्री उपस्थित रहती है।

यूनीफाईड मॉडलिंग भाषा में, इसे ग्राफिक रूप से युक्त क्लास पर एक खोखले विषमकोण के रूप में दर्शाया जाता है, जिसमें एक पंक्ति होती है जो इसे निहित क्लास से जोड़ती है। समुच्चय शब्दार्थ की दृष्टि से एक विस्तारित वस्तु है जिसे कई परिचालनों में एक इकाई के रूप में माना जाता है, चूँकि भौतिक रूप से यह कई छोटी वस्तुओं से बना होता है।

रचना
एक रचना संबंध का यूएमएल प्रतिनिधित्व, रेखाओं के युक्त क्लास के अंत पर एक भरे हुए हीरे के आकार के रूप में स्ट्रक्चर को दर्शाता है जो निहित क्लास को युक्त क्लास से जोड़ता है।

स्ट्रक्चर और अग्रेगैसन के बीच अंतर

 * रचना संबंध
 * 1. वास्तविक दुनिया के संपूर्ण-भाग संबंधों का प्रतिनिधित्व करने का प्रयास करते समय, उदाहरण के लिए इंजन एक कार का एक भाग है.
 * 2. जब कंटेनर नष्ट हो जाता है, तो सामग्री भी नष्ट हो जाती है, उदाहरण के लिए। एक विश्वविद्यालय और उसके विभाग।


 * अग्रेगैसन संबंध
 * 1. किसी सॉफ़्टवेयर या डेटाबेस संबंध का प्रतिनिधित्व करते समय, उदा. कार मॉडल इंजन ईएनजी01 कार मॉडल सीएम01 का भाग है, क्योंकि इंजन, ईएनजी01 संभवतः एक अलग कार मॉडल का भी भाग है।
 * 2. जब कंटेनर नष्ट हो जाता है, तो सामग्री समान्यत: नष्ट नहीं होती है, उदाहरण के लिए एक प्रोफेसर के पास छात्र हैं; जब प्रोफेसर विश्वविद्यालय छोड़ते हैं तो छात्र उनके साथ नहीं जाते हैं।

इस प्रकार अग्रेगैसन संबंध को रचना के भौतिक नियंत्रण से अलग करने के लिए अधिकांशतः कैटलॉग नियंत्रण होता है।

जनरलिजेसन /इनहेरिटेंस
यह निरुपित करता है कि दो संबंधित क्लासों (उपक्लास) में से एक को दूसरे (सुपरप्रकार) का एक विशेष रूप माना जाता है और सुपरक्लास को उपक्लास का सामान्यीकरण माना जाता है। सम्बन्ध में, इसका अर्थ यह है कि सबटाइप का कोई भी उदाहरण सुपरक्लास का एक उदाहरण है। इस रूप के सामान्यीकरण का एक क्साम्प्लेरी ट्री बायोलॉजिकल  क्लासीकरण में पाया जाता है: मनुष्य सिमियन का एक सब क्लास है, जो मम्मल का एक उपक्लास है, इत्यादि। इस संबंध को वाक्यांश में एक 'a ,b है' (एक इंसान एक मम्मल है, एक मम्मल एक जानवर है) द्वारा सबसे सरलता से समझा जा सकता है।

सामान्यीकरण का यूएमएल ग्राफिकल प्रतिनिधित्व लाइन (या लाइनों के पेड़) के सुपरक्लास एंड पर एक खोखला त्रिकोण आकार है जो इसे एक या अधिक उपप्रकारों से जोड़ता है।

symbolic of realization          (subclass) _______▻ (superclass)

सामान्यीकरण संबंध को इनहेरिटेंस (कंप्यूटर विज्ञान) के रूप में भी जाना जाता है या एक संबंध है।

सामान्यीकरण संबंध में सुपरक्लास (कंप्यूटर विज्ञान) (बेस क्लास) को पैरेंट, सुपरक्लास, बेस क्लास या बेस प्रकार के रूप में भी जाना जाता है।

विशेषज्ञता संबंध में उपप्रकार को "चाइल्ड", उपक्लास, डेरिवेद क्लास, डेरिवेद प्रकार, विरासत क्लास, या विरासत प्रकार के रूप में भी जाना जाता है।

ध्यान दें कि यह सम्बन्ध जैविक माता-पिता-बच्चे के सम्बन्ध से कोई समानता नहीं रखता है: इन शब्दों का उपयोग अधिक समान्य है, किन्तु अस्पष्ट हो सकता है।


 * A, B का एक प्रकार है
 * उदाहरण के लिए, ओक एक प्रकार का पेड़ है, एक ऑटोमोबाइल एक प्रकार का वाहन है

सामान्यीकरण केवल क्लास डायग्रामों और उपयोग केस डायग्रामों पर दिखाया जा सकता है।

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

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

अनुभव केवल क्लास या घटक डायग्रामों पर दिखाए जा सकते हैं। एक अनुभव क्लासों, इंटरफेस, घटकों और पैकेजों के बीच एक संबंध है जो ग्राहक तत्व को आपूर्तिकर्ता तत्व से जोड़ता है। क्लासों /घटकों और इंटरफेस के बीच एक अनुभव संबंध से पता चलता है कि क्लास/घटक इंटरफ़ेस द्वारा प्रस्तुत किए गए संचालन का अनुभव करता है।

symbolic of realization          (implementer) ---▻ (interface)

डिपेंडेंसी
डिपेंडेंसी (यूएमएल) बंधन का एक अशक्त रूप हो सकता है जो निरुपित करता है कि एक क्लास दूसरे पर निर्भर करता है क्योंकि वह किसी समय इसका उपयोग करता है। यदि इंडीपेनडन्त क्लास आश्रित क्लास की किसी विधि का एक पैरामीटर चर या स्थानीय चर है तो एक क्लास दूसरे पर निर्भर करता है। कभी-कभी दो क्लासों के बीच संबंध बहुत अशक्त होते हैं। उन पर निष्पादन नहीं किया जाता है पूर्ण रूप से सदस्य चर किन्तु उन्हें सदस्य फ़ंक्शन तर्क के रूप में कार्यान्वित किया जा सकता है।

बहुलता
यह साहचर्य संबंध निरुपित करता है कि (कम से कम) दो संबंधित क्लासों में से एक दूसरे का संदर्भ देता है। इस सम्बन्ध को समान्यत: a के पास b के रूप में वर्णित किया जाता है (एक मां बिल्ली के पास बिल्ली के बच्चे होते हैं, बिल्ली के बच्चे के पास एक मां बिल्ली होती है)।

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

संस्थाएँ
इकाई क्लास सिस्टम द्वारा प्रबंधित लंबे समय तक चलने वाली जानकारी और कभी-कभी जानकारी से जुड़े सम्बन्ध को मॉडल करते हैं। उन्हें डेटाबेस तालिकाओं या अन्य डेटा-संचार के रूप में पहचाना नहीं जाना चाहिए।

वह वृत्त के रूप में खींचे गए हैं और वृत्त के नीचे एक छोटी रेखा जुड़ी हुई है। वैकल्पिक रूप से उन्हें क्लास नाम के ऊपर "इकाई" स्टीरियोटाइप नोटेशन के साथ सामान्य क्लासों के रूप में तैयार किया जा सकता है।

यह भी देखें

 * निष्पादन योग्य यूएमएल
 * यूएमएल उपकरणों की सूची
 * वस्तु-उन्मुख मॉडलिंग
 * डिपेंडेंसी (यूएमएल)
 * संबंधित डायग्राम
 * डोमेन मॉडल
 * इकाई-संबंध मॉडल
 * वस्तु डायग्राम

बाहरी संबंध

 * Introduction to UML 2 Class Diagrams
 * UML 2 Class Diagram Guidelines
 * IBM Class diagram Introduction
 * OMG UML 2.2 specification documents
 * UML 2 Class Diagrams