Abstract
Currently, developing Internet of Things (IoT) applications requires tremendous efforts and a wide range of expertise. This may discourage inexperienced developers entering the IoT development. Filling this gap, we propose a model driven tool called IoTLink that allows inexperienced developers to wire physical devices visually, creating the necessary foundation for their IoT applications. Based on the visual model, IoTLink is able to generate a complete Java project including an extendable Java code. When the java code is compiled and executed, it encapsulates the complexity of communicating with devices and services. It abstracts them as virtual objects that can be accessed through different communication means that are commonly used on the internet such as web service and MQTT. IoTLink was evaluated against java development in a controlled experiment. The result shows that IoTLink was able to outperform classical java development in terms of the development time and users satisfactions.