Monday, 4 June 2012

07 কোড পর্যালোচনা

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

.
v   মান ও নির্দেশাবলী আইনসংগ্রহ
ভাল সফটওয়্যার উন্নয়ন সংস্থা সাধারণত তাদের নিজস্ব আইনসংগ্রহ মান ও নির্দেশাবলী কি শ্রেষ্ঠ suits তাদের প্রতিষ্ঠানের পণ্য এবং তারা যে ধরনের উপর নির্ভর করে গড়ে তুলতে হবে. নীচে কিছু প্রতিনিধি আইনসংগ্রহ মান.
বিশ্বব্যাপী ব্যবহার সীমিত নিয়মাবলী:
  এই নিয়মগুলি তালিকা কি ধরনের তথ্য ঘোষিত আন্তর্জাতিক এবং কি পারে না হতে পারে.
বিভিন্ন মডিউল জন্য কোড গেলা হেডারের বিষয়বস্তু:
তথ্য বিভিন্ন মডিউল এর হেডার মধ্যে একটি প্রতিষ্ঠানের জন্য মান হবে. সঠিক বিন্যাসে যা হেডারের তথ্য হেডারের সংগঠিত হয় এছাড়াও চিহ্নিত করা যাবে. নীচে কিছু মান হেডারের তথ্য:
মডিউল • নাম.
• তারিখ কোন মডিউল তৈরি হয়েছে.
• লেখকের নাম.
• সংশোধন ইতিহাস.
মডিউল • সারমর্ম.
• বিভিন্ন কার্যাবলী সমর্থিত, সহ তাদের ইনপুট / আউটপুট পরামিতি.
• গ্লোবাল ভেরিয়েবল ব্যবহার / মডিউল দ্বারা পরিবর্তন.
গ্লোবাল ভেরিয়েবল, স্থানীয় ভেরিয়েবল, এবং ধ্রুব identifiers জন্য নিয়মাবলী নামকরণ:
  একটি সম্ভাব্য নামাঙ্কনের জন্য যে গ্লোবাল ভেরিয়েবল নাম হতে পারে একটি বড় হাতের অক্ষর সঙ্গে সবসময় আরম্ভ, স্থানীয় ভেরিয়েবল নাম ছোট অক্ষর গঠিত হয়, এবং ধ্রুব নাম সবসময়ই বড় হাতের অক্ষরে.
