Curriculum vitae

Dr. rer. nat. Johannes Neubauer

TU Dortmund University
Department of Computer Science
Chair of Programming Systems



Work Experience

  • Postdoctoral researcher, Oct 2014–now, TU Dortmund, Chair of Programming Systems
  • Research assistant, Oct 2008–Sep 2014, TU Dortmund, Chair of Programming Systems
  • Research stay, Oct 2013, At the Institute of Biomedical Sciences of the University of São Paulo (Brazil): flexible data-modeling for cancer research.
  • Student assistant: Oct 2005 — Sep 2008, TU Dortmund, Chair for Programming Systems
  • Entrepreneur: 2001 — now, Johannes Neubauer GbR
    Software development in the context of web applications (e.g. with Beepworld GmbH)
  • Entrepreneur: 2015 — now, Infenius UG (haftungsbeschränkt)
    Development of mobile games and apps for the iOS (Swift and Objective-C) and Android (Java and Kotlin) platform

Professional Expertise

Project leader:

  • Online Conference Service (OCS) in cooperation with Springer Business Science+Media
    What is: Online manuscript submission and reviewing system in productive use since 2009
    My part: Concept, implementation, team lead, and customer contact (Springer Heidelberg, Dordrecht, and London)
  • Web Application enabling flexible data modeling for non-programmers for a machine tool builder,
    Concept, team lead, and customer contact
  • Rich Process Modeling Tool: jABC4 (successor of jABC3)
    What is: Desktop application for advanced process modeling combining control-flow and data-flow modeling
    My part: Concept, implementation, team lead, and customer acquisition and contact
  • Codegeneration framework for jABC4 and DyWA
    What is: Full-Code-Generation for executable processes with database access
    My part: Concept, implementation, and team lead
  • Framework for prototype-driven web development: DyWA
    My part: Concept, team lead, and customer acquisition and contact
  • Integrated Development Environment for creating Web Applications: DIME
    My part: Concept, implementation, team lead (together with Stefan Naujokat project leader of Cinco), and customer acquisition and contact
  • Codegenerators for DIME
    What is: Full-Code-Generation for complete web applications including executable processes, access control, web interface, and database access
    My part: Concept, implementation, and team lead
  • Active Continuous Quality Control: application of LearnLib to complex web applications
    What is: Framework employing learning technology to automatically maintain test models along the whole life-cycle of a software product (we did an extensive case study with the OCS)
    My part: Concept, implementation, and team lead

Entrepreneur: (esp. 2001-2004 and 2015–now)

  • Mobile game: Fusionate
  • XML-Processing project for the Aziza GmbH
  • Java Applet/WebStart Client for Beepworld Chat Application
  • Forum application for Beepworld GmbH
  • Advertising flash-game BeepFighter for Beepworld GmbH
  • Flash guestbooks, and buttons for the web page builder tool of Beepworld GmbH

