Daniel Speicher, Dipl.-Math.


Bonn-Aachen International Center for Information Technology B-IT
Dahlmannstraße 2, Room 1.29
D - 53113 Bonn



dsp at bit.uni-bonn.de


    • Currently a smorgasbord of different code analysis and visualization features.
    • Behind the scenes there is a consistent set of ideas soon to break through.
    • Research towards an infrastructure for context-driven software adaptation.
    • Support developers in building adaptive software
    • Support end-users with intelligent self-adaptive software.
    • ADOC-Pro - our adaptive document prompter - is not a new application.
    • The situation-specific adaptation of already existing applications.
    • Proof of concept realization of the CSI approach.
    • Web-Application based on an implementation in R developed by Dr. Svetlana Bulashevska


  • :de: Projektgruppen (Bachelor)
    • Angewandte Software Technologie: 2012, 2013
  • There are some tutorials that were used in more than one lecture or lab:
  • Diploma and Master Theses (Supervised by Prof. Cremers, with some contribution from my side.)
    • 2014
      • DA Nail Kücükkaya, “Interaktive Analyse von Quellcodeentwicklung”
      • DA Dennis Molter, “Transparente Typflussanalyse für Java in Cultivate”
    • 2013
      • DA Sandro Koll, “Summer Framework - An Enhanced IoC Container and AOP Framework”, 2013
      • DA Oliver Klee, “Tainted Object Propagation Analysis for PHP 5 based on Pixy”, 2013
      • MT Yahya Achmed Nahshal, “Cultivating Power Awareness in Android Applications”, 2013
    • 2012
      • DA Paul Heckmann, “Structural Concepts Mining Structural Concepts in Object-Oriented Software”, 2012
      • DA Richard Tantius, “Predicting Refactoring Impact on Cohesion Metrics via Update Propagation”, 2012
      • DA Andri Bremm, “Klon-Refactorings - Automatische Erkennung geeigneter Refactorings zur Klon-Entfernung”, 2012
      • DA Matthias Berg, “Benutzerfreundliche Testfallentwicklung für Steuergeräte”, 2012
    • 2011
      • DA Jan Nonnen, “Naming Consistency in Source Code Identifiers”, 2011
      • DA Christopher Kurtz, “Code Gestalt - From UML Class Diagrams to Software Landscapes”, 2011, (Thesis Advisor: Prof. Dr. Jan Borchers)
      • BA Bastian Hafer, “Bad Smells und Design Pattern - Eine empirische Untersuchung”, 2011
    • 2010
      • DA Sebastian Jancke, “Smell Detection in Context”, 2010
      • DA Andreas Gasper, “Guided Automated Method Extraction Refactoring”, 2010
      • MT Heinrich Wendel, “Using Provenance to Trace Software Development Processes”, 2010
    • 2008
      • DA Sven Bartel, “Werkzeugunterstützung zur Einführung von Adaptionsstrukturen basierend auf einer Service-orientierten Architektur”, 2008
      • DA Bernd Wahlen, “Entwurf kontextsensitiver adaptiver Anwendungen: Von einer systematischen Anforderungsanalyse zu geeigneten Adaptionsstrukturen”, 2008
    • 2006
      • MT Ravindra Chilaka, “A Comparative Study of Static Software Analysis Tools with a Special Focus on Software Visualization”, 2006
      • DA Dagmar de Haan, “Refactorings als Bedingte Transformationen”, 2006


