उपयोग के मामले में include
और क्या अंतर है ?extend
उपयोग के मामले में include
और क्या अंतर है ?extend
जवाबों:
एक्सटेंड का उपयोग तब किया जाता है जब एक उपयोग का मामला दूसरे प्रथम श्रेणी के उपयोग के मामले में कदम जोड़ता है।
उदाहरण के लिए, कल्पना करें "कैश विथड्रॉ" एक ऑटोमेटेड टेलर मशीन (एटीएम) का उपयोग मामला है। "असेसी फीस" विथड्रॉ कैश को बढ़ाएगी और सशर्त "विस्तार बिंदु" का वर्णन करेगी जो एटीएम उपयोगकर्ता के स्वयं के संस्थान में एटीएम उपयोगकर्ता के बैंक नहीं होने पर त्वरित है। ध्यान दें कि बेसिक "विदड्रॉ कैश" का उपयोग एक्सटेंशन के बिना ही होता है।
शामिल कई उपयोग के मामलों में नकल कर रहे हैं कि उपयोग के मामले टुकड़े निकालने के लिए प्रयोग किया जाता है । सम्मिलित उपयोग का मामला अकेला नहीं चल सकता है और मूल उपयोग का मामला शामिल किए बिना पूरा नहीं होता है। इसे संयम से इस्तेमाल किया जाना चाहिए और केवल उन मामलों में जहां दोहराव महत्वपूर्ण है और डिजाइन द्वारा मौजूद है (बजाय संयोग के)।
उदाहरण के लिए, घटनाओं का प्रवाह जो प्रत्येक एटीएम उपयोग के मामले की शुरुआत में होता है (जब उपयोगकर्ता अपने एटीएम कार्ड में डालता है, अपना पिन दर्ज करता है, और मुख्य मेनू दिखाया जाता है) एक शामिल के लिए एक अच्छा उम्मीदवार होगा।
Include is used to extract use case fragments that are duplicated in multiple use cases
, उन चरणों में क्या निकाला जाता है puts in their ATM card, enters their PIN, and is shown the main menu
:? धन्यवाद
यह विवादास्पद हो सकता है लेकिन "इसमें हमेशा शामिल हैं और कभी-कभी फैली हुई हैं" एक बहुत ही सामान्य गलत धारणा है जो अब लगभग वास्तविक अर्थ के रूप में समाप्त हो गई है। यहां एक सही तरीका है (मेरे विचार में, और जैकबसन, फाउलर, लार्मेन और 10 अन्य संदर्भों के खिलाफ जांच की गई)।
यूज़ एमएमएल के बाकी हिस्सों के साथ साझा करने के लिए, उपयोग के मामलों को शामिल करने और विस्तारित करने की कुंजी यह है कि, उपयोग के मामलों के बीच बिंदीदार तीर निर्भरता संबंध है। मैं उपयोग केस भूमिकाओं को संदर्भित करने के लिए 'आधार', 'शामिल' और 'विस्तार' का उपयोग करूँगा।
एक बेस उपयोग मामला शामिल उपयोग मामले (ओं) पर निर्भर है; इसके बिना / उन्हें आधार उपयोग का मामला अधूरा है क्योंकि इसमें शामिल उपयोग मामला (एस) उस सहभागिता के उप-अनुक्रमों का प्रतिनिधित्व करता है जो कभी-कभी हो सकता है। (यह इस बारे में एक लोकप्रिय गलत धारणा के विपरीत है, जो आपके उपयोग का मामला हमेशा मुख्य परिदृश्य में होता है और कभी-कभी वैकल्पिक प्रवाह में होता है, बस इस पर निर्भर करता है कि आप अपने मुख्य परिदृश्य के रूप में क्या चुनते हैं? उपयोग के मामलों को आसानी से एक अलग प्रवाह का प्रतिनिधित्व करने के लिए पुनर्गठन किया जा सकता है; मुख्य परिदृश्य के रूप में और यह बात नहीं होनी चाहिए)।
एक तरह से निर्भरता के सर्वोत्तम अभ्यास में शामिल उपयोग मामले के बारे में (और संदर्भित) आधार उपयोग मामले को जानता है, लेकिन शामिल उपयोग मामले को आधार उपयोग मामले के बारे में 'पता' नहीं होना चाहिए। यही कारण है कि शामिल उपयोग के मामले हो सकते हैं: ए) आधार उपयोग के मामले अपने आप में और बी) कई आधार उपयोग मामलों द्वारा साझा किए जाते हैं।
मौजूदा उपयोग का मामला आधार उपयोग के मामले पर निर्भर है; यह शाब्दिक रूप से आधार उपयोग मामले द्वारा वर्णित व्यवहार का विस्तार करता है। आधार उपयोग का मामला पूरी तरह से कार्यात्मक उपयोग का मामला होना चाहिए, जो कि मौजूदा उपयोग मामले की अतिरिक्त कार्यक्षमता के बिना (निश्चित रूप से शामिल है)।
उपयोग के मामलों का विस्तार कई स्थितियों में किया जा सकता है:
विचार करने के लिए एक महत्वपूर्ण पहलू यह है कि मौजूदा उपयोग का मामला आधार उपयोग के मामले में कई स्थानों पर व्यवहार को 'सम्मिलित' कर सकता है, न कि केवल एक ही स्थान पर जैसा कि एक सम्मिलित उपयोग मामला करता है। इस कारण से, यह अत्यधिक संभावना नहीं है कि एक विस्तारित उपयोग का मामला एक से अधिक आधार उपयोग मामले का विस्तार करने के लिए उपयुक्त होगा।
निर्भरता के रूप में, मौजूदा उपयोग का मामला आधार उपयोग के मामले पर निर्भर है और फिर से एक तरह से निर्भरता है, अर्थात आधार उपयोग के मामले को अनुक्रम में विस्तारित उपयोग के मामले के किसी भी संदर्भ की आवश्यकता नहीं है। इसका मतलब यह नहीं है कि आप विस्तार बिंदुओं को प्रदर्शित नहीं कर सकते हैं या टेम्पलेट में कहीं और उपयोग के मामले में एक्स-रे जोड़ नहीं सकते हैं, लेकिन आधार उपयोग का मामला विस्तारित उपयोग के मामले के बिना काम करने में सक्षम होना चाहिए।
मुझे आशा है कि मैंने दिखाया है कि "की आम गलतफहमी हमेशा शामिल होती है, कभी-कभी फैली हुई होती है" या तो गलत है या सबसे अच्छा सरलीकृत है। यह संस्करण वास्तव में और अधिक समझ में आता है यदि आप तीर की दिशा के बारे में सभी मुद्दों पर विचार करते हैं जो गलत धारणा प्रस्तुत करता है - सही मॉडल में यह सिर्फ निर्भरता है और संभावित रूप से परिवर्तन नहीं करता है यदि आप उपयोग केस सामग्री को रिफलेक्टर करते हैं।
मैं अक्सर दो को याद करने के लिए इसका उपयोग करता हूं:
मेरा उपयोग मामला: मैं शहर जा रहा हूं।
शामिल हैं -> कार चलाएं
विस्तार -> पेट्रोल भरें
"पेट्रोल भरें" हर समय आवश्यक नहीं हो सकता है, लेकिन कार में छोड़े गए पेट्रोल की मात्रा के आधार पर वैकल्पिक रूप से आवश्यक हो सकता है। "ड्राइव द कार" एक शर्त है इसलिए मैं इसमें शामिल हूं।
उपयोग मामलों का उपयोग दस्तावेज़ व्यवहार के लिए किया जाता है, उदाहरण के लिए इस प्रश्न का उत्तर दें।
एक व्यवहार दूसरे का विस्तार करता है यदि यह इसके अतिरिक्त है, लेकिन आवश्यक रूप से व्यवहार का हिस्सा नहीं है, उदाहरण के लिए उत्तर पर शोध करें।
यह भी ध्यान दें कि यदि आप प्रश्न का उत्तर देने का प्रयास नहीं कर रहे हैं तो उत्तर पर शोध करना बहुत मायने नहीं रखता है।
एक व्यवहार को दूसरे में शामिल किया जाता है यदि यह शामिल व्यवहार का हिस्सा है, जैसे स्टैक एक्सचेंज में लॉगिन करें।
स्पष्ट करने के लिए, उदाहरण केवल सच है यदि आप स्टैक ओवरफ्लो में यहां उत्तर देना चाहते हैं :)।
ये यूएमएल 2.5 पेज 671-672 से तकनीकी परिभाषाएं हैं ।
मुझे लगता है कि मुझे लगता है कि महत्वपूर्ण बिंदु हैं।
का विस्तार
एक्सटेंड एक विस्तारित यूसेजकैसे ( एक्सटेंडेड ) से एक एक्सटेंडेड कैशे ( एक्सटेंडकेस) से एक संबंध है जो यह निर्दिष्ट करता है कि फैली हुई यूसेज कैसैस में परिभाषित व्यवहार को कैसे और कब बढ़ाया गया है। विस्तार एक या एक से अधिक विशिष्ट विस्तार बिंदुओं पर होता है जो विस्तारित यूसेजकेस में परिभाषित होता है।
एक्सटेंड का उपयोग तब किया जाता है जब कुछ अतिरिक्त व्यवहार हो, जो संभवत: सशर्त रूप से एक या एक से अधिक उपयोग किए गए व्यवहार में जोड़े जाएं ।
विस्तारित USECASE विस्तार USECASE की स्वतंत्र रूप से परिभाषित किया गया है विस्तार USECASE की स्वतंत्र रूप से सार्थक है । दूसरी ओर, मौजूदा UseCase आमतौर पर ऐसे व्यवहार को परिभाषित करता है जो जरूरी नहीं कि स्वयं ही सार्थक हो । इसके बजाय, विस्तृत UseCase मॉड्यूलर व्यवहार वेतन वृद्धि का एक सेट परिभाषित करता है जो विशिष्ट शर्तों के साथ विस्तारित UseCase के निष्पादन को बढ़ाता है।
...
शामिल
शामिल दो UseCases के बीच एक DirectedRelationship है , यह दर्शाता है कि शामिल UseCase (जोड़) के व्यवहार में UseCase ( सहित सम्मिलित ) के व्यवहार में डाला गया है । यह एक तरह का NamedElement भी है, ताकि इसके अपने UseCase (निमज्जन) के संदर्भ में एक नाम हो सके। शामिल उपयोगकैस शामिल यूसेजकैस को निष्पादित करके उत्पादित परिवर्तनों पर निर्भर हो सकता है। शामिल UseCase पूरी तरह से वर्णित किया जा करने के लिए सहित UseCase के व्यवहार के लिए उपलब्ध होना चाहिए।
सम्मिलित संबंध का उपयोग तब किया जाता है जब दो या दो से अधिक UseCases के व्यवहार के सामान्य हिस्से होते हैं। इस आम हिस्से को तब एक अलग यूसेजकैसे में निकाला जाता है, जिसमें इस बेस वाले सभी बेसस को शामिल किया जाए । जैसा कि सम्मिलित संबंध का प्राथमिक उपयोग आम भागों के पुन: उपयोग के लिए है, जो एक आधार में छोड़ा गया है उसका उपयोग आमतौर पर अपने आप में पूर्ण नहीं होता है, लेकिन इसमें शामिल भागों पर निर्भर होना सार्थक होता है। यह संबंध की दिशा में परिलक्षित होता है, यह दर्शाता है कि आधार का उपयोग इसके अतिरिक्त पर निर्भर करता है, लेकिन इसके विपरीत नहीं।
...
मुझे लगता है कि इसमें शामिल करने और विस्तार करने के इरादे को समझना महत्वपूर्ण है:
"शामिल संबंध दूसरे उपयोग के मामले द्वारा मॉडलिंग किए गए व्यवहार के पुन: उपयोग के लिए अभिप्रेत है , जबकि विस्तारित संबंध मौजूदा उपयोग के मामलों के साथ-साथ वैकल्पिक सिस्टम सेवाओं के लिए भागों को जोड़ने के लिए है " (ओवरगार्ड और पामकविस्ट, उपयोग के मामले: पैटर्न और ब्लूप्रिंट। एडिसन)। -वेस्ली, 2004)।
यह मुझे इस प्रकार है:
शामिल करें = कार्यक्षमता का पुन : उपयोग (अर्थात शामिल कार्यक्षमता का उपयोग किया जाता है या सिस्टम में कहीं और इस्तेमाल किया जा सकता है)। इसलिए शामिल करें एक और उपयोग के मामले पर निर्भरता को दर्शाता है।
फैली = जोड़ (पुन: उपयोग नहीं) कार्यक्षमता और भी कोई वैकल्पिक कार्यक्षमता। इसलिए विस्तार दो चीजों में से एक को निरूपित कर सकता है:
1. उपयोग की स्थिति में नई सुविधाओं / क्षमताओं को जोड़ना (वैकल्पिक या नहीं)
2. कोई वैकल्पिक उपयोग के मामले (मौजूदा या नहीं)।
सारांश:
शामिल करें = कार्यक्षमता का पुन: उपयोग
= नई और / या वैकल्पिक कार्यक्षमता बढ़ाता है
आपको बहुधा इसका दूसरा उपयोग (अर्थात वैकल्पिक कार्यक्षमता) मिल जाएगा, क्योंकि यदि कार्यक्षमता वैकल्पिक नहीं है, तो ज्यादातर बार इसे एक्सटेंशन के बजाय उपयोग के मामले में ही बनाया जाता है। कम से कम मेरा अनुभव तो यही रहा। (जूलियन सी बताते हैं कि जब कभी कोई प्रोजेक्ट 2 वें चरण में प्रवेश करता है तो आप 1 उपयोग (अर्थात नई सुविधाएँ जोड़ना) देखते हैं।
सरल करने के लिए,
के लिये include
एक विशिष्ट उदाहरण: लॉगिन और सत्यापित पासवर्ड के बीच
(लॉगिन) --- << शामिल हैं >> --- > (पासवर्ड सत्यापित करें)
सफलता के लिए लॉगिन प्रक्रिया के लिए, "पासवर्ड की पुष्टि करें" भी सफल होना चाहिए।
के लिये extend
एक विशिष्ट उदाहरण: लॉगिन और शो त्रुटि संदेश के बीच (केवल कभी-कभी हुआ)
(लॉगिन) < --- << विस्तार >> --- (त्रुटि संदेश दिखाएं)
"त्रुटि संदेश दिखाएं" केवल कभी-कभी तब होता है जब लॉगिन प्रक्रिया विफल हो जाती है।
मुझे लगता है कि एमएसडीएन ने यहां जो समझाया है वह समझने में काफी आसान है।
[5] शामिल करें
उपयोग केस कॉल सहित या शामिल एक को आमंत्रित करता है। समावेशन का उपयोग यह दिखाने के लिए किया जाता है कि कैसे उपयोग का मामला छोटे चरणों में टूट जाता है। शामिल उपयोग मामला एरोहेड एंड पर है।
विस्तार [6]
इस बीच, एक विस्तारित उपयोग मामला विस्तारित उपयोग के मामले में लक्ष्य और कदम जोड़ता है। एक्सटेंशन केवल कुछ शर्तों के तहत काम करते हैं। विस्तारित उपयोग मामला एरोहेड एंड पर है।
इसे स्पष्ट करते हैं। हम include
हर बार इस तथ्य को व्यक्त करना चाहते हैं कि एक मामले का अस्तित्व दूसरे के अस्तित्व पर निर्भर करता है।
उदाहरण:
उपयोगकर्ता अपने खाते में लॉग इन करने के बाद ही ऑनलाइन खरीदारी कर सकता है। दूसरे शब्दों में, वह तब तक कोई खरीदारी नहीं कर सकता जब तक कि वह अपने खाते में लॉग इन न कर ले।
सामग्री अपलोड होने से पहले उपयोगकर्ता साइट से डाउनलोड नहीं कर सकता है। यदि अपलोड नहीं किया गया है तो मैं डाउनलोड नहीं कर सकता।
क्या आपको यह समझ आया?
यह वातानुकूलित परिणाम के बारे में है। अगर मैं पहले ऐसा नहीं करता तो मैं ऐसा नहीं कर सकता ।
कम से कम, मुझे लगता है कि यह सही तरीका है जिसका हम उपयोग करते हैं Include
। मुझे लगता है कि ऊपर से लैपटॉप और वारंटी के साथ उदाहरण सबसे ठोस है!
जब भी एक usecase के लिए आवश्यक शर्तें हैं, तो शामिल करने के लिए जाएं।
प्रमाणीकरण के लिए usecases, सबसे खराब स्थिति, या वैकल्पिक हैं तो विस्तार के लिए जाएं ..
उदाहरण: प्रवेश, नियुक्ति, टिकट आरक्षण चाहने के उपयोग के मामले में, आपको एक फार्म भरना होगा (पंजीकरण या फीडबैक फॉर्म) .... यह है कि यह भी शामिल है:
उदाहरण: आपके खाते में लॉगिन या साइन की पुष्टि करने वाले उपयोग के मामले में, आपका प्रमाणीकरण एक महत्वपूर्ण है। सबसे खराब स्थिति के बारे में सोचें। ठीक के साथ पुस्तक वापस करने के लिए..कभी आरक्षण नहीं मिल रहा है। बिल के बारे में बिल के बारे में जानें। जहां खेलने के लिए विस्तार आता है ...
अति प्रयोग को शामिल न करें और आरेख में विस्तार करें।
KEEP IT SIMPLE SILLY !!!
यूएमएल संस्करण से भी सावधान रहें: यह अब एक लंबा समय हो गया है कि << >> का उपयोग करता है और << शामिल हैं >> द्वारा प्रतिस्थापित किया गया है << >> शामिल हैं, और << का विस्तार करता है >> << विस्तार >> और सामान्यीकरण ।
मेरे लिए यह अक्सर भ्रामक बिंदु है: उदाहरण के लिए स्टेफ़नी की पोस्ट और लिंक एक पुराने संस्करण के बारे में है:
किसी आइटम के लिए भुगतान करते समय, आप डिलीवरी पर भुगतान करना चुन सकते हैं, पेपाल का उपयोग कर भुगतान कर सकते हैं या कार्ड से भुगतान कर सकते हैं। ये "आइटम के लिए भुगतान" उपयोग के मामले के सभी विकल्प हैं। मैं अपनी पसंद के आधार पर इनमें से कोई भी विकल्प चुन सकता हूं।
वास्तव में "आइटम के लिए भुगतान" करने के लिए वास्तव में कोई विकल्प नहीं है! आजकल यूएमएल में, "पे ऑन डिलीवरी" एक विस्तार है, और "पेपल का उपयोग करके भुगतान" / "कार्ड द्वारा भुगतान" विशेषज्ञता हैं।
"शामिल करें" का उपयोग आधार उपयोग के मामले को बढ़ाने के लिए किया जाता है और यह एक आवश्यक शर्त है। इसमें शामिल उपयोग रन बेस को पूरा करने के लिए सफलतापूर्वक चलना चाहिए।
उदा। ईमेल सेवा के एक मामले पर विचार करें, यहाँ "लॉगिन" एक सम्मिलित उपयोग का मामला है जिसे ईमेल भेजने के लिए चलाया जाना चाहिए (बेस उपयोग का मामला)
दूसरी ओर "बहिष्कृत" वैकल्पिक उपयोग का मामला है जो आधार उपयोग के मामले को बढ़ाता है, आधार उपयोग का मामला मौजूदा उपयोग मामले को आमंत्रित / कॉल किए बिना भी सफलतापूर्वक चल सकता है।
उदाहरण के लिए "लैपटॉप खरीद" को आधार उपयोग के मामले के रूप में और "अतिरिक्त वारंटी" को मौजूदा उपयोग के मामले के रूप में देखें, यहां आप अतिरिक्त वारंटी न लेते हुए भी आधार उपयोग के मामले "लैपटॉप खरीद" को चला सकते हैं।
Login
उपयोग का मामला नहीं है। यह एक पूर्व-शर्त को पूरा करने के लिए किया गया कार्य है।
यह महान स्पष्टीकरण के साथ महान संसाधन है: उपयोग के मामले में क्या शामिल है? उपयोग के मामले में विस्तार क्या है?
उपयोग के मामले का विस्तार आमतौर पर वैकल्पिक व्यवहार को परिभाषित करता है। यह प्रचलित उपयोग के मामले से स्वतंत्र है
दो या अधिक उपयोग मामलों के व्यवहार के सामान्य भागों को निकालने के लिए उपयोग किया जाता है
आरेख तत्व
अभिनेता: इसे रोल्स भी कहा जाता है। किसी अभिनेता का नाम और स्टीरियोटाइप उसके गुण टैब में बदला जा सकता है।
वंशानुक्रम: अभिनेताओं के बीच परिशोधन संबंध। यह संबंध एक नाम और एक रूढ़ि ले सकता है।
मामलों का उपयोग करें: इनमें एक्सटेंशन पॉइंट हो सकते हैं।
एक्सटेंशन पॉइंट्स: यह एक स्थान को परिभाषित करता है जहां एक एक्सटेंशन को जोड़ा जा सकता है।
संघों: भूमिकाओं और उपयोग के मामलों के बीच। संघों को बोलने वाले नाम देना उपयोगी है।
निर्भरताएँ: उपयोग के मामलों के बीच। निर्भरता की भूमिका को बेहतर ढंग से परिभाषित करने के लिए अक्सर निर्भरता एक स्टीरियोटाइप होती है। एक स्टीरियोटाइप का चयन करने के लिए, आरेख या नेविगेशन फलक से निर्भरता का चयन करें, फिर गुण टैब में स्टीरियोटाइप को बदलें। दो विशेष प्रकार की निर्भरताएं हैं: <<extend>>
और <<include>>
, जिसके लिए पोसिडॉन खुद के बटन प्रदान करता है (नीचे देखें)।
संबंध बढ़ाएँ: दो उपयोग के मामलों के बीच एक संयुक्त-दिशात्मक संबंध। उपयोग केस B और उपयोग केस A के बीच एक विस्तृत संबंध का अर्थ है कि B का व्यवहार A में शामिल किया जा सकता है।
संबंध शामिल करें: दो उपयोग के मामलों के बीच एक यूनि-दिशात्मक संबंध। उपयोग मामलों ए और बी के बीच ऐसा संबंध का मतलब है, कि बी का व्यवहार हमेशा ए में शामिल है।
सिस्टम बॉर्डर: सिस्टम बॉर्डर को वास्तव में यूएमएल के लिए पोसिडॉन में मॉडल तत्व के रूप में लागू नहीं किया गया है। आप बस एक आयत खींच सकते हैं, इसे पृष्ठभूमि पर भेज सकते हैं और इसे आयत के अंदर सभी संगत उपयोग मामलों को डालकर सिस्टम बॉर्डर के रूप में उपयोग कर सकते हैं।
दोनों <include>
और <extend>
आधार वर्ग पर निर्भर हैं लेकिन <extend>
वैकल्पिक यानी, यह आधार वर्ग से लेकिन उन की बात में ली गई है है यह या इस्तेमाल किया जा सकता नहीं किया जा सकता देखने।
<include>
को आधार वर्ग में शामिल किया गया है अर्थात, <include>
आपके उपयोग के मामले में उपयोग करना अनिवार्य है अन्यथा इसे अधूरा माना जाएगा।
उदाहरण के लिए:
एटीएम मशीन निर्माण में (उपयोगकर्ताओं के दृष्टिकोण के अनुसार):
1: निकासी, नकद जमा करना और खाते की जांच करना <extend>
इसलिए आता है क्योंकि यह उपयोगकर्ता पर निर्भर करता है कि वह निकासी करे या जमा करे या चेक करे। ये वैकल्पिक चीजें हैं जो उपयोगकर्ता करता है।
2: "पिन दर्ज करें, कार्ड <include>
रखना, कार्ड निकालना" ये वे चीजें हैं जो उपयोगकर्ता के पास होनी चाहिए, क्योंकि उन्हें कार्ड रखना चाहिए और सत्यापन के लिए एक वैध पिन दर्ज करना चाहिए।
मैं दो को याद करने के लिए इसके उपयोग की अनुशंसा नहीं करता:
मेरा उपयोग मामला: मैं शहर जा रहा हूं।
शामिल हैं -> कार चलाएं
विस्तार -> पेट्रोल भरें
मैं आपको उपयोग करना चाहूंगा: मेरा उपयोग मामला: मैं शहर जा रहा हूं।
फैली -> कार चला रहा है
शामिल हैं -> पेट्रोल भरें
एएम ने सिखाया कि संबंध बढ़ाना एक आधार वर्ग के व्यवहार को जारी रखता है। बेस क्लास फंक्शनलिटीज होनी चाहिए। दूसरी ओर संबंध शामिल हैं, ऐसे कार्यों के समान हैं जिन्हें कहा जा सकता है। मई बोल्ड में है।
यह एगिलमोडेलिंग रियूज़ इन यूज-केस मॉडल्स से देखा जा सकता है
दोनों के बीच अंतर को यहां समझाया गया है। लेकिन जो नहीं समझाया गया है वह तथ्य यह है कि <<include>>
और <<extend>>
बस इसका उपयोग नहीं किया जाना चाहिए।
यदि आप बिटनर / स्पेंस पढ़ते हैं, तो आप जानते हैं कि उपयोग के मामले संश्लेषण के बारे में हैं, विश्लेषण नहीं। उपयोग के मामलों का फिर से उपयोग करना बकवास है। यह स्पष्ट रूप से दिखाता है कि आपने अपना डोमेन गलत तरीके से काटा है। जोड़ा गया मूल्य प्रति सेर अद्वितीय होना चाहिए। मेरे द्वारा ज्ञात मूल्य का एकमात्र पुन: उपयोग मताधिकार है। तो अगर आप बर्गर व्यवसाय में हैं, तो अच्छा है। लेकिन हर जगह बीए के रूप में आपका कार्य यूएसपी खोजने की कोशिश करना है। और इसे अच्छे उपयोग के मामलों में प्रस्तुत किया जाना चाहिए।
जब भी मैं उन संबंधों में से किसी एक का उपयोग करते हुए लोगों को देखता हूं तो यह तब होता है जब वे कार्यात्मक अपघटन करने की कोशिश करते हैं। और यह गलत है।
इसे सरल करने के लिए: यदि आप अपने बॉस को बिना किसी हिचकिचाहट के जवाब दे सकते हैं "मैंने किया है ..." तो "..." आपका उपयोग मामला है क्योंकि आपको इसे करने के लिए पैसा मिला है। (इससे यह भी स्पष्ट हो जाएगा कि "लॉगिन" उपयोग का मामला नहीं है।)
उस संबंध में, स्वयं उपयोग किए जाने वाले मामलों को शामिल करना या अन्य उपयोग के मामलों का विस्तार करना बहुत संभावना नहीं है। आखिरकार आप <<extend>>
अपने सिस्टम की वैकल्पिकता दिखाने के लिए उपयोग कर सकते हैं , अर्थात कुछ लाइसेंस स्कीमा जो कुछ लाइसेंस के लिए उपयोग के मामलों को शामिल करने या उन्हें छोड़ने की अनुमति देता है। लेकिन और - बस उनसे बचें।
का विस्तार किया जाता है जब आप समझते हैं कि आपके उपयोग के मामले में बहुत ज्यादा जटिल है। तो आप अपने स्वयं के "विस्तार" मामलों में जटिल चरणों को निकालते हैं।
शामिल इस्तेमाल किया है जब आप दो उपयोग के मामलों में आम व्यवहार देख रहा है। तो आप एक अलग "अमूर्त" उपयोग के मामले में सामान्य व्यवहार को अमूर्त करते हैं।
(रेफरी: जेफरी एल। व्हाईट, लोनी डी। बेंटले, सिस्टम विश्लेषण और डिजाइन के तरीके, मैकग्रा-हिल / इरर्स, 2007)
शामिल संबंध एक उपयोग के मामले में एक और उपयोग के मामले के कदम शामिल करने के लिए अनुमति देता है।
उदाहरण के लिए, मान लें कि आपके पास एक अमेज़ॅन खाता है और आप किसी ऑर्डर पर जांच करना चाहते हैं, तो पहले अपने खाते में प्रवेश किए बिना आदेश पर जांच करना असंभव है। इसलिए घटनाओं का प्रवाह ऐसा होगा ...
विस्तार संबंध एक उपयोग के मामले के प्रवाह के एक अतिरिक्त कदम, आम तौर पर एक वैकल्पिक चरण है कि जोड़ने के लिए प्रयोग किया जाता है ...
कल्पना कीजिए कि हम अभी भी आपके अमेज़न खाते के बारे में बात कर रहे हैं। मान लें कि आधार मामला ऑर्डर है और विस्तार उपयोग का मामला अमेज़ॅन प्राइम है । उपयोगकर्ता केवल नियमित रूप से आइटम को ऑर्डर करने के लिए चुन सकता है, या, उपयोगकर्ता के पास अमेज़ॅन प्राइम का चयन करने का विकल्प है जो यह सुनिश्चित करता है कि उसका ऑर्डर उच्च लागत पर तेजी से पहुंचेगा।
हालांकि, ध्यान दें कि उपयोगकर्ता को अमेज़ॅन प्राइम का चयन करने की आवश्यकता नहीं है, यह केवल एक विकल्प है, वे इस उपयोग के मामले को अनदेखा करना चुन सकते हैं।
Amazon Prime
चाहिए? इसमें एक क्रिया भी नहीं है।
मुझे आधार उपयोग मामले की एक आवश्यक शर्त / संगत के रूप में "शामिल" के बारे में सोचना पसंद है। इसका मतलब यह है कि बेस केस के उपयोग के मामले के बिना इसे पूरा नहीं माना जा सकता है। मैं एक ई-कॉमर्स वेबसाइट का उदाहरण दूंगा जो ग्राहकों को आइटम बेचती है। ऐसा कोई तरीका नहीं है कि आप किसी आइटम के लिए पहले उस आइटम का चयन किए बिना उसे कार्ट में डाल सकें। तात्पर्य यह है कि उपयोग मामले "वेतन के लिए आइटम" में "चयनित आइटम" शामिल है।
इसके विस्तार के अलग-अलग उपयोग हैं लेकिन मैं इसे एक विकल्प के रूप में सोचना पसंद करता हूं जिसका उपयोग किया जा सकता है या नहीं। उदाहरण के लिए - अभी भी ई-कॉमर्स साइट पर। किसी आइटम के लिए भुगतान करते समय, आप डिलीवरी पर भुगतान करना चुन सकते हैं, पेपाल का उपयोग कर भुगतान कर सकते हैं या कार्ड से भुगतान कर सकते हैं। ये "आइटम के लिए भुगतान" उपयोग के मामले में सभी विकल्प हैं। मैं अपनी पसंद के आधार पर इनमें से कोई भी विकल्प चुन सकता हूं।
अधिक स्पष्टता और उपयोग के मामलों के नियमों के लिए, मेरा लेख यहां पढ़ें:
http://businessanalystlearnings.com/ba-techniques/2013/2/20/use-case-diagram-the-basics
login
और न ही create
मामलों का। दोनों कार्य हैं। इसलिए -1