ত্রুটি উত্পন্ন নিয়মাবলী এবং ব্যতিক্রম পরিচালনা পদ্ধতি:
উপায় ত্রুটি অবস্থার একটি প্রোগ্রামের বিভিন্ন কর্ম দ্বারা রিপোর্ট করা হয় একটি প্রতিষ্ঠানের মধ্যে থাকা মান উচিত পরিচালনা করা হয়. উদাহরণস্বরূপ, একটি ত্রুটি অবস্থার সম্মুখীন হন যখন বিভিন্ন কার্যাবলী হয় একটি 0 অথবা 1 ধারাবাহিকভাবে ফেরত পাঠাবেন. নীচে কিছু প্রতিনিধি আইনসংগ্রহ অনেক সফটওয়্যার উন্নয়ন সংস্থা দ্বারা সুপারিশ নির্দেশিকা.
আপনার কি কোন কোডিং শৈলী খুব চালাক বা খুব কঠিন বুঝতে ব্যবহার না:
কোড সহজে বুঝতে হবে. অনেক অনভিজ্ঞ প্রকৌশলীরা আসলে গুপ্ত এবং অনধিগম্য কোড লেখার গর্ববোধ করা. চতুর কোডিং কোড মানে অস্পষ্ট এবং বোঝার ব্যাহত করা সম্ভব. এটি রক্ষণাবেক্ষণ কঠিন করে তোলে.
অখ্যাত পার্শ্বপ্রতিক্রিয়া এড়িয়ে যেতে হবে:
একটি ফাংশন কল পার্শ্ব প্রতিক্রিয়া গ্লোবাল ভেরিয়েবল এর রেফারেন্স, রুপান্তরিকরণ দ্বারা গৃহীত পরামিতি পরিবর্তন অন্তর্ভুক্ত করা, এবং ইনপুট / আউটপুট অপারেশন. একটি অখ্যাত পার্শ্ব প্রতিক্রিয়া হল এটা সুস্পষ্ট একটি কোড নৈমিত্তিক পরীক্ষা থেকে না. অখ্যাত পার্শ্বপ্রতিক্রিয়া কঠিন কোড এক টুকরা বোঝার চেষ্টা করা. উদাহরণস্বরূপ, যদি একটি আন্তর্জাতিক পরিবর্তনশীল নামক একটি মডিউল অথবা কিছু ফাইল পরিবর্তন দুর্বোধ্যতা হয়, I / O যা ফাংশন নাম ও হেডারের তথ্য থেকে অনুমান করা কঠিন সঞ্চালিত হয়, কেউ কোড বোঝার চেষ্টা জন্য কঠিন হয়ে ওঠে.
কি একাধিক কাজের জন্য একটি আইডেন্টিফায়ার ব্যবহার না:
  প্রোগ্রামাররা প্রায়ই একই আইডেন্টিফায়ার থেকে বিভিন্ন অস্থায়ী সত্তা বোঝান ব্যবহার. উদাহরণস্বরূপ, কিছু প্রোগ্রামারদের কম্পিউটিং এবং একটি সংরক্ষণকারী চূড়ান্ত ফলাফলের জন্য একটি অস্থায়ী লুপ ভেরিয়েবল ব্যবহার. যুক্তিসহ ব্যাখ্যা যে এই প্রোগ্রামাররা সাধারণত হয় যেমন ভেরিয়েবল একাধিক ব্যবহারের জন্য দেওয়া হল মেমরি কার্যকারিতা, যেমন তিনটি ভেরিয়েবলের তিনটি অবস্থানের মেমরি ব্যবহার করা, যেহেতু একই পরিবর্তনশীল তিনটি বিভিন্ন উপায়ে ব্যবহার করা ঠিক এক মেমরি অবস্থানকে ব্যবহার করে. যাইহোক, বিভিন্ন জিনিষ এই পদ্ধতির সঙ্গে ভুল আছে এবং তাই এড়িয়ে যাওয়া উচিত. একাধিক উদ্দেশ্যে ভেরিয়েবলগুলি ব্যবহার দ্বারা সৃষ্ট সমস্যার কিছু নীচে:
• প্রতিটি পরিবর্তনশীল একটি বর্ণনামূলক নাম এর উদ্দেশ্য ইঙ্গিত দেওয়া হবে. এটা যদি একটি আইডেন্টিফায়ার একাধিক কাজের জন্য ব্যবহৃত হয় সম্ভব না. একাধিক উদ্দেশ্যে একটি ভেরিয়েবল ব্যবহার গড়বড় এবং কঠিন জন্য কাউকে পড়তে এবং কোড বোঝার চেষ্টা করা হতে পারে.
• সাধারণত একাধিক উদ্দেশ্যে ভেরিয়েবল ব্যবহারের তোলে ভবিষ্যতের উন্নত আরও কঠিন.
কোড ভাল-নথিভুক্ত হতে হবে:
চলতি একটি নিয়ম অনুযায়ী, কমপক্ষে এক প্রতি তিন সোর্স লাইন জন্য গড় মন্তব্য লাইন আছে অবশ্যই.
কোন ফাংশন এর দৈর্ঘ্য 10 উৎস লাইন অতিক্রম না করা উচিত:
  একটি ফাংশন যা খুব লম্বা সাধারণত খুব কঠিন হিসাবে সম্ভবত এটা বহন করে বিভিন্ন কার্যাবলী আউট বুঝতে. একই কারণে, লম্বা ফাংশন হয় অধিকাংশ বাগ সঠিকভাবে CD disproportionately বৃহত্তর সংখ্যা সম্ভাবনা থাকবে.
কি বিবৃতিগুলির যেতে না ব্যবহার করুন:
বিবৃতি যেতে ব্যবহার করে তোলে একটি প্রোগ্রাম unstructured এবং এটি খুব কঠিন বুঝতে তোলে.

