Design a Pluggable Architecture for Layout Algorithms in xDIVA

碩士 === 國立中央大學 === 資訊工程學系 === 103 === 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 interf...

Full description

Bibliographic Details
Main Authors: Yu-Ju Tsai, 蔡侑儒
Other Authors: 鄭永斌
Format: Others
Language:zh-TW
Published: 2015
Online Access:http://ndltd.ncl.edu.tw/handle/re7jug
Description
Summary:碩士 === 國立中央大學 === 資訊工程學系 === 103 === 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.