MASTERING SOFTWARE ARCHITECTURE : A COMPREHENSIVE METHOD