চলুন সফটওয়্যার বানানোর যাত্রায় নামি - পর্ব ০১



আজকে আমরা সফটওয়্যার ইঞ্জিনিয়ারিং সাইকেলের পূর্ণাঙ্গ বাস্তবায়ন দেখার চেষ্টা করব একটি ছোট ওয়েব এপ্লিকেশন তৈরির মাধ্যমে । আজকের প্রোজেক্ট Todo Application যা আমরা তৈরী করব Django, HTML, Bootstrap, JavaScript ব্যবহার করে।

সফটওয়্যার ডেভলপমেন্ট লাইফ সাইকেলের প্রথম ধাপ সফটওয়্যার রিকুয়ারমেন্ট এনালাইসিস। এই ধাপে ধাপে ধাপে ক্লায়েন্টের সাথে আলোচনা করা হয় এবং তাদের কাছে প্রাপ্ত ফিডব্যাকগুলো লিপিবদ্ধ করা হয়। ক্লায়েন্টের ফিডব্যাকের উপর ভিত্তি করে ফাংশনাল এবং নন-ফাংশনাল রিকুয়ারমেন্টগুলো সাজানো হয়।

যেমনঃ এই প্রজেক্টে আমি নিজেই ক্লায়েন্ট , আমার চাহিদা হলো এই এপ্লিকেশন দিয়ে আমি আমার দৈনন্দিন কাজের একটা রেকর্ড রাখতে পারব। কাজগুলো ক্যাটাগরি হিসেবে ভাগ করতে পারব। চাইলে আগের কাজগুলো তারিখের ভিত্তিতে সাজাতে পারব।  আমার জন্যে রিমাইন্ডার তৈরি করবে এই এপ্লিকেশনটি। এগুলোই আমার জন্যে ফাংশনাল রিকোয়ারমেন্ট। সোজা বাংলা ভাষায় এই এপ্লিকেশনটা দিয়ে আমি যা যা করতে পারব তাই ফাংশনাল রিকোয়ারমেন্ট।

এখন আসে নন-ফাংশনাল রিকুয়ারমেন্ট,

যেহুতু এই এপ্লিকেশনটা আমি শুধুমাত্র আমার জন্যে ব্যবহার করব তাই এই এপ্লিকেশনের পারফর্মেন্স হতে হবে সর্বোচ্চ পর্যায়ের। আমার সিডিউল করা টাস্ক গুলো যাতে কেউ দেখতে না পারে তার নিশ্চয়তা নিশ্চিত করতে হবে।

এ ছাড়াও ইউজার হিসেবে আমার কি কি আলাদা চাহিদা, বিভিন্ন মাইলস্টোন , প্রাপ্ত ফলাফল এবং সম্ভাব্য রিক্স নিয়ে আলোচনা হতে পারে এই অংশে।

উদাহরণ স্বরূপঃ

Requirements analysis is a crucial step in the software development process as it helps in defining the scope and features of the application. Here are some key aspects to consider:

1.    Functional Requirements:

a.    User Registration and Authentication:

(1)          Users should be able to create accounts.

(2)          Authentication to ensure secure access to the todo list.

b.    Task Management:

(1)          Users can add, edit, and delete tasks.

(2)          Tasks should have a title, description, due date, and priority.

(3)          Users can mark tasks as completed.

c.    Categories or Tags:

(1)          Allow users to categorize tasks or add tags for better organization.

d.    Sorting and Filtering:

(1)          Provide options to sort tasks by due date, priority, or completion status.

(2)          Allow filtering by category or tags.

e.    Reminders and Notifications:

(1)          Users can set reminders for tasks.

(2)          Option to receive notifications (email, push) for upcoming tasks.

f.     Collaboration:

(1)          Share tasks or lists with other users.

(2)          Real-time collaboration on shared tasks.

g.    Archiving and History:

(1)          Archive completed tasks.

(2)          View task history or activity log.

h.    Accessibility:

(1)          Ensure the application is accessible to users with disabilities.

2.    Non-functional Requirements:

a.    Performance:

(1)                    Quick response times, even with a large number of tasks.

(2)                    Scalability to handle a growing user base.

b.    Security:

(1)                    Secure user authentication and authorization.

(2)                    Encryption of sensitive data (passwords, task details).

c.    Usability:

(1)                    Intuitive and user-friendly interface.

(2)                    Support for multiple platforms (web, mobile).

d.    Reliability:

(1)                    Minimal downtime.

(2)                    Regular data backups.

e.    Compatibility:

(1)                    Cross-browser compatibility for web applications.

(2)                    Support for various devices (desktop, tablet, mobile).

f.     Data Storage:

(1)                    Efficient and secure storage of user data and tasks.

(2)                    Regular data backups.

g.    Scalability:

(1)                    Ability to handle a growing number of users and tasks.

3.    User Stories:

a.    As a user, I want to easily add new tasks with details such as due date and priority.

b.    As a user, I want to receive notifications for upcoming tasks.

c.    As a user, I want to collaborate on tasks with other users.

d.    As a user, I want to filter and sort my tasks for better organization.

4.    Constraints:

a.    Budget constraints for development.

b.    Time constraints for project completion.

5.    Assumptions:

a.    Users have access to the internet for real-time collaboration features.

b.    Users are using modern browsers/devices.

6.    Risks:

a.    Potential security vulnerabilities.

b.    User adoption may be affected if the interface is not user-friendly.

This is a basic starting point, and you can tailor these requirements based on the specific needs and goals of your todo application. It's also recommended to involve potential users or stakeholders in the requirements gathering process to ensure the application meets their expectations.

পরবর্তী আলোচনা হবে দ্বিতীয় পর্ব

মন্তব্যসমূহ