Fehlersuche im Modell: modellbasiertes Testen und Debuggen

This thesis presents methods, techniques and tools for nding bugs in model-based software development processes. Therefor this thesis rst introduces a new model-based software development process, the so-called Fujaba Process, that was co-developed by me. This process is driven by use cases, which are formalized by customized collaboration diagrams. All other artifacts of the process including the application itself are also modeled using UML diagrams. The Fujaba CASE Tool o ers tool support for every phase of this process. Main parts of the tool support for the Fujaba Process, including support for testing and debugging, were developed as part of this thesis. The rst part of this thesis describes the Fujaba Process in detail and shows the experiences we made using this process in industrial projects and for teaching. The second part describes the test generation, that was developed as part of this thesis and became an important component of the Fujaba Process. During the test generation the formalized use case scenarios are automatically transformed into executable test cases. The second part of the thesis describes the underlying concepts and the technical realization of the test generation. Our experiences from case studies using the test generation are also presented. The last part of this thesis is about debugging in the Fujaba Process. It presents several concepts and techniques, that were implemented for this thesis and that simplify the fault diagnostics during application development. As all other steps of the Fujaba Process are performed on model level, the presented debugging should be model-based, too. My work will for example present techniques for stepwise execution of models, it will present an object browser for runtime model representation and a back-in-time debugger on model level. All presented concepts are realized and evaluated as plugins for the Eclipse version of Fujaba, Fujaba4Eclipse. The plugin implementations o er a tight integration with eclipse on the one hand and with Fujaba on the other hand. To conclude, I will present a development process and the possibility to identify faults using tests. Furthermore I will show an approach how to locate these faults using debugging techniques to nally correct these faults. In my approach the complete process is done on model level. I developed plugins for Fujaba4Eclipse for the test generation and the debugging techniques, that support the developer at the best during this process.

[1]  Brad A. Myers,et al.  Debugging reinvented , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[2]  T. Dean Hendrix,et al.  Dynamic object viewers for data structures , 2007, SIGCSE '07.