Professional Skills

  • Languages: German (native), English (fluent), French (basic)
  • Programming experience: Java, Swift, XTend (expert); Scala, Kotlin, JavaScript (advanced); C (++/#), Objective-C, Python, PHP, Perl (intermediate)
  • Operating systems: Mac OS X, Unix, Windows
  • Technologies: Java EE + Java Persistence API (JPA), RESTful Services (JAX-RS), Web Services, Parser Generators (JavaCC, AntLR, StringTemplate), XML processing/transformation (JAXB, JAXP, XSD, XSLT, Xpath), Tapestry(5), (Swing) GUI, SpriteKit, Web technologies (SVG, CSS, HTML(5)), Meta-Modeling and Codegeneration technologies (XText, XCore, EMF, Ecore, Cinco)
  • Paradigms: Separation of Concerns, Convention over Configuration, Divide and Conquer, One Thing Approach (OTA), eXtreme Model-Driven Design (XMDD), Full Codegeneration, Metamodeling, Domain-Specific Languages, …
  • Tools: Git, SVN, CVS, Maven, Ant, Gradle, Eclipse, IntelliJ IDEA, VisualVM, Xcode, jABC(4), LaTeX, MS Office, iWork, Inkscape, Gimp, Blender, FL Studio, Audacity

Research Interests

  • Tools for model-driven design:
    The main motivation is to extend the in essence control-oriented eXtreme Model-Driven Design (XMDD) paradigm with data-orientation, adapting well-known paradigms from programming languages in a simplicity-first fashion, ranging from features of object-orientation to functional programming.

    The new approach is type-aware, so that type-safety can be validated at design-time. The central achievement is, however, the introduction of higher-order semantics by treating services and processes as first-class citizens. They may be moved around just like data and plugged and played into activities at runtime, thus enabling higher-order process engineering (HOPE).

    • Rich (higher-order) process modeling
    • Adapting programming language features
    • Lightweight formal methods
  • Data:
    With HOPE data-orientation has been introduced to enable rich process-modeling, but non-programmers should be enabled to design, model, change, and maintain the respective data-structures (and the corresponding database), too. Therefore, DyWA supports the user-driven development of process-oriented web applications combining business process modeling with user-side application domain evolution. Using DyWA, application experts without programming knowledge are able to model according to their professional knowledge and understanding, both domain-specific data models and the business process models that act on the data.

    • Design
    • Modeling
    • Manipulation
    • Access servification
  • Information systems:
    I am interested in bringing together all the different parts of software engineering to a complete product (user interface, business-logic, persistence, authentication & authorization, …) in an agile manner, and at the same time ensure high quality over the whole life-cycle of software systems, which may change continuously, via Active Continuous Quality Control (ACQC).

    ACQC aims at providing evolving systems with efficient and effective quality assurance facilities. This approach enables not only to check for designated regressions and bugs but to validate whether the system behaves as expected across versions and platform changes, without the need to create a specification for every system version manually. The approach of ACQC allows to obtain hypothesis models via active automata learning for a new version essentially at the same level of detail as the hypothesis models for the previous version without requiring any further time consuming searches for counterexamples. This means that guiding this search by previously learned models successively accellerates the learning process despite the fact that the underlying system continuously changes.

    • Programming in the large
    • Quality assurance
    • Automata learning
  • Systemic Thinking, Holistic Approaches, and Meta-Modeling:
    My observations of the IT industry lead to a very simple conclusion: the participating people with their varying disciplines do not communicate (well) enough. Sometimes this effect is amplified by temporal, spacial, or organizational distance. This leads to separated optimizations and therefore isolated consideration of issues. But, e.g., optimizing a database on its own sometimes is not enough, instead a query has to be changed in an application. Hence, some of the optimization potential of the domain, the platform, or the infrastructure cannot be incorporated. That is due to missing information on the generic level of a virtualizer, an database operator, a clusterer, a container, an application server, an apache server, or a caching facility.

    Therefore, lately I am eager to combine my knowledge in process and data modeling, information systems, and quality assurance in a family of domain-specific modeling / programming languages in DIME (DyWA Integrated Modeling Environment) together with a great team at TU Dortmund. We base on the open source meta modeling tool suite Cinco, following a generative approach. In DIME the whole development process (see information systems above) is elevated to a language, technology, and platform independent description of what an application should do instead of having a unmanageable and unmaintainable implementation of how should an application do something. This way, business logic, and implementation details as well as optimization can be done completely orthogonal and holistic. The DIME approach allows for prototype-driven agile software development with true incorporation of all participants, not only the IT. We plan to go open source with this soon.

Professional Services


You may find my publications on google scholar.


  • B.Sc./M.Sc./Diploma thesis co-supervisor:
    • 2016–: Patrick Brandt, Unterstützung alternativer Datenbanksysteme sowie horizontale Skalierung in der DyWA (support of alternative database management systems as well as horizontal scalability in the DyWA)
    • 2016–: Fabian Schulte, Konzeption und Umsetzung einer Weboberfläche zur Verfolgung und Wiederherstellung von Änderungen in der DyWA (concept and implementation of the web interface for auditing and restoring of changes in the DyWA)
    • 2016–: Carsten Schulte, Konzeption und Umsetzung der Geschäftslogik zur Verfolgung und Wiederherstellung von Änderungen in der DyWA (concept and implementation of the business logic for auditing and restoring of changes in the DyWA)
    • 2016–: Jan Winkels, Unterstützung von Serious Games mit Echtzeitsimulation in der DyWA (support of serious games with real-time simulation in the DyWA)
    • 2015: Nabil Abdel-Hafeez, Analyse und Umsetzung von Anforderungen an Integrated Modeling Environments am Beispiel des jABCs (analysis and realization of requirements to integrated modeling environments based on jABC)
    • 2015: Tolgay Usul, WebABC: Umsetzung einer Webversion des Modellierungstools jABC (WebABC: implementation of a web version of the modeling tool jABC)
    • 2015: Dennis Kühn, Domain-Specific Tailoring of jABC4
    • 2015: Alexander Schieweck, A Service-Oriented Interface for Testing Web Applications via Automata Learning
    • 2015: Alexander Bainczyk, Simplicity-Oriented Web-Based Control of Active Automata Learning
    • 2013: Markus Frohme, Agile Domänenmodellierung für prozessgesteuerte Webanwendungen (agile domain modeling for process-driven web applications)
    • 2012: Simon Dierl, Dynasec: Dynamische und hierarchische Zugriffskontrolle in Enterpriseumgebungen (dynamic hierarchical access control in enterprise environments)
    • 2012: Janina Marks, Vergleich der Präsentations- und Geschäftslogikschicht prozessgetriebener Webanwendungen auf Basis regulärer Extrapolation (comparison of presentation- and business logic layer of process-driven web applications via regular extrapolation)
    • 2011: Oliver Bauer, Beherrschung emergenten Verhaltens auf Basis regulärer Extrapolation am Beispiel einer prozessgesteuerten Anwendung (Mastering emergent behavior via regular extrapolation using the example of a process-driven application)
    • 2009: Steve Simon, Agiles Prozeß Management: Konzeptuelle Entwicklung und praktische Evaluation auf Basis des jABC Frameworks (agile process management: conceptual development and practival evaluation basing on the jABC framework)
  • Tutorial Instructor:
    2009: Datenstrukturen Algorithmen und Programmierung I (data structures, algorithms, and programming)
  • Guest Lecturer:
    2013–2016: Webtechnologien II (web technologies)
  • Advisor of project groups:
    • Bridging the Gap (BtG): 2016, Generieren von lauffähigen Steuerungsprogrammen aus verfahrenstechnischen Beschreibungen (Generation of executable control programs from process engineering descriptions)
    • KrisenPlan: 2015–2016, Planspiele für Krisenmanagement in Rechenzentren (business games for crisis management in datacenter)
    • ProBio: 2014–2015, Prozessorientierte Verarbeitung von Biomedizinischen Daten (process-oriented processing of biomedical data)
    • HeISs: 2013–2014, Hierarchische Inferenz evolvierender Spielstrategien (hierarchical inference of evolving game strategies)

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha * Time limit is exhausted. Please reload CAPTCHA.