সফ্টওয়্যার মানের জন্য উদ্দেশ্য মেট্রিকস [বন্ধ]


12

বিভিন্ন ধরণের গুণমান রয়েছে যা সফ্টওয়্যার পণ্যগুলিতে পরিমাপ করা যায়, উদাহরণস্বরূপ ফিটনেস (যেমন শেষ ব্যবহার), রক্ষণাবেক্ষণযোগ্যতা, দক্ষতা। এর মধ্যে কিছুটা বিষয়গত বা ডোমেন নির্দিষ্ট (যেমন ভাল জিইউআই ডিজাইনের নীতিগুলি সংস্কৃতি জুড়ে আলাদা বা ব্যবহারের প্রসঙ্গে নির্ভর করতে পারে, ভোক্তার ব্যবহারের তুলনায় সামরিক ধারণা)।

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

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

আমি আরও আশ্চর্য হই যে এটি একটি বিপজ্জনক ধারণা, যদি মানের জন্য উদ্দেশ্যগত প্রক্সিগুলি জনপ্রিয় হয়ে ওঠে যে ব্যবসায়িক চাপগুলি বিকাশকারীদের সামগ্রিক মানের ব্যয়ে এই মেট্রিকগুলি অনুসরণ করতে বাধ্য করবে (মানের দিকগুলি প্রক্সিগুলির দ্বারা পরিমাপ করা হয় না)।

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


আমি এস লট এর সাথে একমত জীবনে প্রায়শই 'এটি কেমন হওয়া উচিত' এবং 'এটি কেমন হওয়া উচিত' এর মধ্যে পার্থক্য রয়েছে। ছেলে, আমি কী চাই যে এই গ্রহের আরও লোক তাদের 'ভাল উদ্দেশ্যগুলি' পদ্ধতির উপর নির্ভর করে এবং 'এটি কেমন' তার প্রতি কঠোর তাকিয়ে ছিলেন। ভুল প্রণোদনা ছাড়াও সুরক্ষার একটি বিপজ্জনক মিথ্যা বোধ থাকবে। লোকেরা সিস্টেমটি গেম করার চেষ্টা করার সাথে একত্রিত হন (যা কেবল প্রাকৃতিক কারণ তারা সবসময় তাদের অবস্থার উন্নতি করার চেষ্টা করে (আর্থিক বা অন্য যাই হোক না কেন)), এবং আপনি একটি সঙ্কটজনক পরিস্থিতি পান। এটা অবাক হওয়ার মতো বিষয় নয় যে প্রতি 'দশকে একবার' সহস্রাব্দে একবার 'বাজার ক্রাশ ঘটে।
জব

উত্তর:


20

এটি একটি বিপজ্জনক ধারণা। সরাসরি পরিচালনা পুরষ্কারের জন্য গুণগত সীসার জন্য "উদ্দেশ্যমূলক" প্রক্সিগুলি এবং বিকাশকারীরা প্রকৃত গুণমানের ব্যয়ে এই মেট্রিকগুলি অনুসরণ করবে।

এটি অনিচ্ছাকৃত পরিণতির আইন।

গুণ - যদিও গুরুত্বপূর্ণ - এটি সফ্টওয়্যারটির কেবল একটি ছোট দিক। সফ্টওয়্যার দ্বারা তৈরি কার্যকারিতা এবং মান মানের চেয়ে অনেক বেশি গুরুত্বপূর্ণ।

সমস্ত মেট্রিক মেট্রিককে অনুকূল করতে কার্যকলাপের দিকে নিয়ে যায়। পরিবর্তে, এর পরিণতি রয়েছে যা আপনি সম্ভবত পছন্দ করতে পারেন না।

সফটওয়্যারটি খুব জটিল। এটি কতটা জটিল তা বোঝা মুশকিল।

