Lots of people have worked on handling variations. I have extended this to methods and patterns in software architectures. You can visit my website for more info on this at http://www.arsanjani.org . --AliArsanjani