वर्ग रेखाचित्र

300px|right|thumbnail|एक वर्ग रेखाचित्र के रूप में प्रर्दशित UML 2.0 रेखाचित्र के पदानुक्रम सॉफ्टवेयर इंजीनियरिंग में **वर्ग रेखाचित्र** युनिफाइड मोंडलिंग लैंग्वेज (Unified Modeling Language -UML) में एक प्रकार का स्थिर संरचना रेखाचित्र है जो एक सारणी की संरचना का वर्णन सारणी के वर्ग, उनके गुण और वर्गों के बीच उनके संबंध को दिखाते हुए करता है।

## सदस्यगण
UML वर्ग के सदस्यों का प्रतिनिधित्व करने के लिए एक तंत्र प्रदान करता है: जैसे कि विशेषताओं और पद्धतिओं और उनके बारे में अतिरिक्त जानकारी.

### दृश्यता
एक वर्ग के सदस्य (विशेषताओं और पद्धतिओं) की दृश्यता को सुनिश्चित करने के लिए यहां निम्नलिखित संकेत दिए जा रहे हैं, जिनका प्रयोग सदस्य के नाम से पहले जरुर किया जाना चाहिए।  :

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

## संबंध
संबंध एक सामान्य शब्द है जो एक विशिष्ट प्रकार के तार्किक संयोजन में वर्ग और पदार्थ रेखाचित्र समेट लेता है। UML इन रिश्तों को दिखाता है:

### दृष्टांत स्तर के संबंध
#### बाहरी कड़ियाँ
एक *लिंक* वस्तुओं के बीच बुनियादी संबंध होता है। यह दो या अधिक वस्तु पेटी को जोड़नेवाली पंक्ति का प्रतिनिधित्व करता है। यह एक वस्तु रेखाचित्र या वर्ग रेखाचित्र के रूप में दिखाया जा सकता है। लिंक एक संबंध की एक मिसाल है।

#### संयोजन
400px|right|thumbnail|दो वर्गों के बीच संयोजन के वर्ग रेखाचित्र उदाहरण
एक *[[संयोजन (वस्तु-उन्मुख प्रोग्रामिंग)|संयोजन]]* लिंक के एक परिवार का प्रतिनिधित्व करता है। दोहरा संयोजन (दोनों छोर से) आमतौर पर एक क्रम का प्रतिनिधित्व करता हैं, इसका हरेक छोर एक वर्ग पेटी से जुड़ता है। ऊपरी क्रम के संयोजन में यह दो से अधिक सिरों के साथ तैयार किया जा सकता है। ऐसे मामलों में तमाम सिरे एक केंद्रीय हीरे से जुड़े होते हैं।

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

उदाहरण: "विभाग द्वारा प्रस्तावित पाठ्यक्रम", एक संयोजित संबंध है।

#### समुच्चयन
300px|right|thumbnail|दो वर्गों के बीच एकत्रीकरण दर्शाते हुए वर्ग रेखाचित्र

*[[एकत्रीकरण (वस्तु-उन्मुख प्रोग्रामिंग)|एकत्रीकरण]]* संयोजित सम्बन्ध का ही एक पर्याय है; लेकिन एकत्रीकरण संयोजन से कहीं ज्यादा सटीक है। यह एक संयोजन ही है जो पूर्ण या आंशिक रूप से किसी संबंध का प्रतिनिधित्व करता है। संयोजन के एक प्रकार के रूप में एकत्रीकरण का नामकरण किया जा सकता है और इसका अलंकरण संयोजन की ही तरह किया जा सकता है। बहरहाल, एक एकत्रीकरण दो से अधिक वर्गों से शामिल नहीं हो सकते हैं।

*एकत्रीकरण* तभी होता है जब एक वर्ग अन्य वर्गों का संचयन हो या धारक हो, लेकिन जहां अनिवार्य रूप से समाविष्ट वर्ग के धारक के *जीवनचक्र की अधीनता* मजबूत न हो वहां भले ही धारक नष्ट हो जाता हो; पर तो इसमें निहित सामग्री पर कोई आंच नहीं आती.

