हार्डवेयर वास्तुकार

From alpha
Jump to navigation Jump to search

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

हार्डवेयर सिस्टम आर्किटेक्ट या हार्डवेयर आर्किटेक्ट इसके लिए जिम्मेदार है:

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

पृष्ठभूमि

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

उपयोगकर्ता और प्रायोजक

एक समूह के रूप में इंजीनियरों के पास मानवीय जरूरतों को सहजता से समझने और प्रतिक्रिया देने या मानवीय रूप से कार्यात्मक और सौंदर्यपूर्ण रूप से सुखदायक उत्पादों को विकसित करने की प्रतिष्ठा नहीं है। आर्किटेक्ट्स से अपेक्षा की जाती है कि वे मानवीय जरूरतों को समझें और मानवीय रूप से कार्यात्मक और सौंदर्य की दृष्टि से मनभावन उत्पाद विकसित करें। एक अच्छा वास्तुकार उपयोगकर्ता/प्रायोजक और इंजीनियरों के बीच और यहां तक ​​कि विभिन्न विशिष्टताओं वाले इंजीनियरों के बीच भी एक अनुवादक होता है। एक अच्छा वास्तुकार अंतिम उत्पाद के बारे में उपयोगकर्ता के दृष्टिकोण का और उस दृष्टिकोण से आवश्यकताओं को प्राप्त करने और कार्यान्वित करने की प्रक्रिया का प्रमुख संरक्षक भी होता है।

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

उच्च-स्तरीय आवश्यकताएँ

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

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

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

उपयोगकर्ता की दुनिया की वास्तुकला और इंजीनियर हार्डवेयर वास्तुकला के बीच अंतर करना आवश्यक है। पहला उपयोगकर्ता की दुनिया में समस्याओं और समाधानों का प्रतिनिधित्व और समाधान करता है। यह मुख्य रूप से इंजीनियर सिस्टम के कंप्यूटर-मानव इंटरफेस (सीएचआई) में कैप्चर किया जाता है। इंजीनियर प्रणाली इंजीनियरिंग समाधानों का प्रतिनिधित्व करती है - कैसे इंजीनियर सीएचआई का समर्थन करने के लिए तकनीकी बुनियादी ढांचे के घटकों को विकसित करने और/या चयन करने और संयोजित करने का प्रस्ताव करता है। आर्किटेक्ट की अनुपस्थिति में, दो आर्किटेक्चर को भ्रमित करने की दुर्भाग्यपूर्ण प्रवृत्ति होती है, क्योंकि इंजीनियर हार्डवेयर के संदर्भ में सोचता है, लेकिन उपयोगकर्ता लोगों को बिंदु ए से बिंदु बी तक लाने की समस्या को हल करने के संदर्भ में सोच सकता है। उचित मात्रा में समय और ऊर्जा के उचित व्यय के साथ, या ग्राहकों और कर्मचारियों को आवश्यक जानकारी प्राप्त करने में। एक हार्डवेयर आर्किटेक्ट से अपेक्षा की जाती है कि वह उपयोगकर्ता की दुनिया के आर्किटेक्चर और (सभी संभावित रूप से उपयोगी) हार्डवेयर इंजीनियरिंग आर्किटेक्चर दोनों के ज्ञान को संयोजित करे। पूर्व उपयोगकर्ता के साथ एक संयुक्त गतिविधि है; उत्तरार्द्ध इंजीनियरों के साथ एक संयुक्त गतिविधि है। उत्पाद उपयोगकर्ता की आवश्यकताओं को प्रतिबिंबित करने वाली उच्च स्तरीय आवश्यकताओं का एक सेट है जिसका उपयोग इंजीनियरों द्वारा हार्डवेयर सिस्टम डिज़ाइन आवश्यकताओं को विकसित करने के लिए किया जा सकता है।

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

लागत-लाभ विश्लेषण

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

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

विभाजन और परतीकरण

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

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

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

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

हार्डवेयर आर्किटेक्चर को प्रत्येक परत पर पर्याप्त रूप से सरल बनाए रखना महत्वपूर्ण है ताकि यह एक दिमाग के लिए समझ में आ सके। जैसे-जैसे परतें चढ़ती जाती हैं, निचली परतों पर संपूर्ण सिस्टम ऊपरी परतों पर सरल घटक बन जाते हैं, और उच्चतम परतों पर पूरी तरह से गायब हो सकते हैं।

स्वीकृति परीक्षण

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

उपयोगकर्ताओं और इंजीनियरों के साथ अच्छा संचार

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

लोग

यह भी देखें

संदर्भ