The composition model in the Unified Modeling Language, version 2 (UML 2), is a major upgrade to the familiar “black diamond” composition of earlier versions. It supports connections between parts at the samelevel of decomposition, in addition to the usual part-whole associations. Complex networks of entities can be represented within a single class, inherited to subclasses, with links maintainedbetween objects playing parts at runtime. The model also supports connections between parts of parts (ports), enabling more detailed structural modeling and message forwarding,which increases independence of reused applications and provides better plug-compatibility for components.