In this paper we argue that the explicit capture of crosscutting concerns in code should be the natural consequence of good and clean modularity in analysis and design, based on fine-grained (multidimensional) functional decomposition, and not the result of a corrective measure due to a tangled implementation. Aspect-Oriented Software Development (AOSD) is an emerging paradigm that builds on the foundations of established paradigms while providing additional principles to address their limitations in dealing with crosscutting concerns. The main theme of this paper is how to accommodate AOSD into existing software development processes by adapting or extending established object-oriented development techniques to an aspect-oriented context. Key Words Crosscutting concerns, aspect-oriented software development.