Skip to content
View KKegel's full-sized avatar
πŸ‘¨β€πŸ’»
πŸ‘¨β€πŸ’»

Organizations

@st-tu-dresden-praktikum @convidev-tud @karpfenproject

Block or report KKegel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
KKegel/README.md

Hi, I'm Karl πŸ‘‹

I'm a postdoctoral researcher at the Software Technology Group at TU Dresden. I do software engineering research with a focus on model-driven software engineering, software quality assurance, and human factors β€” in short: understanding and measuring how teams build complex software together, and building tools that help.

My dissertation, Measuring Consistency in Collaborative Software Engineering, explored tools, methods, and novel metrics to continuously measure inconsistency β€” merge conflict potential β€” in software development projects. Most of my research ships with runnable prototypes, and many of them live here on GitHub.

πŸ”¬ Favorite projects

🐟 Karpfen β€” model-driven statechart execution

My current favorite project: a framework that executes hierarchical state machines over explicit world models. The workflow is built on three DSLs, defined in karpfen-dsl-tools:

  1. KMeta (.kmeta) defines the type hierarchy β€” classes and properties with composition (has) and reference (knows) relations
  2. KModel (.kmodel) instantiates a concrete world model conforming to a KMeta metamodel
  3. KStates (.kstates) attaches hierarchical statecharts to the model's objects

The karpfen-runtime server executes these statecharts in a tick-based loop with configurable delay and optional execution tracing. A single instance hosts multiple independent execution environments, each with its own model and state machine set. Hierarchical states run with proper state-stack semantics and per-level ENTRY/DO execution, and clients follow along via REST and fine-grained WebSocket subscriptions β€” down to individual model object properties β€” using connectors for several languages.

πŸ“ˆ driftool β€” Git branch inconsistency analysis

Simulates merges between all branches of a repository to quantify its drift β€” a scalar metric of merge conflict potential β€” and renders it as a 3D view. Built as part of my dissertation research.

🧩 coconlib β€” revision system management

A lightweight Kotlin library with a built-in data model for managing complex revision systems, plus a CLI.

πŸ›οΈ My organizations

  • karpfenproject β€” home of the Karpfen toolkit: runtime, DSL tools, connectors for multiple languages, and a live-tracking observatory dashboard
  • convidev-tud β€” tools and datasets from my research in the DFG collaborative research center CONVIDE, on consistency in cyber-physical systems engineering

πŸ“š Research profiles

Pinned Loading

  1. karpfenproject/karpfen-runtime karpfenproject/karpfen-runtime Public

    the karpfen model execution server

    Kotlin 1

  2. convidev-tud/driftool convidev-tud/driftool Public

    Git repository drift analysis based on merge distances

    Kotlin 8 1

  3. convidev-tud/emf-graph-gen convidev-tud/emf-graph-gen Public

    Java 3 2

  4. cocon-cli cocon-cli Public

    Minimalistic commandline interface for coconlib revision & quality region management

    Kotlin 1

  5. coconlib coconlib Public

    Lightweight Kotlin library with an built-in data model for managing complex revision systems

    Kotlin 1 1

  6. karpfenproject/karpfen-dsl-tools karpfenproject/karpfen-dsl-tools Public

    the karpfen engine's DSL tools

    Java 1