UML में वृक्ष का आखिरी क्रम जो धारक वर्ग (वर्गों) को समाविष्ट वर्ग से जोड़ता है, इसे रेखाचित्र द्वारा *खोखले* हीरा के आकार में दिखाया जाता है

#### संघटक
right|thumbnail|ऊपर के दो वर्गों के बीच संरचना एवं नीचे के दो वर्गों के बीच एकत्रीकरण को दर्शाते हुए वर्ग रेखाचित्र
*[[वस्तु संरचना|संरचना]]* संयोजक संबंध का एक पर्याय है, लेकिन संरचना एकत्रीकरण से कहीं अधिक सटीक है। यह एक ठोस हीरे के आकार में दिखाया जा सकता है।

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

समाविष्ट वर्ग के वृक्ष के आखिरी क्रम में संरचना संबंध को *भरे हुए* हीरे के माध्यम से UML के रेखाचित्र में दिखाया जा सकता है, जो समाविष्ट वर्ग को निहित वर्ग से जोड़ता है।

#### संरचना और एकत्रीकरण के बीच अंतर
समूची संरचना में 0..1 या 1 की विविधता होनी चाहिए, जो यह दर्शाता है कि कोई हिस्सा सम्पूर्ण भाग के लिए होना चाहिए। किसी एकत्रीकरण के सम्पूर्ण भाग की कोई भी विविधता होनी चाहिए।

वास्तविक दुनिया के समग्र संबंध, मिसाल के तौर पर एक कार के इंजन को लें, का प्रतिनिधित्व करने का प्रयास किया जाता है तो संरचनात्मक सम्बन्ध बहुत सटीक होता है। बहरहाल, जब किसी सॉफ्टवेयर या डेटाबेस संबंध, मिसाल के तौर पर; कार मॉडल का इंजन ENG01 कार मॉडल CM01 का हिस्सा होता है, का मामला हो तो एकत्रीकरण संबंध सबसे अच्छा होता है, क्योंकि इंजन ENG01 किसी भी दूसरे कार का हिस्सा हो सकता है। इसीलिए एकत्रीकरण संबंध अक्सर "नामसूची" (कैटलोंग) कहलाता है, जिसका परिधारण (कंटेनमेंट) संरचना के "भौतिकीय" परिधारण से अलग होता है। 
***'

=== वर्ग स्तरीय संबंध ===
==== सामान्यीकरण ====
[[चित्र:KP-UML-Generalization-20060325.svg|300px|right|thumbnail|एक महावर्ग और दो उपवर्गों के बीच सामान्यीकरण दर्शाते हुए वर्ग रेखाचित्र]]

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

सामान्यीकरण में महाप्रकार को खोखले त्रिकोणीय आकार में क्रम के (वृक्ष क्रम) आखिर में UML रेखाचित्र से दर्शाया जा सकता है, जो कि इसे एक या अधिक उप प्रकारों से जोड़ता है।

सामान्यीकरण संबंध *[[पैतृक (कंप्यूटर विज्ञान)|धरोहर]]* या *"निहित"* के रूप में भी जाना जाता है।

सामान्यीकरण संबंध में *[[महाप्रकार]]* "*जनक* ", *उत्कृष्ट वर्ग*, *मूल वर्ग*, *बुनियादी प्रकार* के रूप में भी जाना जाता है।

सामान्यीकरण संबंध में *[[उप प्रकार]]* "*शिशु* ", *उप वर्ग*, *व्युत्पन्न वर्ग*, *व्युत्पन्न प्रकार*, *उत्तराधिकारी वर्ग*, व *उत्तराधिकारी प्रकार* भी कहलाता है।

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

* सामान्यीकरण-विशिष्टीकरण संबंध

:A B का एक प्रकार है
::मिसाल के तौर पर, "ओक एक प्रकार का वृक्ष है", "ऑटोमोबाइल एक प्रकार का वाहन है"

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

