Design a Pluggable Architecture for Layout Algorithms in xDIVA
蔡侑儒 · 2015
When a software product survives the harsh test of real world, providing easy extensions and attracting developers to contribute often become the next goals to pursuit in software evolution. One major approach to achieve such a goal is to provide pluggable interface/API/SDK/framework so that components can be contributed from people not limited to the development team. Pluggable software is an ultimate dream of software engineering; the third-party developers can develop the plugin to enhance and enrich the features of the products. Some notable examples are games and IDEs like Eclipse and Visual Studio. xDIVA is a 3D Debugging visualization tool developed by our lab for years. xDiva can visualize any data structures to 3D objects at debugging break points. One important part of visualization is layout which arranges the 3D objects in the scene to fit the visualization need for different domains. There are too many domains that requires layout to arrange the visualization objects. Designing a pluggable framework for different layout algorithms is the goal of this thesis. However, designing such a pluggable framework for arbitrary layout algorithms from so many different domains is not easy and straightforward. In this thesis, we analyze the difficulties of the problem from model-view perspectives and then provide a pluggable framework that allows different layout algorithms to be easily added to xDIVA. In principle, third party developers can contribute their algorithms to xDiva without changing too many codes.