Projeniz için kod ölçümlerini (örneğin kod satırı sayısı, döngüsel karmaşıklık, birleştirme, uyum) hesaplayacak ve zamanla eğilimleri gösteren bir grafik oluşturacak herhangi bir araç var mı?
Projeniz için kod ölçümlerini (örneğin kod satırı sayısı, döngüsel karmaşıklık, birleştirme, uyum) hesaplayacak ve zamanla eğilimleri gösteren bir grafik oluşturacak herhangi bir araç var mı?
Yanıtlar:
En son projemde SourceMonitor kullandım . Kod ölçümleri analizi için güzel ve ücretsiz bir araçtır.
SourceMonitor resmi sitesinden bir alıntı:
- Metrikleri kaynak dosyalar üzerinden hızlı, tek geçişte toplar.
- C ++, C, C #, VB.NET, Java, Delphi, Visual Basic (VB6) veya HTML ile yazılmış kaynak kod için ölçümleri ölçer.
- C ++, C, C #, VB.NET, Java ve Delphi için yöntem ve işlev düzeyi ölçümlerini içerir.
- Yazılım geliştirme projeleri sırasında karşılaştırma yapmak için kontrol noktalarında ölçümleri kaydeder.
- Metrikleri tablolarda ve grafiklerde görüntüler ve yazdırır.
- Standart bir Windows GUI içinde veya XML komut dosyalarını kullanarak komut dosyalarınızın içinde çalışır.
- Metrikleri diğer araçlarla daha fazla işlenmek üzere XML veya CSV (virgülle ayrılmış değer) dosyalarına aktarır.
Yanında .NET için NDepend sadece en iyi araçtır, ben tavsiye edebilir VEL'ye .
Aşağıdaki araçlar trend analizi yapabilir:
Sonar , özellikle Java projeleri için kesinlikle dikkate almanız gereken bir araçtır. Bununla birlikte PHP veya C / C ++, Flex ve Cobol kodunu da işleyecektir.
İşte bir projedeki bazı metrikleri gösteren bir ekran görüntüsü:
alt text http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Aracı http://nemo.sonarsource.org adresindeki demo sitesini kullanarak deneyebileceğinizi unutmayın.
NDepend for .net
Ayrıca IDE'm için bir kod ölçüm aracı / eklentisi arıyordum, ancak bildiğim kadarıyla, belirli bir süre boyunca karmaşıklığın bir grafiğini gösteren hiçbiri (yani tutulma için) yok. Ancak tutulma metrikleri eklentisini buldum , şu işlemleri yapabilir:
Ve onu kullanırken, aradığınız grafikleme seçeneğini de kaçırmadım.
Bence, zamanla grafiği kaldırabilecek herhangi bir eklenti / araç bulamazsanız, size en çok uyan ve ihtiyacınız olan tüm bilgileri size sunan araca bakmalısınız; Verilen bilgiler sadece projenizin mevcut yapısı için olsa bile.
Bir yan not olarak, tutulma ölçümleri eklentisi verileri harici bir dosyaya aktarmanıza izin verir (bağlantı bir örneğe gider), bu nedenle bir kaynak kontrol aracı kullanıyorsanız ve yapmanız gerekir! dosyayı kaynak koduyla birlikte derleyin ve depolayın, böylece zamanda geriye gitmek ve farklılıkları kontrol etmek için (temel) bir yolunuz olur.
Unutmayın, ölçtüğünüz şey elde ettiğiniz şeydir. loc üretkenlik veya verimlilik hakkında hiçbir şey söylemiyor.
bir programcıyı kod satırlarına göre derecelendirirseniz .. kod satırları alırsınız. aynı argüman diğer ölçütler için de geçerli.
otoh .. http://www.crap4j.org/ çok muhafazakar ve kullanışlı bir ölçüdür. kapsamla ilgili karmaşıklığı belirler.
NDepend, kullanıyorum ve bu amaç için en iyisi. Şunu kontrol edin: http://www.codeproject.com/KB/dotnet/NDepend.aspx
NDepend aracı ile ilgili olarak ile ilgili olarak, Kod Satır Sayısı'ndan Yöntem Sıralaması (popülerlik), Döngüsel Karmaşıklık, Yöntemlerin Uyumluluk Eksikliği, Yüzde Kapsamı (NCover veya VSTS'den alınmıştır), Kalıtım Derinliği gibi 82 farklı kod birlikte gelir. .
Onun kural sistemle, NDepend da sorunları bulmak ve tahmin edebilirsiniz teknik borcu ilginç bir kod metrik (düzeltme sorunlarına dev-çabanın miktarı vs dev-zaman miktarı sabitlenmemiş sorunları bildirmek için yılda şımarık).
Tüm bu ölçümler burada detaylandırılmıştır .
.NET uzayda iseniz, Geliştirici Ekspres CodeRush LOC, Cyclomatic Karmaşıklık ve (oldukça mükemmel, IMHO) sağlamaktadır Bakım Karmaşıklık gerçek zamanlı olarak kod analizi.
(Bakım Karmaşıklığı bağlantısı için üzgünüz; Google'ın önbelleğine gidiyor. Orijinalin çevrimdışı ATM olduğu görülüyor).
Atlassian FishEye, iş için başka bir mükemmel araçtır. Kaynak kontrol sisteminizle entegre olur (şu anda CVS, SVN ve Perforce'u destekler) ve tüm dosyalarınızı bu şekilde analiz eder. Yine de analiz oldukça basittir ve ürünün kendisi ticari (ancak çok makul fiyatlı, IMO).
Ayrıca, eş kod incelemelerini kolaylaştıran Crucible adlı bir eklenti de edinebilirsiniz.
Visual Studio .NET için (en azından C # ve VB.NET), ücretsiz StudioTools'u ölçümler için son derece yararlı buluyorum . Ayrıca ReSharper gibi ticari araçlarda bulunan bir dizi özelliği de ekler .
Code Analyzer , bu tür ölçümleri oluşturan basit bir araçtır.
(kaynak: teel.ws )
Python için, pylint bazı kod kalitesi ölçütleri sağlayabilir.
.NET kullanıyorsanız reflektör için bir kod ölçümleri eklentisi de vardır .
Code Metrics Viewer Exention'ı tavsiye ederimVisual Studio için .
Çözümü tek seferde analiz etmek çok kolay, ilerleme kaydettiyseniz karşılaştırma da yapın ;-)
Özellikler hakkında daha fazlasını buradan okuyun
PHP cephesinde, ben mesela inanıyoruz phpUnderControl aracılığıyla ölçümlerini kapsamaktadır PHPUnit (yanılmıyorsam eğer).
Ölçütlerin genellikle hatalı olduğunu unutmayın. Örneğin, önemsiz sorunlar üzerinde çalışan bir kodlayıcı, karmaşık sorunları çözen bir kodlayıcıdan daha fazla kod üretecek ve grafikleriniz üzerinde daha iyi görünecektir.
Bazı trend analizlerinin peşindeyseniz, SLOC'nin ötesinde ölçmek gerçekten bir şey ifade ediyor mu?
Sondaki noktalı virgül için bir grep yapıyor ve geri dönen satırların sayısını saysanız bile, peşinde olduğunuz şey SLOC ölçüm tekniğinde tutarlılıktır. Böylelikle bugünün ölçümü geçen ayın ölçümü ile anlamlı bir şekilde karşılaştırılabilir.
McCabe Cyclometric Complexity'nin bir eğiliminin ne vereceğini gerçekten göremiyorum? Geliştiricilere geri bildirim sağlamak için CC'nin daha kaliteli bir anlık görüntü için kullanılması gerektiğini düşünüyorum.
Düzenleme: Ooh. Yararlı olabilecek birkaç başka ölçüm düşündüm. SLOC yüzdesi ve test kapsamı olarak yorumlar. Hiçbirinin kaymasına izin vermek istemezsin. Bunlardan herhangi birini güçlendirmek için geri dönmek, asla onları "anın sıcağında" yapmak kadar tanrı değildir!
HTH.
şerefe
Rob
Scitools 'Understand , sizin için birçok kod ölçütü üretme yeteneğine sahiptir. Kod ölçüm özellikleri konusunda pek tecrübem yok, ancak genel olarak statik analiz özellikleri güzeldi ve fiyatı çok makul. Destek mükemmeldi.
Proje Kodu Ölçer , SLOC cinsinden kodlama ilerleme ölçütlerinizi, zaman ve verimlilik yüzdesini (zaman tahmini döngüsel karmaşıklığa ve diğer ölçütlere dayanır) gösteren farklı bir geliştirme geçmişi raporu (Excel biçiminde) verir. Daha sonra Excel'de istediğiniz grafiği kolayca üretebilirsiniz.
adım adım açıklayan bu makaleye bakın: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
Java için, 60'tan fazla kaynak kodu metriğini hesaplayan, zaman içindeki tüm değişiklikleri izleyen ve ayrıca kaynak kodun sürdürülebilirliği için genel bir derecelendirme sağlayan aracımız QualityGate'i deneyebilirsiniz .