सॉफ्टवेयर आर्किटेक्चर बनाम सिस्टम आर्किटेक्चर बनाम क्लास डायग्राम?


11

मैं निम्नलिखित शब्दों के बारे में काफी उलझन में हूँ:

सॉफ़्टवेयर वास्तुशिल्प

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

सिस्टम आर्किटेक्चर

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

वर्ग आरेख

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

यदि मैं इन विवरणों को पढ़ता हूं तो ये सभी अनुप्रयोग के विभिन्न मॉड्यूलों के बीच बातचीत का वर्णन करते हैं। हालाँकि इनमे क्या अंतर हैं?
इन शर्तों की तुलना करने के लिए मुझे क्या लगता है / करने की कोशिश की :

  • क्लास आरेख सिस्टम आर्किटेक्चर का एक रूप नहीं हैं, क्योंकि उपरोक्त विवरण ( structure, behavior, and more views of a system) का अर्थ है कि कोई कार्यान्वयन विवरण किसी आर्किटेक्चर में मौजूद नहीं हैं, जबकि क्लास डायग्राम कार्यान्वयन का वर्णन करते हैं और संभवतः आर्किटेक्चर के बजाय डिजाइन की दिशा में अधिक हैं?
  • मुझे लगता है कि सिस्टम आर्किटेक्चर एक आर्किटेक्चर है जिसमें एक्सटर्नल इंटरैक्शन (जैसे डेटाबेस) भी शामिल है जबकि सॉफ्टवेयर आर्किटेक्चर एप्लीकेशन पर ही केंद्रित है?

1
शायद क्लास डायग्राम सॉफ्टवेयर आर्किटेक्चर गतिविधि का एक आउटपुट है, इसी तरह से एक बिल्डिंग का ब्लूप्रिंट बिल्डिंग के आर्किटेक्ट का आउटपुट होता है ...
FrustratedWithFormsDesigner

जवाबों:


7

सिस्टम आर्किटेक्चर सिस्टम के घटकों का वर्णन करता है। उदाहरण के लिए आपके पास एक ऑर्डर एंट्री सिस्टम हो सकता है जिसमें निम्न शामिल हैं:

वेब फ्रंट एंड, बिजनेस लेयर सर्विस और डेटा स्टोर।

तो, आपको यह दिखाते हुए एक उच्च स्तरीय चित्र बनाना चाहिए।

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

आमतौर पर एक अधिक विस्तृत आरेख (एस) दिखा रहा है कि कैसे घटक का निर्माण किया जाएगा।

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

यदि विशेष घटक बड़ा और जटिल है, तो इनमें से कई होने चाहिए।


2

कुछ अतिरिक्त बिंदु:

  • सिस्टम व्यापक शब्द है और आमतौर पर उच्चतम स्तर है, कम से कम विस्तृत है।
  • सिस्टम के भाग को सॉफ्टवेयर के रूप में वर्गीकृत किया जा सकता है।
  • सॉफ्टवेयर का हिस्सा वर्ग आरेखों का उपयोग करके वर्णित किया जा सकता है।

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


0

वर्ग आरेख बाकी दो शब्दों से काफी अलग हैं - वे दिखाते हैं कि कौन सी कक्षाएं अन्य वर्गों को प्रदान करती हैं और वे एक-दूसरे के साथ कैसे बातचीत करते हैं। हालाँकि, शब्द 'सिस्टम आर्किटेक्चर' और 'सॉफ्टवेयर आर्किटेक्चर' भ्रम पैदा करते हैं और इसके लिए और स्पष्टीकरण की आवश्यकता होती है।

यह महसूस करना महत्वपूर्ण है कि एक 'सिस्टम' न केवल सॉफ्टवेयर घटकों बल्कि हार्डवेयर घटकों जैसे अन्य घटकों को भी संदर्भित करता है। यदि किसी सिस्टम में केवल एक सॉफ्टवेयर सिस्टम होता है, तो दोनों शर्तों में कोई अंतर नहीं है। हालांकि, जाहिर है, अगर एक प्रणाली में अन्य गैर-सॉफ़्टवेयर घटक शामिल हैं, तो सॉफ़्टवेयर आर्किटेक्चर सिस्टम के सिस्टम आर्किटेक्चर की तुलना में काफी अलग होगा।


क्या सिस्टम आर्किटेक्चर में भी GUI मॉड्यूल जैसा कुछ होना चाहिए? @ तुषार
किंगबूमि

हां, यह हो सकता है और इसके लिए सॉफ्टवेयर घटक की आवश्यकता नहीं है। @ रिकबेलू
तुषार

लेकिन आपको उपयोगकर्ता के इनपुट को स्वीकार करने और उपयोगकर्ता को कुछ प्रदर्शित करने के लिए सॉफ़्टवेयर में एक वर्ग की आवश्यकता होगी? तो यह भी एक sofware घटक होना चाहिए?
किंगबूमि

हां और नहीं। किसी सॉफ्टवेयर सिस्टम के सभी उपभोक्ता इंसान नहीं हैं :)
तुषार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.