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