#### प्रतीति
UML मॉडलिंग में, प्रतीति संबंध दो मॉडल तत्वों के बीच का संबंध है, जिसमें एक मॉडल तत्व (ग्राहक) विशेष रूप से निर्दिष्ट दूसरा मॉडल तत्व (आपूर्तिकर्ता) के आचरण को समझता है। प्रतीति को आपूर्तिकर्ता की ओर से एक अपूरित तीर के फलक के अंतिम छोर द्वारा दर्शाया जाता है।

प्रतीति केवल वर्ग या संघटक रेखाचित्र पर दिखाया जा सकता है।

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

### सामान्य संबंध
305px|thumb|"कार" और "व्हील" वर्ग के बीच निर्भरता को दर्शाते हुए वर्ग रेखाचित्र
#### निर्भरता
निर्भरता संबंध का एक कमजोर स्वरूप है जो यह दर्शाता है कि एक वर्ग दूसरे पर निर्भर करता है क्योंकि वह उसी समय उसका प्रयोग करता है। 
अगर वर्ग का मानदंड अन्य वर्ग की पद्धति के अनुसार परिवर्तनशील या स्थानिक परिवर्तनशील हो तो निर्भरता विद्यमान होती है।

### विविधता
संयोजन संबंध यह दर्शाता है कि (कम से कम) दो संबंधित वर्गों में से एक दूसरे के लिए संदर्भ बनाता है। सामान्यीकरण संबंध के उलट इसे बड़ी ही आसानी से एक वाक्यांश के माध्यम से समझा जा सकता है कि A के पास B है (एक मां बिल्ली के बच्चें है, बिल्ली के बच्चों की एक मां बिल्ली है।)

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

सामान्य विविधताएं इस प्रकार हैं : ...

## लीकबद्ध विश्लेषण

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

### सीमाएं

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

इन्हें एक बड़े से वृतों में एक छोटी-सी लकीर के माध्यम से बांयी ओर सटे वृत्त के बराबर की ऊंचाई पर खड़ी लकीर खीच कर दिखाया जाता है (जैसे कि यूज-केस सारणी सीमा को इससे जोड़ा जाता है). वैकल्पिक रूप से, सामान्य वर्गों में ये «सीमा» के साथ औपचारिक संकेत में वर्ग के नाम के ऊपर दिखाये जा सकते हैं।

### सत्ता

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

इन्हें नीचे की ओर एक क्षैतिजक लकीर पर एक वृत्त रूप में इस तरह बनाया जाता है कि वृत्त की पूरी चौड़ाई में फैला होता है। वैकल्पिक रूप से, इन्हें एक सामान्य वर्ग के रूप में औपचारिक संकेत «ईकाई» के साथ वर्ग के नाम के ऊपर तैयार किया जा सकता है।

### नियंत्रण

यूज-केस के लिए नियंत्रण के प्रवाह को नियंत्रण वर्ग संभालता है और इसलिए संयोजन वर्ग की तरह नजर आता है। यूज केस में ये सब कुछ नहीं करते, लेकिन दूसरे वर्गों के साथ सहयोग करते हैं; जो उनके लिए काम कर सकें.

इन्हें वृत्त के रूप में तीर के आकार में वृत्त के शीर्ष पर बाईं ओर रख कर दिखाया जाता है। वैकल्पिक रूप से, इन्हें सामान्य वर्गों में औपचारिक संकेत »नियंत्रण« के साथ वर्ग के नाम ऊपर दिखाया जा सकता है।

## इन्हें भी देखें

* निष्पादन योग्य UML
* UML उपकरणों की सूची

;संबंधित चित्र

* डोमेन मॉडल
* इकाई-संबंध मॉडल
* वस्तु रेखाचित्र

## सन्दर्भ

## बाहरी कड़ियाँ
* UML 2 वर्ग रेखाचित्र की प्रस्तावना 
* UML 2 वर्ग रेखाचित्र के दिशानिर्देश
* IBM वर्ग रेखाचित्र की प्रस्तावना 

श्रेणी:UML रेखाचित्र
श्रेणी:श्रेष्ठ लेख योग्य लेख
श्रेणी:गूगल परियोजना