Dr. Thomas Kühn, PhD
- Postdoctoral Researcher
- Group: Software and Language Product Lines
- Office Hours: please make an appointment via email
- Room: 323
- Phone: +49 721 608-47376
- thomas kuehn∂ kit edu
- Am Fasanengarten 5
My current interests revolve around inventing new ways to model and programm future software systems with their increased complexity, heterogeneity, distribution, rate of change and longevity. To do this I study role-based modeling and programming languages and try to overcome their individual shortcomings. In pursuit of this goal, I have developed both a family of role-based modeling as well as a family of role-oriented programming languages, which are supported by a feature-aware modeling editor and basic IDE features, respectively. Moreover, I will help to improve the tool support for view-based, model-driven Software development building on the Vitruvius Approach. Following these topics, I want to help bridge the gap between the design of static monolithic to the design of fully dynamic adaptive systems.
A side from that, I am interested in good practices in scientific research and methods to improve my daily work process. (more)
I had a three month research stay at the Università degli Studi di Milano to visit Walter Cazzola at the Dipartimento di Informatica.
Publications are listed on Google Scholar.
|Software Engineering II||Lecture (V)||WS 19/20|
|Software Engineering II||Lecture (V)||WS 21/22|
|Software Engineering II||Lecture (V)||WS 20/21|
|Software Product Line Engineering||Lecture (V)||WS 20/21|
|Software Product Line Engineering||Lecture (V)||WS 21/22|
Current Research Topics
The framework of my research is formed by the topics of "programming and modelling languages", "model-driven software development" and "software product line development". Within this framework, I focus on the following three main topics, which, however, overlap both technically and conceptually and should be considered synergistically.
Role-based Programming and Modelling Languages
At the center of this focus is the question of how the current challenges of software development, such as the drastically increased complexity, the increased rate of change or the longevity of software-intensive systems, can be addressed or even overcome with the help of role-based modelling languages and role-oriented programming languages.
Model-driven Software Development
At the center of this focus is both the improvement of techniques and tools for programming language development with methods of model-driven software development, in order to enable, for example, the development of modular programming languages, reusable programme analyses, and intelligent development environments.
Language product line development focus
The final focus is on the new research area of language product line development, that is, the development of software product lines of translators, interpreters and development environments. This area has been established in the last 5 years and is only being researched in Germany by Prof. Dr. Bernhard Rumpe at RWTH Aachen University.
On the one hand, this research area aims to further develop the methods, techniques and tools for language product line development. This involves close collaboration with Associate Professor Walter Cazzola at the Università degli Studi di Milano, through which a tool environment for the development of bottom-up language product lines has been realized over several years. On the other hand, the establishment of language product line development as a separate research area is being pursued here, with the long-term goal of structuring and promoting research activities in this area through Dagstuhl seminars and workshops. Arrangements have already been made for future collaboration with Walter Cazzola and Bernhard Rumpe.
Former Research Training Group
Role-based Software Infrastructures for Continuous-Context-Sensitive Systems
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.
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 science:
- 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.
- They Say / I Say
discusses the moves that matter in scientific writing and presenting the equally named book.
Publications are listed on Google Scholar.
List of Selected Publications
Konersmann, M.; Kaplan, A.; Kühn, T.; Heinrich, R.; Koziolek, A.; Reussner, R.; Jurjens, J.; al-Doori, M.; Boltz, N.; Ehl, M.; Fuchß, D.; Groser, K.; Hahner, S.; Keim, J.; Lohr, M.; Saglam, T.; Schulz, S.; Toberg, J.-P.
2023. 2023 Fachtagung des GI-Fachbereichs Softwaretechnik, Software Engineering 2023, 75–76, Gesellschaft für Informatik (GI)
Acosta, M.; Hahner, S.; Koziolek, A.; Kühn, T.; Mirandola, R.; Reussner, R.
2022. Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, 569–578, Association for Computing Machinery (ACM). doi:10.1145/3550356.3561539
Sağlam, T.; Hahner, S.; Wittler, J. W.; Kühn, T.
2022. MODELS ’22: Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion ProceedingsOctober 2022, 138–141, Association for Computing Machinery (ACM). doi:10.1145/3550356.3556508
Wittler, J. W.; Kühn, T.; Reussner, R.
2022. Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B Ed.: A. Felfernig, 94–98, Association for Computing Machinery (ACM). doi:10.1145/3503229.3547059
Konersmann, M.; Kaplan, A.; Kuhn, T.; Heinrich, R.; Koziolek, A.; Reussner, R.; Jurjens, J.; Al-Doori, M.; Boltz, N.; Ehl, M.; Fuchß, D.; Groser, K.; Hahner, S.; Keim, J.; Lohr, M.; Saglam, T.; Schulz, S.; Toberg, J.-P.
2022. ICSA 2022 – Journal First Track Papers: 2022 IEEE 19th International Conference on Software Architecture Companion (ICSA-C), 58, Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ICSA-C54293.2022.00021
Konersmann, M.; Kaplan, A.; Kuhn, T.; Heinrich, R.; Koziolek, A.; Reussner, R.; Jurjens, J.; al-Doori, M.; Boltz, N.; Ehl, M.; Fuchß, D.; Groser, K.; Hahner, S.; Keim, J.; Lohr, M.; Saglam, T.; Schulz, S.; Toberg, J.-P.
2022. 2022 IEEE 19th International Conference on Software Architecture (ICSA), Honolulu, HI, USA, 12-15 March 2022, 157–168, Institute of Electrical and Electronics Engineers (IEEE). doi:10.1109/ICSA53651.2022.00023
Ananieva, S.; Greiner, S.; Kehrer, T.; Krüger, J.; Kühn, T.; Linsbauer, L.; Grüner, S.; Koziolek, A.; Lönn, H.; Ramesh, S.; Reussner, R.
2022. Empirical Software Engineering, 27 (5), Article no: 101. doi:10.1007/s10664-021-10097-z
Kaplan, A.; Kühn, T.; Hahner, S.; Benkler, N.; Keim, J.; Fuchß, D.; Corallo, S.; Heinrich, R.
2022. Association for Computing Machinery (ACM). doi:10.5445/IR/1000145968
Kaplan, A.; Kühn, T.; Hahner, S.; Benkler, N.; Keim, J.; Fuchß, D.; Corallo, S.; Heinrich, R.; Corallo, S.; Heinrich, R.
2022. EASE 2022: The International Conference on Evaluation and Assessment in Software Engineering 2022. Ed.: M. Staron, 311–316, Association for Computing Machinery (ACM). doi:10.1145/3530019.3535305
Ananieva, S.; Greiner, S.; Krueger, J.; Linsbauer, L.; Gruener, S.; Kehrer, T.; Kuehn, T.; Seidl, C.; Reussner, R.
2022. Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems, 1–10, Association for Computing Machinery (ACM). doi:10.1145/3510466.3510483
Standl, B.; Kühn, T.; Schlomske-Bodenstein, N.
2021. International Journal of Engineering Pedagogy, 11 (5), 87–104. doi:10.3991/IJEP.V11I5.22413
Ananieva, S.; Greiner, S.; Kühn, T.; Krüger, J.; Linsbauer, L.; Grüner, S.; Kehrer, T.; Klare, H.; Koziolek, A.; Lönn, H.; Krieter, S.; Seidl, C.; Ramesh, S.; Reussner, R.; Westfechtel, B.
2020. SPLC ’20: Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A, 148–158, Association for Computing Machinery (ACM). doi:10.1145/3382025.3414955
Favalli, L.; Kühn, T.; Cazzola, W.
2020. SPLC ’20: Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A, 193–204, Association for Computing Machinery (ACM). doi:10.1145/3382025.3414961
Mussbacher, G.; Combemale, B.; Kienzle, J.; Abrahão, S.; Ali, H.; Bencomo, N.; Búr, M.; Burgueño, L.; Engels, G.; Jeanjean, P.; Jézéquel, J.-M.; Kühn, T.; Mosser, S.; Sahraoui, H.; Syriani, E.; Varró, D.; Weyssow, M.
2020. Software and systems modeling, 19 (5), 1045–1053. doi:10.1007/s10270-020-00814-5
Götz, S.; Fehn, A.; Rohde, F.; Kühn, T.
2020. Journal of object technology, 19 (2), Art.-Nr.: 2. doi:10.5381/JOT.2020.19.2.A2
- Reference Implementations for the formal Compartment Role Object Model (CROM)
As a supplement to the published Combined Formal Model for Relational Context-Dependent Roles, Max Leuthäuser and I have developed two reference implementations for the presented formalism. One – formalCROM – is implemented in Python and one – ScalaFormalCROM – in Scala and both are publicly available on GitHub.
- Generator for the Family of Metamodels for Role-based Modeling and Programming Languages
This generator is a proof of concept implementation, which can generate metamodels for the various role-based modeling and programming languages. It employs both the FeatureIDE and DeltaEcore, which in turn are based on the Eclipse Modeling Framework.
- A Modular Graphical Editor Product Line for the Family of Role-based Modeling Languages
This Eclipse-based Editor is a ful-fledged modeling editor for the Family of CROM languages, which permits users to dynamically reconfigure the language variant. It employs Graphiti, Epsilon, FeatureIDE and various own contributions and is publicly available on GitHub.
Open Source Projects
|Software Architecture Research||This repository is for the ongoing investigation of Software Architecture Research using the SLR-Toolkit as submitted to ICSA2022.|
|Abstraction Quality||Tool to determining an abstractions generality and appropriateness by computing the laconicity, lucidity, completeness and soundness of an abstraction wrt. to tools and mappings.|
|RoSI CROM||Generator for the Family of Metamodels for Role-based Modeling and Programming Languages. (more)|
|formalCROM||The first reference implementation of the formal CROM. (more)|
|ScalaFormalCROM||The second reference implementation of the formal CROM featuring generic types for all entity kinds. (more)|
|CROM||The Compartment Role Object Metamodel (CROM) is a comprehensive model for role-based modeling and programming languages. (more)|
|FRaMED||FRaMED is the First Role Modeling EDitor allowing the graphical specification of Role-based Software Systems by means of compartments (aka. contexts), objects, roles, and relationships. (more)|
|FRaMED 2.0||Reimplementation of FRaMED as a modular feature-oriented Graphical Editor Product Line. (more)|
|Edit Policy DSL||A DSL for the simple creation of editpolicy models for the FRaMED 2.0 graphical editor. (more)|
|FRaMED.io||Web-based reimplimentation of the FRaMED 2.0 editor for the family of role-based modeling languages. (more)|
|TRoML||The Textual Role Modeling Language (TRoML) is a simple textual modeling language to create instances of the CROM metamodel. (more)|
|bibfilter||Is a lightweight commandline tool to filter bibtex files. It was tailored to work together with gsresearch. (more)|
|gsresearch||Is a collection of proof of concept tools that allows for automatically grabs bibtex entries from Google Scholar. (more)|
|panruby||A lightweight ruby front-end for pandoc that allows the usage of ERB-style templates within mutlimarkdown files. (more)|
|Search||Is a Java based framework for problem solving through searching. (more)|
- Born on the 11th of September 1985 in Karl-Marx-Stadt (now Chemnitz)
- Maried with a beautiful wife and having three children
- Employed as a research assistant at Technische Universität Dresden
- (2006–2013) Graduation at the TU-Dresden with honors
- (2013–2017) Earning my PhD degree within the research training group RoSI
- (24th of March 2017) Successfully aquired my PhD on “A Family of Role-Based Languages” summa cum laude
- (currently) Pursuing my habilitation at KIT
- (2010–2012) Student Assistent for the Chair for Automata Theory
- (April 2013–Mai 2013) Research Assistent at the GWT-TUD
- (June 2013–September 2013) Research Assistent at the TU-Dresden within the Zessy european project
- (October 2013–now) Research Assistent at the TU-Dresden within the RoSI research training group
- (February 2014–April 2014) Research Trip to the Università degli Studi di Milano visiting Walter Cazzola
- (October 2016–September 2017) Research Assistent at the TU-Dresden on seed funding
- (October 2017–August 2019) Fedearal Research Assistent at the TU-Dresden at the Software Technology Group
- (September 2019–now) Post-Doc at the KIT at the Dependability of Software-intensive Systems Group (formerly Software Design and Quality Group)
- Guest Lectures
- (03.05.2016) Presentation of Family of Role-Based Languages at Otto-von-Guericke-University Magdeburg Database Research Group
- (18.01.2018) Presentation of Family of Role-Based Languages at Universität Duisburg-Essen Lehrstuhl für Wirtschaftsinformatik und Unternehmensmodellierung
- Summer School Course Instructor
- (19.-20.09.2019) Conducting a course on "Role-based Modeling and Role-oriented Programming" within the Dagstuhl Summer School on "Development, Deployment, and Runtime of Context-Aware Software Systems"
- Organization Commitee Membership
- (2017) Live Adaptation of Software SYstems (LASSY)
- (2018) Live Adaptation of Software SYstems (LASSY)
- (2018) Special Session on Adaptive Data Management meets Self-Adaptive Systems (EDDY)
- (2020) Publicity Chair of the 50th annual conference of the Gesellschaft für Informatik e.V. (GI) "INFORMATIK 2020, virtual in Karlsruhe"
- (2022) Artifact Evaluation Chair at International Conference on Software Language Engineering (SLE)
- (2022) Proceedings Chair for International Conference on Model Driven Engineering Languages and Systems (MODELS)
- Program Commitee Membership
- (2017) Data, Demonstrations and Tools Track Chair ∂ SPLC’17
- (2020) European Conference on Modelling Foundations and Applications
- (2022) International Conference on Software Language Engineering (SLE)
- Artifact Evaluation Commitee Membership