OOAD - कार्यात्मक मॉडलिंग
फ़ंक्शनल मॉडलिंग, ऑब्जेक्ट-ओरिएंटेड विश्लेषण मॉडल की प्रक्रिया को परिप्रेक्ष्य देता है और सिस्टम क्या करने वाला है, इसका अवलोकन करता है। यह डेटा फ्लो डायग्राम (DFDs) की सहायता से सिस्टम में आंतरिक प्रक्रियाओं के कार्य को परिभाषित करता है। यह डेटा मानों के कार्यात्मक व्युत्पत्ति को दर्शाता है कि वे कैसे व्युत्पन्न हैं जब वे गणना की जाती हैं, या उन्हें गणना करने की आवश्यकता क्यों होती है।
डेटा फ्लो आरेख
कार्यात्मक मॉडलिंग को DFDs के पदानुक्रम के माध्यम से दर्शाया जाता है। डीएफडी एक प्रणाली का एक चित्रमय प्रतिनिधित्व है जो सिस्टम को इनपुट, इनपुट पर प्रसंस्करण, सिस्टम के आउटपुट के साथ-साथ आंतरिक डेटा स्टोर को दिखाता है। DFDs वस्तुओं या सिस्टम पर किए गए परिवर्तनों या अभिकलन की श्रृंखला और बाहरी नियंत्रण और परिवर्तन को प्रभावित करने वाली वस्तुओं की व्याख्या करते हैं।
रंबा एट अल। DFD के रूप में परिभाषित किया गया है, "एक डेटा प्रवाह आरेख एक ग्राफ है जो डेटा स्रोतों से डेटा मानों के प्रवाह को प्रक्रियाओं के माध्यम से वस्तुओं में दिखाता है जो उन्हें अन्य वस्तुओं पर उनके गंतव्य में बदल देता है।"
DFD के चार मुख्य भाग हैं -
- Processes,
- डेटा प्रवाह,
- अभिनेता, और
- डेटा स्टोर।
DFD के अन्य भाग हैं -
- अड़चनें, और
- नियंत्रण प्रवाह।
एक DFD की विशेषताएं
प्रक्रियाओं
प्रक्रियाएं कम्प्यूटेशनल गतिविधियां हैं जो डेटा मूल्यों को बदल देती हैं। एक पूरे सिस्टम को उच्च-स्तरीय प्रक्रिया के रूप में देखा जा सकता है। एक प्रक्रिया को आगे छोटे घटकों में विभाजित किया जा सकता है। निम्नतम-स्तरीय प्रक्रिया एक साधारण कार्य हो सकता है।
Representation in DFD - एक प्रक्रिया को इसके नाम के साथ एक दीर्घवृत्त के रूप में दर्शाया जाता है और इसमें निश्चित संख्या में इनपुट और आउटपुट डेटा मान होते हैं।
Example - निम्न आंकड़ा एक प्रक्रिया को दर्शाता है Compute_HCF_LCM जो दो पूर्णांकों को इनपुट के रूप में स्वीकार करता है और उनके HCF (उच्चतम सामान्य कारक) और LCM (कम से कम सामान्य कई) को आउटपुट करता है।

डेटा प्रवाह
डेटा प्रवाह दो प्रक्रियाओं के बीच डेटा के प्रवाह का प्रतिनिधित्व करता है। यह एक अभिनेता और एक प्रक्रिया के बीच, या एक डेटा स्टोर और एक प्रक्रिया के बीच हो सकता है। एक डेटा प्रवाह गणना के कुछ बिंदु पर एक डेटा आइटम के मूल्य को दर्शाता है। यह मान डेटा प्रवाह द्वारा नहीं बदला जाता है।
Representation in DFD - डेटा प्रवाह को एक निर्देशित चाप या एक तीर द्वारा दर्शाया जाता है, जो उस डेटा आइटम के नाम के साथ लेबल किया जाता है जिसे वह करता है।
उपरोक्त आंकड़ों में, Integer_a और Integer_b इस प्रक्रिया में इनपुट डेटा प्रवाह का प्रतिनिधित्व करते हैं, जबकि LCM और HCF आउटपुट डेटा प्रवाह हैं।
निम्नलिखित मामलों में एक डेटा प्रवाह को कांटा जा सकता है -
आउटपुट मान कई स्थानों पर भेजा जाता है जैसा कि निम्न आकृति में दिखाया गया है। यहाँ, आउटपुट एरो को अनब्लॉक किया जाता है क्योंकि वे समान मान को दर्शाते हैं।
डेटा प्रवाह में एक समग्र मूल्य होता है, और प्रत्येक घटक को विभिन्न स्थानों पर भेजा जाता है जैसा कि निम्न आकृति में दिखाया गया है। यहां, प्रत्येक फोर्क किए गए घटकों को लेबल किया गया है।

