সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)

Translation of : http://www.salearningschool.com/displayArticle.php?table=Articles&articleID=1360

সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)
2013-03-21, সাইদ আহমেদ

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে

একটি টাস্ক রূপায়ণ করতে গেলে, ওই টাস্ক এর সাথে সম্পর্কিত অনেক অতিরিক্ত টাস্ক ও রূপায়ণ করতে হতে পারে. অতিরিক্ত স্টাফ, প্রকৃত টাস্ক রূপায়ণ এর  তুলনায় অধিক সময় লাগতে পারে. প্রকৃত টাস্ক যদি ছোট হয়, কখনও কখনও অতিরিক্ত কর্ম, প্রকৃত টাস্ক এর তুলনায় অনেক বড় হয় কারন সফটওয়্যার এর অন্য অংশগুলোর সাথে সামঞ্জস্য রাখতে হয়

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে:

1. সামগ্রিক সিস্টেমের আর্কিটেকচারের সাথে সমন্বয় করা
2. নিরাপত্তা ও একটি বিবেচ্য বিষয়? ইনপুট বক্স সৃষ্টি করে, তাতে কত নিরাপত্তা প্রদান করতে চান? নিরাপত্তা কি শুরুতে প্রদান করবেন না শেশে করবেন?
3. ইউজার ইন্টারফেস নির্মাণ [CSS লিখা, পৃষ্ঠাতে অন্যান্য উপাদান এর সাথে সামঞ্জস্য বা একটি নতুন পৃষ্ঠা তৈরি] - সময় লাগবে . ইন্টারফেস কে ব্যবহার উপযোগী করতেই সময় লাগবে। [ব্যবহারকারী বন্ধুত্বপূর্ণ]
4. ডাটাবেসের মধ্যে প্রয়োজনীয় পরিবর্তন করতে হতে পারে. ক্যোয়ারী এর দক্ষতা বিবেচ্য বিষয় হতে পারে
5. সমাধান এর লজিক বের করতে হবে [বিভিন্ন উপায় এর  মধ্যে একটি উপায় বেছে নিতে হবে।
6. কোড লিখতে সময় লাগবে।
7. কোড ডিবাগ এর জন্য সময় লাগবে।
8. টেস্টিং, একাধিক ব্রাউজারে পরীক্ষা, একাধিক ব্রাউজার সংস্করণ-এ পরীক্ষা, একাধিক স্ক্রীন রেজোলিউশান এ পরীক্ষা, ইন্টারনেট এক্সপ্লোরার এর Quirk মোড এর জন্য টেস্টিং - সময় লাগবে।
9. লোড টেস্টিং এবং পারফরমেন্স টেস্টিং এর জন্য সময় লাগবে।
10.  সামঞ্জস্যতা - এটা অন্য সব কিছুর সাথে সামঞ্জস্য রেখে কাজ করে কিনা দেখতে হবে
11. অন্যান্য সম্পর্কিত পৃষ্ঠাগুলি এবং ফাংশন গুলি কাজ করে কিনা দেখতে হবে? আপনার টাস্ক বাস্তবায়িত হওয়ার পরেও সময় প্রয়োজন.
12. কোড অপ্টিমাইজেশান করতে সময় লাগবে? এই বাপার এ প্লান করতে সময় লাগবে।
13. কোড ভাল করে সংগঠন করতে সময় লাগবে।
14. whitebox পরীক্ষার অংশ হিসেবে ডিবাগ করতে সময় লাগবে।
15. চেক করতে হবে: এটি পরীক্ষা/টেস্টিং  সার্ভারে কাজ করে কিনা ? এটি ইন্টিগ্রেশন সার্ভার কাজ করে কিনা?
16. কি কি পরীক্ষা করতে হবে তার লিস্ট বানাতে হবে এবং ওইগুলো নির্বাহ করতে সময় লাগবে। [কোনো আবশ্যক ডকুমেন্টেশন দরকার হলে সময় লাগবে।
17. প্রকল্প বড় হলে, বড় প্রকল্প এর সাথে কাজ করার জন্য ভাল মেমরি বা ভাল দক্ষতা প্রয়োজন  [সবকিছু  ট্র্যাক রাখতে হবে]
18. ইউনিট টেস্ট করতে হলে সময় লাগবে...

কখনও কখনও ছোট কাজগুলো, এই অতিরিক্ত বিবেচ্য বিষয় এর কারনে বড় হয়ে উঠতে পারে.

সি প্রোগ্রামিং : চলক আর্গুমেন্ট । C – Variable Arguments

সি প্রোগ্রামিং : চলক আর্গুমেন্ট।

রিদওয়ান বিন শামীম

অনেক সময় প্রোগ্রামিঙে এমন পরিস্থিতি আসে যখন অনুমিত প্যারামিটারের সংখ্যার স্থলে আর্গুমেন্টের চলক নাম্বার নেবে এমন ফাংশন খুঁজতে হয়। সি প্রোগ্রামিং এজাতীয় ক্ষেত্রের জন্য একটি ব্যবস্থা রেখেছে যাতে করে আমরা এমন একটি ফাংশন ব্যবহার করতে পারি যা আমাদের চাহিদামত প্যারামিটারের চলক নাম্বার গ্রহন করে থাকে। নিচের উদাহরণ তেমন একটি ফাংশনঃ

int func(int, ... )
{
.
.
.
}

int main()
{
func(1, 2, 3);
func(1, 2, 3, 4);
}

এখানে func() এক্লিপ্সের মত তিন ডটের(...) শেষ আর্গুমেন্ট নির্দেশ করে, এক্লিপ্সের সামনেরটি int যা গৃহীত আর্গুমেন্টের মোট চলক নাম্বার প্রকাশ করে। এটিকে ঠিকভাবে কাজ করানোর জন্য stdarg.h হিডার ফাইল ব্যবহার করতে হয় যা চলক আর্গুমেন্টের ফাংশন ও ম্যাক্রো সঠিকভাবে প্রয়োগের জন্য দরকার হয়। এক্ষেত্রে নিচের ধারাগুলো মেনে চলা হয়।

# শেষ প্যারামিটার এক্লিপ্স ধরে ফাংশন ঠিক করা হয়, এক্লিপ্সের আগের ফাংশন int যা আর্গুমেন্টের সংখ্যা প্রকাশ করে।
# ফাংশন ডেফিনেশনে va_list টাইপের চলক রাখতে হয়, যা stdarg.h হিডার ফাইলে বিবৃত হয়।
# int প্যারামিটার ও va_start ম্যাক্রো ব্যবহার করতে হয় আর্গুমেন্ট লিস্টে va_list চলক চালু করতে। va_start ম্যাক্রো stdarg.h হিডার ফাইলে বিবৃত হয়।
# আর্গুমেন্ট লিস্টে কাজ করতে va_arg ম্যাক্রো ও va_list চলক ব্যবহার করা হয়।
# va_list চলকের বিবৃত মেমোরি পরিষ্কার করতে va_end ম্যাক্রো ব্যবহার করা হয়।
উপরের পদ্ধতি ব্যবহার করে প্যারামিটারের চলক নাম্বার একটি ফাংশনে আমরা লিখতে পারি,

#include <stdio.h>
#include <stdarg.h>

double average(int num,...)
{

va_list valist;
double sum = 0.0;
int i;

/* initialize valist for num number of arguments */
va_start(valist, num);

/* access all the arguments assigned to valist */
for (i = 0; i < num; i++)
{
sum += va_arg(valist, int);
}
/* clean memory reserved for valist */
va_end(valist);

return sum/num;
}

int main()
{
printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));
}