এমনকি ইউনিট টেস্ট কোড কভারেজ হিসাবে এই জাতীয় "স্পষ্ট" জিনিস সময় নষ্ট করতে পারে। ১০০% এ পৌঁছতে তুচ্ছ কোডের চেয়ে আসলে আরও জটিল যে পরীক্ষাগুলি তৈরি করা প্রয়োজন। 100% কভারেজ এ পেতে একটি অগ্রহণযোগ্য ব্যয় জড়িত থাকতে পারে। [তুচ্ছ, ছোট, খুব কমই ব্যবহৃত কোডের বিকল্পটি পরীক্ষা-নিরীক্ষা। তবে এটি 100% এর মেট্রিক গেমের সাথে খাপ খায় না]]

আরেকটি উদাহরণ হ'ল সাইক্লোমেটিক কমপ্লেক্সিটি। এটি কোড মানের অন্যতম সেরা ব্যবস্থা। তবে এটি অনেকগুলি ছোট ছোট ফাংশন তৈরি করে গেম করা যেতে পারে যা একটি বৃহত্তর ফাংশনের চেয়ে পড়া (এবং বজায় রাখা আরও শক্ত) হতে পারে। আপনি কোড পর্যালোচনাগুলিতে সজ্জিত হন যেখানে আপনি সম্মত হন যে এটি খুব পঠনযোগ্য নয় তবে এটি জটিলতার দোরগোড়াকে পূরণ করে।


3
"সমস্ত মেট্রিক মেট্রিককে অনুকূল করতে কার্যকলাপের দিকে নিয়ে যায়" " আমি মনে করি এটি প্রায়শই সত্য। তবে এটি হওয়া উচিত নয়। মেট্রিকগুলি, যেমন আমার শেষ অনুচ্ছেদে নির্দেশিকা নির্দেশক হিসাবে নির্দেশ করা উচিত। সংখ্যার অর্থ এবং সিদ্ধান্তের সাথে সম্পর্কিত ঝুঁকি এবং বাণিজ্য-অফগুলি না বোঝার কারণে অনেক সময়, সিদ্ধান্তগুলি একচেটিয়াভাবে কারণেই এবং সংখ্যার জন্য নেওয়া হয়।
টমাস ওভেনস

3
"তবে এটি হওয়া উচিত নয়।" এমন কোনও উপায়ে ব্যাখ্যা করুন যাতে লোকদের তাদের পুরষ্কারগুলি অনুকূল না করার জন্য বলা যেতে পারে। মানবিক আচরণের একক উদাহরণ সন্ধান করুন যেখানে সাংস্কৃতিক পুরষ্কার (সকল ধরণের পাগল সামাজিক কাঠামোর উপর ভিত্তি করে) প্রাথমিক নয়, সর্বজনীন এবং সবচেয়ে গুরুত্বপূর্ণ বিষয় যা মানুষ অনুসরণ করবে। "উচিত" বা "উচিত নয়" এর সাথে জড়িত যে কোনও কিছুতে লোকেরা আসলে কী করে তার বিরুদ্ধে অনুমান করতে হবে। তারা সত্যিই তাদের পুরষ্কার অনুকূলিতকরণ। যদি মেট্রিকগুলি পুরষ্কারগুলির অংশ হয় তবে লোকেরা মেট্রিকগুলিকে অনুকূলিত করে। দয়া করে লোকদের আচরণগুলি বর্ণনা করতে "উচিত" ব্যবহার করবেন না।
এস .লট

2
@ থমাসের মালিক: "মেট্রিকের উপর ভিত্তি করে অনুকূলিত করার জন্য আপনার কাছে কেবল কোনও পুরষ্কার নেই"। মজার ব্যাপার। কীভাবে আপনি এগুলি গোপন রাখবেন? একবার আমি যখন জানতে পারি যে আপনার কোডটি আমার চেয়ে শীঘ্রই গৃহীত হয়েছে, আমি জানতে চাইব যে কীভাবে আপনার মডিউলটি সম্পন্ন হয়েছিল এবং আমার কাজটি করা হয়নি তা কীভাবে পরিচালিত সিদ্ধান্ত নেন। আমি যখন সিদ্ধান্তটিকে "গাইড" করে মেট্রিকটি খুঁজে পাই, আপনি যত তাড়াতাড়ি সম্ভব সম্পন্ন করতে আমি পুরোপুরি মেট্রিকগুলিকে গেম করব। যদি আমি খেলতে পারি এমন কোনও মেট্রিক না থাকে, তবে আমি দেখতে পাচ্ছি যে সিদ্ধান্তটি নির্বিচারে ছিল, ম্যানেজমেন্ট আপনাকে আমার চেয়ে ভাল পছন্দ করে, এবং আমি পদত্যাগ করব কারণ আমি যে পারফরম্যান্সের মান বুঝতে পারছি না there's
এস .লট

