CONQUERING SOFTWARE ARCHITECTURE : A COMPREHENSIVE STRATEGY