Fragile Binary Interface Problem - Symptoms

Symptoms

This leads to a problem in larger programs when they are constructed from libraries. If the author of the library changes the size or layout of the public fields within the object, the offsets are now invalid and the program will no longer work. This is the FBI problem.

Although changes in implementation may be expected to cause problems, the insidious thing about FBI is that nothing really changed, only the layout of the object that is hidden in a compiled library. One might expect that if you change doSomething to doSomethingElse that it might cause a problem, but in this case you can cause problems without changing doSomething, it can be caused as easily as moving lines of source code around for clarity. Worse, the programmer has little or no control over the resulting layout generated by the compiler, making this problem almost completely hidden from view.

In complex object-oriented programs or libraries the highest-level classes may be inheriting from tens of classes. Each of those base classes could be inherited by hundreds of other classes as well. These base classes are fragile because a small change to one of them could cause problems for any class that inherits from it, either directly or from inheriting another class that does. This can cause the library to collapse like a house of cards as many classes are damaged by one change to a base class. The problem may not be noticed as the modifications are being written if the inheritance tree is complex.

Read more about this topic:  Fragile Binary Interface Problem

Famous quotes containing the word symptoms:

    A certain kind of rich man afflicted with the symptoms of moral dandyism sooner or later comes to the conclusion that it isn’t enough merely to make money. He feels obliged to hold views, to espouse causes and elect Presidents, to explain to a trembling world how and why the world went wrong. The spectacle is nearly always comic.
    Lewis H. Lapham (b. 1935)

    In retirement, only money and symptoms are consequential.
    Mason Cooley (b. 1927)

    Not being a K.N. [Know-Nothing] I am left as a sort of waif on the political sea with symptoms of a mild sort towards Black Republicanism.
    Rutherford Birchard Hayes (1822–1893)