Yazılım entropisi - Software entropy

Yazılım entropisi , ürün tasarımı ve yerleşik tasarım ilkeleri ile tutarlılığı korumak için yeterli özen gösterilmediği takdirde , yazılımın değiştirildikçe sonunda çürüyeceği fikrini kapsayan bir mem'dir . Yaygın kullanım, klasik termodinamik ve istatistiksel fizikte tanımlandığı gibi sadece entropi ile teğetsel olarak ilişkilidir .

Başka bir yön, genellikle işletim sistemleri ve diğer bileşenler yükseltilirken veya kullanımdan kaldırılırken meydana gelen, ortamındaki kaçınılmaz değişikliklerin bir sonucu olarak, aksi takdirde statik yazılımın kalitesinde bir düşüş olarak algılanan şeyde bulunabilir. Kozmik ışınların ve ısının depolama ortamı üzerindeki etkilerini göz ardı edersek, klasik termodinamik entropi fikrine en yakın bu olabiliriz .

Tarih

1992'de Ivar Jacobson ve diğerleri tarafından yazılım mühendisliği üzerine bir çalışma, yazılım entropisini aşağıdaki gibi tanımlar:

Termodinamiğin ikinci yasası , prensipte devletler bu kapalı bir sistem 'in bozukluğu sadece değişmeden veya artış kalabilir, indirgenemez. Bu bozukluğun bir ölçüsü entropidir . Bu yasa, yazılım sistemleri için de makul görünmektedir ; bir sistem değiştikçe, düzensizliği veya entropisi artma eğilimindedir. Bu, yazılım entropisi olarak bilinir .
Yazılım geliştirme içinde benzer teoriler vardır; bkz. ikisi temelde aşağıdaki gibi olan bir dizi yasa öneren Lehman (1985):
  1. Kullanılan bir bilgisayar programı değiştirilecek
  2. Bir program değiştirildiğinde, buna karşı aktif olarak çalışmadığı sürece karmaşıklığı artacaktır.

1999'da Andrew Hunt ve David Thomas , yazılım geliştirmede yazılım entropisinden kaçınmak için kırık pencereleri onarmayı bir metafor olarak kullandılar .

Bilgi teorisi ile ilişkisi

Yazılım kaynak kodu bilgidir

Yazılım yazmanın amacı, etki alanı ve tasarım bilgisini, yürütülebilir hedef biçim(ler)e çevrilebilecek kaynak biçim(ler) halinde kodlamaktır . Bu nedenle, kaynağın ilgili bilgi kümelerinin tutarlı, gürültüsüz bir kodlaması olduğu ölçüde, entropisinin düşük olduğu düşünülebilir. İlk geliştirme ve kabulden sonra, kod, yazılım yaşam döngüsünün bakım aşamasına girer; burada, bu bilgi kümelerinden (etki alanı ve yazılım tasarım ilkeleri) sapma ile temsil edilen kusurların (gürültü) birikmesine izin verilebilir ve böylece entropi artar. yazılım.

Karmaşıklık ilişkisi

Bilinen korelasyonlar olsa da ( yazılım karmaşıklığına bakın ), yazılım karmaşıklığı ile yazılım entropisi arasında doğrudan bir ilişki yoktur . Eşdeğer karmaşıklık seviyelerine sahip herhangi iki yazılım parçası, farklı entropi veya çürüme seviyelerinde var olabilir. Çok basit bir program bile, birden fazla geliştiricinin elinden geçtiği için yüksek düzeyde entropiye maruz kalabilir.

kaçınma

Kodu yeniden düzenleme süreci, yazılım entropisinde adım adım azalmalara neden olabilir.

Ayrıca bakınız

Referanslar