The decomposition of large systems into parts is a general principle of software design. Even more, in the scope of distributed systems a partition of the whole system into distributable components is necessary. Decisions about what constitutes a component of a system are usually either based on the behavior or on the structure of the system. Nevertheless there is a strong mutual influence between both kinds of decomposition. Despite the importance of structural and behavioral decomposition, many modeling notations and languages define the semantics of these concepts rather vague, and this may lead to incorrect implementation. This paper presents the new structuring mechanisms in the object oriented specification language SDL as of November 1999 (SDL-2000). The paper also gives a critical evaluation of these concepts and a comparison with similar approaches in UML and ROOM.