উপরের কোড সঠিকভাবে লিখলে যে ফলাফল হয় তা নিচে দেয়া হল, বলে নেয়া ভাল, দুবার average() ফাংশন ব্যবহার করা হয়েছে প্রথমবার প্রথম আর্গুমেন্ট চলক আর্গুমেন্টের সংখ্যা প্রকাশ করেছে, আর্গুমেন্টের চলক সংখ্যা ছাড়ে কেবল এক্লিপ্স ব্যবহার করা হয়।
Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000

ওয়েবের বেসিক কনসেপ্টঃ

ইন্টারনেট কীঃ ইন্টারনেট কম্পিউটিং রিসোর্সের একটি গ্লোবাল নেটওয়ার্ক। আমরা ইন্টারনেটকে শেয়ারড রিসোর্স হিসেবে রাউটার ও সার্কিটের ফিজিকাল কালেকশন হিসেবে দেখতে পারি। আগে এর কিছু কমন সংজ্ঞা দেয়া হত যার মধ্যে আছে, • যেসব নেটওয়ার্ক টিসিপি/ আইপি কমুনিকেশন প্রটোকল মেনে চলে তাদের নেটওয়ার্ক, • সেই নেটওয়ার্ক ডেভলাপ ও ব্যবহার করে এমন লোকেদের কমিউনিটি ইন্টারনেট ভিত্তিক সেবাঃ …

Continue reading »

Permanent link to this article: http://bangla.salearningschool.com/%e0%a6%93%e0%a7%9f%e0%a7%87%e0%a6%ac%e0%a7%87%e0%a6%b0-%e0%a6%ac%e0%a7%87%e0%a6%b8%e0%a6%bf%e0%a6%95-%e0%a6%95%e0%a6%a8%e0%a6%b8%e0%a7%87%e0%a6%aa%e0%a7%8d%e0%a6%9f%e0%a6%83/

//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js //pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

Older posts «

» Newer posts

Skip to toolbar