Research interests

Model-integrated Computing (MIC). MIC is a variant of model-driven software development that emphasizes the use of domain-specific languages in software (and systems) development. We use models to create an abstract representation of the system, then these models are analyzed and verified, transformed into other models and possibly executable code that runs on a computational platform. MIC uses a language-oriented approach and it is based on the philosophy that every problem domain has its own, domain-specific language that allows easy representation of problems and systems, as well as reasoning about the problems. Research problems in MIC include: definition of the syntax and semantics of domain-specific modeling languages, techniques for transforming models, technology for verifying models, correctness of model transformations, etc.

Model-based design tools. Model-based design cannot be imagined without the use of tools, conceptual or computational. These tools often need to be meta-programmable (i.e. adaptable to different languages of models), and they include modeling environments, analysis tools, generation and synthesis tools, repositories, and so on. Design tools allow us to create, modify, verify, analyze, and manage designs; and they often form sophisticated toolchains that are dedicated to specific design processes. Research questions here include: how to construct meta-programmable tools, how to build model transformation tools, how to use the formal definition of semantics of languages in the tools, and how give precise definitions to what the tools do.

Model-based design of embedded systems. Perhaps the most challenging area of today's computing is that of embedded systems that tightly couple the computational to the physical. The use of models and model-based design is an accepted paradigm in embedded systems development, but this concept is not fully realized yet. For instance, we don't have the level of design automation for embedded systems and software as we have for very large-scale integrated circuits. Research questions in this area include: specific modeling techniques for embedded systems, model-based code generation, specialties of model transformations for embedded system tools, modeling platforms and models of computations, etc.

Tool integration platforms and technologies. There is no single tool that could solve all the problems in a complex, model-based development process. Hence the tools need to be integrated (to form a toolchain), and the models and their connections are the natural form to facilitate this integration. Especially for large-scale, distributed development, integration of heterogeneous tools, managing large model-bases, and keeping track of complex dependencies is not a fully solved problem.