शीर्ष 50 सॉफ्टवेयर इंजीनियरिंग साक्षात्कार प्रश्न और उत्तर

Anonim

डाउनलोड पीडीऍफ़

1) सॉफ्टवेयर की महत्वपूर्ण श्रेणियां क्या हैं?

  • सिस्टम सॉफ्ट्वेयर
  • अनुप्रयोग प्रक्रिया सामग्री
  • उपकरणों के नियंत्रण के लिए सॉफ्टवेयर
  • वेब अनुप्रयोग
  • आर्टिफिशियल इंटेलिजेंस सॉफ्टवेयर
  • वैज्ञानिक सॉफ्टवेयर।

2) कंप्यूटर प्रोग्राम और कंप्यूटर सॉफ्टवेयर के बीच मुख्य अंतर क्या है?

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

3) सॉफ्टवेयर री-इंजीनियरिंग क्या है?

यह सॉफ्टवेयर विकास की एक प्रक्रिया है जो एक सॉफ्टवेयर सिस्टम की स्थिरता को बेहतर बनाने के लिए किया जाता है।

4) संक्षेप में सॉफ्टवेयर विकास प्रक्रिया का वर्णन करें:

सॉफ्टवेयर विकास एक जीवन चक्र है जो निम्नलिखित चरणों से बना है:

  • आवश्यकता विश्लेषण
  • विनिर्देश
  • सॉफ़्टवेयर वास्तुशिल्प
  • कार्यान्वयन
  • परिक्षण
  • प्रलेखन
  • प्रशिक्षण और समर्थन
  • रखरखाव

5) एसडीएलसी मॉडल क्या उपलब्ध हैं?

झरना मॉडल, सर्पिल मॉडल, बिग-बैग मॉडल, Iterative मॉडल और V- मॉडल प्रसिद्ध एसडीएलसी मॉडल में से कुछ हैं।

6) सत्यापन और सत्यापन क्या है?

सत्यापन:

सत्यापन एक शब्द है जो गतिविधियों के सेट को संदर्भित करता है जो यह सुनिश्चित करता है कि सॉफ्टवेयर एक विशिष्ट फ़ंक्शन को लागू करता है।

मान्यता:

यह गतिविधियों के सेट को संदर्भित करता है जो यह सुनिश्चित करता है कि सॉफ्टवेयर ग्राहकों की आवश्यकता के अनुसार बनाया गया है।

7) सॉफ्टवेयर डेवलपमेंट प्रक्रिया में डीबगिंग का क्या अर्थ है?

डीबगिंग वह प्रक्रिया है जिसके परिणामस्वरूप त्रुटि को दूर किया जाता है। यह सफल परीक्षण का बहुत महत्वपूर्ण हिस्सा है।

8) आप यह कैसे सुनिश्चित कर सकते हैं कि आपका कोड सुरक्षित और तेज दोनों है?

सॉफ़्टवेयर में, विकास सुरक्षा हमेशा पहले होती है। इसलिए अगर कार्यक्रम का क्रियान्वयन धीमा है, तो मैं इसके समय की जटिलता के कारणों की पहचान करने की कोशिश करूंगा।

9) दो उपकरणों का नाम बताइए जो सॉफ्टवेयर आवश्यकताओं का ट्रैक रखने के लिए उपयोग किए जाते हैं?

आवश्यकताओं का ट्रैक रखने के कई तरीके हैं।

दो आमतौर पर इस्तेमाल किया जाता है:

  • सभी आवश्यकताओं को सूचीबद्ध करने के लिए एक आवश्यकताओं विनिर्देशों दस्तावेज़ बनाएँ।
  • आवश्यकता, प्रकार, निर्भरता, प्राथमिकता, आदि के नीचे एक एक्सेल शीट बनाएं।

10) स्टब्स, मॉक के बीच मुख्य अंतर क्या है?

स्टब एक इंटरफ़ेस का न्यूनतम कार्यान्वयन है जो आमतौर पर हार्डकोडेड डेटा देता है जबकि नकली आमतौर पर उम्मीदों के खिलाफ आउटपुट की पुष्टि करता है। उन उम्मीदों को परीक्षण में निर्धारित किया गया है।

11) प्रोग्रामिंग एल्गोरिदम लिखना आपको किस भाषा में पसंद है?

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

१२) कंप्यूटर सॉफ्टवेयर क्या है?