अभिनेताओं
अभिनेता सक्रिय वस्तुएं हैं जो सिस्टम के साथ डेटा का उत्पादन करके या सिस्टम में इनपुट करके या सिस्टम द्वारा निर्मित डेटा का उपभोग करके सिस्टम से संपर्क करते हैं। दूसरे शब्दों में, अभिनेता डेटा के स्रोत और सिंक के रूप में कार्य करते हैं।
Representation in DFD- एक अभिनेता को एक आयत द्वारा दर्शाया जाता है। अभिनेता इनपुट और आउटपुट से जुड़े होते हैं और DFD की सीमा पर झूठ बोलते हैं।
Example - निम्नलिखित आंकड़ा एक काउंटर बिक्री प्रणाली में अभिनेताओं, अर्थात्, ग्राहक और Sales_Clerk को दर्शाता है।

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

प्रतिबन्ध
बाधाएं उन शर्तों या प्रतिबंधों को निर्दिष्ट करती हैं जिन्हें समय के साथ संतुष्ट होने की आवश्यकता होती है। वे नए नियम जोड़ने या मौजूदा लोगों को संशोधित करने की अनुमति देते हैं। बाधाएं ऑब्जेक्ट-ओरिएंटेड विश्लेषण के सभी तीन मॉडल में दिखाई दे सकती हैं।
ऑब्जेक्ट मॉडलिंग में, बाधाएं वस्तुओं के बीच संबंध को परिभाषित करती हैं। वे विभिन्न मूल्यों के बीच संबंध को भी परिभाषित कर सकते हैं जो एक वस्तु अलग-अलग समय पर हो सकती है।
डायनामिक मॉडलिंग में, बाधाएं विभिन्न वस्तुओं के राज्यों और घटनाओं के बीच संबंध को परिभाषित करती हैं।
फ़ंक्शनल मॉडलिंग में, बाधाएँ परिवर्तनों और गणनाओं पर प्रतिबंध को परिभाषित करती हैं।
Representation - एक बाधा ब्रेसिज़ के भीतर एक स्ट्रिंग के रूप में प्रदान की जाती है।
Example- निम्नलिखित आंकड़ा एक कंपनी के कर्मचारियों के वेतन की गणना के लिए DFD का एक हिस्सा दिखाता है जिसने बिक्री विभाग के सभी कर्मचारियों को प्रोत्साहन देने और मानव संसाधन विभाग के सभी कर्मचारियों के वेतन में वृद्धि का फैसला किया है। यह देखा जा सकता है कि बाधा {विभाग: बिक्री} प्रोत्साहन की गणना केवल तभी की जाती है जब विभाग बिक्री कर रहा हो और बाधा {विभाग: HR} वेतन वृद्धि का कारण बनता है तभी विभाग एचआर है।

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

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

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

निम्नलिखित आंकड़ा प्रक्रिया ग्राहक का विवरण दिखाता है। इसमें तीन प्रक्रियाएं हैं, विवरण सत्यापित करें, C_Code जनरेट करें, और ग्राहक विवरण अपडेट करें। जब ग्राहक का विवरण दर्ज किया जाता है, तो वे सत्यापित होते हैं। यदि डेटा सही है, तो C_Code जनरेट किया जाता है और डेटा स्टोर ग्राहक विवरण अपडेट किया जाता है।

निम्नलिखित आंकड़ा पता लगाने की प्रक्रिया के विस्तार को दर्शाता है। इसमें दो प्रक्रियाएँ हैं, कुल बिक्री और निर्णय प्रकार का उपहार सिक्का खोजें। कुल बिक्री प्रक्रिया खोजें प्रत्येक ग्राहक के अनुरूप वार्षिक कुल बिक्री की गणना करता है और डेटा को रिकॉर्ड करता है। इस रिकॉर्ड और प्रोप्राइटर के फैसले को इनपुट के रूप में लेते हुए, गिफ्ट के सिक्कों को Decide Type of Gift Coin प्रक्रिया के माध्यम से आवंटित किया जाता है।

