Yazılım çürüklüğü öncelikle performans mı, yoksa dağınık kod mu?


22

Wikipedia'nın yazılım çürüklüğü tanımı , yazılımın performansına odaklanmaktadır. Bu alıştığımdan farklı bir kullanım; Kodun temizliği ve tasarımı açısından, kodun tüm standart kalite özelliklerine sahip olması açısından çok daha fazla düşündüm: okunabilirlik, bakım kolaylığı, vb. çünkü kimse neler olduğunu bilmiyor. Ancak, yazılım çürüğü teriminin performansa özel bir atıf var mı? ya da kodun temizliği anlamına geldiğini düşünmekte haklı mıyım? ya da bu, belki de, terimin ortak kullanımda olduğu kavramının çoklu algılanması durumudur - kullanıcının bakış açısından, performansla ilgili; Fakat yazılım ustası için, kodun nasıl okunduğuyla daha özel olarak yapması gerekir?


1
Vikipedi, 2'si performans, Kullanılmayan kod ve Nadiren güncellenen kod ile ilgili olmayan 3 neden listeleniyor ...
Izkata

2
"Yazılım zaman içerisinde" performansta "bozulabilir ve genel olarak" eski "olarak adlandırılan ve hatalar biriktiren bir şey haline gelebilir, aynı sonuçlardan bazılarına sahip olsa da, genellikle yazılım çürümesi olarak kabul edilmez.” Yazılım çürümesinin performansla ilgisi olmadığı açık.
zzzzBov

1
Tüm wikipidia sayfasındaki tek kırmızı renklendirme özelliği, relibale kaynaklara referans vermeyen uyarı etiketini gösterir.
mattnz 13:12

Yanıtlar:


39

Bu terim performansla ilgili değil, en azından onu gördüğüm hiçbir yerde yok.

Özellikle iyi bakılmayan ve ... kirli hale gelen kodla ilgili ... çürümüş. Değişiklik yapıldığı sırada tasarımı güncellenmemiş kodla ilgilidir ve okunması ve anlaşılması zordur.


1
Performansa atıfta bulunduğunu duydum: örneğin, "Windows çürüğü", zaman içinde daha yavaş bir hale geldiğinde her seferinde Windows'u yeniden biçimlendirmeniz ve yeniden kurmanız gerektiğini hissediyor.
Carson63000

3
Evet ... ama "yazılım çürüklüğü" ve "pencere çürüklüğü" farklı terimlerdir.
Stephen C

4
@Oded - analoji kirli değil. Eski binalarda meydana gelen çürümeyle, onları yapısal olarak sağlam bırakır.
Stephen C

18

Kabul edelim. "Yazılım çürüğü" iyi tanımlanmış bir teknik kavram değildir. Yazılım zayıf tutulduğunda ne olduğunun önemsiz bir açıklamasıdır.

Wikipedia sayfası bir görünümü temsil ediyor, ancak açıkça alternatif görüşler var. Ve farklı görüşlerin, görüşlerini taşıyan kişinin farklı önceliklerini ve kaygılarını yansıttığını söyleyebilirsiniz:

  • Yazılımı hızlı bir şekilde yapmaya odaklanan bir kişi, performanstaki "yazılım çürüklüğü" kanıtlarını aramaya meyilli olacaktır.

  • Tasarım / mimariye odaklanan biri (örneğin yeni işlevsellik eklemek veya işlevsellik hatalarını düzeltmek zorunda oldukları için), bu açıdan "yazılım çürümesini" görecektir.

Ve kimin bakış açısının daha doğru olduğunu söylemek gerçekten yararlı değil. (Turkuazın daha yeşil mi yoksa mavi mi olduğunu tartışmak gibi bir şey.)


1
OP'nin görev alanı wikipedia ile ilgili olduğu için sunarım: Turkuaz (renkli) - "Yeşil", ancak "mavi tonu". Bu yüzden argümanınızın sağlam olduğunu düşünüyorum :).
Ben Lee

6

"Yazılım çürüğü" teriminin genellikle eldeki göreve uygunluğu ifade ettiğini söyleyebilirim. Hata düzeltmeleri katmanındaki katman, yeni özellikler ve küçük düzeltmeler nedeniyle yazılım amaçlanan görevi için daha az uygun hale gelebilir. Birlikte ele alındığında, bunlar hem sürdürülebilirliği hem de performansı olumsuz etkileyebilir. Ayrıca, kuruluşun ihtiyaçları zaman içinde büyük olasılıkla değişecektir ve yazılım hiçbir zaman gerçekten tasarlanmadığı rollere zorlanabilir. Tüm bu faktörler, yazılımın kuruluşun gereksinimlerine daha az uygun hale gelmesine neden olur ve bu, yazılımı sürdürmek için harcanan çabayla bile olabilir.


