  The Internet of things (IoT) is increasingly prevalent in domains such as
emergency response, smart cities and autonomous vehicles. Simulation plays a
key role in the testing of IoT systems, noting that field testing of a complete
IoT product may be infeasible or prohibitively expensive. In this paper, we
propose a domain-specific language (DSL) for generating edge-to-cloud
simulators. An edge-to-cloud simulator executes the functionality of a large
array of edge devices that communicate with cloud applications. Our DSL, named
IoTECS, is the result of a collaborative project with an IoT analytics company,
Cheetah Networks. The industrial use case that motivates IoTECS is ensuring the
scalability of cloud applications by putting them under extreme loads from IoT
devices connected to the edge. We implement IoTECS using Xtext and empirically
evaluate its usefulness. We further reflect on the lessons learned.

Software Engineering