कंप्यूटर सॉफ्टवेयर एक पैकेज है जिसमें सॉफ्टवेयर प्रोग्राम, इसके प्रलेखन और सॉफ्टवेयर का उपयोग करने के बारे में उपयोगकर्ता गाइड शामिल हैं।

13) आपके अनुसार कौन सा SDLC मॉडल सबसे अच्छा है?

ऐसी कोई रैंकिंग नहीं है, जैसा कि विकास प्रक्रिया की आवश्यकता के अनुसार SDLC मॉडल को अपनाया जाता है। यह सॉफ़्टवेयर-से-सॉफ़्टवेयर भिन्न हो सकता है।

14) सॉफ्टवेयर प्रोजेक्ट मैनेजर कौन है? उसकी भूमिका क्या है?

एक सॉफ्टवेयर परियोजना प्रबंधक एक व्यक्ति है जो सॉफ्टवेयर विकास परियोजना के प्रबंधन के लिए जिम्मेदार है।

प्रोजेक्ट मैनेजर प्रोजेक्ट प्लानिंग कर रहा है, प्रगति, संचार की निगरानी कर रहा है। वह या वह समय, लागत और गुणवत्ता की कमी के भीतर परियोजना को वितरित करने के लिए जोखिम और संसाधनों का प्रबंधन करता है।

15) सॉफ्टवेयर स्कोप से क्या अभिप्राय है?

सॉफ्टवेयर गुंजाइश एक अच्छी तरह से परिभाषित सीमा है। इसमें सभी प्रकार की गतिविधियां शामिल हैं जो सॉफ्टवेयर उत्पाद को विकसित करने और वितरित करने के लिए की जाती हैं।

सॉफ्टवेयर का दायरा सॉफ्टवेयर के एक भाग के रूप में वितरित की जाने वाली सभी क्रियाओं और कलाकृतियों को परिभाषित करता है। गुंजाइश यह भी पहचानती है कि उत्पाद क्या करेगा? प्रोजेक्ट का हिस्सा क्या नहीं है? प्रोजेक्ट आकलन क्या है?

यह प्रक्रिया सॉफ्टवेयर उत्पाद के विभिन्न पहलुओं का अनुमान लगाने में सहायक है। यह अनुमान या तो विशेषज्ञों से परामर्श करके या पूर्व-निर्धारित सूत्रों का उपयोग करके तय किया जा सकता है।

16) सॉफ्टवेयर उत्पाद का आकार कैसे पता करें?

सॉफ्टवेयर उत्पाद के आकार की गणना दो तरीकों का उपयोग करके की जा सकती है

  • वितरित कोड की पंक्तियों की गिनती
  • वितरित फंक्शन पॉइंट्स की गिनती

17) फंक्शन पॉइंट क्या हैं?

फंक्शन पॉइंट वे विशेषताएं हैं जो सॉफ़्टवेयर उत्पाद द्वारा प्रदान की जाती हैं। इसे सॉफ्टवेयर आकार के लिए सबसे महत्वपूर्ण माप माना जाता है।

18) सॉफ्टवेयर प्रोजेक्ट आकलन तकनीक क्या उपलब्ध हैं?

सबसे व्यापक रूप से इस्तेमाल की जाने वाली अनुमान तकनीकें हैं:

  • अपघटन तकनीक
  • अनुभवजन्य तकनीक

19) सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन क्या है?

सॉफ़्टवेयर कॉन्फ़िगरेशन प्रबंधन सॉफ़्टवेयर में होने वाले परिवर्तनों को ट्रैक करने और नियंत्रित करने की एक प्रक्रिया है।

परिवर्तन नियंत्रण एक ऐसा कार्य है जो यह सुनिश्चित करता है कि सॉफ्टवेयर सिस्टम में किए गए सभी परिवर्तन सुसंगत हैं और संगठनात्मक नियमों और विनियमों का उपयोग करके बनाए गए हैं।

20) आप परियोजना के निष्पादन को कैसे माप सकते हैं?

हम एक्टिविटी मॉनिटरिंग, स्टेटस रिपोर्ट्स, और माइलस्टोन चेकलिस्ट्स का उपयोग करके प्रोजेक्ट निष्पादन को माप सकते हैं।

21) मुझे कुछ प्रोजेक्ट मैनेजमेंट टूल्स के बारे में बताएं।

सॉफ्टवेयर परियोजना की आवश्यकता के अनुसार कई प्रकार के प्रबंधन उपकरण उपयोग किए जाते हैं। उनमें से कुछ पर्ट चार्ट, गैंट चार्ट, रिसोर्स हिस्टोग्राम, स्टेटस रिपोर्ट आदि हैं।

