এটি সঠিকভাবে ব্যাখ্যা করার জন্য, আমাদের একটি ছোট ইতিহাস পাঠের প্রয়োজন। সফটওয়্যার ইঞ্জিনিয়ারিংয়ের প্রথম দিনগুলিতে, প্রায়শই ব্যবহৃত উপমা বাড়ি তৈরি করছিল। একজন আর্কিটেক্ট এবং স্ট্রাকচারাল ইঞ্জিনিয়ার গ্রাহকের সাথে পরিকল্পনাগুলি নিয়ে আলোচনা করেন এবং একটি নকশা নিয়ে আসেন। তারপরে নির্মাতারা আসল বাড়িটি তৈরি করতে সেই নকশাটি অনুসরণ করে। লিখিত কোডকে আসল বাড়ি তৈরির সমতুল্য হিসাবে দেখা হত। সুতরাং, বিল্ডটি সংঘটিত হওয়ার আগে সামনের নকশাটির একটি বোধ করা প্রয়োজন ছিল। বিভিন্ন গ্রাফিকাল ডিজাইনের সরঞ্জাম তৈরি করা হয়েছিল, যার মধ্যে ইউএমএল অন্যতম।
মূলত ইউএমএলের সাথে ধারণাটি ছিল যে কেউ ইউএমএল সহ একটি সিস্টেমকে পুরোপুরি ডিজাইন করবে, তারপরে কোডটি সেই নকশাকে অনুবাদ করার জন্য কোডারদের কাছে হস্তান্তর করবে। বাস্তবে, এটি ঠিক কাজ করে না, এবং বছরের পর বছর ধরে প্রোগ্রামারগুলিকে "ডিজাইনার" না করে "প্রয়োগকারী" হিসাবে দেখা যায়, প্রকল্পগুলি দেরী হয়, ডিজাইনগুলি ক্রমাগত পরিবর্তন হওয়ার পরে তাদের সম্পূর্ণ হওয়ার কথা ছিল ইত্যাদি etc.
কারণটি সহজ। কোডিং হ'ল ডিজাইন । বাড়ির সাদৃশ্যগুলির সাথে কোডটি হ'ল স্থপতিদের অঙ্কন। সংকলক হ'ল নির্মাতা যিনি সেই ডিজাইনগুলি নেন এবং সেগুলি থেকে একটি প্রোগ্রাম তৈরি করেন। এই উপলব্ধিটি তারপরে চতুর কৌশল, টিডিডি ইত্যাদির জন্ম দেয়: সেই কোড ডিজাইনের মান উন্নত করতে সহায়তা করার সরঞ্জামগুলি।
কোনও স্থপতি যেমন তার এবং তার দলটিকে সামগ্রিক নকশাকে কল্পনা করতে সহায়তা করার জন্য প্রাথমিক স্কেচ তৈরি করতে পারে, তেমনি কোনও বিকাশকারী প্রয়োজনীয় নকশাকে কল্পনা করতে সহায়তা করতে ইউএমএল বা অন্যান্য সরঞ্জাম ব্যবহার করতে পারে। এই স্কেচগুলি অন্ধভাবে অনুসরণ করা হয় না, তেমনি ইউএমএলকে অন্ধভাবে অনুসরণ করা উচিত নয়। কোড ডিজাইনের চৌকস পুনরাবৃত্তি এবং টিডিডি ব্যবহার করে বিকশিত হওয়া উচিত। অনুরূপভাবে, কোনও স্থপতি যেমন তার এবং তার দলটিকে অঙ্কনগুলি কল্পনা করতে সহায়তা করার জন্য ঘরের একটি মডেল তৈরি করতে পারে, তাই ইউএমএল কোড কাঠামোটি ভিজ্যুয়ালাইজ করতে সহায়তা করতে পারে।
চাচা বব যেমন বলেছেন, আপনি ইউএমএলকে বৈধতা দিতে পারবেন না, আপনি কেবল কোডটি বৈধ করতে পারবেন। সুতরাং কোডটি প্রাইম ডিজাইনের ডকুমেন্টেশন এবং ইউএমএল, যদি ব্যবহৃত হয় তবে এটি কেবলমাত্র মাধ্যমিক ডকুমেন্টেশন।