কোড মেট্রিক গণনা করুন [বন্ধ]


87

আপনার প্রকল্পের জন্য কোড মেট্রিকগুলি (উদাহরণস্বরূপ কোড লাইনগুলির সংখ্যা, সাইক্লোমেটিক জটিলতা, সংযুক্তকরণ, সংহতি) এবং সময়ের সাথে সাথে ট্রেন্ডগুলি দেখানোর জন্য একটি গ্রাফ তৈরি করে এমন কোনও সরঞ্জাম উপলব্ধ আছে কি?


4
ভাষার উপর নির্ভর করে আপনি কোন ভাষাটি ব্যবহার করছেন?
ভ্যালেন্টিন রচার

উত্তর:


67

আমার সর্বশেষ প্রকল্পে আমি সোর্স মনিটর ব্যবহার করেছি । কোড মেট্রিক্স বিশ্লেষণের জন্য এটি একটি দুর্দান্ত মুক্ত সরঞ্জাম।
সোর্সমনিটরের অফিসিয়াল সাইটের একটি অংশ এখানে দেওয়া হয়েছে:

  • উত্স ফাইলগুলির মাধ্যমে দ্রুত, একক পাসে মেট্রিক সংগ্রহ করে।
  • সি ++, সি, সি #, ভিবি.এনইটি, জাভা, ডেলফি, ভিজ্যুয়াল বেসিক (ভিবি 6) বা এইচটিএমএলে লিখিত উত্স কোডের জন্য মেট্রিকগুলি পরিমাপ করে।
  • সি ++, সি, সি #, ভিবি.এনইটি, জাভা এবং ডেলফির জন্য পদ্ধতি এবং ফাংশন স্তরের মেট্রিকগুলি অন্তর্ভুক্ত।
  • সফ্টওয়্যার বিকাশ প্রকল্পগুলির সময় তুলনা করার জন্য চেকপয়েন্টগুলিতে মেট্রিকগুলি সংরক্ষণ করে।
  • সারণী এবং চার্টগুলিতে মেট্রিকগুলি প্রদর্শন করে এবং মুদ্রণ করে।
  • এক্সএমএল কমান্ড ফাইলগুলি ব্যবহার করে একটি স্ট্যান্ডার্ড উইন্ডোজ জিইউআই বা আপনার স্ক্রিপ্টগুলির অভ্যন্তরে পরিচালনা করে।
  • অন্যান্য সরঞ্জামগুলির সাথে আরও প্রক্রিয়াজাতকরণের জন্য এক্সএমএল বা সিএসভি (কমা-বিচ্ছিন্ন-মান) ফাইলগুলিতে মেট্রিকগুলি রফতানি করে।

ND depend এর পাশে .NET এর জন্য যা কেবল সর্বোত্তম সরঞ্জাম, আমি vil সুপারিশ করতে পারি ।

নিম্নলিখিত সরঞ্জামগুলি প্রবণতা বিশ্লেষণ করতে পারে:


সোর্সমনিটরটি একটি উইন্ডোজ-কেবলমাত্র সরঞ্জাম বলে মনে হচ্ছে। অন্যান্য অপারেটিং সিস্টেমের জন্য অনুরূপ কিছু বিদ্যমান (লিনাক্স, বিএসডি, ম্যাক)?
মেনেমেন্ট 18

মেনেমেন্ট, আমি উইন্ডোজ ডে, আমি এফএসএস ছেলেদের জন্য এই জাতীয় কোনও সরঞ্জাম জানি না। হতে পারে আপনি ওয়াইন এমুলেটরের অধীনে সোর্সমনিটর চালানোর চেষ্টা করতে পারেন?
aku

4
এখন সেখানে সি ++, CppDepend জন্য NDepend-টাইপ টুল
গণ্ডমূর্খ

সোর্স মনিটরটি কেবল বাণিজ্যিক ব্যবহার নয়।
স্কট

4
@ কেভিন 混合 carefully লাইসেন্সটি মনোযোগ সহকারে পড়ুন - আপনি যে কোনও পরিবেশে এটি বিক্রি করতে পারবেন তা আপনি এটি ব্যবহার করতে পারেন। "এটি হ'ল আপনি এই নির্বাহযোগ্যটিকে আপনার নিজের সফটওয়্যার বিকাশের প্রচেষ্টার অংশ হিসাবে (বাণিজ্যিক বা অন্যথায়) ব্যবহার করতে পারেন তবে আপনি এটি বিক্রি করতে পারবেন না ..."
নাটালি অ্যাডামস

