डिजाइन रणनीतियाँ
टॉप-डाउन रणनीति
टॉप-डाउन रणनीति सिस्टम के डिजाइन को विकसित करने के लिए मॉड्यूलर दृष्टिकोण का उपयोग करती है। इसे इसलिए कहा जाता है क्योंकि यह शीर्ष या उच्चतम-स्तरीय मॉड्यूल से शुरू होता है और सबसे निचले स्तर के मॉड्यूल की ओर बढ़ता है।
इस तकनीक में, सॉफ्टवेयर को विकसित करने के लिए उच्चतम-स्तरीय मॉड्यूल या मुख्य मॉड्यूल की पहचान की जाती है। प्रत्येक मॉड्यूल द्वारा किए गए कार्य के आधार पर मुख्य मॉड्यूल को कई छोटे और सरल सबमॉड्यूल या सेगमेंट में विभाजित किया जाता है। फिर, प्रत्येक सबमॉड्यूल को अगले निचले स्तर के कई सबमॉड्यूल्स में विभाजित किया जाता है। प्रत्येक मॉड्यूल को कई सबमॉड्यूल्स में विभाजित करने की यह प्रक्रिया तब तक जारी रहती है जब तक कि सबसे निचले स्तर के मॉड्यूल, जो आगे उप-विभाजित नहीं हो सकते, की पहचान नहीं की जाती है।
नीचे-ऊपर की रणनीति
नीचे-ऊपर की रणनीति प्रणाली के डिजाइन को विकसित करने के लिए मॉड्यूलर दृष्टिकोण का अनुसरण करती है। इसे इसलिए कहा जाता है क्योंकि यह नीचे या सबसे बुनियादी स्तर के मॉड्यूल से शुरू होता है और उच्चतम स्तर के मॉड्यूल की ओर बढ़ता है।
इस तकनीक में,
सबसे बुनियादी या सबसे निचले स्तर पर मॉड्यूल की पहचान की जाती है।
इन मॉड्यूल को फिर अगले उच्च-स्तरीय मॉड्यूल बनाने के लिए प्रत्येक मॉड्यूल द्वारा किए गए फ़ंक्शन के आधार पर एक साथ समूहीकृत किया जाता है।
फिर, इन मॉड्यूलों को अगले उच्च-स्तरीय मॉड्यूल बनाने के लिए संयुक्त किया जाता है।
उच्च स्तरीय मॉड्यूल बनाने के लिए कई सरल मॉड्यूल को समूहीकृत करने की यह प्रक्रिया तब तक जारी रहती है जब तक कि सिस्टम विकास प्रक्रिया का मुख्य मॉड्यूल प्राप्त नहीं हो जाता।
संरचित डिजाइन
संरचित डिजाइन एक डेटा-प्रवाह आधारित कार्यप्रणाली है जो विकासशील प्रणाली के इनपुट और आउटपुट की पहचान करने में मदद करता है। संरचित डिजाइन का मुख्य उद्देश्य जटिलता को कम करना और एक कार्यक्रम के प्रतिरूपकता को बढ़ाना है। संरचित डिजाइन प्रणाली के कार्यात्मक पहलुओं का वर्णन करने में भी मदद करता है।
संरचित डिजाइनिंग में, सिस्टम विनिर्देश डीएफडी की मदद से सॉफ्टवेयर विकास में शामिल डेटा के प्रवाह और अनुक्रम के प्रक्रियाओं के रेखांकन के लिए एक आधार के रूप में कार्य करते हैं। सॉफ्टवेयर सिस्टम के लिए DFDs विकसित करने के बाद, अगला चरण संरचना चार्ट विकसित करना है।
मॉड्यूलर
संरचित डिज़ाइन विभाजन कार्यक्रम को छोटे और स्वतंत्र मॉड्यूल में विभाजित करता है। ये नीचे दिए गए विवरण के साथ शीर्ष नीचे तरीके से आयोजित किए जाते हैं।
इस प्रकार, संरचित डिजाइन जटिलता को कम करने और छोटे खंडों में विभाजित करके समस्या का प्रबंधन करने के लिए मॉडर्नाइजेशन या अपघटन नामक एक दृष्टिकोण का उपयोग करता है।
Advantages
- महत्वपूर्ण इंटरफेस पहले परीक्षण किए जाते हैं।
- यह अमूर्तता प्रदान करता है।
- यह कई प्रोग्रामर को एक साथ काम करने की अनुमति देता है।
- यह कोड का पुन: उपयोग करने की अनुमति देता है।
- यह नियंत्रण प्रदान करता है और मनोबल में सुधार करता है।
- यह संरचना को पहचानना आसान बनाता है।
संरचित चार्ट
संरचित चार्ट एक मॉड्यूलर, टॉप डाउन सिस्टम डिजाइन करने के लिए एक अनुशंसित उपकरण है जो सिस्टम विकास के विभिन्न मॉड्यूल और प्रत्येक मॉड्यूल के बीच संबंध को परिभाषित करता है। यह सिस्टम मॉड्यूल और उनके बीच उनके संबंधों को दर्शाता है।
इसमें आरेख में आयताकार बक्से होते हैं जो मॉड्यूल का प्रतिनिधित्व करते हैं, जो तीर, या रेखाओं को जोड़ते हैं।
Control Module - यह एक उच्च-स्तरीय मॉड्यूल है जो निचले-स्तर के मॉड्यूल को निर्देशित करता है, जिसे कहा जाता है subordinate modules।
Library Module - यह एक पुन: प्रयोज्य मॉड्यूल है और इसे चार्ट में एक से अधिक बिंदुओं से लागू किया जा सकता है।
संरचित चार्ट को डिजाइन करने के लिए हमारे पास दो अलग-अलग दृष्टिकोण हैं -
Transform-Centered Structured Charts - इनका उपयोग तब किया जाता है जब सभी लेनदेन समान पथ का अनुसरण करते हैं।
Transaction–Centered Structured Charts - उनका उपयोग तब किया जाता है जब सभी लेनदेन समान पथ का पालन नहीं करते हैं।
संरचना फ़्लोचार्ट का उपयोग करने का उद्देश्य
एक टॉप-डाउन डिज़ाइन को प्रोत्साहित करने के लिए।
मॉड्यूल की अवधारणा का समर्थन करने और उचित मॉड्यूल की पहचान करने के लिए।
सिस्टम का आकार और जटिलता दिखाने के लिए।
प्रत्येक फ़ंक्शन के भीतर आसानी से पहचाने जाने योग्य फ़ंक्शन और मॉड्यूल की संख्या की पहचान करना।
यह पहचानने के लिए कि क्या प्रत्येक पहचान योग्य कार्य एक प्रबंधनीय इकाई है या छोटे घटकों में टूट जाना चाहिए।
सिस्टम की जटिलता को प्रभावित करने वाले कारक
सिस्टम सॉफ्टवेयर की अच्छी गुणवत्ता विकसित करने के लिए, एक अच्छा डिजाइन विकसित करना आवश्यक है। इसलिए, सिस्टम का डिज़ाइन विकसित करते समय मुख्य ध्यान सॉफ्टवेयर डिज़ाइन की गुणवत्ता है। एक अच्छी गुणवत्ता वाला सॉफ्टवेयर डिजाइन वह है, जो सॉफ्टवेयर विकास में जटिलता और लागत व्यय को कम करता है।
सिस्टम विकास से संबंधित दो महत्वपूर्ण अवधारणाएं जो एक सिस्टम की जटिलता को निर्धारित करने में मदद करती हैं coupling तथा cohesion।
युग्मन
युग्मन घटकों की स्वतंत्रता का माप है। यह सिस्टम विकास के प्रत्येक मॉड्यूल की निर्भरता की डिग्री को दूसरे पर परिभाषित करता है। व्यवहार में, इसका मतलब है कि सिस्टम में मॉड्यूल के बीच युग्मन जितना मजबूत होगा, सिस्टम को लागू करना और बनाए रखना उतना ही कठिन होगा।
प्रत्येक मॉड्यूल में अन्य मॉड्यूल के साथ सरल, स्वच्छ इंटरफ़ेस होना चाहिए और मॉड्यूल के बीच डेटा तत्वों की न्यूनतम संख्या साझा की जानी चाहिए।
उच्च युग्मन
इस प्रकार की प्रणालियों में एक दूसरे पर निर्भर प्रोग्राम इकाइयों के साथ परस्पर संबंध हैं। एक सबसिस्टम में बदलाव से दूसरे सबसिस्टम पर उच्च प्रभाव पड़ता है।
कम युग्मन
इस प्रकार की प्रणालियाँ उन घटकों से बनी होती हैं जो स्वतंत्र या लगभग स्वतंत्र होते हैं। एक सबसिस्टम में बदलाव किसी अन्य सबसिस्टम को प्रभावित नहीं करता है।
युग्मन के उपाय
Content Coupling - जब एक घटक वास्तव में दूसरे को संशोधित करता है, तो संशोधित घटक पूरी तरह से एक को संशोधित करने पर निर्भर करता है।
Common Coupling - जब सिस्टम डिज़ाइन को व्यवस्थित करके युग्मन की मात्रा को कुछ हद तक कम किया जाता है ताकि डेटा एक आम डेटा स्टोर से सुलभ हो।
Control Coupling - जब एक घटक दूसरे घटक की गतिविधि को नियंत्रित करने के लिए पैरामीटर पास करता है।
Stamp Coupling - जब डेटा संरचनाओं का उपयोग एक घटक से दूसरे में जानकारी पारित करने के लिए किया जाता है।
Data Coupling - जब केवल डेटा पास किया जाता है तो घटक इस युग्मन द्वारा जुड़े होते हैं।
एकजुटता
सामंजस्य इसके घटकों के बीच संबंधों की निकटता का मापक है। यह एक मॉड्यूल के घटकों की निर्भरता की मात्रा को एक दूसरे पर परिभाषित करता है। व्यवहार में, इसका मतलब है कि सिस्टम डिजाइनर को यह सुनिश्चित करना होगा कि -
वे आवश्यक प्रक्रियाओं को खंडित मॉड्यूल में विभाजित नहीं करते हैं।
वे डीएफडी पर प्रक्रियाओं के रूप में निरूपित असंबद्ध प्रक्रियाओं को एक साथ इकट्ठा नहीं करते हैं।
सबसे अच्छा मॉड्यूल वे हैं जो कार्यात्मक रूप से सामंजस्यपूर्ण हैं। सबसे खराब मॉड्यूल वे हैं जो संयोगवश एकजुट होते हैं।
सामंजस्य की सबसे खराब डिग्री
कॉइनसिडेंटल सामंजस्य एक घटक में पाया जाता है जिसके हिस्से दूसरे से असंबंधित होते हैं।
Logical Cohesion - यह वह जगह है जहां तार्किक रूप से संबंधित कार्यों या डेटा तत्वों को एक ही घटक में रखा जाता है।
Temporal Cohesion - ऐसा तब होता है जब किसी सिस्टम को सेट करने या वैरिएबल सेट करने के लिए उपयोग किया जाने वाला घटक क्रम में कई फ़ंक्शन करता है, लेकिन फ़ंक्शन समयबद्धता से संबंधित होते हैं।
Procedurally Cohesion - यह तब होता है जब इस आदेश को सुनिश्चित करने के लिए कार्यों को एक घटक में एक साथ रखा जाता है।
Sequential Cohesion - यह तब होता है जब किसी घटक के एक भाग से आउटपुट उसके अगले भाग के लिए इनपुट होता है।