The focus of my own work is the definition of statically verifiable statements about desired structures (e.g. design pattern or properties like immutability) or unwanted structures (e.g., so-called “bad smells”), including the evolution of these statements [Speicher 2013, Speicher 2016]. As our infrastructure [Speicher, Rho, Kniesel 2007] uses Prolog at its core, we were able to prototypically apply results about update propagation. Based on these we can calculate how analysis results would change in consequence of a code restructuring, without having to carry out the restructuring [Tantius, Speicher, Behrend 2012]. As further elements of static analysis, we used the program dependence graph to identify the similarities and differences in cloned methods [Speicher, Bremm 2012]. We used type constraints for type generalization analysis [Speicher, Appeltauer, Kniesel, 2007, Speicher, Rho, Kniesel 2007]. In an existing approach for finding recurring patterns in software using formal concept analysis, we were able to elaborate the aspect of interaction [Heckmann, Speicher 2012]. In [Speicher, Nonnen, Bremm 2012] I sketched the proposal to implement tests for static analysis as annotated source code. Our plug-in displays as well the test result in the code. Using this approach, our students wrote significantly more tests than before. In this respect, I envision the integration of elements of prototyping into the process of developing static analyses.

  • Daniel Speicher: Concept Lattices as a Versatile Tool to Discover Knowledge in Software, Invited Talk, 7th International Workshop on Software Knowledge (SKY) 2016, Talk open to 8th International Joint Conference on Knowledge Discovery, Knowledge Engineering and Knowledge Management (IC3K) 2016, Porto, Portugal
  • Daniel Speicher: Mining Source Code Regularities with FCA and Association Rules, Tutorial, 7th International Workshop on Software Knowledge (SKY) 2016, Intensive School, Porto, Portugal
  • Svetlana Bulashevska, Colin Priest, Daniel Speicher Jörg Zimmermann, Frank Westermann, Armin B. Cremers: SwitchFinder - a novel method and query facility for discovering dynamic gene expression patterns. BMC Bioinformatics.2016, 17:532 (http://www.biomedcentral.com/1471-2105/17/532)
  • Daniel Speicher: Polishing Design Flaw Definitions, 18. Workshop Software-Reengineering & Evolution (WSRE) 2016, Bad Honnef, Germany (preprint, slides)
  • Daniel Speicher, Pascal Bihler, Paul Imhoff, Günter Kniesel, Holger Mügge, Jan Nonnen, Tobias Rho, Mark von Zeschau, Armin B. Cremers: 10 Years of Agile Lab Courses for International Students, SAG WAS Workshop, GI-Jahrestagung 2013: 235-237 (poster, slides)
  • Daniel Speicher: Code Quality Cultivation, in A. Fred, J. Dietz, K. Liu, J. Filipe (Eds.): Knowledge Discovery, Knowledge Engineering and Knowledge Management - Communications in Computer and Information Science Volume 348, 2013, pp 334-349 (preprint, data)
  • Paul Heckmann, Daniel Speicher: Interactive Exploration of Structural Concepts in Code, in A. Fred, J. Dietz, K. Liu, J. Filipe (Eds.): Knowledge Discovery, Knowledge Engineering and Knowledge Management - Communications in Computer and Information Science Volume 415, 2013, pp 260-270 (preprint)
  • Daniel Speicher, Paul Heckmann: Interaktive Exploration von Mustern in Software, WSR 2013, Extended Abstract
  • Jan Nonnen, Jan Paul Imhoff, Daniel Speicher: Kanban im Universitätspraktikum - Ein Erfahrungsbericht, SEUH 2013 (slides)
  • Paul Heckmann, Daniel Speicher: Assisted Software Exploration using Formal Concept Analysis, SKY 2012, (slides)
  • Richard Tantius, Daniel Speicher, Andreas Behrend: Towards an Application of Update Propagation on Logic Programs Representing Java Source Code, WLP 2012, (preprint, slides, CoRR)
  • Daniel Speicher, Andri Bremm: Clone Removal in Java Programs as a Process of Stepwise Unifi cation, WLP 2012, (preprint, slides, CoRR)
  • Daniel Speicher, Jan Nonnen, Andri Bremm: Code Museums as Functional Tests for Static Analyses, WSR 2012, Extended Abstract (preprint, :de: slides)
  • Daniel Speicher: Evolving Software Quality Knowledge, SKY 2011 (Paper evolved itself to Code Quality Cultivation, slides)
  • Daniel Speicher, Jan Nonnen, Holger Mügge: How many realities fit into a program - Notes on the meaning of meaning for programs, SKY 2011 (preprint)
  • Jan Nonnen, Daniel Speicher, Paul Imhoff: Locating the Meaning of Terms in Source Code - Research on ”Term Introduction”, WCRE 2011 (See Jan's publication list)
  • Jan Nonnen, Daniel Speicher: Locating Term Introductions to support Code Comprehension, 13. Workshop Software-Reengineering(WSR) 2011, Bad Honnef, Germany (See Jan's publication list)
  • Daniel Speicher, Jan Nonnen: Consistent Considerations of Naming Consistency, 12. Workshop Software-Reengineering(WSR) 2010, Bad Honnef, Germany (preprint, slides)
  • Daniel Speicher, Sebastian Jancke: Smell Detection in Context, 12. Workshop Software-Reengineering(WSR) 2010, Bad Honnef, Germany (preprint, slides)
  • Daniel Speicher, Malte Appeltauer, Günter Kniesel: Code Analyses for Refactoring by Source Code Patterns and Logical Queries, WRT ’07 – 1st Workshop on Refactoring Tools, at ECOOP 2007, July 31, 2007, Berlin, Germany. (preprint)
  • Daniel Speicher, Tobias Rho, Günter Kniesel: JTransformer – Eine logikbasierte Infrastruktur zur Codeanalyse, WSR'07 - 9. Workshop Software-Reengineering der GI-Fachgruppe Software-Reengineering, May 02-04, 2007, Bad Honnef, Germany (:de: preprint)
  • Holger Mügge, Tobias Rho, Daniel Speicher, Pascal Bihler, Armin B. Cremers: Programming for Context-based Adaptability – Lessons learned about OOP, SOA, and AOP, Workshop Selbstorganisierende, Adaptive, Kontextsensitive verteilte Systeme, Bern, 2007 (See CSI publications)
  • Holger Mügge, Tobias Rho, Daniel Speicher, Julia Kuck, Armin B. Cremers: Towards an Infrastructure for Context-Sensitive Intelligence. Workshop Selbstorganisierende, Adaptive, Kontextsensitive verteilte Systeme, Kassel, 2006 (See CSI publications)
  • Holger Mügge, Daniel Speicher, Günter Kniesel: Extreme Programming in der Informatik-Lehre - Ein Erfahrungsbericht, In: Informatik 2004 - Beiträge der 34. Jahrestagung der GI, Lecture Notes in Informatics, P-51, ISSN 1617-5468, p. 127-141, 2004. (See Roots pages)
  • Daniel Speicher, Composition of refactorings for Aspects, Poster, AOSD 2004

Other Homepages

Old Style Favorites Pages

Last modified: 2017/05/16 01:34