|
|
|
The third
challenge is what I call the crystal ball problem. At first, Dr. Jones can get a clear idea of the program’s
structure by examining the program text.
|
|
But as the
programmer makes changes, the design evolves away from the original program
and it becomes more and more difficult to predict the dependency structure of
the program. This is because some
refactorings can result in multiple possible dependency structures.
|
|
For example,
supposed the programmer wanted to decompose the Vehicle class into Writable,
an interface for objects that can be written to files.
|