6

Wikipedia yazılım çürümesinin ve kod çürüğünün aynı olduğunu söylüyor Katılmıyorum.

Kod çürümesi, kodda gittikçe daha fazla değişiklik yapıldığı için kademeli olarak okunabilirlik ve bakım kaybıdır.

Yazılım çürümesi, yazılım bir ortam emülatöründen diğerine taşınırken yavaş yavaş performans kaybıdır. Bunun bir örneği, emülatörlerde çalışan tüm Data General PDP yazılımıdır. Aslında, yazılım değil çürüyen ortam.


+1. wikipedia kod çürüklüğü ile eşit yazılım çürüklüğü. Bunu düzenlemeliyiz. Orada daha fazla yazılım çürümesi. Bir örnek GUI'yi kullanılamaz / kullanması zor. Tarihi geçmiş / yanlış belgeler de katkıda bulunur.
Jayan

3

Yazılım aslında kötü gitmiyor, eskimiyor, yıpranıyor veya geleneksel anlamda “çürüyor”

Yazılımın çalıştığı ortam değişmezse, yazılım esas olarak sonsuza dek sürecektir. Bu yüzden, birileri bir kütüphanenin "ölü" olup olmadığını sorduğunda öfkeleniyorum, çünkü yazar son 5 dakikada bir güncelleme yapmadı (etki için sadece biraz abartıyor).

Ama çevre genellikle yapar değişikliği; işletim sistemleri yamalı ve güncellenir, bilgisayarlar daha güçlü olanlarla değiştirilir ve yazılımın bağlı olabileceği yeni programlar (Internet Explorer, aygıt sürücüleri veya diğer kitaplıklar gibi en son sürüm gibi) yüklenir. Bu nedenle, bu değişiklikleri dikkate almak için yazılımın güncellenmesi gerekir.

Önemli ölçüde güncellenmeden veya sürdürülmeden kelimenin tam anlamıyla yıllarca sürekli ve güvenilir bir şekilde çalışan yazılım sistemleri vardır. Banka işlemlerini idare eden ana bilgisayarlarda çalışan COBOL yazılımı akla geliyor (hepsi 1999'da Y2K ile başa çıkmak için değiştirilmek zorunda kalsa da).

Wikipedia'nın performans vurgusu noktasını kaçırıyor gibi görünüyor; Birçok yazılım uygulaması , daha yeni bir ortama yüklendiklerinde performans artışı sağlar. Wikipedia makalesi aslında yazılımın şişmesiyle daha fazla ilgileniyor gibi görünüyor .


Yazılım şişmesi - evet, iyi nokta. Soruyu sorduğum terimi anladığımda, yazılım çürümesi, kod temizleme ve tasarım standartları alt düzeyde olan bir grup geliştirici tarafından değiştirilmeye devam ettiği gerçeğiyle ilgiliydi.
Kazark

3

"Yazılım çürüklüğü" - çok olduğu belirsiz süreli ve herkese şey çeşitli anlamına gelebilir, hem de, kavramın sizin algı nasıl bağlı olarak, ne görünüm açısı .

Wikipedia'da Yazılım rot'taki tanım, bazı bireyler tarafından da yazıldığı gibi bir standart oluşturmaz. Bu terimin çeşitli anlamlara sahip olduğunu ve hakemli olduğu belirli alanlara bölünmesi gerektiğini düşünüyorum.

  • Programcılar bunu, anti-paternlere sahip, adlandırma ve kodlama stilinde tutarlılık olmayan, sürdürülemez bir kod tabanı olarak anlayabilir.
  • Sistem yöneticileri bunu kötü performans, hafıza sızıntıları ve cehennem dolu olarak anlayabilir. bakım.
  • Son kullanıcı bunu çok karmaşık, sezgisel olmayan, çalışması zor bir yazılım olarak anlayabilir.

2

Yazılım çürümesini her zaman, yazılımı bir süre kullanmadığınızda ortaya çıkan bir koşul olarak düşünmüştüm. Her nasılsa, yazılım imkansız olduğu bir duruma dönüşüyor. Sonra onu oluşturabileceğiniz bir noktaya ulaştığınızda, daha önce olduğu gibi girişler ve çıkışlarla çalışmaz. Neredeyse kod dijital olarak saklansa bile aslında biçiminde bozuluyormuş gibi.


1
Çünkü çevre (derleyici, kütüphaneler veya her neyse) değişti? Wikipedia bunu tartışıyor.
Kazark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.