Lecture Notes in Computer Science vol:3013 pages:197-207
ECOOP edition:17 date:July 2003
The power of objects lies in the flexibility of their interconnection structure. But this flexibility comes at a cost. Because any object can be modified via any alias, object-oriented programs are hard to understand, maintain, and analyse. Aliasing makes objects depend on their environments in unpredictable ways, breaking the encapsulation necessary for reliable software components, thus making it difficult to reason about and optimise programs, obscuring the flow of information between objects, and introducing security problems.
Aliasing is a fundamental difficulty, but we accept its presence. Instead, we seek techniques for describing, reasoning about, restricting, analysing, and preventing the connections between objects and the flow of information between them.