To meet the challenges from less standardized and highly varied business processes in small-to-medium enterprises, limitations of current software customization approaches are pointed out. Based on traditional software customization techniques and methodologies, such as service-oriented architecture and model-driven architecture, the Service Model Driven Architecture (SMDA) is proposed with the concept of service model and service template. A framework of SMDA-based software customization is presented, and the processes to abstract service models and build service templates are discussed in details. An example is finally presented to demonstrate the effectiveness and practicability of the approach by quickly reconfiguring the service templates to generate enterprise systems.