22) सॉफ्टवेयर आवश्यकताएँ क्या हैं?

सॉफ़्टवेयर आवश्यकताएँ प्रस्तावित सॉफ़्टवेयर सिस्टम का कार्यात्मक विवरण हैं। इसे लक्ष्य प्रणाली, इसकी कार्यक्षमताओं और विशेषताओं का विवरण माना जाता है।

२३) व्यवहार्यता अध्ययन क्या है?

यह पता लगाने का एक उपाय है कि सॉफ्टवेयर परियोजना विकास संगठन के लिए कितना व्यावहारिक और लाभदायक होगा। सॉफ्टवेयर विश्लेषक परियोजना की आर्थिक, तकनीकी और परिचालन व्यवहार्यता को जानने के लिए एक अध्ययन आयोजित करता है।

  1. आर्थिक: इसमें प्रशिक्षण की लागत, अतिरिक्त और उपकरण की लागत और परियोजना की लागत और लाभों का समग्र अनुमान शामिल है।

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

  3. परिचालन: यहां विश्लेषक को यह आकलन करने की आवश्यकता है कि संगठन परियोजना की मांग के अनुसार किए गए परिवर्तनों को आसानी से समायोजित करने में सक्षम होगा। क्या समस्या अनुमानित लागत पर हल करने लायक है?

यह सब अध्ययन करने के बाद, अंतिम व्यवहार्यता रिपोर्ट बनाई जाती है।

24) कार्यात्मक और गैर-कार्यात्मक आवश्यकताएं क्या हैं?

कार्यात्मक आवश्यकताएं कार्यात्मक विशेषताएं हैं जो प्रस्तावित सॉफ़्टवेयर उत्पाद से उपयोगकर्ताओं द्वारा अपेक्षित हैं।

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

25) सॉफ्टवेयर मीट्रिक क्या है?

सॉफ्टवेयर मेट्रिक्स सॉफ्टवेयर प्रक्रिया के विभिन्न पहलुओं के लिए उपाय प्रस्तुत करता है जिन्हें निम्न में विभाजित किया गया है:

  1. आवश्यकता मीट्रिक: लंबाई की आवश्यकताएं, पूर्णता
  2. उत्पाद मेट्रिक्स: कोडिंग लाइन्स, ऑब्जेक्ट-ओरिएंटेड मेट्रिक्स, डिज़ाइन और टेस्ट मेट्रिक्स की संख्या।

२६) न्यूनीकरण क्या है?

मॉडर्नाइजेशन एक ऐसी तकनीक है, जिसका इस्तेमाल सॉफ्टवेयर सिस्टम को विभिन्न डिस्क्रिट मॉड्यूल में विभाजित करने के लिए किया जाता है। यह स्वतंत्र रूप से कार्यों को करने की उम्मीद है।

27) सामंजस्य क्या है?

सामंजस्य एक ऐसा उपाय है जो मॉड्यूल के तत्वों के बीच अंतर-निर्भरता को परिभाषित करता है।

28) कुछ सॉफ्टवेयर विश्लेषण और डिजाइन उपकरण Mentions?

सबसे महत्वपूर्ण सॉफ्टवेयर विश्लेषण और डिजाइनिंग उपकरण में से कुछ हैं:

  • डेटा प्रवाह आरेख
  • संरचित चार्ट
  • संरचित अंग्रेजी
  • डेटा शब्दकोश
  • पदानुक्रमित इनपुट प्रक्रिया आउटपुट आरेख
  • इकाई संबंध चित्र और निर्णय तालिका

29) लेवल -0 डेटा फ्लो आरेख से क्या अभिप्राय है?

उच्चतम अमूर्त स्तर को DFD का स्तर 0 कहा जाता है। इसे संदर्भ स्तर DFD भी कहा जाता है। यह पूरी सूचना प्रणाली को एक चित्र के रूप में चित्रित करता है।

30) संरचित अंग्रेजी और छद्म कोड के बीच मुख्य अंतर क्या है?

संरचित अंग्रेजी मूल अंग्रेजी भाषा है। इसका उपयोग प्रोग्राम मॉड्यूल की संरचना लिखने के लिए किया जाता है। यह प्रोग्रामिंग लैंग्वेज कीवर्ड का उपयोग करता है। दूसरी ओर, छद्म कोड किसी भी विशिष्ट भाषा के वाक्य रचना के बिना प्रोग्रामिंग भाषा की तरह है।