12

সোনার অবশ্যই একটি সরঞ্জাম যা আপনাকে অবশ্যই বিবেচনা করতে হবে, বিশেষত জাভা প্রকল্পগুলির জন্য। তবে এটি পিএইচপি বা সি / সি ++, ফ্লেক্স এবং কোবোল কোডও পরিচালনা করবে।

এখানে একটি স্ক্রিনশট যা কোনও প্রকল্পে কিছু মেট্রিক দেখায়:

ALT পাঠ্য http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png

মনে রাখবেন যে আপনি http://nemo.sonarsource.org এ তাদের ডেমো সাইট ব্যবহার করে সরঞ্জামটি চেষ্টা করতে পারেন


দৃশ্যত SO আমাকে লিঙ্কটি ঠিক করতে দিবে না - লিঙ্কটিটি হ'ল
অ্যাডামস


8

আমি আমার আইডিই এর জন্য একটি কোড মেট্রিক্স সরঞ্জাম / প্লাগইনও সন্ধান করছিলাম কিন্তু যতদূর আমি জানি কোনও কিছুই নেই (গ্রহনের জন্য) যা নির্দিষ্ট সময়ের মধ্যে জটিলতার একটি গ্রাফ প্রদর্শন করে। যাইহোক, আমি গ্রহন মেট্রিক্স প্লাগইনটি পেয়েছি , এটি পরিচালনা করতে পারে:

  • ম্যাককেবের সাইক্লোমেটিক জটিলতা
  • অ্যাফেরেন্ট কাপলিংস
  • পদ্ধতিতে একাত্মতার অভাব
  • পদ্ধতিতে কোডের লাইন
  • ক্ষেত্রের সংখ্যা
  • স্তরের সংখ্যা
  • স্কোপে স্থানীয়দের সংখ্যা
  • প্যারামিটারের সংখ্যা
  • বিবৃতি সংখ্যা
  • প্রতি ক্লাসে ওজনযুক্ত পদ্ধতি

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

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


4

মনে রাখবেন, আপনি যা মাপেন তা হ'ল যা পাবেন। লোক উত্পাদনশীলতা বা কার্যক্ষমতা সম্পর্কে কিছুই বলে না।

কোড লাইন দ্বারা একটি প্রোগ্রামার রেট এবং আপনি পাবেন .. কোড লাইন। একই যুক্তি অন্যান্য মেট্রিকগুলির জন্য যায়।

ওটোহ .. http://www.crap4j.org/ একটি অত্যন্ত রক্ষণশীল এবং দরকারী মেট্রিক। এটি কভারেজের সাথে সম্পর্কিত জটিলতা নির্ধারণ করে।


4
মন্তব্যগুলির রেখায় একটি প্রোগ্রামারকে রেট দিন এবং আপনি ... মন্তব্যের লাইন পাবেন।
EML


3

টুল বিষয়ে NDepend এটা 82 বিভিন্ন কোড মেট্রিক সাথে আসে, কোড লাইনের সংখ্যা থেকে, পদ্ধতি ক্রম (জনপ্রিয়তা), Cyclomatic জটিলতা পদ্ধতি এর সংযোগ অভাব, শতকরা কভারেজ, উত্তরাধিকার গভীরতা (NCover বা VSTs থেকে নিষ্কাশিত) .. ।

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

এই সমস্ত মেট্রিকগুলি এখানে বিশদভাবে বর্ণনা করা হয়েছে


2

যদি আপনি .NET স্পেসে থাকেন তবে বিকাশকারী এক্সপ্রেস ' কোডআরশ , এলওসি, সাইক্লোমেটিক জটিলতা এবং (বরং দুর্দান্ত, আইএমএইচও) কোডটির রিয়েল-টাইমে রক্ষণাবেক্ষণ জটিলতা বিশ্লেষণ সরবরাহ করে।

(রক্ষণাবেক্ষণ জটিলতার লিঙ্কটি সম্পর্কে দুঃখিত; এটি গুগলের ক্যাশে যাচ্ছে The আসলটি অফলাইন এটিএম বলে মনে হচ্ছে)।


2

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

ক্রুসিবল নামে এটির জন্য আপনি একটি অ্যাড-অনও পেতে পারেন যা পিয়ার কোড পর্যালোচনাগুলিকে সহায়তা করে।


2

