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:

    Protest, evasion, merry distrust, and a delight in mockery are symptoms of health: everything unconditional belongs in pathology.
    Friedrich Nietzsche (1844–1900)

    For anyone addicted to reading commonplace books ... finding a good new one is much like enduring a familiar recurrence of malaria, with fever, fits of shaking, strange dreams. Unlike a truly paludismic ordeal, however, the symptoms felt while savoring a collection of one man’s pet quotations are voluptuously enjoyable ...
    M.F.K. Fisher (1908–1992)

    Social movements are at once the symptoms and the instruments of progress. Ignore them and statesmanship is irrelevant; fail to use them and it is weak.
    Walter Lippmann (1889–1974)