This paper presents a survey on Software Engineering techniques for the power systems area. Our goal is to identify tools and techniques that can improve the life cycle management of customized applications for Energy Management Systems (SCADA/EMS), by applying a Model Driven Engineering (MDE) approach. We conducted a systematic literature review of published works related to the design and development of such applications. Two main repositories of publications in the area were used as sources and four search strategies were applied. Several works found are not directed to SCADA/EMS, but are related to other power systems applications. We have collected evidence that such applications are more commonly modeled using concepts specific to the power systems' domain, like control theory, rather than traditional techniques and tools from the software industry, like UML. However, few details about the process of transforming those specifications into software artifacts could be gathered. On the other hand, a few published works mention the MDE approach for power systems related applications, although clear methodology or frameworks applicable to the production of fully functional software are still missing. We have also identified promising technologies that need to be evaluated in order to propose such a framework, like domain specific languages, transformation engines and integration interfaces. The appealing MDE concept of automatically transforming design and specification models into programs and other software artifacts has the potential to facilitate the porting and migration of EMS applications from one platform to others. Ultimately, such an approach may help improving software quality and cutting development costs. INDEX TERMS Model driven engineering, SCADA/EMS, software engineering, power systems.