Separation of Concerns is one of the software engineering design principles that is getting more attention from practitioners
and researchers in order to promote design and code reuse. Separation of Concerns (SoC) separates requirements such as synchronization
and scheduling from the core functionality. These requirements are often referred to as crosscutting-concerns. The implementation
of such requirements is scattered throughout the system, which results in the code-tangling problem. Aspect Oriented Programming
provides the user with the ability to modularize, and weave crosscutting-concerns in order to maximize code reusability and
solves the code-tangling problem. Weaving is the process of combining crosscutting concerns with the core functionality. Using
the UML to model and inter-weave these concerns is a craft that is hard to master due to the lack of formal modeling techniques
based on SoC. In this paper we present a formal design methodology to model the system’s concerns based on aspect-orientation.