31) संरचित डिजाइन क्या है?

संरचित डिजाइन समस्या की एक अवधारणा है। इसे समाधान डिजाइन भी कहा जाता है और जो 'विभाजन और जीत' की रणनीति पर आधारित है।

32) कार्यात्मक प्रोग्रामिंग क्या है?

यह एक प्रोग्रामिंग विधि है, जो गणितीय फ़ंक्शन की अवधारणाओं का उपयोग करती है। यह गणितीय कार्यों के रूप में संगणना का साधन प्रदान करता है, जो कार्यक्रम की स्थिति के बावजूद परिणाम उत्पन्न करता है।

33) गुणवत्ता आश्वासन बनाम गुणवत्ता नियंत्रण क्या है?

गुणवत्ता आश्वासन जाँचता है कि सॉफ्टवेयर को विकसित करते समय उचित प्रक्रिया का पालन किया जाता है जबकि गुणवत्ता नियंत्रण सॉफ्टवेयर उत्पाद की गुणवत्ता बनाए रखने से संबंधित है।

34) CASE उपकरण क्या हैं?

CASE का मतलब है कंप्यूटर एडेड सॉफ्टवेयर इंजीनियरिंग। वे स्वचालित सॉफ़्टवेयर एप्लिकेशन प्रोग्राम्स के सेट हैं, जिनका उपयोग एसडीएलसी गतिविधियों को समर्थन, बढ़ाने और मजबूत करने के लिए किया जाता है।

35) सॉफ्टवेयर में आने से पहले कौन सा प्रोसेस मॉडल दोष को दूर करता है?

सॉफ्टवेयर में गड़बड़ी आने से पहले क्लीन रूम सॉफ्टवेयर इंजीनियरिंग पद्धति दोषों को दूर करती है।

36) इस समस्या को हल करें

एक अंधेरे कमरे में दराज में दो प्रकार के बीस अलग-अलग मोज़े हैं। आपको एक जोड़ी बनाने के लिए यह सुनिश्चित करने के लिए आपको कितनी न्यूनतम मोजे की आवश्यकता होगी? "

यदि आप तीन मोज़े उठाते हैं, तो वे एक ही प्रकार के हो सकते हैं, भले ही अंतर 50% हो। ऑड्स कभी भी एक समान वास्तविकता नहीं है। इसलिए, कम से कम 11 संख्या के झटके लेने के लिए 'आपके पास एक मिलान जोड़ी है' सुनिश्चित करने का एकमात्र तरीका है।

37) आप यह कैसे सुनिश्चित कर सकते हैं कि आपका लिखित कोड विभिन्न प्रकार की त्रुटि स्थिति को संभाल सकता है?

मैं परीक्षण लिख सकता हूं जो अपेक्षित त्रुटि स्थितियों को परिभाषित करता है।

38) एक थ्रेड और एक प्रक्रिया के बीच अंतर बताइए?

एक प्रक्रिया कंप्यूटर प्रोग्राम का उदाहरण है। एकल प्रोग्राम में एक या अधिक थ्रेड होना संभव है।

39) मुझे एक EXE और DLL के बीच का अंतर बताओ?

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

40) मजबूत-टाइपिंग और कमजोर-टाइपिंग क्या है? कौन सा पसंद किया जाता है? क्यों?

मजबूत टाइपिंग संकलन समय पर चर के प्रकारों की जांच करती है। दूसरी ओर, कमजोर टाइपिंग रन-टाइम पर सिस्टम के प्रकारों की जांच करती है। उनमें से, मजबूत टाइपिंग को हमेशा पसंद किया जाता है क्योंकि यह बग को कम करता है।

41) इंटरफ़ेस-उन्मुख, वस्तु-उन्मुख और पहलू-उन्मुख प्रोग्रामिंग के बीच अंतर का वर्णन करें।

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

42) कैच (अपवाद) का उपयोग करना हमेशा एक बुरा विचार क्यों है?

यह एक बुरा विचार है क्योंकि:

  • चूंकि कोई चर परिभाषित नहीं है, इसलिए अपवाद को पढ़ना संभव नहीं है
  • जब आप अपवाद प्रकार जानते हैं तो अपवाद का उपयोग करना अच्छा है।

43) HTTP हेडर के माध्यम से किस प्रकार का डेटा पास किया जाता है?

