Robustness (computer science)

In computer science, robustness is the ability of a computer system to cope with errors during execution[1][2] and cope with erroneous input.[2] Robustness can encompass many areas of computer science, such as robust programming, robust machine learning, and Robust Security Network. Formal techniques, such as fuzz testing, are essential to showing robustness since this type of testing involves invalid or unexpected inputs. Alternatively, fault injection can be used to test robustness. Various commercial products perform robustness testing of software analysis.[3]

Introduction

In general, building robust systems that encompass every point of possible failure is difficult because of the vast quantity of possible inputs and input combinations.[4] Since all inputs and input combinations would require too much time to test, developers cannot run through all cases exhaustively. Instead, the developer will try to generalize such cases.[5] For example, imagine inputting some integer values. Some selected inputs might consist of a negative number, zero, and a positive number. When using these numbers to test software in this way, the developer generalizes the set of all reals into three numbers. This is a more efficient and manageable method, but more prone to failure. Generalizing test cases is an example of just one technique to deal with failure—specifically, failure due to invalid user input. Systems generally may also fail due to other reasons as well, such as disconnecting from a network.

Regardless, complex systems should still handle any errors encountered gracefully. There are many examples of such successful systems. Some of the most robust systems are evolvable and can be easily adapted to new situations.[4]

Challenges

Programs and software are tools focused on a very specific task, and thus are not generalized and flexible.[4] However, observations in systems such as the internet or biological systems demonstrate adaptation to their environments. One of the ways biological systems adapt to environments is through the use of redundancy.[4] Many organs are redundant in humans. The kidney is one such example. Humans generally only need one kidney, but having a second kidney allows room for failure. This same principle may be taken to apply to software, but there are some challenges. When applying the principle of redundancy to computer science, blindly adding code is not suggested. Blindly adding code introduces more errors, makes the system more complex, and renders it harder to understand.[6] Code that does not provide any reinforcement to the already existing code is unwanted. The new code must instead possess equivalent functionality, so that if a function is broken, another providing the same function can replace it, using manual or automated software diversity. To do so, the new code must know how and when to accommodate the failure point.[4] This means more logic needs to be added to the system. But as a system adds more logic, components, and increases in size, it becomes more complex. Thus, when making a more redundant system, the system also becomes more complex and developers must consider balancing redundancy with complexity.

Currently, computer science practices do not focus on building robust systems.[4] Rather, they tend to focus on scalability and efficiency. One of the main reasons why there is no focus on robustness today is because it is hard to do in a general way.[4]

Areas

Robust programming

Robust programming is a style of programming that focuses on handling unexpected termination and unexpected actions.[7] It requires code to handle these terminations and actions gracefully by displaying accurate and unambiguous error messages. These error messages allow the user to more easily debug the program.

Principles

Paranoia
When building software, the programmer assumes users are out to break their code.[7] The programmer also assumes that their own written code may fail or work incorrectly.[7]
Stupidity
The programmer assumes users will try incorrect, bogus and malformed inputs.[7] As a consequence, the programmer returns to the user an unambiguous, intuitive error message that does not require looking up error codes. The error message should try to be as accurate as possible without being misleading to the user, so that the problem can be fixed with ease.
Dangerous implements
Users should not gain access to libraries, data structures, or pointers to data structures.[7] This information should be hidden from the user so that the user does not accidentally modify them and introduce a bug in the code. When such interfaces are correctly built, users use them without finding loopholes to modify the interface. The interface should already be correctly implemented, so the user does not need to make modifications. The user therefore focuses solely on their own code.
Can't happen
Very often, code is modified and may introduce a possibility that an "impossible" case occurs. Impossible cases are therefore assumed to be highly unlikely instead.[7] The developer thinks about how to handle the case that is highly unlikely, and implements the handling accordingly.

Robust machine learning

Robust machine learning typically refers to the robustness of machine learning algorithms. For a machine learning algorithm to be considered robust, either the testing error has to be consistent with the training error, or the performance is stable after adding some noise to the dataset.[8] Recently, consistently with their rise in popularity, there has been an increasing interest in the robustness of neural networks. This is particularly due their vulnerability to adverserial attacks.[9]

Robust network design

Robust network design is the study of network design in the face of variable or uncertain demands.[10] In a sense, robustness in network design is broad just like robustness in software design because of the vast possibilities of changes or inputs.

Robust algorithms

There exist algorithms that tolerate errors in the input.[11]

See also

References

  1. ^ "A Model-Based Approach for Robustness Testing" (PDF). Dl.ifip.org. Retrieved 2016-11-13.
  2. ^ a b 1990. IEEE Standard Glossary of Software Engineering Terminology, IEEE Std 610.12-1990 defines robustness as "The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions"
  3. ^ Baker, Jack W.; Schubert, Matthias; Faber, Michael H. (2008). "On the assessment of robustness" (PDF). Structural Safety. 30 (3): 253–267. doi:10.1016/j.strusafe.2006.11.004. Retrieved 2016-11-13.
  4. ^ a b c d e f g Gerald Jay Sussman (January 13, 2007). "Building Robust Systems an essay" (PDF). Groups.csail.mit.edu. Retrieved 2016-11-13.
  5. ^ Joseph, Joby (2009-09-21). "Importance of Making Generalized Testcases - Software Testing Club - An Online Software Testing Community". Software Testing Club. Retrieved 2016-11-13.
  6. ^ Agents on the wEb : Robust Software. "Building Robust Systems an essay" (PDF). Cse.sc.edu. Retrieved 2016-11-13.
  7. ^ a b c d e f "Robust Programming". Nob.cs.ucdavis.edu. Retrieved 2016-11-13.
  8. ^ El Sayed Mahmoud. "What is the definition of the robustness of a machine learning algorithm?". Retrieved 2016-11-13.
  9. ^ Li, Linyi; Xie, Tao; Li, Bo (9 September 2022). "SoK: Certified Robustness for Deep Neural Networks". arXiv:2009.04131 [cs.LG].
  10. ^ "Robust Network Design" (PDF). Math.mit.edu. Retrieved 2016-11-13.
  11. ^ Carbin, Michael; Rinard, Martin C. (12 July 2010). "Automatically identifying critical input regions and code in applications" (PDF). Proceedings of the 19th international symposium on Software testing and analysis - ISSTA '10. ACM. pp. 37–48. doi:10.1145/1831708.1831713. ISBN 9781605588230. S2CID 1147058.

Read other articles:

Unforgettable BlastNama lain迷与狂SutradaraYan TingluTanggal rilis 22 Mei 2015 (2015-05-22) Durasi100 menitNegaraTiongkokBahasaMandarinPendapatankotorCN¥ 0.71 juta (Tiongkok) Unforgettable Blast (Hanzi: 迷与狂) adalah film komedi Tiongkok tahun 2015 yang disutradarai oleh Yan Tinglu. Film ini dirilis di Tiongkok pada tanggal 22 Mei 2015.[1] Pemeran Jiang Chao Jiang Xueming Wang Xia Yang Qing Luo Jia Jiang Yihong Lei Di Penerimaan Pada tanggal 23 Mei 2015, film …

Wahyu 7Wahyu 13:16-14:4 yang tertulis pada fragmen Papirus 47 dari abad ke-3 M.KitabKitab WahyuKategoriApokalipsBagian Alkitab KristenPerjanjian BaruUrutan dalamKitab Kristen27← pasal 6 pasal 8 → Wahyu 7 (disingkat Why 7) adalah pasal ketujuh Wahyu kepada Yohanes, kitab terakhir dalam Perjanjian Baru di Alkitab Kristen.[1][2] Pengarangnya diyakini adalah Yohanes bin Zebedeus, seorang dari Keduabelas Rasul Yesus Kristus.[3][4][5] Teks Naskah asl…

Georg Büchner. Gambar oleh Alexis Muston 1835 Karl Georg Büchner (17 Oktober 1813 – 19 Februari 1837) adalah seorang dramatis dan penulis prosa Jerman. Saudaranya adalah Ludwig Büchner, seorang dokter dan filsuf. Bakat Georg Büchner umumnya sangat dihormati di Jerman. Ia diyakini bahwa, andakata ia tidak meninggal dalam usia yang masih sangat muda, mungkin ia akan mencapai posisi yang sangat sentral seperti tokoh-tokoh sastra Jerman lainnya seperti Johann Wolfgang von Goethe …

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (مايو 2021) الهجمات الإلكترونية على سريلانكا 2020 كانت سلسلة من الهجمات الإلكترونية على ما لا يقل عن 5 مواقع وطنية سريلانكية مع نطاقات المستوى الأعلى من .gov - com.[1] يُفترض أ…

Wilayah Al Hajlah (dalam Arab: الهجلهcode: ar is deprecated ) merupakan sebuah wilayah berpenghuni di kota suci Mekkah, Arab Saudi yang berada di sebelah selatan Masjidil Haram. Hampir sebagian wilayah ini merupakan lahan kosong yang nantinya digunakan untuk proyek pembangunan perluasan Masjidil Haram, wilayah ini dibatasi oleh Jalan Ibrahim al Khalil di sebelah barat, Jalan Lingkar Kedua di sebelah selatan, Jalan Ajyad di sebelah timur, dan terowongan pasar kecil (nifaq suuq shaghir) di s…

Buku Harian Seorang IstriGenre Drama Roman SkenarioSerena LunaCeritaSerena LunaSutradaraMaruli AraPemeran Zoe Jackson Cinta Brian Antonio Blanco Jr. Rangga Azof Hana Saraswati Penggubah lagu tema Agnez Mo Sandy Canester Lagu pembukaCoz I Love You oleh Agnez MoLagu penutupCoz I Love You oleh Agnez MoPenata musikLaurensius StevenNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode800ProduksiProduserDavid S. SuwartoSinematografiBob Emilio PareraPenyunting Danny A.W. Alex F…

Legislative election in the Soviet Union1962 Soviet Union legislative election ← 1958 18 March 1962 1966 → All 1,443 seats in the Supreme Soviet   First party Second party   Leader Nikita Khrushchev Party CPSU Independent Leader since 13 March 1953 Seats before 1048 330 Seats won 1094 349 Seat change 46 19 Percentage 75.8% 24.2% Chairman of the Council of Ministers before election Nikita Khrushchev CPSU Elected Chairman of the Council of Minist…

