  Models are used in both Software Engineering (SE) and Artificial Intelligence
(AI). SE models may specify the architecture at different levels of abstraction
and for addressing different concerns at various stages of the software
development life-cycle, from early conceptualization and design, to
verification, implementation, testing and evolution. However, AI models may
provide smart capabilities, such as prediction and decision-making support. For
instance, in Machine Learning (ML), which is currently the most popular
sub-discipline of AI, mathematical models may learn useful patterns in the
observed data and can become capable of making predictions. The goal of this
work is to create synergy by bringing models in the said communities together
and proposing a holistic approach to model-driven software development for
intelligent systems that require ML. We illustrate how software models can
become capable of creating and dealing with ML models in a seamless manner. The
main focus is on the domain of the Internet of Things (IoT), where both ML and
model-driven SE play a key role. In the context of the need to take a
Cyber-Physical System-of-Systems perspective of the targeted architecture, an
integrated design environment for both SE and ML sub-systems would best support
the optimization and overall efficiency of the implementation of the resulting
system. In particular, we implement the proposed approach, called ML-Quadrat,
based on ThingML, and validate it using a case study from the IoT domain, as
well as through an empirical user evaluation. It transpires that the proposed
approach is not only feasible, but may also contribute to the performance leap
of software development for smart Cyber-Physical Systems (CPS) which are
connected to the IoT, as well as an enhanced user experience of the
practitioners who use the proposed modeling solution.
