Tekrar Kullanımı Ölçmek

Bir yazılımevinin ve birey olarak programcıların gelişimi, geçmişte yapılan projelerin ne kadarının yeni projelerde tekrar kullanılabildiğinin ölçülmesiyle görülebilir. Programcılıkta 90′lardan sonra hızla nesne tabanlı dillerin yaygınlaşmasının temel nedenlerinden biri, veri ve metodları ortak sınıflarda toplamak ve doğru tasarlanmış sınıfları tekrar kullanmak yoluyla projeleri daha hızlı geliştirebilmektir. Uzun süre kullanılmış, test edilmiş, ve iyi tasarlanmış sınıflar daha az hata barındırır, ve zaman kazandırır. Bu sayede verimlilik arttırılabilir.

İyi bir yazılım evinin, çalıştığı alanla ilgili böyle bir çalışmasının ve birikiminin olması yeni işleri daha hızlı çıkarabilmesine olanak sağlar. Örneğin web tabanlı projeler geliştiren bir yazılım evinin yazılım iskeleti (framework) hazırlaması veya mevcut iskeletleri çalışma alanına özelleştirmesi gibi.

Bununla ilgili Dr. Dobb’s Journal‘de bir yazı okudum. Yazar, önce yazılımda tekrar kullanımın önemini takdir ettikten sonra, bunu ölçebilecek bir araçtan ve ölçümlerden çıkarılabilecek yorumlardan bahsetmiş.

Programcı etkinliğini ölçmek için pek adilce olmasa da yaygın olarak kullanılan Etkin Kaynak Kodu Satır Sayısı‘na (effective source lines of code – ESLOC) dayalı bu yönteme göre yeni projede eski projelerden kullanılan, veya eski projelerdeki sınıflardan miras alınarak yaratılan sınıfların satır sayıları tekrar kullanılan kodu hesaplamada kullanılıyor.

Bu işi yapan ve yazıda bahsedilen ESLOC Scanner adlı programa şuradan ulaşabilirsiniz. Programın deneme sürümünü elimizdeki biten projeler üzerinde denedim. Elde ettiğim tekrar kullanım oranları şöyle:

1. Proje (Ö): %23,77
2. Proje (S): %38,54

Programın verdiği başka bilgiler de var. Örneğin hangi sınıfların ne kadar sıklıkta tekrar kullanıldıkları, adam saat satır sayısı bilgileri gibi. Bizim sonuçlardan gözlediğimiz artış, yeni projeleri daha hızlı ve daha az hatayla üretebilme bilgilesiyle de örtüşüyor.

Tersi durumu gözlemiş olsaydık..? Yazılım geliştirme süreçlerimizi gözden geçirmemiz gerekirdi. Acaba tüm yeni projeler birbirinden tamamen farklı mı? Yoksa yeni yazılımları geliştirirken elde bulunan kodlar kullanılamayacak kadar kötü mü tasarlanmış/kodlanmış? Bu soruların cevapları süreçleri geliştirirken, verimliliği de arttırmayı sağlayacaktır.

Bu kategori altındaki diğer yazılar: Yazılım

Yorumlayın: