Sağlamlık ve Doğruluk Yarışması [kapalı]


17

Gereksinimlerin Kalitesi paragrafında "Kod Tamamlandı 2" yazısını okudum:

Rakip özellikler arasında - örneğin sağlamlık ve doğruluk arasında kabul edilebilir ödünleşmeler belirlendi mi?

(bu, gereksinimlerin kalitesini kontrol etmek için büyük bir onay kutusu listesinin bir noktasıdır)

Web'de, akademik kitaplarda vb. Sağlamlık ve doğrulukla ilgili birçok tanım buldum.

Örneğin :

"Nesneye Yönelik Yazılım Yapısı, 2. Baskı, Bertrand Meyer, Prentice-Hall, 1997" kitabında:

  • Doğruluk: Bir sistemin şartnamesi, tasarımı ve uygulanmasında [kusurdan] arındırılma derecesi.
  • Sağlamlık: Bir sistemin geçersiz girdiler veya stresli ortam koşullarında çalışmaya devam etme derecesi.

Buna rağmen, bu ikisinin neden ve hangi durumlarda çatışma içinde olabileceği açık değildir.

Sorum şu: bu iki özellik neden rekabet içinde ?


11
Farklı kitaplar bu terimler için farklı tanımlar vermektedir. (Genellikle, sıradan programcılar için yazılan kitaplar akademik yayınlarla aynı tanımları kullanmaz.) Belki de bu kitabın bunları nasıl tanımladığına bir göz atabilirsiniz. (Bazen bu terimler herhangi bir tanımı olmayan kitaplar tarafından kullanılır.)
rwong

"Fonksiyonel olarak gerekli girişlere ek olarak" "beklenmedik girişlerin her türlü zarifçe işliyor" dışında "sağlam" herhangi bir tanımının farkında değilim.
Kaz

Sorumun yeniden açılabilmesi için olabildiğince açık olmaya çalıştım.
overcomer

Yanıtlar:


36

Bu ikisinin birbiriyle çatışabileceği birçok durum vardır. Örneğin, sağlamlık ağır yük altında esneklik içerebilir. Bir talebe yaklaşık (yani yanlış) bir yanıt, kesin (doğru) bir yanıttan çok daha hızlı hesaplanabiliyorsa, sistemin yaklaşık bir sonuç vermesi mi yoksa tamamen iletememesi mi gerektiğini bilmek önemlidir.


17

Bu ikisi sadece dediğin gibi örneklerdir. Aslında, bu türden işlevsel olmayan tüm gereksinimler potansiyel olarak birbiriyle çatışabilir. "Evrim Mimarileri İnşa Etmek" kitabında, bu "araçların" yaklaşık yüzlerce tablosu vardır (bunlar sıklıkla da adlandırılır).

Yazılım mimarlarının bunlardan herhangi biri arasındaki potansiyel çatışmayı dikkate alması bir alıştırmadır. Temel olarak bunlardan hangilerinin projeleriniz için önemli olduğuna karar verebilir ve ardından bu çatışmaları takip edebilirsiniz.

Kesin örneğinize geri dönmek ve robustnessWikipedia'daki terimin tanımına bakmak için :

Bilgisayar biliminde sağlamlık, bir bilgisayar sisteminin yürütme sırasındaki hatalarla başa çıkma becerisi [1] [2] ve hatalı girdilerle başa çıkma yeteneğidir.

Tanımdan da görebileceğiniz gibi, sağlamlık hataları içerir . Öte yandan, doğruluk sahibi olmak istersiniz, bu da temelde hataların olmaması anlamına gelir.

Çatışmayı daha belirgin hale getirmek için, basit bir girdi alanını düşünelim. Doğruluk gereksiniminden, kullanıcı tarafından yapılan hatalı girişlerin reddedilmesi en kolay yoldur. Ancak sağlamlık, tamamen doğru olmayabilir bu girdi ile çalışabilmenizi gerektirir.

Her şeyi kitabınıza getirmek için: şu anda kabul edilebilir değiş tokuş nedir? Diyelim ki, kullanıcının büyüklüğü dahil olmak üzere bir voltaj miktarı girebileceği bilimsel bir uygulama yazıyorsunuz. Doğru girişler "10 kV" veya "200 mV" gibi bir şey olacaktır. Kabul edilebilir değiş tokuşlar arasında "10kV", "10kVolt", hatta sadece "10" gibi girişlere izin verilmesi ve doğruluk amacıyla bunların geçerli bir voltaj değeri ile eşleştirilmesi yer alabilir. Bunun hala bir takas olduğunu ve "her ikisinin de en iyisi" olmadığını unutmayın. Büyük harfle küçük harf arasında düşünün: "10 kV" ve "10 KV" iyi olabilir, ancak "10 mV" ve "10 MV" olmayabilir. Artık milli veya mega olduğundan emin olmadığınız için doğruluk şüpheli hale geliyor,


5

Pratik bir örnek XHTML ve HTML'dir .

  • Tarayıcılar (katı modda) sözdizimi hataları olan XHTML'yi reddeder. Bu, kullanıcıya yanlış sonuçların gösterilmemesini sağlar ve hataları bulmaya yardımcı olur.
  • Tarayıcılar, çok belirgin sorunları olsa bile HTML kodunu ayrıştırmaya devam etmeye çalışır. Bu, içerik biraz karışmış olsa bile kullanıcının sayfayı görüntülemesini sağlar.

Böylece XHTML doğruluğu, HTML sağlamlığı hedefler. Şu anda HTML daha popüler görünüyor, ancak her iki tarafın da iyi argümanları var.

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.