2
@ থমাস ওয়ানস: "আমি কখনও মেট্রিককে পুরষ্কারের দিকে নিয়ে যায়নি"। দুই বা ততোধিক লোক একসাথে কাজ করে এমন পরিস্থিতিতে সাংস্কৃতিক প্রেরণার উপস্থিতি রয়েছে। "ব্যক্তিরা তাদের অভিনয়ের জন্য স্বীকৃত" are সাইক্লোমেটিক জটিলতার জন্য একটি মেট্রিক একটি লক্ষ্য হয়ে যায়। আপনি যদি আমার চেয়ে দ্রুততর আপনার চক্রবৃত্তীয় জটিলতার লক্ষ্য পূরণ করেন, তবে এখানে সাংস্কৃতিক পুরষ্কার রয়েছে: আপনি আমার চেয়ে বেশি "উত্পাদনশীল" " আপনার মতো "উত্পাদনশীল" হিসাবে উপস্থিত হতে আমার আমার জটিলতা মেট্রিকটি খেলতে হবে।
এস .লট

2
@ থমাসের মালিক: "এটি ব্যক্তিগত গর্বের বিষয়"। এটি একটি সাংস্কৃতিক পুরষ্কার সিস্টেমের একটি দুর্দান্ত উদাহরণ। ভাল কোডের সাথে মেলে না এমন একটি সুদর্শন মেট্রিক তৈরি করতে সক্ষম হওয়ার অনিচ্ছাকৃত পরিণতির কারণে মেট্রিকগুলি এটিকে ফেলতে পারে। আপনি সাংস্কৃতিক পুরষ্কারের একটি দুর্দান্ত উদাহরণ সরবরাহ করেছেন যা মেট্রিক দ্বারা জাগ্রত হতে পারে।
এস .লট

4

আমি আরও আশ্চর্য হই যে এটি একটি বিপজ্জনক ধারণা, যদি মানের জন্য উদ্দেশ্যগত প্রক্সিগুলি জনপ্রিয় হয়ে ওঠে যে ব্যবসায়িক চাপগুলি বিকাশকারীদের সামগ্রিক মানের ব্যয়ে এই মেট্রিকগুলি অনুসরণ করতে বাধ্য করবে (মানের দিকগুলি প্রক্সিগুলির দ্বারা পরিমাপ করা হয় না)।

বিঙ্গো, এবং এটি সম্পর্কে "যদি" না। একে "পরিমাপ কর্মহীনতা" বলা হয় এবং 2002 সালে হার্ভার্ডের এক অধ্যাপকের একটি বইয়ের উল্লেখ করে জোয়েল এর উপর একটি নিবন্ধ লিখেছিলেন এবং প্রায় বার পর্যবেক্ষণ ও লেখা হয়েছে ।

এর অর্থ এই নয় যে এই জাতীয় মেট্রিকগুলি অকেজো, কেবল কখনও এ জাতীয় প্রক্সি পরিমাপের উপর স্পষ্টভাবে উত্সাহ বা নীতি অবলম্বন করা উচিত নয়। আপনি যদি মানের উন্নতি করতে চান তবে খুব খারাপ মান সহ একটি প্রক্সি মেট্রিক সম্ভবত শুরু করার জন্য একটি ভাল পয়েন্ট। তবে আপনি এই সিদ্ধান্তে পৌঁছাতে পারবেন না যে মানটি ভাল কারণ কেবল আপনার সমস্ত ম্যাট্রিকের দুর্দান্ত মান রয়েছে।


3

