Bu sorunun odağı: Bazı yazılımlar, yazılımdaki bir veya daha fazla dahili hataya rağmen "sonuçta başarılı / tatmin edici" bir sonuç elde etme şansını artırmak için "fazladan çalışma" yapar ve bu hatalar meydana geldiğinde daha uzun bir yürütme süresi gerektirir. Sonuç başarılı olursa, tüm bunlar kullanıcının bilgisi olmadan gerçekleşir.
Karmaşık yazılımın tanımı:
- Yaşam süresi boyunca 10'dan fazla geliştiricinin yazdığı (katkıda bulunduğu) kodu içerir ve aynı zaman dilimi içinde yazılmaz
- Her birinde uyarı bulunan 10'dan fazla harici kütüphaneye bağlıdır
- Tipik bir yazılım görevi (kullanıcı tarafından istenen bir sonuç elde etmek için) 10 veya daha fazla giriş parametresi gerektirir; burada birçoğu varsayılan değerlere sahiptir, ancak kullanıcının kontrole ihtiyacı varsa yapılandırılabilir.
- En önemlisi, gerçekleştirilen göreve göre uygun karmaşıklığa sahip olan, yani gereksiz yere karmaşık olmayan yazılım .
Düzenlendi: Karmaşık nedir? Lütfen Kompleks ve Karmaşık arasında büyük bir fark var . (doğrudan bağlantı)
Bu sorudaki Artıklık / Sağlamlığın tanımı :
(Yorumlara dayalı Sağlamlık eklendi)
- Geçerli parametre kümesi kullanıldığında bir yazılım görevi başarısız olursa, farklı parametreleri deneyin.
- Açıkçası, bu "farklı" parametrelerin farklı bir kod yolu kullandıkları ve muhtemelen farklı (umarım daha iyi) bir sonuca yol açacağı bilgisi dahilinde olmalıdır.
- Bazen bu farklı kod yolu, harici kütüphanelerin gözlemlerine dayanarak seçilir.
- Sonunda, gerçekleştirilen asıl görev kullanıcının belirtimlerinden biraz farklıysa, kullanıcı tutarsızlığı ayrıntılandıran bir rapor alır.
- Son olarak, 10 artı yapılandırılabilir parametreler gibi, fazlalık ve raporlama da yapılandırılabilir.
Bu tür yazılımlara örnek:
- Veritabanı Geçişi
- İşletme veritabanı
- Kaynak kontrol veritabanı vb.
- Bir Word belgesi ile bir OpenOffice belgesi, PowerPoint ve OpenOffice Draw, vb. Arasında toplu dönüştürme.
- Tüm bir web sitesinin otomatik çevirisi
- Doxygen gibi yazılım paketinin otomatik analizi, ancak analizin daha güvenilir olması gerektiği (yani yalnızca bir belge aracı değil)
- Paketlerin kaybolabileceği ve bir dizi yeniden denemenin beklendiği ağ iletişimi
Bu soru ilk olarak kasıtlı olarak kötü kodla nasıl başa çıkıyorsunuz?
ancak artık yazılım şişkinliğinin nedenlerinden sadece birine odaklanıyor. Bu soru, yeni özelliklerin eklenmesi gibi yazılım şişkinliğinin diğer nedenlerini ele almamaktadır.
Muhtemel ilgili: