Content deleted Content added
KolbertBot (talk | contribs) m Bot: HTTP→HTTPS (v475) |
Move hatnote text to See also. {{see also}} is not suitable for the top of an article |
||
(28 intermediate revisions by 24 users not shown) | |||
Line 1:
{{
{{Complex systems}}
In [[computer science]], '''robustness''' is the ability of a computer system to cope with [[Error message|errors]] during [[Execution (computing)|execution]]<ref>{{cite web|url=http://dl.ifip.org/db/conf/pts/testcom2005/FernandezMP05.pdf |title=A Model-Based Approach for Robustness Testing |website=Dl.ifip.org |
== 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.<ref name="MIT">{{cite web|url=http://groups.csail.mit.edu/mac/users/gjs/6.945/readings/robust-systems.pdf
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.<ref name="MIT" />
== Challenges ==
Programs and software are tools focused on a very specific task, and thus
Currently, computer science practices do not focus on building robust systems.<ref name="MIT" /> Rather, they tend to focus on [[scalability]] and [[Algorithmic efficiency|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.<ref name="MIT" />
Line 17:
=== Robust programming ===
Robust programming is a style of programming that focuses on handling unexpected termination and unexpected actions.<ref name="robust_programming">{{cite web|url=http://nob.cs.ucdavis.edu/bishop/secprog/robust.html |title=Robust Programming |website=Nob.cs.ucdavis.edu |access-date
==== Principles ====
===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.<ref>{{cite web |author=El Sayed Mahmoud|title=What is the definition of the robustness of a machine learning algorithm? |url=https://www.researchgate.net/post/What_is_the_definition_of_the_robustness_of_a_machine_learning_algorithm |
===Robust network design===
Robust network design is the study of network design in the face of variable or uncertain demands.<ref>{{cite web|url=http://www-math.mit.edu/~olver/thesis.pdf
=== Robust algorithms ===
There exist algorithms that tolerate errors in the input.<ref>{{cite book |last1=Carbin |first1=Michael |title=Proceedings of the 19th international symposium on Software testing and analysis - ISSTA '10 |last2=Rinard |first2=Martin C. |chapter=Automatically identifying critical input regions and code in applications |date=12 July 2010 |pages=37–48 |doi=10.1145/1831708.1831713 |publisher=ACM |isbn=9781605588230 |s2cid=1147058 |chapter-url=http://people.csail.mit.edu/rinard/paper/issta10.pdf}}</ref>
==See also==
*[[Fault tolerance]]
* [[Defensive programming]]
* [[Non-functional requirement]]
Line 44 ⟶ 46:
{{Reflist}}
{{Software quality}}
{{Complex systems topics}}
[[Category:Reliability engineering]]
[[Category:Software quality]]
|