Observer pattern using aspect-oriented programming
generative programming - methods , tools and applications .