Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Bonn-Aachen International Center for Information Technology B-IT
Endenicher Allee 19a, Room 1.129
D - 53115 Bonn
dsp at bit.uni-bonn.de
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.