সংহতি এবং মিলন জন্য মেট্রিক আছে?


34

রুটিনটি কতটা সংগত হয় এবং একই কোড বেসের অন্যান্য কোডের সাথে রুটিনটি কতটা আলগাভাবে (বা শক্তভাবে) মিলিত হয় তা পরিমাপ করার জন্য ম্যাককেবে কমপ্লেক্সিটি মাপের একটি মেট্রিক অ্যানালাসাস রয়েছে কি ?


উত্তর:


29

আমি মনে করি আপনি যে মেট্রিকটির সন্ধান করছেন সেটি LCOM4, ​​যদিও এটি ক্লাসে আরও বেশি প্রযোজ্য।

সোনার এখানে সুন্দরভাবে ব্যাখ্যা করেছেন :

... মেট্রিক: একত্রীকরণ ক্লাসগুলি কীভাবে তা পরিমাপ করতে LCOM4 (সংহত পদ্ধতির অভাব) এই মেট্রিকটির ব্যাখ্যা করা খুব সহজ কারণ মান 1 এর অর্থ একটি শ্রেণীর কেবলমাত্র একটি দায়িত্ব (ভাল) এবং দশম মানের অর্থ একটি শ্রেণীর সম্ভবত এক্সের দায়িত্ব (খারাপ) থাকে এবং এটি রিফেক্টর / স্প্লিট হওয়া উচিত।

এখানে কোনও যাদু নেই, কেবল সাধারণ জ্ঞান। ক্লাস ড্রাইভার সহ একটি সাধারণ উদাহরণ গ্রহণ করি। এই শ্রেণীর দুটি ক্ষেত্র রয়েছে: গাড়ি এবং মস্তিষ্ক এবং পাঁচটি পদ্ধতি: ড্রাইভ (), GoTo (), স্টপ (), getAngry () এবং পানীয়কফি ()। এই উপাদানগুলির মধ্যে নির্ভরতা গ্রাফ এখানে। সম্পর্কিত উপাদানগুলির তিনটি ব্লক রয়েছে, সুতরাং LCOM4 = 3, সুতরাং বর্গের মনে হয় তিনটি পৃথক দায়িত্ব রয়েছে এবং একক দায়িত্বের নীতিটি ভেঙে যায়। http://i.stack.imgur.com/2527G.png

...

এটি দুর্দান্ত সরঞ্জাম, যদি আপনি এটি ব্যবহার করতে পারেন। :)


@ অ্যানোরিওক্যাটেনসি কোন সমস্যা নেই :)
ওলেকসি

খুব খারাপ তারা কীভাবে তারা মেট্রিক গণনা করে তাতে যায় না।
ওনোরিও ক্যাটানাচি

3
এটি এতে সহায়তা করতে পারে: aivosto.com/project/help/pm-oo-cohesion.html
ওলেক্সি

কৌতূহলের বাইরে আপনি কীভাবে সিঙ্গেল দায়বদ্ধতার নীতিটি মানতে সেই চিত্রটি রিফেক্টর করবেন? brain.setAngry(driver)? car.applyBreaks(driver)?
ফিল

আমি সন্দেহ করি যে কোড-ভিত্তিক সংহতি মেট্রিক্স সত্যই ইন্টারফেস স্তরের সংহতির সূচক হতে পারে, এবং এমনকি খারাপ প্রোগ্রামিংয়ের প্রচারও
2015

16
  • অ্যাফেরেন্ট মিলন: দায়িত্বের সংখ্যা
  • প্রচুর সংযোগ: নির্ভরতার সংখ্যা
  • অস্থিরতা: মোট সংশ্লেষে অ্যাফেরেন্ট সংযোগের অনুপাত (অ্যাফেরেন্ট + এফেনেন্ট)।

অস্থিরতা বিভিন্ন কোড মেট্রিক সরঞ্জামগুলিতে সমর্থিত।


ধন্যবাদ @ ব্রায়ান - ঠিক যে ধরণের জিনিসটি আমি খুঁজে পেতে আশা করছিলাম।
ওনোরিও ক্যাটানাচি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.