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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

संरचना और एकत्रीकरण के बीच अंतर

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


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

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

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

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

बोध का प्रतीक (उपवर्ग) _______▻ (सुपरक्लास)

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

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

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

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


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

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

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

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

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

बहुलता
यह साहचर्य संबंध निरुपित करता है कि (कम से कम) दो संबंधित वर्गों में से एक दूसरे का संदर्भ देता है। इस रिश्ते को समान्यत: 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