English historian of the Renaissance (1899–1981) This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Frances Yates – news · newspapers · books · scholar · JSTOR (March 2023) DameFrances Amelia YatesYates in graduation robes, 1924Born(1899-11-28)28 November 1899Southsea, EnglandDied29 September 1981(1981…

Film genre A biographical film or biopic (/ˈbaɪoʊˌpɪk/)[1] is a film that dramatizes the life of a non-fictional or historically-based person or people. Such films show the life of a historical person and the central character's real name is used.[2] They differ from docudrama films and historical drama films in that they attempt to comprehensively tell a single person's life story or at least the most historically important years of their lives.[original research?] …

Place in Estuaire Province, GabonAnzemAnzemLocation in GabonCoordinates: 0°36′N 10°30′E / 0.600°N 10.500°E / 0.600; 10.500Country GabonProvinceEstuaire ProvinceDepartmentKomo Department This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Anzem – news · newspapers · books · s…

antv Lampung merupakan stasiun televisi daerah antv yang berada di Bandar Lampung. Siaran antv di Lampung dapat disaksikan di kanal 36 UHF (digital). Sejarah Jika ditilik dari sejarahnya, antv merupakan stasiun televisi swasta pertama yang hadir di Lampung, saat itu sebagai stasiun televisi lokal. Izin siaran stasiun televisi ini didapat 17 September 1991,[1] dan dua tahun kemudian, pada 1 Januari 1993, ANteve memulai siaran percobaannya (di Lampung) selama 5 jam dengan menelan biaya Rp …

Papan selamat datang dalam dua bahasa yakni bahasa Manx dan Inggris Douglas (bahasa Manx: Doolish) adalah ibu kota dari Pulau Man, sebuah dependensi mahkota Britania Raya yang terletak di Selat Irlandia. Kota ini merupakan pusat bisnis, keuangan, perhubungan, perbelanjaan, dan hiburan pulau tersebut. Di kota ini juga terletak Pemerintah Pulau Man. lbsIbu kota negara di EropaEropa TimurBaku, Azerbaijan† · Bukares, RumaniaUE · Kyiv, Ukraina · Kishinev, Moldova…

Administrative division in southwestern Japan during the Edo period (1636-1871) Komatsu Domain小松藩Domain of Japan1636–1871 Mon of the Hitotsuyanagi clan CapitalKomatsu jin'yaArea • Coordinates33°53′33.33″N 133°07′07.75″E / 33.8925917°N 133.1188194°E / 33.8925917; 133.1188194 Historical eraEdo period• Established 1636• Abolition of the han system 1871 Contained within • ProvinceIyo Today part ofEhime Prefecture …

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Bruce E. MelnickLahir5 Desember 1949 (umur 74)New York City, ASStatusPurnawirawanKebangsaanAmerika SerikatNama lainBruce Edward MelnickAlmamaterGeorgia TechUnited States Coast Guard Academy, B.S. 1972University of West Florida, M.S. 1975Pekerja…

This article is about the bolt-action rifle. For the semi-automatic pistol, see Pistole vz. 24. Bolt-action rifle Vz. 24 TypeBolt-action riflePlace of originCzechoslovakiaService historyUsed bySee UsersWarsConstitutionalist RevolutionChaco WarEcuadorian–Peruvian WarSpanish Civil WarSecond Sino-Japanese WarWorld War IIChinese Civil WarBiafran WarProduction historyDesigned1924ManufacturerZbrojovka BrnoProduced1924–1942SpecificationsMass4.2 kg (9.2 lb)Length1,100 m…

American prelate His Excellency, The Most ReverendWilliam Aloysius O'ConnorBishop of Springfield in IllinoisChurchRoman Catholic ChurchSeeDiocese of Springfield in IllinoisIn officeMarch 7, 1949 toJuly 22, 1975PredecessorJames Aloysius GriffinSuccessorJoseph Alphonse McNicholasOrdersOrdinationSeptember 24, 1927by George MundeleinConsecrationMarch 7, 1949by Samuel StritchPersonal detailsBornDecember 27, 1903Chicago, Illinois, USDiedNovember 14, 1983(1983-11-14) (aged 79)Springfield…

Symphonic poem by Franz Liszt Festklänge, S. 101, is the seventh symphonic poem by Franz Liszt. Written in 1853 during Liszt's time in Weimar, it was first performed on 9 November 1854 and was published in 1857. The German title means festive sounds, and Liszt had intended the piece to be played at his wedding to Princess Carolyne zu Sayn-Wittgenstein.[1] References ^ Godfrey, Margaret. Festklänge (I & II), symphonic poem for orchestra, S. 101. AllMusic. Retrieved 28 March 2014. Ex…

How individuals perceive and react to the social world Part of a series onSociology History Outline Index Key themes Society Globalization Human behavior Human environmental impact Identity Industrial revolutions 3 / 4 / 5 Social complexity Social construct Social environment Social equality Social equity Social power Social stratification Social structure Perspectives Conflict theory Critical theory Structural functionalism Positivism Social constructionism Symbolic interactionism Branches Agin…

299th Infantry DivisionActiveMarch 1940 – February 1945Country Nazi GermanyBranch Heer (Wehrmacht)TypeInfantrySizeDivisionEngagementsSecond World War Battle of France Eastern Front Military unit The 299th Infantry Division (German: 299. Infanterie-Division) was a German Army infantry division in World War II. It fought France and the Russian Front until February 1945. Operational history The 299th Infantry Division was formed in March and April 1940 from men from Hesse and Thuringia. The …

Komando Resor Militer 164/Wira DharmaAktif26 Maret 1979–30 Maret 2000[1]NegaraIndonesiaCabangTNI Angkatan DaratTipe unitKomando Resor MiliterBagian dariKodam IX/UdayanaMarkasDili, Timor TimurMotoWira Dharma Komando Resor Militer 164/Wira Dharma (atau Korem 164/Wira Dharma) merupakan Bekas Satuan Teritorial yang bermarkas di Dili, Timor Timur dan berada di bawah Komando Kodam IX/Udayana.[2] Saat ini bekas Markas Korem 164/Wira Dharma digunakan sebagai Markas Commando Geral Polic…

Kembali kehalaman sebelumnya