In this paper we propose a technology for model-based software development. The technology separates domain engineering and application engineering and automates the actual executable code generation. This approach has been used extensively for simulations and we believe it is also applicable for more general software development.