আমি যে বিষয়ে আগ্রহী তা হ'ল নেটওয়ার্কের সাথে সম্পর্কিত মানের (বা গ্রাফ) এবং তাদের আন্তঃসংযোগের গভীরতর রূপ, যা প্রতিটি ধরণের কোন ধরণের উল্লেখ করে, সেখানে কোনও সঠিকভাবে সম্পর্কিত আন্তঃসংযোগের স্পষ্টরূপে সনাক্তকরণযোগ্য ক্লাস্টারগুলি রয়েছে? টায়ার্ড আর্কিটেকচার, বা বিপরীতে টাইপ রেফারেন্সগুলির একটি বড় 'বল' রয়েছে ('একাদিক' কোড)।

এটি ফ্যান-ইন এবং ফ্যান-আউটের মতো শোনাচ্ছে। ফ্যান-ইন একটি প্রদত্ত মডিউলকে কল করে এমন মডিউলগুলির সংখ্যা গণনা করে এবং ফ্যান-আউট একটি প্রদত্ত মডিউল দ্বারা কল করা মডিউলগুলির সংখ্যা গণনা করে। ব্যবহারের জন্য একটি সতর্কতা চিহ্ন হ'ল মডিউলগুলি হবে যার একটি বড় ফ্যান-ইন এবং একটি বৃহত ফ্যান-আউট রয়েছে, কারণ এটি দুর্বল নকশা এবং রিফ্যাক্টরিং বা পুনরায় নকশার মূল লক্ষ্যটিকে নির্দেশ করতে পারে।

এছাড়াও প্রতিটি ধরণের এবং / বা পদ্ধতির আকার (যেমন জাভা বাইট কোডের পরিমাণে পরিমাপ করা হয় বা নেট আইএল) আরও জটিল / অ্যালগরিদমগুলিকে কোডের একচেটিয়া ব্লক হিসাবে আরও বেশি ব্যবস্থাপনযোগ্য / রক্ষণাবেক্ষণের পরিবর্তে পরিবর্তিত করার পরিবর্তে প্রয়োগ করা হয়েছে তার কিছুটা ইঙ্গিত দেওয়া উচিত should খন্ডে।

একটি সাধারণ পরিমাপ কোডের লাইন হবে। আপনি এটি পুরো প্রকল্পের মোট কোডের লাইন এবং মডিউল প্রতি কোড লাইনগুলিতে বিভক্ত করতে পারেন (সম্ভবত বিভিন্ন আকারের মডিউল ব্যবহার করে)। আপনি এটি একটি সতর্কতা সূচক হিসাবে ব্যবহার করতে পারেন যা আপনার নির্দিষ্ট মডিউলগুলি পর্যালোচনা করবে ating সফ্টওয়্যার মানের পরিমাপ এবং মেট্রিক্সের একটি বইতে এমন কিছু কাজ আলোচনা করা হয়েছে যা নির্দেশ করে যে ত্রুটি হার এবং মডিউল আকারের মধ্যে সম্পর্কটি বক্ররেখার, যেখানে কেএসএলকে প্রতি গড় ত্রুটি 175 এবং 350 এসএলওসি-র আকারের মডিউলগুলির সাথে আসে।

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

উচ্চ এবং নিম্ন মানের মধ্যে সঠিক প্রান্তিকতা / সিদ্ধান্তের পয়েন্টগুলি আমার বিষয়গত বলে মনে করবে, যেমন যেহেতু রক্ষণাবেক্ষণের দ্বারা আমরা হ'ল মানব প্রোগ্রামারদের দ্বারা রক্ষণাবেক্ষণের অর্থ এবং সুতরাং কার্যকরী ক্ষয়টি কীভাবে মানুষের মন কাজ করে তার সাথে সামঞ্জস্যপূর্ণ হতে হবে।

আমি নিশ্চিত না যে ঘটনাটি ঘটেছে।

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

সাইক্লোমেটিক জটিলতার মতো মেট্রিকের ত্রুটিগুলি সম্পর্কিতও কাজ হয়েছে। যেহেতু আপনি আপনার সিস্টেমে ত্রুটিগুলি হ্রাস করতে চান, আপনি এমন পয়েন্টগুলি সনাক্ত করতে পারেন যাগুলির জন্য আরও চেষ্টার পরীক্ষা বা রিফ্যাক্টরিং প্রয়োজন, উচ্চ সাইক্লোমেটিক জটিলতা দ্বারা চিহ্নিত।

