ফাইনাল ইয়ার প্রজেক্ট এবং প্রজেক্ট বুক কীভাবে করব ? Specially for NU CSE students
সহজ ভাবে যদি বলি অনেকেই কনফিউশনে থাকে “প্রজেক্ট” কি ? মূলত ধরে নিন আপনাকে একটা সফটওয়্যার তৈরী করতে হবে এবং সেটা করতে আপনাকে সফটওয়্যার ইঞ্জিনিয়ারিং এর কিছু স্ট্যান্ডার্ড নিয়ম ফলো করতে হবে। পাশাপাশি আপনাকে একটা বই লিখতে হবে যেখানে আপনি নিয়ম অনুযায়ী কাজ গুলো কীভাবে করেছেন সেটা সাজিয়ে লিখবেন যাকে “প্রজেক্ট বুক” বলে! এছাড়াও প্রজেক্টের প্রেজেন্টেশন এবং ভাইবা আপনাকে/আপনার টীমকে দিতে হবে।
এখন কথা হলো হার্ডওয়্যার প্রজেক্ট যে অনেকে করে সেটা ? হ্যা, ধরুন আপনি একটা তাপমাত্রা মাপার সেন্সর দিয়ে রুম টেম্পারেচার একটা সফটওয়্যার তৈরী করলেন, এক্ষেত্রে আপনাকে হার্ডওয়্যার এর সাথে আপনার সফটওয়্যার কিংবা এপ্স (টিপিক্যালি এপ্স মোবাইলের ক্ষেত্রে অনেকেই প্রিফার করে) এর কানেকশন তো থাকবেই। তাহলে সেটা শুধু সফটওয়্যার বেইজড হোক কিংবা হার্ডওয়্যার + সফটওয়্যার আপনি ফাইনাল ইয়ারে আপনার আইডিয়া অনুযায়ী একটা ডেভেলপ করবেন। সাথে আপনাকে প্রজেক্ট বুক জমা দিতে হবে।
সাধারনত ফাইনাল ইয়ার প্রজেক্ট National University তে ৭ম এবং ৮ম সেমিস্টারে দুইভাগে ভাগ করে দেয়া হয়। দুটো সেমিস্টারে একটা প্রজেক্টেরই কাজগুলো দুটো ভাগে ভাগ হয় যেমনঃ
১) ডিজাইন পার্টঃ বাড়ি বানানোর আগে যেমন নকশা করা হয়, তেমনি আপনার প্রজেক্ট শুরু করার আগে আপনাকে কিছু কাজ করতে হয়। যেমনঃ প্রথমেই আপনাকে কি কি ফিচার থাকবে, মার্কেটে এমন অন্য কিছু থাকলে সেটার সাথে কম্পেয়ার করলে কেমন হয়, কি কি জিনিস আপনার দরকার এটা বানাতে, বেসিক্যালি প্লানিং থেকে শুরু করে আপনার প্রজেক্টের প্ল্যানিং তুলে ধরবেন।
২) ডেভেলপমেন্ট পার্টঃ যেহেতু আপনার এনালাইসিস, প্লানিং, ডিজাইন এর কাজ শেষ এখন আপনি সরাসরি প্রজেক্ট তৈরিতে মনোনিবেশ করবেন। সহজ ভাবে কোডিং, টেস্টিং অথবা বাস্তব রুপ দেয়ার কাজ এই অংশে হয়।
এখন দুটো ভাগের বিস্তারিত আলোচিনা করবঃ
সাধারনত ৭ম সেমিস্টারে আপনাকে প্রথমেই নিম্নের কাজগুলো করতে হবেঃ
১) প্রজেক্ট টীম মেম্বার সিলেক্ট করা
২) প্রজেক্ট আইডিয়া সাবমিট করা
৩) সাবমিট করা আইডিয়া এপ্রুভ হলে, ডিজাইন পার্ট শুরু করা।
ডিজাইন পার্টঃ
প্রজেক্ট বুকে এই পার্টে চ্যাপ্টারগুলো কেমন হতে পারে সেটা আলোচনা করলেও আপনারা অনেকেই বুঝতে পারবেন কি কি করা যেতে পারে।
Chapter 1: Introduction:
Motivation: কেন আপনি এই প্রজেক্ট আইডিয়াটি সিলেক্ট করলেন শর্টলি লিখবেন। আপনার প্রজেক্ট বর্তমানের কোন সমস্যার সমাধানে ভূমিকা রাখবে সেটাও বলতে পারেন।
Objectives: প্রজেক্টের উদ্দেশ্যগুলো পয়েন্ট আকারে লিখতে পারেন। আপনি কি কি করবেন। যেমনঃ একটা Restaurant Management System এর উদ্দেশ্য হতে পারে To Manage Inventory Easily, To Maintain Food Orders Online etc.
Reasons of Choosing this Project: আপনি এখনে বলতে পারেন যে মার্কেটের ডিমান্ড বিবেচনা করে আপনার কাছে এই প্রজেক্টটি চুজ করার অনেকগুলো কারণ রয়েছে আর সেটা অল্প শব্দে ব্যখ্যা করলেন।
Software Engineering Techniques & Methodologies Chosen: সাধারনত সফটওয়্যার ইঞ্জিনিয়ারিং এর ক্ষেত্রে অনেক ধরনের মেথডলোজি ব্যবহার করা হয়। SDLC (Software Development Life Cycle) ফলো করে আপনাকে কাজ করতে হবে। অনেক ধরনের মডেল থাকে। যেমনঃ Waterfall Model, Iterative Model etc আপনার প্রজেক্টের স্বার্থে যেটা যায় আপনাকে সেটা বলতে হবে। এবং কারণটা শর্টলি আলোচনা করবে। আর যেই মেথড ব্যবহার করবেন সেতার একটা ফ্লো চার্ট দিবেন।
Chapter 2: Background Analysis/Study:
Background: সাধারনত এই চ্যাপ্টারে আপনাকে কিছু হিস্টোরিক্যাল ডাটা দেখাতে হবে, কেন আপনি এই প্রজেক্ট করছে। এক্সিস্টিং প্রজেক্টগুলো কেমন ছিল, কত সালে প্রথম এই ধরনের কাজ শুরু হয় যদি তথ্য থাকে। Problems with the current system এবং Solution of the New System নিয়ে আলোচনা করতে হয়। এছাড়া Feasibility Study নিয়ে বিস্তারিত লিখতে হবে। মূলত ফেসিবিলিটি বলতে বুঝায় আদৌ কি আপনার এই প্রজেক্ট টেকনিক্যাল আর ফাইনানশিয়াল দিক দিয়ে করাটা উচিৎ হবে কিনা। পয়েন্ট আকারে আলাদা শিরোনামে দুই ধরনের ফেসিবিলিতি স্টাডি লিখলে ভালো হয়। তারপর SDLC গুরত্ব এবং লাইফসাইকেলগুলো ব্রিফ করতে হবে ডায়াগ্রাম/ ফ্লো চার্ট সহ।
Chapter 3: System Specification:
সহজ ভাবে বললে আপনার সফটওয়্যার এবং হার্ডওয়্যারের কি কি স্পেসিফিকেশন থাকতে পারে লিখতে হবে এবং যে যে উপকরণ দরকার সেগুলোর ছবি দিতে পারেন। যেমনঃ
Software Specifications: OS: Linux, Language: Php, Database: MySQL, Framework: Laravel etc.
Chapter 4: Technological Analysis:
এই চ্যাপ্টারে সাধারনত যে যে ল্যাঙ্গুয়েজ, ফ্রেমওয়ার্ক বা টেকনোলজি ব্যবহার করার সিদ্ধান্ত নিয়েছেন সেগুলোর Advantages & Disadvantages গুলো নিয়ে লিখতে হবে।
Chapter 5: Project Description:
প্রজেক্ট বুকের অন্যতম গুরত্বপূর্ণ অধায় এটা। এখানেই আপনার ডিজাইনের একচুয়াল কাজগুলো তুলে ধরবেন।
Problem Definition: যে প্রবলেমের সমাধান আপনার এই প্রজেক্ট দিয়ে হবে সেটা এখানে ব্রিফ ডিসকাস করতে হবে। এবং আপনার সিস্টেম ঠিক কোন সমস্যার সমাধান করবে সেটাও বলতে হবে।
Requirements Elicitation: মূলত রিকোয়ার্মেন্ট এনালাইসিস কেন করতে হবে, ইউজার থেকে প্রিসাইসলি সিস্টেমের রিকোয়ার্মেন্ট এনালাইসিস কেন করতে হবে এবং রিসার্চ কেন দরকার এইগুলা বলতে হবে।
Functional and Non-Functional requirements: প্রজেক্টের রিকোয়ার্মেন্ট কে দুইভাগে ভাগ করতে হবে। একটা ফাংশনাল আরেকটা নন ফাংশনাল। পয়েন্ট আকারে চাইলে উপস্থাপন করা যাবে। সাধারনত ফাংশনাল রিকোয়ার্মেন্ট হলো কি কি ফিচার নিয়ে সফটওয়্যারটা ডেলিভার করা হবে আর নন ফাংশনাল রিকোয়ার্মেন্ট হলো সফটওয়্যারটি কেমন আচরণ করবে, ইউজার এর এক্সপেক্টেশন যেমন সিকিউরড থাকা, ইন্টারফেস সুন্দর হবে ইত্যাদী।
UML Diagrams: Unified Modeling Language সাধারনত একটা সফটওয়ার কীভাবে কাজ করে, তার বিভিন্ন অংশগুলো কীভাবে ডিজাইন করা, একটার সাথে আরেকটার সম্পর্ক কেমন ইত্যাদী ভিজুয়ালাইজ করা যায়। অনেক ধরনের ডায়াগ্রামের মধ্যে নিম্নের ডায়াগ্রাম আপনার প্রজেক্ট এর দিতে হবে এবং সাথে কিছু বর্ননা দিতে হবে এই ডায়াগ্রামগুলো নিয়ে।
- USE Case Diagram
- Workflow Diagram
- Activity Diagram
- Data Flow Diagram (DFD LEVEL 0/CONTEXT LEVEL, DFD LEVEL 1 & DFD LEVEL 2)
- Entity Relationship Diagram
৭ম সেমিস্টারে এই পর্যন্তই আপনাকে করতে হবে। লাস্ট চ্যাপ্টারে ডিজাইন পার্ট নিয়ে Conclusion দিতে হবে। শেষ চ্যাপ্টারে আপনি একটি Summary এবং References দিবেন যেখানে আপনার রিসার্চ এবং ভবিষ্যত সম্ভাবনা নিয়ে সামারি লিখবেন এবং রিসার্চ, এনালাইসিস যে করলেন কি কি রিসোর্স ব্যবহার করেছেন সেটা পয়েন্ট আকারে দিতে হবে। হতে পারে কোন বই কিংবা ওয়েবসাইট। কত তারিখে প্রথম ব্যবহার শুরু করেছেন সেটাও লিখতে হবে।
First Defense of 7th Semester:
প্রেজেন্টেশন স্লাইডে প্রজেক্ট এর Objectives, Features, UML Diagrams etc দিতে হবে। আপনাকে ডায়াগ্রাম থেকে অনেক প্রশ্ন করতে পারে এবং এক্সপ্লেইন করতে বলবে। অবশেষে Viva তে প্রজেক্ট রিলেটড বিভিন্ন টেকনিক্যাল, নন টেকনিক্যাল প্রশ্ন করবে। আগামী সেমিস্টারে কিছু পরিবর্তন, পরিমার্জন করা লাগকে সেগুলো আপনাকে সাজেস্ট করবেন এক্সটার্নাল বা সুপারভাইজর।
========================================
ডেভেলপমেন্ট পার্টঃ
৮ম সেমিস্টারে আপনাকে কোডিং করা শুরু করতে হবে , হার্ডওর্যার থাকলে সেটাও ইমপ্লিমেন্ট করা শুরু করতে হবে। আর ৭ম সেমিস্টারে যেভাবে ডিজাইন করেছেন ডাটাবেজ, ফ্লো চার্ট সেগুলো ফলো করতে হবে। যদি কিছু মোডিফিকেশন দরকার হয় করবেন। ৮ম সেমিস্টার এর ফাইনাল ইয়ার প্রজেক্ট বুকে ৭ম সেমিস্টার এর আগের চ্যাপ্টারগুলো সহ নতুন চ্যাপ্টার সহ আপনাকে জমা দিতে হবে। এক্ষেত্রে কিছু চেঞ্জ আসলে করতে পারেন ডিজাইন পার্টের।
Chapter 6: Implementations:
এই চ্যাপ্টারে আপনার প্রজেক্টের স্ক্রিনশট দিতে হবে এবং পাশাপাশি প্রত্যেকটা স্ক্রিনশট/ছবির ক্যাপশন দিতে হবে। স্টেপ বাই স্টেপ সফটওয়্যার/হার্ডওয়্যার এর User Interface এর বর্ননা স্ক্রিনশট সহ দিতে হবে। কীভাবে ইউজ করতে হবে, আউটপুট কেমন ইত্যাদী।
Chapter 7: Testing:
কাজ করার সময় আমরা টেস্টিং করি তবে STLC (Software Testing Life Cycle) ফলো করে আপনাকে বিভিন্ন ধরনের টেস্টিং সম্পর্কে বিস্তারিত এখানে লিখতে হবে। যেমনঃ Alpha Testing , Beta Testing etc. এবং পাশাপাশি প্রত্যেকটা টেস্টিং এ আপনাকে কতজন এর মধ্যে টেস্ট করেছেন, কয়দিন করেছেন এবং আউটপুট কী এসেছে পয়েন্ট আকারে দিতে হবে।
Chapter 8: Conclusion:
এই চ্যাপ্টারে উপসংহারে আপনার এই প্রজেক্ট সম্পর্কে মতামত দিতে হবে। পাশাপাশি আলাদা সাব চ্যাপ্টারে লিমিটেশন্স লিখতে হবে। এরপর রেফারেন্স এ আপনাকে পয়েন্ট আকারে লিস্ট দিতে হবে কি কি রিসোর্স ইউজ করেছেন, সাথে ওয়েব লিংক বা বই এর নাম দিতে হবে এবং কত তারিখে প্রথম ব্যবহার শুরু করেছেন পাশে বলতে হবে। এরপরের সাব চ্যাপ্টারে Source Code দিতে হবে। সম্পূর্ণ প্রজেক্টের কোড দেয়া সম্ভব না হলেও মূল কিছু কোড দেয়া যেতে পারে। যেমনঃ মডেল বা ডাটাবেজ, কন্ট্রোলারা ইত্যাদীর কোড।
এবার আপনার যেদিন ডিফেন্স হবে, আপনাকে আপনার ইমপ্লিমেন্টেড প্রজেক্ট এর ডেমো দেখাতে হবে, ভাইবা হবে এবং প্রেজেন্টেশন দিতে হবে।
Final Project Defense:
ডিফেন্সে আপনাকে আপনার প্রজেক্ট এর ডেমো এক্সটারনাল, ইন্টারনাল ফ্যাকাল্টিদের দেখাতে হবে, প্রজেক্ট বুক অবশ্যই আপনাকে প্রিন্ট করতে হবে এবং সুপারভাইজর দিয়ে সাইন করাতে হবে। গ্রুপ এর ক্ষেত্রে সাধারনত কিছু বই দুইজনের নামে হয় আবার কিছু বই আলাদা আলদা টীম মেম্বার এর নিজের নামে হয়। কন্টেন্ট সেম তবে নাম এর ক্ষেত্রে তারতম্য হয়। যখন ডেমো দেখা হবে তখন প্রেজেন্টেশন দিতে হবে। আর এই প্রেজেন্টেশন স্লাইডে প্রজেক্ট এর Objectives, Features, UML Diagrams, Output, Limitations etc দিতে হবে। আপনাকে ডায়াগ্রাম থেকে অনেক প্রশ্ন করতে পারে এবং এক্সপ্লেইন করতে বলবে। অবশেষে Viva তে প্রজেক্ট রিলেটড বিভিন্ন টেকনিক্যাল, নন টেকনিক্যাল প্রশ্ন করবে।
আজকে এই পর্যন্তই আপনাদের মন্তব্য আমাকে জানান। আর যদি কোন কারেকশন থাকে তবে অবশ্যই আমাকে বলবেন। শেয়ার করে পাশে থাকুন।
ধন্যবাদন্তে,
মোঃ মাহমুদুল হক তপু
সফটওয়্যার ইঞ্জিনিয়ার, সচল লিমিটেড।
বিএসসি (অনার্স) ইন সিএসই, ডিআইআইটি, জাতীয় বিশ্ববিদ্যালয়।