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