আমি আরও আশ্চর্য হই যে এটি একটি বিপজ্জনক ধারণা, যদি মানের জন্য উদ্দেশ্যগত প্রক্সিগুলি জনপ্রিয় হয়ে ওঠে যে ব্যবসায়িক চাপগুলি বিকাশকারীদের সামগ্রিক মানের ব্যয়ে এই মেট্রিকগুলি অনুসরণ করতে বাধ্য করবে (মানের দিকগুলি প্রক্সিগুলির দ্বারা পরিমাপ করা হয় না)।

এটি কোনও পরিমাপ বা মেট্রিকের ক্ষেত্রে। এগুলি সিস্টেমটি বোঝার এবং জ্ঞাত সিদ্ধান্ত নেওয়ার জন্য ব্যবহার করা দরকার। "আপনি যা মাপতে পারবেন না তা পরিচালনা করতে পারবেন না" এই বাক্যটি মনে আসে। আপনি যদি উচ্চ মানের সফ্টওয়্যার চান তবে সেই গুণটি মূল্যায়নের জন্য আপনার কিছু পরিমাপ এবং মেট্রিক দরকার। তবে এটির পিছনে দিক রয়েছে। আপনি সংখ্যা দ্বারা একচেটিয়াভাবে পরিচালনা করতে পারবেন না। আপনি জ্ঞাত সিদ্ধান্ত নেওয়ার জন্য নম্বরগুলি ব্যবহার করতে পারেন, তবে কেবল সংখ্যাগুলি বলার কারণে আপনি কোনও সিদ্ধান্ত নিতে পারবেন না।


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

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

3

আপনার আগ্রহী এমন অনেক গুণাবলীর জন্য মেট্রিক বা প্রক্সি রয়েছে:

  1. কোড লাইন
  2. ফ্যান ইন, ফ্যান আউট
  3. কোডের 1000 লাইন প্রতি ত্রুটি হার
  4. Cyclomatic জটিলতা
  5. কোড কভারেজ
  6. সিদ্ধান্ত পয়েন্ট কভারেজ
  7. ত্রুটিগুলির অনুপাত স্থির / রক্ষণাবেক্ষণ কার্যক্রম দ্বারা সূচিত
  8. ফাংশন পয়েন্ট বিশ্লেষণ

এই সমস্ত আইটেম নিয়ে কিছু সমস্যা আছে:

  1. মেট্রিক অনুকূল করার জন্য কাজ করা হচ্ছে - একটি সর্বজনীন প্রবণতা; টিম বা ব্যক্তিদের মূল্যায়ন বা পুরষ্কারের ভিত্তি হিসাবে যদি কোনও মেট্রিক ব্যবহার করা হয় তবে ব্যাপকভাবে উদ্বেগ হয়েছে।
  2. প্রসঙ্গমুক্ত এমন কোনও মেট্রিক সম্পর্কে আমি অবগত নই। এটি বোঝায় যে সময়ের সাথে সাথে কেবল দোকানগুলির মধ্যেই কোনও তুলনা সম্ভব নয়। এই ধরনের তুলনা থেকে উত্পন্ন মেট্রিকগুলি এখনও মূল্যবান - "আমরা কি এক বছরের আগের চেয়ে এখন আরও সঠিকভাবে কোড প্রস্তুত করছি"।

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


2

আপনি মেট্রিক্সে আবেশগ্রস্থ হতে পারেন, বা আপনি যে সেরা লোক, সরঞ্জাম, প্রকৌশল এবং অনুশীলনের জন্য অনুশীলন করতে পারেন তার জন্য অনুশীলন হতে পারে। আমি বেশ কয়েকটা ভৌতিক কিউএ প্রতিভা পেয়েছি যারা 'বোকা দ্বারা বোকা' পড়েছেন এবং যারা সংখ্যার সাথে খুব সুন্দর বিন্যাসিত প্রতিবেদনগুলির একগুচ্ছের চেয়ে স্বয়ংক্রিয়রূপে পছন্দ করতে পারে তার চেয়ে অনেক বেশি খুশি হব।


