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