Apakah ada alat yang tersedia yang akan menghitung metrik kode (misalnya jumlah baris kode, kompleksitas siklomatik, penggandengan, kohesi) untuk proyek Anda dan dari waktu ke waktu menghasilkan grafik yang menunjukkan tren?
Apakah ada alat yang tersedia yang akan menghitung metrik kode (misalnya jumlah baris kode, kompleksitas siklomatik, penggandengan, kohesi) untuk proyek Anda dan dari waktu ke waktu menghasilkan grafik yang menunjukkan tren?
Jawaban:
Pada proyek terbaru saya, saya menggunakan SourceMonitor . Ini adalah alat gratis yang bagus untuk analisis metrik kode.
Berikut ini kutipan dari situs resmi SourceMonitor:
- Mengumpulkan metrik dalam satu file sumber yang cepat lewat.
- Mengukur metrik untuk kode sumber yang ditulis dalam C ++, C, C #, VB.NET, Java, Delphi, Visual Basic (VB6), atau HTML.
- Termasuk metrik tingkat metode dan fungsi untuk C ++, C, C #, VB.NET, Java, dan Delphi.
- Menyimpan metrik di pos pemeriksaan untuk perbandingan selama proyek pengembangan perangkat lunak.
- Menampilkan dan mencetak metrik dalam tabel dan bagan.
- Beroperasi dalam GUI Windows standar atau di dalam skrip Anda menggunakan file perintah XML.
- Mengekspor metrik ke file XML atau CSV (nilai dipisahkan koma) untuk diproses lebih lanjut dengan alat lain.
Untuk .NET selain NDepend yang merupakan alat terbaik, saya dapat merekomendasikan vil .
Alat berikut dapat melakukan analisis tren:
Sonar jelas merupakan alat yang harus Anda pertimbangkan, terutama untuk proyek Java. Namun itu juga akan menangani kode PHP atau C / C ++, Flex dan Cobol.
Berikut adalah tangkapan layar yang menunjukkan beberapa metrik pada sebuah proyek:
teks alt http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Perhatikan bahwa Anda dapat mencoba alat tersebut dengan menggunakan situs demo mereka di http://nemo.sonarsource.org
NDtergantung untuk .net
Saya juga mencari alat / plugin metrik kode untuk IDE saya tetapi sejauh yang saya tahu tidak ada (untuk gerhana) yang juga menunjukkan grafik kompleksitas selama jangka waktu tertentu. Namun, saya menemukan plugin metrik gerhana , yang dapat menangani:
Dan saat menggunakannya, saya juga tidak melewatkan opsi grafik yang Anda cari.
Saya rasa, jika Anda tidak menemukan plugin / alat yang dapat menangani grafik dari waktu ke waktu, Anda harus melihat alat yang paling cocok untuk Anda dan menawarkan semua informasi yang Anda butuhkan; bahkan jika informasi yang diberikan hanya untuk pembangunan proyek Anda saat ini.
Sebagai catatan tambahan, plugin metrik gerhana memungkinkan Anda mengekspor data ke file eksternal (tautan menuju ke contoh), jadi jika Anda menggunakan alat kontrol sumber, dan Anda harus !, Anda selalu dapat mengekspor data untuk yang spesifik membangun dan menyimpan file bersama dengan kode sumbernya, dengan begitu Anda masih memiliki cara (dasar) untuk kembali ke masa lalu dan memeriksa perbedaannya.
perlu diingat, Apa yang Anda ukur adalah apa yang Anda dapatkan. loc tidak mengatakan apa-apa tentang produktivitas atau efisiensi.
menilai programmer dengan baris kode dan Anda akan mendapatkan .. baris kode. argumen yang sama berlaku untuk metrik lainnya.
otoh .. http://www.crap4j.org/ adalah metrik yang sangat konservatif dan berguna. ia menetapkan kompleksitas dalam kaitannya dengan cakupan.
Tergantung, saya menggunakannya dan yang terbaik untuk tujuan ini. Periksa ini: http://www.codeproject.com/KB/dotnet/NDepend.aspx
Mengenai alat, NDepend dilengkapi dengan 82 metrik kode yang berbeda, dari Jumlah Baris Kode, hingga Peringkat Metode (popularitas), Kompleksitas Siklomatik, Kurangnya Kohesi Metode, Cakupan Persentase (diekstrak dari NCover atau VSTS), Kedalaman Warisan .. .
Dengan sistem aturannya, NDepend juga dapat menemukan masalah dan memperkirakan utang teknis yang merupakan metrik kode yang menarik (jumlah usaha keras untuk memperbaiki masalah vs. jumlah waktu pengembang yang rusak per tahun untuk membiarkan masalah tidak diperbaiki).
Semua metrik ini dijelaskan di sini .
Jika Anda berada di ruang .NET, Developer Express ' CodeRush menyediakan LOC, Cyclomatic Complexity, dan analisis Kompleksitas Pemeliharaan (cukup baik, IMHO) kode secara real-time.
(Maaf tentang tautan Kompleksitas Pemeliharaan; ini akan masuk ke cache Google. Yang asli tampaknya ATM offline).
Atlassian FishEye adalah alat luar biasa lainnya untuk pekerjaan itu. Ini terintegrasi dengan sistem kontrol sumber Anda (saat ini mendukung CVS, SVN, dan Perforce), dan menganalisis semua file Anda dengan cara itu. Analisisnya agak mendasar, dan produk itu sendiri bersifat komersial (tetapi harganya sangat terjangkau, IMO).
Anda juga bisa mendapatkan add-on yang disebut Crucible yang memfasilitasi tinjauan kode rekan.
Untuk Visual Studio .NET (setidaknya C # dan VB.NET) Saya menemukan StudioTools gratis sangat berguna untuk metrik. Itu juga menambahkan sejumlah fitur yang ditemukan di alat komersial seperti ReSharper .
Code Analyzer adalah alat sederhana yang menghasilkan metrik semacam ini.
(sumber: teel.ws )
Untuk Python, pylint dapat memberikan beberapa metrik kualitas kode.
Ada juga plugin metrik kode untuk reflektor , jika Anda menggunakan .NET.
Saya akan merekomendasikan Code Metrics Viewer Exention untuk visual studio.
Sangat mudah untuk menganalisis solusi sekaligus, juga melakukan perbandingan jika Anda membuat kemajuan ;-)
Di depan PHP, saya percaya misalnya phpUnderControl menyertakan metrik melalui phpUnit (jika saya tidak salah).
Perlu diingat bahwa metrik sering kali memiliki kelemahan. Misalnya, pembuat kode yang mengerjakan masalah sepele akan menghasilkan lebih banyak kode dan di sana terlihat lebih baik pada grafik Anda, daripada pembuat kode yang memecahkan masalah yang kompleks.
Jika Anda mencari beberapa analisis tren, apakah itu benar-benar berarti untuk mengukur di luar SLOC?
Bahkan jika Anda hanya melakukan grep untuk menelusuri titik koma dan menghitung jumlah garis yang dikembalikan, yang Anda cari adalah konsistensi dalam teknik pengukuran SLOC. Dengan cara ini pengukuran hari ini dapat dibandingkan dengan pengukuran bulan lalu secara bermakna.
Saya tidak bisa benar-benar melihat apa yang akan diberikan oleh tren Kompleksitas Siklometrik McCabe? Saya pikir CC harus digunakan lebih banyak untuk snapshot kualitas untuk memberikan umpan balik kepada pengembang.
Edit: Ooh. Pikirkan saja beberapa pengukuran lain yang mungkin berguna. Komentar sebagai persentase SLOC dan cakupan tes. Tak satu pun dari Anda ingin membiarkannya tergelincir. Kembali ke retrofit salah satu dari ini tidak pernah seperti tuhan seperti melakukannya "di saat panas!"
HTH.
Bersulang,
rampok
Scitools 'Understand memang memiliki kemampuan untuk menghasilkan banyak metrik kode untuk Anda. Saya tidak memiliki banyak pengalaman dengan fitur metrik kode, tetapi fitur analisis statis secara umum bagus dan harganya sangat wajar. Dukungannya luar biasa.
Project Code Meter memberikan laporan riwayat pengembangan diferensial (dalam format Excel) yang menunjukkan metrik kemajuan pengkodean Anda dalam SLOC, persentase waktu dan produktivitas (perkiraan waktunya didasarkan pada kompleksitas siklus dan metrik lainnya). Kemudian di Excel Anda dapat dengan mudah menghasilkan grafik yang Anda inginkan.
lihat artikel ini yang menjelaskan langkah demi langkah: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
Untuk Java, Anda dapat mencoba alat kami, QualityGate yang menghitung lebih dari 60 metrik kode sumber, melacak semua perubahan sepanjang waktu dan juga memberikan peringkat keseluruhan untuk pemeliharaan kode sumber.