Abstract. In Aspect-Oriented Programming we decompose a problem into a number of functional components as well as a number of aspects and then we compose these components and aspects to obtain system implementations. The goal is to achieve an improved separation of concerns in both design, and implementation. Our work concentrates on the aspectual decomposition of concurrent object-oriented systems. Following the component hierarchy within the objectoriented programming paradigm we categorized aspects as intra-method, intra-object and intrapackage according to their hierarchical level of cross-cutting. We achieve composition of concerns, through the use of an object we call the moderator that coordinates the interaction of components and aspects while preserving the semantics of the overall system. Since aspects can cut across components at every level, we view the moderator is a recurring pattern from intra-method to intra-package. Our design framework provides an adaptable model and ...