Abstract-In the environments where heterogeneous devices need to share information, utilize services of each other, and participate as components in various smart applications, it is common to rely on the advantages of the semantic data model and ontologies. Our work extends this approach so that also the process of software development for such environments is ontology-driven. The goals are to raise the level of abstraction of smart application development, to enable development by non-programmers, and to partially automate the development to make it easier and faster. In this paper, we describe the Smart Modeller that consists of 1) a design tool that enables the developer to graphically create a model of a smart space application and 2) a framework that provides core interfaces for extensions supporting both the model and ontology-driven development. These extensions enable: ontology-based creation of model elements, discovery and reuse of both the software components and partial models through a repository mechanism, and generation of executable programming code for models.