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