P Stevens, J Whittle, G Booch UML 2003: Proceedings of the 6th International Conference (Springer, 2003) 106–120
The success of object-oriented software modelling depends to a large extent on the ability to create adequate abstractions. While abstraction itself must remain an intellectual process, a modelling language can support or hinder this process by offering different kinds or dimensions of abstraction. For instance, adhering to the object-oriented paradigm UML incorporates classification and generalization as its key abstraction mechanisms. When it comes to taking the complexity out of real systems, however, we argue that classification and generalization alone are ill-suited to produce abstractions that are both manageable and meaningful. As a remedy, we propose to regard composition as an alternative form of abstraction, and find that it naturally comes with properties that are practically needed. We contrast our view of composition with that of it being a special kind of association, with the composition of deployable elements, and with UML’s model management constructs such as packaging.