Reverse Engineering of Declarative User Interfaces
The aim of this research is to apply the reverse engineering process of existing UIs thanks to a model-based approach in a way that is as much automated as possible as to minimize resources required for this process (time, costs, persons). As the subject of this thesis is reverse engineering, this research is embedded in a larger process, and the results of the abstraction obtained by this approach will be reused in a forward engineering phase to regenerate UI code, thus achieving a complete cycle of reengineering. Forward engineering is supported in several other works [Fole91, Luo93, Szek92, Wils93, Vand94, Vand95, Szek96, Puer96, Puer97, Olse00, Thev99, Mori03].
The thesis statement for this dissertation is that the application of the reverse engineering at a higher level of abstraction than the code level supports UI reengineering with flexibility while preserving predictability, more generality and controllability in the process than with code-to-code (transcoding) approaches or current reverse engineering approaches.
The particularity of this approach lies in its flexibility, the fact that the reverse engineering can be adapted according to the context of use. Thanks to a flexible approach, the process can be modified following targeted platforms while ensuring predictable results. Therefore, a set of reverse engineering techniques and heuristics is available and designers can control the selection of the most suitable techniques to be applied during the reverse engineering. The flexible techniques and heuristics on which the approach is based have been formalized and will be expanded, to enhance generality of the approach by considering alternative design options and cover the maximum number of transformations of the UI model.