Aspect-Oriented Programming (AOP) can help to clearly separate concerns. But it´s kinda cumbersome to do without a tool. At least if you want to do it along the beaten path of object orientation. But things become much more easy, when you switch your thinking to a different paradigm at least during high level design.
In a three part series on AOP with Event-Based Components (EBC) I´ve describe how this can be done. Easy AOP without a tool is possible. And it even makes your designs more understandable, I believe.
Part I introduces a scenario to apply AOP to. It´s a text file indexing application. In Part II I show how to beef up the application with simple aspects like logging, exception handling and validation. Then in Part III I use AOP to make the whole application multi-core friendly. Some parts become asynchronous, other´s are run in parallel. And the domain logic stays oblivious to that.
Come on over an read about EBC and AOP on The Architect´s Napkin…