portrait

Tobias Dürschmid

How to spell my name?

The umlaut ü in my last name Dürschmid is significant for the pronunciation and the spelling.
The valid ASCII spelling is Tobias Duerschmid, not Tobias Durschmid.
To correctly typeset my name in LaTeX or BibTeX please use D{\"u}rschmid or use UTF-8 encoding.



I am a Software Engineering PhD student at Carnegie Mellon University’s School of Computer Science. I am co-advised by Claire Le Goues and David Garlan. Hence, I am a member of squaresLab and the ABLE group.

I earned my Bachelor of Science in IT-Systems Engineering from Hasso Plattner Institute / University of Postdam, Germany.

I am mainly interested in simplifying the development of complex software systems. My areas of research include software architecture, model-based analysis of quality-attributes for robotics systems, and static code analysis.

30 Apr. 2024

I am on the Software Engineering Teaching Job Market! After co-creating and co-instructing two software engineering courses at CMU I am looking for teaching-focused faculty positions in software engineering that start in Fall 2025. If you know anyone who is hiring teaching faculty in SE, please send me an email

10 Apr. 2024

19 Oct. 2023

I will give a short lightning talk on our project ROSInfer at ROSCon.

10 Oct. 2023

In Spring 2023, I will be an instructor for our newly developed course 17-423/723 Designing Large-scale Software Systems.

13 May. 2023

I will give a talk at ICRA in London on our past, current, and ongoing work on Architectural Model Inference From Code For ROS-Based Robotics Systems. You can find the slides here.

13 Mar. 2022

The presentation of our ICSA paper can be found "here".

19 Feb. 2022

I will be presenting our paper "ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems" virtually on Monday 14 March, 22:00 UTC and Tuesday 15 March, 18:00 UTC at ICSA.

17 Feb. 2022

The artifact for our paper "ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems" has received the badges for OPEN RESEARCH OBJECT (ORO) and RESEARCH OBJECT REVIEWED (ROR) – REUSABLE. It can be found on Zenodo.

2024

ROSInfer: Statically Inferring Behavioral Component Models for ROS-based Robotics Systems

Tobias Dürschmid, Chris Timperley, David Garlan, and Claire Le Goues
ICSE '24: 46th International Conference on Software Engineering 2024

Abstract, BibTeX, Tool, Paper (Open Access)

Robotics systems are complex, safety-critical systems that can consist of hundreds of software components that interact with each other dynamically during run time. Software components of robotics systems often exhibit reactive, periodic, and state-dependent behavior. Incorrect component composition can lead to unexpected behavior, such as components passively waiting for initiation messages that never arrive. Model-based software analysis is a common technique to identify incorrect behavioral composition by checking desired properties of given behavioral models that are based on component state machines. However, writing state machine models for hundreds of software components manually is a labor-intensive process. This motivates work on automated model inference. In this paper, we present an approach to infer behavioral models for systems based on the Robot Operating System (ROS) using static analysis by exploiting assumptions about the usage of the ROS API and ecosystem. Our approach is based on searching for common behavioral patterns that ROS developers use for implementing reactive, periodic, and state-dependent behavior using the ROS framework API.We evaluate our approach and our tool ROSInfer on five complex real-world ROS systems with a total of 532 components. For this purpose we manually created 155 models of components from the source code to be used as a ground truth and available data set for other researchers. ROSInfer can infer causal triggers for 87 % of component architectural behaviors in the 532 components.

@inproceedings{Duerschmid2024ROSInfer,
  author = {D\"{u}rschmid, Tobias and Timperley, Christopher Steven and Garlan, David and {Le~Goues}, Claire},
  title = {ROSInfer: Statically Inferring Behavioral Component Models for ROS-based Robotics Systems},
  year = {2024},
  isbn = {9798400702174},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3597503.3639206},
  doi = {10.1145/3597503.3639206},
  booktitle = {Proceedings of the IEEE/ACM 46th International Conference on Software Engineering},
  articleno = {144},
  numpages = {13},
  location = {Lisbon, Portugal},
  series = {ICSE '24}
}

2022

ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems

Chris Timperley, Tobias Dürschmid, Bradley Schmerl, David Garlan, and Claire Le Goues
ICSA '22: 19th IEEE International Conference on Software Architecture 2022

Abstract, BibTeX, DOI, Tool, Talk, Replication Package

Robot systems are growing in importance and complexity. At the same time, it is becoming more important for them to be free of errors. Ecosystems for robot software, such as the Robot Operating System (ROS), provide libraries of reusable software components that can be configured and composed into larger systems. To support compositionality, ROS uses late binding and architecture configuration via “launch files” that describe how to initialize the components in a system. However, late binding often leads to systems failing silently due to misconfiguration, for example by misrouting or dropping messages entirely. In this paper we present ROSDiscover, which statically recovers the run-time architecture of ROS systems to find such architecture misconfiguration bugs. First, ROSDiscover constructs component level architectural models (ports, parameters) from source code. Second, architecture configuration files are analyzed to compose the system from these component models and derive the connections in the system. Finally, the reconstructed architecture is checked against architectural rules described in first-order logic to identify potential misconfigurations. We present an evaluation of ROSDiscover on real world, offthe-shelf robotic systems, measuring the accuracy, effectiveness, and practicality of our approach. To that end, we collected the first data set of architecture configuration bugs in ROS from popular open-source systems and measure how effective our approach is for detecting configuration bugs in that set.

@inproceedings{Timperley2022ROSDiscover,
  author = {Timperley, Christopher S. and D\"{u}rschmid, Tobias and Schmerl, Bradley and Garlan, David and {Le~Goues}, Claire},
  title = {ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems},
  booktitle = {Proceedings of the 19th IEEE International Conference on Software Architecture.},
  series = {ICSA '22},
  year = {2022},
  numpages = {12}, 
  location = {Honolulu, HI, USA},
  publisher = {IEEE},
  pages={112-123},
  doi={10.1109/ICSA53651.2022.00019}
} 

2020

Synthesis-Based Resolution of Feature Interactions in Cyber-Physical Systems

Ben Gafford, Tobias Dürschmid, Gabriel Moreno, and Eunsuk Kang
ASE '20: IEEE/ACM International Conference on Automated Software Engineering 2020

Abstract, BibTeX, DOI, Paper (PDF)

The feature interaction problem arises when two or more independent features interact with each other in an undesirable manner. Feature interactions remain a challenging and important problem in emerging domains of cyber-physical systems (CPS), such as intelligent vehicles, unmanned aerial vehicles (UAVs) and the Internet of Things (IoT), where the outcome of an unexpected interaction may result in a safety failure. Existing approaches to resolving feature interactions rely on priority lists or fixed strategies, but may not be effective in scenarios where none of the competing feature actions are satisfactory with respect to system requirements. This paper proposes a novel mph{synthesis-based} approach to resolution, where a conflict among features is resolved by mph{synthesizing} an action that best satisfies the specification of desirable system behaviors in the given environmental context. Unlike existing resolution methods, our approach is capable of producing a desirable system outcome even when none of the conflicting actions are satisfactory. The effectiveness of the proposed approach is demonstrated using a case study involving interactions among safety-critical features in an autonomous drone.

@inproceedings{Gafford2020FeatureResolution,
  author = {Gafford, Benjamin and D\"{u}rschmid, Tobias and Moreno, Gabriel A. and Kang, Eunsuk},
  title = {Synthesis-Based Resolution of Feature Interactions in Cyber-Physical Systems},
  booktitle = {Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering.},
  series = {ASE '20},
  year = {2020},
  numpages = {13}, 
  location = {Virtual Event, Australia},
  publisher = {ACM},
  doi = {10.1145/3324884.3416630},
  address = {New York, NY, USA},
} 

2019

Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class

Tobias Dürschmid, Eunsuk Kang, and David Garlan
ICSE-NIER '19: ICSE New Ideas and Emerging Results 2019

Abstract, BibTeX, DOI, Preprint (PDF), Poster (PDF), Slides

Implementing a solution for a design decision that precisely satisfies the trade-off between quality attributes can be extremely challenging. Further, typically trade-offs are not represented as first-class entities in development artifacts. Hence, decisions might be suboptimal and lack requirements traceability as well as changeability. We propose Trade-off-oriented Development (ToD), a new concept to automate the selection and integration of reusable implementations for a given design decision based on quality attribute trade-offs. Implementations that vary in quality attributes and that solve reoccurring design decisions are collected in a design decision library. Developers declaratively specify the quality attribute trade-off, which is then used to automatically select the best fitting implementation. We argue that thereby, software satisfies the trade-offs more precisely, requirements are traceable and changeable, and advances in implementations automatically improve existing software.

@inproceedings{Duerschmid2019TOD,
  author = {D\"{u}rschmid, Tobias and Kang, Eunsuk and Garlan, David},
  title = {Trade-off-Oriented Development -- Making Quality Attribute Trade-offs First-Class},
  booktitle = {Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results},
  location = {Montreal, Quebec, Canada},
  pages = {109--112},
  series = {ICSE-NIER '19},
  year = {2019},
  numpages = {4},
  url = {https://doi.org/10.1109/ICSE-NIER.2019.00036},
  doi = {10.1109/ICSE-NIER.2019.00036},
  acmid = {3339180},
  publisher = {IEEE Press},
  address = {Piscataway, NJ, USA},
  keywords = {design decision, non-functional property, quality attribute, reuse, software architecture, software design},
}

Attitudes, Beliefs, and Development Data Concerning Agile Software Development Practices

Christoph Matthies, Johannes Huegle, Tobias Dürschmid, and Ralf Teussner
ICSE-SEET '19: ICSE Software Engineering Education and Training 2019

Abstract, BibTeX, DOI, Preprint (PDF)

The attitudes of developers have a large impact on how software development projects are run and which development practices are employed. Recent agile methodologies have taken this into account, focusing on collaboration and highlighting the need for shared team values. In this research we investigate the attitudes towards Scrum agile practices and their usage of 42 students using surveys. Although attitudes did not evolve significantly over time, our analysis shows that the Scrum role significantly impacted participants’ views towards development practices. We find that using the version control system according to agile ideas was consistently rated most related to the values of the Agile Manifesto. Additionally, we investigate how common software development artifacts can be used to gain insights into team behavior and present the development data measurements we employed. We show that we can reliably detect well-defined agile practices, such as Test-Driven Development, in this data and that usage of these practices coincided with participants’ self-assessments.

@inproceedings{Matthies2019AttitudesBeliefsData,
  author = {Matthies, Christoph and  Huegle, Johannes and D\"{u}rschmid, Tobias and Teussner, Ralf},
  title = {Attitudes, Beliefs, and Development Data Concerning Agile Software Development Practices},
  booktitle = {Proceedings of the 41th International Conference on Software Engineering: Software Engineering Education and Training Track},
  pages = {158--169},
  series = {ICSE-SEET '19},
  year = {2019},
  numpages = {12}, 
  location = {Montreal, Quebec, Canada},
  url = {https://doi.org/10.1109/ICSE-SEET.2019.00025},
  doi = {10.1109/ICSE-SEET.2019.00025},
  acmid = {3339238},
  publisher = {IEEE Press},
  address = {Piscataway, NJ, USA},
  keywords = {agile, metrics, scrum, software engineering},
} 

2018

Cross-cutting Commentary - Narratives for Multi-party Mechanisms and Concerns

Robert Hirschfeld, Tobias Dürschmid, Patrick Rein, and Marcel Taeumel
COP '18: International Workshop on Context-Oriented Programming 2018

Abstract, BibTeX, DOI, Paper (PDF)

Cross-cutting concerns are an inherent property of the implementation of non-trivial software systems. Their study led to the development of advanced modularity constructs, usually supported by meta-level frameworks and programming language constructs, to improve comprehensibility. Because of their invasive nature, systems need to be refactored or rewritten to take advantage of these constructs. However, practical considerations such as organizational or economical constraints often do not allow for such reengineering efforts, leaving those systems without explicit representations of their cross-cutting concerns.
We propose a lightweight, non-invasive approach to explicate and document cross-cutting, multi-party concerns called Cross-cutting Commentary, or Commentary for short. Our proposal is based on the observation that comments are co-located with the individual semantic units they are about and with that scattered and tangled in the absence of advanced modularity constructs for cross-cutting concerns and the assumption that well-crafted, natural language explanations of system properties (their intents and the mechanisms they provide) largely improve comprehensibility. Commentaries are to help communicate narratives about system properties that involve multiple participants, both co-located in a single module or cross-cutting several of them, and allow for navigating to, from, and between them to explore the implementation artifacts involved.
Commentaries are inspired by the layer construct introduced with context-oriented programming (COP) to associate and manage (partial definitions of) system elements. In contrast to COP that contributes to both system comprehension during development and software composition at run-time, Commentaries for now focus on providing narratives for exploration activities.
In this work, we present our first attempt to provide Commentaries in Squeak/Smalltalk. We explain implementation details and discuss several application scenarios considering the documentation of basic mechanisms of this programming and runtime environment.

@inproceedings{Hirschfeld2018CrossCuttingCommentary,
 author = {Hirschfeld, Robert and D\"{u}rschmid, Tobias and Rein, Patrick and Taeumel, Marcel},
 title = {Cross-cutting Commentary: Narratives for Multi-party Mechanisms and Concerns},
 booktitle = {Proceedings of the 10th International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition},
 series = {COP '18},
 year = {2018},
 isbn = {978-1-4503-5722-7},
 location = {Amsterdam, Netherlands},
 pages = {39--47},
 numpages = {9},
 url = {http://doi.acm.org/10.1145/3242921.3242927},
 doi = {10.1145/3242921.3242927},
 acmid = {3242927},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Squeak/Smalltalk, aspect-oriented programming, context-oriented programming, cross-cutting concerns, documentation, exploratory programming, feature-oriented programming, live programming, modularity},
} 

Teaching Image-Processing Programming for Mobile Devices: A Software Development Perspective

Matthias Trapp, Sebastian Pasewaldt, Tobias Dürschmid, Amir Semmo, and Jürgen Döllner
EG '18: Eurographics Education Papers 2018

Abstract, BibTeX, DOI, Paper (PDF)

In this paper we present a concept of a research course that teaches students in image processing as a building block of mobile applications. Our goal with this course is to teach theoretical foundations, practical skills in software development as well as scientific working principles to qualify graduates to start as fully-valued software developers or researchers. The course includes teaching and learning focused on the nature of small team research and development as encountered in the creative industries dealing with computer graphics, computer animation and game development. We discuss our curriculum design and issues in conducting undergraduate and graduate research that we have identified through four iterations of the course. Joint scientific demonstrations and publications of the students and their supervisors as well as quantitative and qualitative evaluation by students underline the success of the proposed concept. In particular, we observed that developing using a common software framework helps the students to jump start their course projects, while industry software processes such as branching coupled with a three-tier breakdown of project features helps them to structure and assess their progress.

@inproceedings{Trapp2018Teaching,
  booktitle = {EG 2018 - Education Papers},
  editor = {Post, Frits and Žára, Jirí},
  title = {Teaching Image-Processing Programming for Mobile Devices: A Software Development Perspective},
  author = {Trapp, Matthias and Pasewaldt, Sebastian and Dürschmid, Tobias and Semmo, Amir and Döllner, Jürgen},
  year = {2018},
  publisher = {The Eurographics Association},
  ISSN = {1017-4656},
  DOI = {10.2312/eged.20181002},
  series = {EG '18},
}

2017

ProsumerFX: Mobile Design of Image Stylization Components

Tobias Dürschmid, Maximilian Söchting, Amir Semmo, Matthias Trapp, and Jürgen Döllner
SA '17: SIGGRAPH ASIA Mobile Graphics and Interactive Applications 2017
Best Paper Award

Abstract, BibTeX, DOI, Paper (PDF), Video, Supplemental (ZIP), Slides

With the continuous advances of mobile graphics hardware, high-quality image stylization—e.g., based on image filtering, stroke-based rendering, and neural style transfer—is becoming feasible and increasingly used in casual creativity apps. The creative expression facilitated by these mobile apps, however, is typically limited with respect to the usage and application of pre-defined visual styles, which ultimately do not include their design and composition—an inherent requirement of prosumers. We present ProsumerFX, a GPU-based app that enables to interactively design parameterizable image stylization components on-device by reusing building blocks of image processing effects and pipelines. Furthermore, the presentation of the effects can be customized by modifying the icons, names, and order of parameters and presets. Thereby, the customized visual styles are defined as platform-independent effects and can be shared with other users via a web-based platform and database. Together with the presented mobile app, this system approach supports collaborative works for designing visual styles, including their rapid prototyping, A/B testing, publishing, and distribution. Thus, it satisfies the needs for creative expression of both professionals as well as the general public.

@inproceedings{Duerschmid2017PFX,
  author = { D{\"u}rschmid, Tobias and S{\"o}chting, Maximilian and Semmo, Amir and Trapp, Matthias and D{\"o}llner, J{\"u}rgen },
  title = { ProsumerFX: Mobile Design of Image Stylization Components },
  year = { 2017 },
  isbn = {978-1-4503-5410-3},
  location = {Bangkok, Thailand},
  pages = {1:1--1:8},
  articleno = {1},
  numpages = {8},
  booktitle = {Proceedings SIGGRAPH ASIA 2017 Mobile Graphics and Interactive Applications},
  series = { SA '17},
  publisher = { ACM },
  address = { New York },
  doi = { 10.1145/3132787.3139208 }
}

A Framework for Editing and Execution of Image and Video Processing Techniques on Mobile Devices

Tobias Dürschmid
Bachelor Thesis, Hasso Plattner Institute at the University of Potsdam 2017

Abstract, BibTeX, Thesis (PDF)

With the continuous advances of mobile graphics hardware, high-quality image stylization, e.g., based on image filtering, stroke-based rendering, and neural style transfer, is becoming feasible and increasingly used in casual creativity apps. Nowadays, users want to create and distribute their own works and become a prosumer, i.e., being both consumer and producer. However, the creativity facilitated by contemporary mobile apps, is typically limited with respect to the usage and application of pre-defined visual styles, that ultimately does not include their design and composition – an inherent requirement of prosumers. This thesis presents the concept and implementation of a GPU-based mobile application that enables to interactively design parameterizable image stylization effects on-device, by reusing building blocks of image processing effects and pipelines. The parameterization is supported by three levels of control: (1) convenience presets, (2) global parameters, and (3) local parameter adjustments using on-screen painting. Furthermore, the created visual styles are defined using a platform-independent document format and can be shared with other users via a web-based community platform. The presented app is evaluated with regard to variety and visual quality of the styles, run-time performance measures, memory consumption, and implementation complexity metrics to demonstrate the feasibility of the concept. The results show that the app supports the interactive combination of complex effects such as neural style transfer, watercolor filtering, oil paint filtering, and pencil hatching filtering to create unique high-quality effects. This approach supports collaborative works for designing visual styles, including their rapid prototyping, A/B testing, publishing, and distribution. Hence, it satisfies the needs for creative expression of both professionals and novice users, i.e., the general public.

@BachelorThesis{DuerschmidBT2017,
  author={D\"{u}rschmid, Tobias}, 
  title={A Framework for Editing and Execution of Image and Video Processing Techniques on Mobile Devices}, 
  year = {2017},
  month = jul,
  day = {26},
  doi = {10.13140/RG.2.2.13252.32648} 
}

Towards Architectural Styles for Android App Software Product Lines

Tobias Dürschmid, Matthias Trapp, and Jürgen Döllner
MOBILESoft '17: Proceedings of the 4th International Conference on Mobile Software Engineering and Systems 2017

Abstract, BibTeX, DOI, Paper (PDF), Slides

Software product line development for Android apps is difficult due to an inflexible design of the Android framework. However, since mobile applications become more and more complex, increased code reuse and thus reduced time-to-market play an important role, which can be improved by software product lines. We propose five architectural styles for developing software product lines of Android apps: (1) activity extensions, (2) activity connectors, (3) dynamic preference entries, (4) decoupled definition of domain-specific behavior via configuration files, (5) feature model using Android resources. We demonstrate the benefits in an early case study using an image processing product line which enables more than 90% of code reuse.

@inproceedings{Duerschmid2017TAS,
  author = {D\"{u}rschmid, Tobias and Trapp, Matthias and D\"{o}llner, J\"{u}rgen},
  title = {Towards Architectural Styles for Android App Software Product Lines},
  booktitle = {Proceedings of the 4th International Conference on Mobile Software Engineering and Systems},
  series = {MOBILESoft '17},
  year = {2017},
  isbn = {978-1-5386-2669-6},
  pages = {58--62},
  numpages = {5}, 
  doi = {10.1109/MOBILESoft.2017.12},
  publisher = {IEEE Press},
  address = {Piscataway, NJ, USA}
} 

Continuous Code Reviews: A Social Coding tool for Code Reviews inside the IDE

Tobias Dürschmid
Programming '17: Companion to the first International Conference on the Art, Science and Engineering of Programming 2017
1. Place in the ACM Student Research Competition

Abstract, BibTeX, DOI, Paper (PDF), Poster (PDF), Slides

Code reviews play an important and successful role in modern software development. But usually they happen only once before new code is merged into the main branch. We present a concept which helps developers to continuously give feedback on their source code directly in the integrated development environment (IDE) by using the metaphor of social networks. This reduces context switches for developers, improves the software development process and allows to give feedback to developers of external libraries and frameworks.

@inproceedings{Duerschmid2017CCR,
  author = {D\"{u}rschmid, Tobias},
  title = {Continuous Code Reviews: A Social Coding Tool for Code Reviews Inside the IDE},
  booktitle = {Companion to the First International Conference on the Art, Science and Engineering of Programming},
  series = {Programming '17},
  year = {2017},
  isbn = {978-1-4503-4836-2},
  pages = {41:1--41:3},
  articleno = {41},
  numpages = {3},
  doi = {10.1145/3079368.3079374},
  publisher = {ACM},
  address = {New York, NY, USA}
} 

2016

Interactive Image Filtering with Multiple Levels-of-Control on Mobile Devices

Amir Semmo, Tobias Dürschmid, Matthias Trapp, Mandy Klingbeil, Jürgen Döllner, and Sebastian Pasewaldt
SA '16: SIGGRAPH ASIA Mobile Graphics and Interactive Applications 2016

Abstract, BibTeX, DOI, Paper (PDF), Filter Results (Images / ZIP, 34 MiB), Video

With the continuous development of mobile graphics hardware, interactive high-quality image stylization based on nonlinear filtering is becoming feasible and increasingly used in casual creativity apps. However, these apps often only serve high-level controls to parameterize image filters and generally lack support for low-level (artistic) control, thus automating art creation rather than assisting it. This work presents a GPU-based framework that enables to parameterize image filters at three levels of control: (1) presets followed by (2) global parameter adjustments can be interactively refined by (3) complementary on-screen painting that operates within the filters' parameter spaces for local adjustments. The framework provides a modular XML-based effect scheme to effectively build complex image processing chains-using these interactive filters as building blocks-that can be efficiently processed on mobile devices. Thereby, global and local parameterizations are directed with higher-level algorithmic support to ease the interactive editing process, which is demonstrated by state-of-the-art stylization effects, such as oil paint filtering and watercolor rendering.

@inproceedings{Semmo2016IIF,
  author = {Semmo, Amir and D\"{u}rschmid, Tobias and Trapp, Matthias and Klingbeil, Mandy and D\"{o}llner, J\"{u}rgen and Pasewaldt, Sebastian},
  title = {Interactive Image Filtering with Multiple Levels-of-control on Mobile Devices},
  booktitle = {SIGGRAPH ASIA 2016 Mobile Graphics and Interactive Applications},
  series = {SA '16},
  year = {2016},
  isbn = {978-1-4503-4551-4},
  pages = {2:1--2:8},
  articleno = {2},
  numpages = {8},
  doi = {10.1145/2999508.2999521},
  publisher = {ACM},
  address = {New York, NY, USA}
} 

Design Pattern Builder - A Concept for Refinable Reusable Design Pattern Libraries

Tobias Dürschmid
SPLASH Companion '16: Companion Proceedings of the ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity 2016

Abstract, BibTeX, DOI, Paper (PDF), Poster (PDF)

Reuse is one of the core principles in professional software engineering. Design patterns provide a reusable solution for common design problems. But their implementations are generally not reusable as they are often well tailored to a specific context. We introduce a concept, that facilitates the reuse of their implementations by defining an abstract design pattern definition that can be instantiated with specialized design decisions. This approach is a meta-level Builder constructing design patterns as first-class citizens. It simplifies the application of design patterns by providing a pattern library and still being able to adjust it to the concrete context.

@inproceedings{Duerschmid2016DPB,
  author = {D\"{u}rschmid, Tobias},
  title = {Design Pattern Builder: A Concept for Refinable Reusable Design Pattern Libraries},
  booktitle = {Companion Proceedings of the 2016 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity},
  series = {SPLASH Companion '16},
  year = {2016},
  isbn = {978-1-4503-4437-1},
  pages = {45--46},
  numpages = {2},
  doi = {10.1145/2984043.2998537},
  address = { New York },
  publisher = {ACM}
} 

Mobile Fabrication

Thijs Roumen, Bastian Kruck, Tobias Dürschmid, Tobias Nack, and Patrick Baudisch
UIST '16: Proceedings of the 29th Annual Symposium on User Interface Software and Technology 2016

Abstract, BibTeX, DOI, Paper (PDF)

We present an exploration into the future of fabrication, in particular the vision of mobile fabrication, which we define as 'personal fabrication on the go'. We explore this vision with two surveys, two simple hardware prototypes, matching custom apps that provide users with access to a solution database, custom fabrication processes we designed specifically for these devices, and a user study conducted in situ on metro trains. Our findings suggest that mobile fabrication is a compelling next direction for personal fabrication. From our experience with the prototypes we derive hardware requirements to make mobile fabrication also technically feasible.

@inproceedings{Roumen2016MF,
  author = {Roumen, Thijs and Kruck, Bastian and D\"{u}rschmid, Tobias and Nack, Tobias and Baudisch, Patrick},
  title = {Mobile Fabrication},
  booktitle = {Proceedings of the 29th Annual Symposium on User Interface Software and Technology},
  series = {UIST '16},
  year = {2016},
  isbn = {978-1-4503-4189-9},
  pages = {3--14},
  numpages = {12},
  doi = {10.1145/2984511.2984586},
  publisher = {ACM},
  address = {New York, NY, USA}
} 

Interactive Multi-scale Oil Paint Filtering on Mobile Devices

Amir Semmo, Matthias Trapp, Tobias Dürschmid, Jürgen Döllner, and Sebastian Pasewaldt
ACM SIGGRAPH Posters 2016

Abstract, BibTeX, DOI, Paper (PDF)

This work presents an interactive mobile implementation of a filter that transforms images into an oil paint look. At this, a multi-scale approach that processes image pyramids is introduced that uses flow-based joint bilateral upsampling to achieve deliberate levels of abstraction at multiple scales and interactive frame rates. The approach facilitates the implementation of interactive tools that adjust the appearance of filtering effects at run-time, which is demonstrated by an on-screen painting interface for per-pixel parameterization that fosters the casual creativity of non-artists.

@inproceedings{Semmo2016IMO,
  author = {Semmo, Amir and Trapp, Matthias and D\"{u}rschmid, Tobias and D\"{o}llner, J\"{u}rgen and Pasewaldt, Sebastian},
  title = {Interactive Multi-scale Oil Paint Filtering on Mobile Devices},
  booktitle = {ACM SIGGRAPH 2016 Posters},
  series = {SIGGRAPH '16},
  year = {2016},
  isbn = {978-1-4503-4371-8},
  pages = {42:1--42:2},
  articleno = {42},
  numpages = {2},
  doi = {10.1145/2945078.2945120},
  publisher = {ACM},
  address = {New York, NY, USA}
} 

Current Projects

ROSInfer - Finding Architectural Bugs in ROS-based Robotics Systems

Model-based analysis is a common technique to identify incorrect behavioral composition of complex, safety-critical systems, such as robotics systems. However, creating structural and behavioral models for hundreds of software components manually is often a labor-intensive and error-prone process. In this project, we present an approach to infer behavioral models for components of systems based on the Robot Operating System (ROS), the most popular framework for robotics systems, using static analysis by exploiting assumptions about the usage of the ROS framework. This work is a contribution towards making well-proven and powerful but infrequently used methods of model-based analysis more accessible and economical in practice to make robotics systems more reliable and safe.

Project Website 

Past Projects

Trade-off-oriented Development

Implementing a solution for a design decision that precisely satisfies the trade-off between quality attributes can be extremely challenging. Further, typically trade-offs are not represented as first-class entities in development artifacts. Hence, decisions might be suboptimal and lack requirements traceability as well as changeability. We propose Trade-off-oriented Development (ToD), a new concept to automate the selection and integration of reusable implementations for a given design decision based on quality attribute trade-offs. Implementations that vary in quality attributes and that solve reoccurring design decisions are collected in a design decision library. Developers declaratively specify the quality attribute trade-off, which is then used to automatically select the best fitting implementation. We argue that thereby, software satisfies the trade-offs more precisely, requirements are traceable and changeable, and advances in implementations automatically improve existing software.

Project Website 

Pencil Hatching App

Pencil Hatching turns your photos into realistic pencil drawings. Many predefined presets help creating the right look.

Project Website, Video 

ProsumerFX

The Prosumer app enables to create and share parameterizable image stylization effects on mobile devices.

Video 

Algernon

Algernon is a productivity tool for Squeak programmers; your personal assistant for Squeak. Algernon aims to make programming in Squeak faster and more keyboard centric. It provides lightning quick access to the core functionalities (classes, methods, morphs, tests, repositories ...) and even gives you a quick way to evaluate Smalltalk expressions.

Project 

19 Oct. 2023

Automatically Finding Architectural Composition Bugs

ROSCon (Lightning Talk), New Orleans, USA

29 May. 2023

Architectural Model Inference From Code For ROS-Based Robotics Systems.

ICRA, London, UK

14 Mar. 2022

ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems

ICSA, Virtual

31 May. 2019

Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class

ICSE, Montréal, Canada

27 Nov. 2017

ProsumerFX: Mobile Design of Image Stylization Components

SIGGRAPH Asia Symposium on Mobile Graphics and Interactive Applications, Bangkok, Thailand

22 May. 2017

Towards Architectural Styles for Android App Software Product Lines

MOBILESoft, Buenos Aires, Argentina

05 Apr. 2017

Continuous Code Reviews: A Social Coding tool for Code Reviews inside the IDE

ACM Student Research Competition @ ‹Programming›, Bruessels, Belgium

03 Nov. 2016

Design Pattern Builder: A Concept for Refinable Reusable Design Pattern Libraries

ACM Student Research Competition @ SPLASH, Amsterdam, Nederlands

Spring 2024
Fall 2020
  • Design Patterns & API Design (17-625) @ CMU

    Lecture (MA), Designer and Co-Instructor
Fall 2019
  • Models of Software Systems (17-651) @ CMU

    Lecture (MA), Teaching Assistant
2017/18: Winter Term
  • Software Engineering II - Agile Software Development in Large Teams @ HPI

    Lecture (BA), Teaching Assistant
2016/17: Winter Term
  • Modeling I @ HPI

    Lecture (BA), Teaching Assistant
Reviews

Programming 2022

Artifact Evaluation Committee Member for the The Art, Science, and Engineering of Programming 2022.

SEAMS 2022

Sub-Reviewer for the Symposium on Software Engineering for Adaptive and Self-Managing Systems 2022.

ICSA 2022

Sub-Reviewer for the Technical Track of the IEEE International Conference on Software Architecture 2022.

ICSE 2022

Sub-Reviewer for the Technical Track of the ACM/IEEE International Conference on Software Engineering 2022.

SEAMS 2021

Sub-Reviewer for the Symposium on Software Engineering for Adaptive and Self-Managing Systems 2021.

ICSA 2020

Sub-Reviewer for the Technical Track of the IEEE International Conference on Software Architecture 2020.

ECSA 2019

Sub-Reviewer for the Technical Track of the European Conference on Software Architecture 2019.

ICSE 2019

Sub-Reviewer for the Technical Track of the ACM/IEEE International Conference on Software Engineering 2019.


Scholarships and Awards

1. Place in the ACM Student Research Competition @ ‹Programming› 2017

Certification as OMG Certified UML Professional 2

Scholarship of the Studienstiftung, the largest organisation that sponsors outstanding students in Germany

Best Paper Award at the SIGGRAPH ASIA Mobile Graphics and Interactive Applications 2017


Memberships
ACM, GI

Volunteering

International Conference on Software Engineering (ICSE) 2019

SEI Architecture Technology User Network Conference (SATURN) 2019

International Conference on Software Architecture (ICSA) 2019

International Conference on the Art, Science, and Engineering of Programming (‹Programming›) 2017

Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH) 2016


In my free-time I like to do photography. You can see more of my photos on Flickr, 500px, or Instagram.

duerschmid@cmu.edu (mailto)

TCS 413

Drop Me a Line

Send via Formspree.