Research Topics of Thomas Kühn
Research Training School
Software with long life cycles is faced with continuously changing contexts. New functionality has to be added, new platforms have to be addressed, and existing business rules have to be adjusted. In the available literature, the concept of role modeling has been introduced in different fields and at different times in order to model context-related information, including - above all - the dynamic change of contexts. However, often roles have only been used in an isolated way for context modeling in programming languages, in database modeling or to specify access control mechanisms. Never have they been used consistently over all levels of abstraction in the software development process, i.e. over the modeling of concepts, languages, applications, and software systems. Only then, software can be called consistently context-sensitive.
The central research goal in this program is to deliver proof of the capability of consistent role modeling and its practical applicability. Consistency means that roles are used systematically for context modeling on all levels of the modeling process. This includes the concept modeling (in meta-languages), the language modeling, and the modeling on the application and software system level. The subsequent scientific elaboration of the role concept, in order to be able to model the change of context on different levels of abstraction, represents another research task in this program. Thus, consistency also means to systematically define relationships between the identified role concepts to allow for model transformations and synchronizations. Such consistency offers significant advantages in the field of software systems engineering because context changes are interrelated on different levels of abstraction; plus, they can be synchronously developed and maintained. Potential application fields are the future smart grid, natural energy based computing, cyber-physical systems in home, traffic, and factories, enterprise resource planning software, context-sensitive search engines, etc.
My topic within this project was called A Family of Role-based Languages and revolved around the development of a family of role-based modeling languages including the implementation of a feature-oriented editor, as well as means to validate role models, and generate code for role-oriented programming languages. This enabled subsequent PhD students to easily configure and use the language variant most suitable for their individual theses project.
Current Research Topics
In general, I will help to improve the tool support for view-based, model-driven Software development building on the Vitruvius Approach.
Efficient Scientific Research
Computer scientists are equally scientists and engineers. As a former, they read, organize, evaluate and write down knowledge every day. They have to use scientific methods like qualitative or quantitative evaluations, structured literature reviews or empirical studies. As the latter, they invent, design and build stuff that solves a particular problem. Furthermore, engineers tend to think about ways to improve the overall process from the idea to the solution. Consequently, Computer scientists – like me – apply this idea of continuous improvement (改善) also to the process of scientific research.
Hence, I build some tools and collected good practices for students and graduates of computer scientists:
- A guide to good presentations (English|German)
is a primer on good presentations for all minor and major students.
- Efficient scientific writing with (multi)markdown
describes ways to make our daily writing tasks more efficient by focusing on one content source supporting many output formats.
- Efficient scientific research with scripts
describes ways to automate organize your stored papers and bibliography and to automate a structured literature review.
- How to Diss – Effectively and Efficiently
describes my own PhD process, focusing on the means I employed to make it more effective and efficient.