स्क्रिप्ट और मेटाडेटा HTTP हेडर से होकर गुजरा।

44) आप आवश्यकताओं को कैसे प्राथमिकता देते हैं?

सबसे पहले, आपको डेटा संरचना का मूल्यांकन करके एक सिस्टम डिज़ाइन करने की आवश्यकता है। फिर आपको इसे समर्थन करने के लिए आवश्यक कोड संरचना पर आगे बढ़ना चाहिए।

45) मुझे वस्तु-उन्मुख और घटक-आधारित डिज़ाइन के बीच अंतर दें?

घटक-आधारित डिज़ाइन में ऑब्जेक्ट-ओरिएंटेड डिज़ाइन को कुछ हद तक आसानी से समझाया जा सकता है।

46) आप बहुरूपता का उपयोग कब करते हैं?

बहुरूपता का उपयोग तब किया जाता है जब वर्ग की विरासत के दौरान ओवरराइड कार्यक्षमता की आवश्यकता होती है। यह साझा वर्गों और साझा अनुबंधों के बारे में है।

47) स्टैक और कतार के बीच अंतर क्या है?

  • कतार हमेशा फर्स्ट इन, फर्स्ट आउट होती है
  • स्टैक हमेशा लास्ट इन, फर्स्ट आउट होता है

48) कोड की गुणवत्ता के परीक्षण के लिए क्या आवश्यक है?

मेरे अनुसार, कोड की गुणवत्ता के परीक्षण के लिए इकाई परीक्षण रूपरेखा आवश्यक है।

49) क्या आपको लगता है कि सॉफ्टवेयर का रखरखाव महंगा है?

मेरे अनुसार, यदि हम समुचित विकास प्रक्रिया का उपयोग कर रहे हैं, तो सॉफ्टवेयर का रखरखाव कभी महंगा नहीं होगा।

50) मुझे टैग और शाखाओं के बीच अंतर दें?

टैग वर्जनिंग रिलीज़ के लिए हैं जो इस तरह के काम करने के लिए अस्थायी होल्डिंग प्लेस हैं। हालाँकि, शाखाओं को हटा दिया जाता है जब उन परिवर्तनों को ट्रंक में विलय कर दिया जाता है।

५१) एक संरक्षित वर्ग-स्तरीय चर कहाँ उपलब्ध है?

संरक्षित वर्ग-स्तरीय चर बेस क्लास से व्युत्पन्न किसी भी उप-वर्ग के लिए उपलब्ध हैं।

52) क्या एक सिंगल स्टेटमेंट स्टेटमेंट के लिए कई कैच ब्लॉक निष्पादित करना संभव है?

हाँ। एकल प्रयास विवरण के लिए एकाधिक कैच ब्लॉक निष्पादित किए जा सकते हैं।

53) आपको कक्षा को सार घोषित करने की आवश्यकता कब है?

हमें निम्नलिखित स्थितियों में एक वर्ग को अमूर्त घोषित करना चाहिए:

  1. जब वर्ग एक अमूर्त वर्ग से विरासत में मिला है, लेकिन सभी अमूर्त तरीकों को ओवरराइड नहीं किया गया है।
  2. मामले में जब कक्षा में न्यूनतम एक विधि को एक सार के रूप में घोषित किया जाता है।

५४) एक एल्गोरिथ्म विकसित करें जो आपके वर्तमान स्थान और उस क्षेत्र के एटीएम स्थानों की सूची का उत्पादन करे। आप अपने स्थान पर निकटतम K ATMs प्राप्त करें।

एक विधि getDistance (a, b) बनाएँ जो a और b के बीच की दूरी की गणना करता है।

कोड:

import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueue pq = new PriorityQueue((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap();//Map of ATM names and their distance co-ordinatesnallATMLocs.put("atm1",45.0);nallATMLocs.put("atm2",78.0);nallATMLocs.put("atm3",54.0);nallATMLocs.put("atm4",64.0);nallATMLocs.put("atm5",35.0);nallATMLocs.put("atm6",42.0);nallATMLocs.put("atm7",57.0);nallATMLocs.put("atm7",1.00);nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){pq.add(pqe.getLocation(curr_loc,dist));}else{if( pq.peek() > pqe.getLocation(curr_loc,dist)){pq.poll();pq.add(pqe.getLocation(curr_loc,dist));}}});pq.forEach(atmLoc -> System.out.println(atmLoc));}private double getLocation(double curr,double atm){return atm - curr;}}