নাসিম তালেব বইয়ের রেফারেন্সের জন্য +1। ত্রুটিযুক্ত যুক্তি / জ্ঞানবিজ্ঞান নিম্ন মানের জন্য কার্যকারিতার শৃঙ্খলে রয়েছে।
redcalx

@ লকস্টার, আপনার মন্তব্য আমাকে এফ # পাইপলাইন অপারেটর সম্পর্কে ভাবতে বাধ্য করেছে :)। আপনি 'নাসিম তালেব বইয়ের রেফারেন্স' দিয়ে শুরু করেন তবে 'নিম্ন মানের কার্যকারিতা শৃঙ্খলার পরিবর্তে' নিম্ন মানের জন্য কার্যকারণের চেইন 'দিয়ে শেষ করুন। ইংরাজীতে যেমন আমরা মাঝে মাঝে কথা বলার দুটি উপায় থাকতে পছন্দ করি তবে আমরা এটি প্রোগ্রামিং ভাষায়ও পছন্দ করতে পারি।
কাজ

1

মেট্রিকগুলির সাথে এই মৌলিক সমস্যা আছে।

বেশিরভাগ প্রস্তাবিত মেট্রিকগুলির বেশিরভাগই সত্যিকারের কোডে রিয়েল ওয়ার্ল্ডে, কাঁচা এসএলওসি (কোডের উত্স লাইন) এর সাথে দৃ or় বা খুব দৃ .়ভাবে সম্পর্কযুক্ত হতে দেখানো হয়েছে।

১৯ what০ এর দশকে হ্যালস্টেডের মেট্রিকগুলি এটিই হত্যা করেছিল। (দুর্ঘটনাক্রমে একদিন, ১৯8৮ সালে, আমি হাল্স্টেডের মেট্রিক্স সম্পর্কে একটি নতুন পিএইচডি-র একটি বক্তৃতায় বসলাম, যেখানে তিনি এটি দেখিয়েছিলেন।)

সাম্প্রতিককালে, ম্যাককেবের সাইক্লোমেটিক জটিলতা কাঁচা এসএলওসি-র সাথে খুব দৃ strongly়ভাবে সম্পর্কযুক্ত বলে প্রমাণিত হয়েছে যে ম্যাককেবের মেট্রিক কোনও উপকারী কিছু আমাদের যদি না জানায় তবে যে লোকটি এই গবেষণাটি করেছে তারা জোরে আশ্চর্য হয়ে উঠল।

আমরা কয়েক দশক ধরে জানি যে ছোট প্রোগ্রামগুলির চেয়ে বড় প্রোগ্রামগুলিতে সমস্যা হওয়ার সম্ভাবনা বেশি ছিল। আমরা কয়েক দশক ধরে জানি যে বড় সাবরুটাইনগুলি ছোটগুলির চেয়ে বাগ পেতে পছন্দ করে। এটি আমাদের জানাতে কেন আমাদের আরকেন মেট্রিকগুলির প্রয়োজন হবে, যখন কোনও টেবিলের উপরে ছড়িয়ে থাকা চারটি মুদ্রক পৃষ্ঠা দেখার জন্য যথেষ্ট দৃinc় বিশ্বাস হওয়া উচিত?


রক্ষণাবেক্ষণযোগ্য হওয়ার জন্য আমাদের কোডটি মানবতার মধ্যে থাকতে হবে, সুতরাং একটি এসএলওসি মেট্রিক সেই দৃষ্টিকোণ থেকে বেশ ভাল দেখাচ্ছে। যাইহোক, প্রদত্ত আকারের জন্য আপনার বিভিন্ন ধরণের অনন্য পথ থাকতে পারে (সাইক্লোমেটিক জটিলতা অনুসারে) এবং আমি যুক্তি দেব যে আরও পাথ কম সহজে বোধগম্য হওয়ার জন্য একটি প্রক্সি। সুতরাং আমি যুক্তি দিয়ে বলব যে সিসি সম্ভবত এসএলওসি-তে কিছু / অতিরিক্ত / অতিরিক্ত মান যুক্ত করে, আপনি যতক্ষণ না কিছু নমনীয়তা, নিয়মের ব্যতিক্রম ইত্যাদি অনুমোদন করেন অর্থাৎ সিসি.লিট / লক্ষ্যগুলি কঠোরভাবে প্রয়োগ করবেন না।
redcalx

