Software Engineering, Model-Driven Engineering, CS Education and Outreach
Model-driven engineering (MDE) focuses on the development and utilization of models representing the most appropriate abstraction for a particular problem domain. Model transformations (MTs) are central artifacts in MDE that define core operations on models. Like other software artifacts, MTs are subject to human error and, therefore, may possess defects (bugs). Some MDE tools provide basic support for debugging to aid developers in locating and removing defects. Such debuggers are often limited to only providing basic step support (e.g., step in, step out, step over, run, and stop). These debuggers only provide support in the forward direction, requiring a developer to re-run a transformation if the step that caused the fault is passed. At times, this process can be infeasible due to the size of the models and the number of steps required to perform. This project focuses on the creation and development of advanced debugging techniques and tools (e.g., omniscient and query-based debuggers) for MTs.
My work on omniscient debugging in AToMPM also led to a collaboration with researchers from the University of Rennes and INRIA to support omniscient debugging for xDSMLs. The collaborative project has a dedicated page: click to visit the project page.
This project focuses on empirical research exploring the process and techniques used by developers during debugging tasks. The research is centered around empirical human-based studies exploring how developers acquire knowledge about a software system, specifically with regards to the processes used when identifying defects in software. One of the goals in this project is to identify common structures present in spontaneously formed informal queries, as well as understanding how these queries impact both task completion and source navigation during a debugging session. Through this project we hope to further inform future debugging processes and gain more empirical evidence for existing theories such as Information Foraging. These studies are also exploring the practices of developers in both an OO GPL context and a MDE context to identify any commonalities or differences across these two development paradigms.
AToMPM ("A Tool for Multi-Paradigm Modeling") is an open-source framework for designing domain-specific modeling (DSM) environments, performing model transformations, and manipulating and managing models. It provides a cloud-based modeling environment, making it independent from any operating system, platform, or device it may execute on. AToMPM follows the philosophy of modeling everything explicitly, at the right level of abstraction(s), using the most appropriate formalism(s) and process(es), being completely modeled by itself.
Project site: AToMPM