HOME

TheInfoList




In
computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, generating algorithms, Profilin ...
and
software engineering Software engineering is the systematic application of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. The d ...
, software brittleness is the increased difficulty in fixing older
software Software is a collection of instructions Instruction or instructions may refer to: Computing * Instruction, one operation of a processor within a computer architecture instruction set * Computer program, a collection of instructions Music * I ...

software
that may appear reliable, but actually fails badly when presented with unusual data or altered in a seemingly minor way. The phrase is derived from analogies to
brittleness A material is brittle if, when subjected to stress, it fracture Fracture is the separation of an object or material into two or more pieces under the action of stress. The fracture of a solid usually occurs due to the development of cer ...
in
metalworking Metalworking is the process of shaping and reshaping metal A metal (from Greek#REDIRECT Greek Greek may refer to: Greece Anything of, from, or related to Greece Greece ( el, Ελλάδα, , ), officially the Hellenic Republic, is ...
.


Causes

When software is new, it is very malleable; it can be formed to be whatever is wanted by the implementers. But as the software in a given project grows larger and larger, and develops a larger base of users with long experience with the software, it becomes less and less malleable. Like a metal that has been work-hardened, the software becomes a
legacy system In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and soft ...
, brittle and unable to be easily maintained without fracturing the entire system. Brittleness in software can be caused by
algorithm In and , an algorithm () is a finite sequence of , computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always and are used as specifications for performing s, , , and other ...

algorithm
s that do not work well for the full range of input data. A good example is an algorithm that allows a divide by zero to occur, or a
curve-fitting Curve fitting is the process of constructing a curve In mathematics, a curve (also called a curved line in older texts) is an object similar to a line (geometry), line, but that does not have to be Linearity, straight. Intuitively, a curve m ...

curve-fitting
equation In mathematics Mathematics (from Greek: ) includes the study of such topics as numbers ( and ), formulas and related structures (), shapes and spaces in which they are contained (), and quantities and their changes ( and ). There is no ge ...

equation
that is used to
extrapolate In mathematics, extrapolation is a type of estimation, beyond the original observation range, of the value of a variable on the basis of its relationship with another variable. It is similar to interpolation, which produces estimates between know ...

extrapolate
beyond the data that it was fitted to. Another cause of brittleness is the use of
data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...

data structure
s that restrict values. This was commonly seen in the late 1990s as people realized that their software only had room for a 2 digit year entry; this led to the sudden updating of tremendous quantities of brittle software before the year 2000. Another more commonly encountered form of brittleness is in
graphical user interface The graphical user interface (GUI "UI" by itself is still usually pronounced . or ) is a form of user interface In the industrial design Industrial design is a process of design A design is a plan or specification for the construction ...
s that make invalid assumptions. For example, a user may be running on a low
resolution Resolution(s) may refer to: Common meanings * Resolution (debate), the statement which is debated in policy debate * Resolution (law), a written motion adopted by a deliberative body * New Year's resolution, a commitment that an individual make ...
display, and the software will open a
window A window is an opening in a wall A wall is a structure and a surface that defines an area; carries a load; provides security Security is freedom from, or resilience against, potential Potential generally refers to a currently unrealize ...
too large to fit the
display Display may refer to: Technology * Display device, output device for presenting information, including: ** Cathode ray tube, video display that provides a quality picture, but can be very heavy and deep ** Electronic visual display, output device ...
. Another common problem is expressed when a user uses a
color scheme In color theory In the visual arts The visual arts are art forms such as painting Painting is the practice of applying paint Paint is any pigmented liquid, liquefiable, or solid mastic composition that, after applicati ...
other than the
default Default may refer to: Law * Default (law) In law Law is a system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and infl ...
, causing text to be rendered in the same color as the background, or a user uses a
font In metal A metal (from Greek Greek may refer to: Greece Anything of, from, or related to Greece Greece ( el, Ελλάδα, , ), officially the Hellenic Republic, is a country located in Southeast Europe. Its population is approxim ...

font
other than the default, which won't fit in the allowed space and cuts off instructions and labels. Very often, an old code base is simply abandoned and a brand-new system (which is intended to be free of many of the burdens of the legacy system) created from scratch, but this can be an expensive and time-consuming process. Some examples and reasons behind software brittleness: * Users expect a relatively constant user interface; once a feature has been implemented and exposed to the users, it is very difficult to convince them to accept major changes to that feature, even if the feature was not well designed or the existence of the feature blocks further progress. * A great deal of documentation may describe the current behavior and would be expensive to change. In addition, it is essentially impossible to recall all copies of the existing documentation, so users are likely to continue to refer to obsolete manuals. * The original implementers (who knew how things really worked) have moved on and left insufficient documentation of the internal workings of the software. Many small implementation details were only understood through the oral traditions of the design team, and many of these details eventually are irretrievably lost, although some can be rediscovered through the diligent (and expensive) application of
software archaeology Software archaeology or source code archeology is the study of poorly documented or undocumented legacy software implementations, as part of software maintenance Software maintenance in software engineering Software engineering is the systemati ...
. *
Patches Patch may refer to: Places * Patch, St. Louis, a neighborhood in St. Louis, Missouri * Patch, Gwbert, South Ceredigion, Wales People * Patch Adams, a.k.a. Hunter Adams (born 1945), founder of the Gesundheit! Institute * Alexander Patch (18 ...
have probably been issued throughout the years, subtly changing the behavior of the software. In many cases, these patches, while correcting the overt failure for which they were issued, introduce other, more subtle, failures into the system. If not detected by
regression testing Regression testing (rarely, ''non-regression testing'') is re-running functional Functional may refer to: * Movements in architecture: ** Functionalism (architecture) In architecture File:Plan d'exécution du second étage de l'hôtel de ...
, these subtle failures make subsequent changes to the system more difficult. * More subtle forms of brittleness commonly occur in
artificial intelligence Artificial intelligence (AI) is intelligence Intelligence has been defined in many ways: the capacity for abstraction Abstraction in its main sense is a conceptual process where general rules and concept Concepts are defined as abstra ...

artificial intelligence
systems. These systems often rely on significant assumptions about the input data. When these assumptions aren't met – and, because they may not be stated, this may easily be the case – then the system will respond in completely unpredictable ways. * Systems can also be brittle if the component dependencies are too rigid. One example of this is seen in the difficulties transitioning to new versions of dependencies. When one component expects another to output only a given range of values, and that range changes, then it can cause errors to ripple through the system, either during building or at runtime. * Fewer technical resources are available to support changes when a system is in a maintenance phase than there are for a system that is in a development or implementation phase of the
Systems Development Life Cycle In systems engineering Systems engineering is an field of and that focuses on how to design, integrate, and manage s over their s. At its core, systems engineering utilizes principles to organize this body of knowledge. The individual ou ...

Systems Development Life Cycle
(SDLC).


See also

* Brittle system * Software entropy *
Software rot Software rot, also known as bit rot, code rot, software erosion, software decay, or software entropy is either a slow deterioration of software quality over time or its diminishing responsiveness that will eventually lead to software becoming f ...
*
Robustness (computer science) In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of comp ...


References

* * *{{cite journal , title=Power fantasies: the strange appeal of the Y2K bug – Year 2000 transition problem , journal=Reason , year=1999 , author=Virginia Postrel , url=http://findarticles.com/p/articles/mi_m1568/is_11_30/ai_54259936 , access-date=2008-07-25 , archive-url=https://web.archive.org/web/20050910120935/http://www.findarticles.com/p/articles/mi_m1568/is_11_30/ai_54259936 , archive-date=2005-09-10 , url-status=dead Computer errors Computer jargon Software maintenance