DFD के लाभ और नुकसान
लाभ | नुकसान |
---|---|
DFDs एक प्रणाली की सीमाओं को दर्शाते हैं और इसलिए बाहरी वस्तुओं और सिस्टम के भीतर की प्रक्रियाओं के बीच संबंधों को चित्रित करने में सहायक होते हैं। | DFDs को बनाने में लंबा समय लगता है, जो व्यावहारिक उद्देश्यों के लिए संभव नहीं है। |
वे सिस्टम के बारे में जानकारी रखने के लिए उपयोगकर्ताओं की मदद करते हैं। | DFDs समय-निर्भर व्यवहार के बारे में कोई जानकारी प्रदान नहीं करते हैं, अर्थात, जब रूपांतरण किया जाता है तो वे निर्दिष्ट नहीं करते हैं। |
ग्राफिकल प्रतिनिधित्व प्रोग्रामर के लिए एक प्रणाली विकसित करने के लिए एक खाका के रूप में कार्य करता है। | वे संगणना की आवृत्ति या संगणना के कारणों पर कोई प्रकाश नहीं डालते हैं। |
DFD सिस्टम प्रक्रियाओं के बारे में विस्तृत जानकारी प्रदान करते हैं। | DFDs की तैयारी एक जटिल प्रक्रिया है जिसमें काफी विशेषज्ञता की आवश्यकता होती है। साथ ही, एक गैर-तकनीकी व्यक्ति के लिए इसे समझना मुश्किल है। |
वे सिस्टम प्रलेखन के एक भाग के रूप में उपयोग किए जाते हैं। | तैयारी का तरीका व्यक्तिपरक है और पर्याप्त गुंजाइश छोड़ देता है। |
ऑब्जेक्ट, डायनामिक और फ़ंक्शनल मॉडल के बीच संबंध
ऑब्जेक्ट मॉडल, डायनामिक मॉडल और फंक्शनल मॉडल एक पूर्ण ऑब्जेक्ट-ओरिएंटेड विश्लेषण के लिए एक दूसरे के पूरक हैं।
ऑब्जेक्ट मॉडलिंग वस्तुओं के संदर्भ में सॉफ्टवेयर सिस्टम की स्थिर संरचना को विकसित करता है। इस प्रकार यह एक प्रणाली के "कर्ता" को दर्शाता है।
डायनामिक मॉडलिंग बाहरी घटनाओं की प्रतिक्रिया में वस्तुओं के लौकिक व्यवहार को विकसित करता है। यह वस्तुओं पर किए गए संचालन के अनुक्रम को दर्शाता है।
कार्यात्मक मॉडल सिस्टम को क्या करना चाहिए, इसका अवलोकन देता है।
फंक्शनल मॉडल और ऑब्जेक्ट मॉडल
ऑब्जेक्ट मॉडल के संदर्भ में एक कार्यात्मक मॉडल के चार मुख्य भाग हैं -
Process - प्रक्रियाएं उन वस्तुओं के तरीकों को बताती हैं जिन्हें लागू करने की आवश्यकता है।
Actors - एक्टर्स ऑब्जेक्ट मॉडल में ऑब्जेक्ट हैं।
Data Stores - ये या तो ऑब्जेक्ट मॉडल में ऑब्जेक्ट हैं या ऑब्जेक्ट्स की विशेषताएँ हैं।
Data Flows- डेटा प्रवाह अभिनेताओं से या वस्तुओं से या पर कार्रवाई का प्रतिनिधित्व करता है। डेटा प्रवाह या डेटा स्टोर से डेटा प्रश्नों या अद्यतनों का प्रतिनिधित्व करता है।
कार्यात्मक मॉडल और गतिशील मॉडल
डायनामिक मॉडल बताता है कि संचालन कब किया जाता है, जबकि कार्यात्मक मॉडल बताता है कि उनका प्रदर्शन कैसे किया जाता है और किन तर्कों की आवश्यकता होती है। चूंकि अभिनेता सक्रिय वस्तुएं हैं, गतिशील मॉडल को यह निर्दिष्ट करना होगा कि वह कब कार्य करता है। डेटा स्टोर निष्क्रिय वस्तुएं हैं और वे केवल अपडेट और प्रश्नों का जवाब देते हैं; इसलिए जब वे कार्य करते हैं तो गतिशील मॉडल को निर्दिष्ट करने की आवश्यकता नहीं होती है।
ऑब्जेक्ट मॉडल और गतिशील मॉडल
गतिशील मॉडल वस्तुओं की स्थिति और घटनाओं की घटनाओं और राज्यों में बाद के परिवर्तनों पर किए गए कार्यों को दर्शाता है। परिवर्तनों के परिणामस्वरूप ऑब्जेक्ट की स्थिति ऑब्जेक्ट मॉडल में दिखाई जाती है।