ভিজ্যুয়াল স্টুডিও। নেট (কমপক্ষে সি # এবং ভিবি.এনইটি ) এর জন্য আমি নিখরচায় স্টুডিওটুলগুলি মেট্রিকের জন্য অত্যন্ত দরকারী বলে মনে করি। এটি রিসরচারের মতো বাণিজ্যিক সরঞ্জামগুলিতে পাওয়া বেশ কয়েকটি বৈশিষ্ট্যও যুক্ত করে


2

কোড বিশ্লেষক একটি সাধারণ সরঞ্জাম যা এই ধরণের মেট্রিক উত্পন্ন করে।

বিকল্প পাঠ
(উত্স: teel.ws )


4
জিইউআই দেখতে দুর্দান্ত বলে মনে হচ্ছে, যে মেট্রিকগুলি উত্পন্ন হয় তা বেশ অকেজো বলে মনে হয় - যেমন "প্রতি ফাইলের মধ্যে হোয়াইটস্পেস লাইন"?
kizzx2



1

আমি ভিজ্যুয়াল স্টুডিওর জন্য কোড মেট্রিক্স ভিউয়ার এক্সেনশন প্রস্তাব করব ।

সমাধান একবারে বিশ্লেষণ করা খুব সহজ, আপনি যদি অগ্রগতি করেন তবে তুলনাও করুন ;-)

বৈশিষ্ট্য সম্পর্কে এখানে আরও পড়ুন


0

পিএইচপি সামনে, আমি বিশ্বাস করি উদাহরণস্বরূপ phpUnderControl মাধ্যমে মেট্রিক্স অন্তর্ভুক্ত phpUnit (যদি আমি ভুল না করে থাকি)।

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


0

আপনি যদি কিছু ট্রেন্ড বিশ্লেষণের পরে থাকেন তবে এসএলওসি ছাড়িয়ে কিছু পরিমাপ করার কি আসলেই এর অর্থ?

এমনকি যদি আপনি কেবল আধা-কলোনগুলি অনুসরণ করার জন্য এবং গ্রেপ্তারকৃত রেখাগুলির সংখ্যা গণনা করার জন্য একটি গ্রেপ করে থাকেন তবে আপনার পরে যা হয় তা হ'ল এসএলওসি পরিমাপ কৌশলতে ধারাবাহিকতা। এইভাবে আজকের পরিমাপকে অর্থবহ উপায়ে গত মাসের পরিমাপের সাথে তুলনা করা যেতে পারে।

আমি সত্যিই দেখতে পাচ্ছি না ম্যাককেব সাইক্লোমেট্রিক জটিলতার একটি প্রবণতা কী দেবে? আমি মনে করি বিকাশকারীদের প্রতিক্রিয়া জানাতে মানের স্ন্যাপশটের জন্য সিসিকে আরও বেশি ব্যবহার করা উচিত।

সম্পাদনা: ওহ মাত্র কয়েক অন্যান্য পরিমাপের জন্য ভেবেছি যা কার্যকর হতে পারে। এসএলওসি এবং পরীক্ষার কভারেজের শতাংশ হিসাবে মন্তব্যগুলি। যার কোনটিই আপনি পিছলে যেতে চান না। এগুলির উভয়েরই পুনঃপ্রতিষ্ঠায় ফিরে আসা কখনই doingশ্বরের মতো হয় না "মুহুর্তের উত্তাপে!"

এইচটিএইচ।

চিয়ার্স,

রব


0

স্কিটুলগুলি বোঝা আপনার জন্য প্রচুর কোড মেট্রিক তৈরি করার ক্ষমতা রাখে। কোড মেট্রিক্স বৈশিষ্ট্যগুলির সাথে আমার প্রচুর অভিজ্ঞতা নেই তবে সাধারণভাবে স্থির বিশ্লেষণ বৈশিষ্ট্যগুলি দুর্দান্ত ছিল এবং দামটি খুব যুক্তিসঙ্গত ছিল। সমর্থন দুর্দান্ত ছিল।


0

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

এই নিবন্ধটি দেখুন যা এটি ধাপে ধাপে বর্ণনা করে: http://www.projectcodemeter.com/cost_estiration/help/FN_monsizing.htm


0

জাভার জন্য আপনি আমাদের সরঞ্জামটি চেষ্টা করতে পারেন, কোয়ালিটি গেট যা 60০ টিরও বেশি উত্স কোড মেট্রিকের গণনা করে, সময়ের সাথে সাথে সমস্ত পরিবর্তন ট্র্যাক করে এবং উত্স কোডটির রক্ষণাবেক্ষণের জন্য সামগ্রিক রেটিং সরবরাহ করে।

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