v   প্রোগ্রাম টেস্টিং:
পরীক্ষা অনুষঙ্গ সংকলন (অথবা পরীক্ষা ক্ষেত্রে) সঙ্গে প্রোগ্রাম প্রদান এবং পর্যবেক্ষক যদি প্রোগ্রাম আচরণ হিসাবে প্রত্যাশিত একটি প্রোগ্রাম পরীক্ষা করা হয়. যদি প্রোগ্রাম যেমন প্রত্যাশিত আচরণ ব্যর্থ হয় তাহলে অবস্থার অধীনে যা বিপত্তি ঘটে পরে ডিবাগ এবং সংশোধনের জন্য উল্লিখিত হয়. কিছু সাধারণভাবে ব্যবহৃত পরীক্ষার সাথে যুক্ত পদ হল:
• ব্যর্থ: এটি একটি ত্রুটির কথা প্রকাশ করে (অথবা ত্রুটি বা বাগ). কিন্তু, এর একটি ত্রুটির সৃষ্টি নিছক উপস্থিতি অপরিহার্যভাবে একটি ব্যর্থতা না পারে.
• টেস্ট কেস: এই ত্রয়ী [আমি, S, হে], যেখানে আমি সিস্টেম থেকে ডেটা ইনপুট, S সিস্টেমের মধ্যে ডেটা ইনপুট অবস্থা, এবং আউটপুট সিস্টেম এর প্রত্যাশিত ফলাফল.
• টেস্ট সংকলন: এই সব পরীক্ষার ক্ষেত্রে কোন একটি প্রদত্ত সফটওয়্যার হল এই পরীক্ষা করার জন্য একটি সংকলন.


v   পরীক্ষার লক্ষ্য:
পরীক্ষার প্রক্রিয়ার উদ্দেশ্য সমস্ত একটি সফটওয়্যার যেসব ত্রুটি সনাক্ত করা হয়. যদিও সন্তোষজনকভাবে বহন টেস্টিং ফেজ আউট পর অধিকাংশ ব্যবহারিক সিস্টেমের জন্য,, এটা থেকে যে সফ্টওয়্যার হল ত্রুটি মুক্ত গ্যারান্টি করা সম্ভব নয়. এই যে অধিকাংশ সফ্টওয়ার প্রোডাক্টস ইনপুট ডেটা ডোমেইন খুব বড় কারণ হল. সফ্টওয়্যার প্রাপ্ত করার পরীক্ষা exhaustively প্রতিটি মান যে ইনপুট ডেটা অনুমান পারে সম্মান সঙ্গে বাস্তব নয়. এমনকি সঙ্গে এই পরীক্ষার প্রক্রিয়ার ব্যবহারিক সীমাবদ্ধতা, পরীক্ষার গুরুত্ব underestimated করা উচিত নয়. এটা মনে রাখা যে পরীক্ষার অনেক পক্ষে সফটওয়্যার পণ্যের মধ্যে বিদ্যমান ত্রুটিগুলি প্রভাবাধীন করা না করা আবশ্যক. সুতরাং পরীক্ষার একটি সিস্টেমের মধ্যে ত্রুটি কমানোর এবং একটি উন্নত সিস্টেম ব্যবহারকারীদের আস্থা বাড়িয়ে বাস্তব উপায় উপলব্ধ করা হয়.


v   বৈধীকরণ পার্থক্য:
যাচাইকরণ হল নির্ণয় করা হবে কিনা সফটওয়্যার উন্নয়নের একটি ফেজ আউটপুট এর আগের পর্ব যে কে কনর্ফাম করে পদ্ধতি, যেখানে বৈধতা হল নির্ণয় করা হবে কিনা একটি সম্পূর্ণরূপে উন্নত সিস্টেম এর জন্য প্রয়োজনীয় স্পেসিফিকেশন কে কনর্ফাম করে প্রসেস. সুতরাং সময় ত্রুটি ফেজ সংবরণ সঙ্গে যাচাই উদ্বিগ্ন হয়, কার্যকারীতা লক্ষ্য হল যে চূড়ান্ত পণ্যের ত্রুটি মুক্ত হবে.


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

09 সফটওয়ার রক্ষনা বেক্ষণ

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


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


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