1
@ লকস্টার: দুটি 100 এসএলওসি মডিউল দেওয়া হয়েছে, 47 টির সিসি সহ একটিতে 3 এর সিসি থাকা একের বেশি সমস্যা হওয়ার সম্ভাবনা রয়েছে যদিও রিয়েল-ওয়ার্ল্ড কোডের জন্য, প্রচুর পরিমাণে, একটিতে দেখা যায় যে সংক্ষিপ্ত মডিউলগুলি কম রয়েছে সিসি এবং দীর্ঘ মডিউলগুলির উচ্চ সিসি থাকে, এই বিষয়টি পর্যন্ত যে এসএলওসি জানা আপনার সিসিতে খুব ভাল অনুমান দেয় এবং এর বিপরীতে। এটি "খুব দৃ strongly়ভাবে সম্পর্কিত" দ্বারা বোঝানো হয়েছে। যেমন, বাস্তব কোডের উপর কোন উপকার আপনি সিসি = 47 ঠাহর থেকে পেতে আরও সহজে SLOC = 1500 ঠাহর থেকে অর্জিত হয় (এলোমেলোভাবে টানা নাম্বার নীতির একই।)
জন আর Strohm

হ্যাঁ আমি সম্মত হই যে তারা দৃ strongly়ভাবে সম্পর্কযুক্ত হতে থাকবে যদিও সম্পর্কটি সাধারণত অ-রৈখিক হয় is যেমন একটি সিসি স্কোর মোটামুটি কিছু পাওয়ারে এলওসি উত্থাপিত হয়। সুতরাং মনস্তাত্ত্বিক দিক থেকে সিসি স্কোর খুব দ্রুত খুব দ্রুত হয়ে উঠতে দেখা যায়, যেখানে সম্পর্কিত এসএলওসি স্কোরটি কেবল 'কিছুটা বেশি' বলে মনে হয়। হ্যাঁ আমি জানি আমি এখানে
খড়কড়ি ধরেছি

@ লকস্টার: আমি 30 বছরেরও বেশি সময় ধরে এটি করছি। এই দিনগুলিতে, আমি নিয়মিতভাবে সচেতনভাবে চলমান চলমান রুটিনগুলি দেখতে পাই যা কোনও কারণ ছাড়াই কয়েক শ এসএলওসি চালিয়ে যায়। এই সমস্ত বছরে, আমি ঠিক একটি (1) রুটিন দেখেছি যা আসলে কোডের একাধিক প্রিন্টার পৃষ্ঠা (প্রায় 60 টি লাইন) হওয়া দরকার। বাকি সমস্তগুলি বেশ লাভজনকভাবে কল্পিত হতে পারে, এবং পাঠযোগ্যতা এবং বিশ্বাসযোগ্যতা উল্লেখযোগ্যভাবে বৃদ্ধি পেয়েছিল। (এটি বড় রাষ্ট্রের মেশিনগুলি গণনা করে না this তারা এই অঞ্চলে সমস্যা হতে পারে তবে তারা বিরল))
জন আর স্ট্রোহম

-2

এখানে অন্যান্য সমস্ত উত্তর দেওয়া, আমি এই ছোট উত্তরটি দিয়ে একদম নির্বোধ বোধ করি। কটাক্ষপাত Crap4j কতটা তারা দুর্গন্ধ দ্বারা, যা জাভা র্যাঙ্ক পদ্ধতি করার চেষ্টা করে। (প্রকল্পটি পরিত্যাক্ত দেখায়))

এটি সাইক্লোমেটিক জটিলতা এবং পরীক্ষার কভারেজের সংমিশ্রণ ব্যবহার করে। অন্যান্য প্রতিটি মেট্রিকের মতো এটি খেলাযোগ্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.