A/Prof Thomas Kühne
School of Engineering and Computer Science
Teaching in 2016
COMP 103 - Introduction to Data Structures and Algorithms
COMP 304 - Programming Languages
SWEN 223 - Software Engineering Analysis
SWEN 424 - Model-Driven Development
Research InterestsMy research interests include programming languages, model-driven development, metamodeling, and multi-level modeling. I am currently working on the following projects:
- Object-Oriented Metamodeling is a technological base resting on the columns of Object-Orientation, Modeling, and Meta-Levels. We are exploring the conceptual foundations and principles required for an optimal combination, enabling systematic and sound object-oriented modeling in multi-level modeling architectures. Areas of concern include meta-formats and meta-based tools as well as UML (Unified Modeling Language) metamodeling problems, and solutions.
- Domain Customized Languages: Modeling is gaining increasing importance and the question of which modeling language is the best is brought into focus more than ever. Two diverging views argue that standardisation is required as an enabler of communication on the one hand, and that domain-specificity is necessary to avoid impendence mismatch on the other hand. The concept of a Domain-Customized Language is designed to provide the optimal compromise, thus reconciling the two above mentioned camps as much as possible.
- Architecture Stratification: This research strand is concerned with the issues involved in defining useful architectural system descriptions for complex software systems. The underling principle is the idea of identifying distinct architectural viewpoints, known as strata, each capturing different concerns of the system respectively.
- Multi-Level Programming: Based on the observation that the traditional object-oriented paradigm limits modelers and programmers to only two-levels (classes and objects) and hence forces them to introduce accidental complexity in their models and programs, DeepJava adds an unbounded number of metalevels to Java objects and classes. Classes and their (potentially new) features may be created at runtime just like objects.