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