As in many other areas, software is the functional and innovation driver in industrial automation. The discussions surrounding Industry 4.0 with the aim of networked and adaptable production have reinforced this. Existing programming languages for control software are reaching their limits. As a result, control software development is the main cost driver in industrial automation. A domain-specific modeling language has been designed and defined in the standard IEC 61499 to ensure that the complexity and effort required by humans remains manageable. The language takes into account the requirements of the domain with regard to real-time capability & determinism, interaction with sensors and actuators, specification of processes,synchronization, networked devices & decentralized intelligence as well as dynamic reconfiguration. The goal of this presentation is to show the necessity of software modeling in industrial automation and how the domain-specific modeling language of IEC 61499 can support this. An overview of the core elements of IEC 61499 and how they can be used for the development of distributed control applications will be given. However, the open points of IEC 61499 will also be pointed out and discussed. In addition to IEC 61499, current research findings will be presented to show how control system development can be made even more efficient. This includes design patterns to increase reusability, code analysis to identify poorly maintainable program parts, detection of duplicates and user-friendly tools. The language alone is not enough to develop control software efficiently.