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 program analyses, and intelligent development environments.
Language Product Line Development
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.
(more )
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 thesis project.
(more )
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:
- Java WAT – Mysterious Java
Similar to the famous WAT talk by Gary Bernhardt, this talk presents the good, the bad and the WAT of the Java programming language, showing and explaining the wierdest language "features" of Java. - A guide to good presentations
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. - Efficient systematic literature reviews (SLR)
describes the process, means, and tools to efficiently conduct a systematic 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.