Visual support for porting large code bases

We present a tool that helps C/C++ developers to estimate the effort and automate software porting. Our tool supports project leaders in planning a porting project by showing where a project must be changed, how many changes are needed, what kinds of changes are needed, and how these interact with the code. For developers, we provide an overview of where a given file must be changed, the structure of that file, and close interaction with typical code editors. To this end, we integrate code querying, program transformation, and software visualization techniques. We illustrate our solution with use-cases on real-world code bases.

[1]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[2]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[3]  Ramana Rao,et al.  The table lens: merging graphical and symbolic representations in an interactive focus + context visualization for tabular information , 1994, CHI '94.

[4]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[5]  I.D. Baxter,et al.  DMS/spl reg/: program transformations for practical scalable software evolution , 2004, Proceedings. 26th International Conference on Software Engineering.

[6]  G. Lommerse,et al.  The visual code navigator: an interactive toolset for source code investigation , 2005, IEEE Symposium on Information Visualization, 2005. INFOVIS 2005..

[7]  Paul Klint,et al.  Compiling language definitions: the ASF+SDF compiler , 2000, TOPL.

[8]  Frank van Ham,et al.  Using multilevel call matrices in large software projects , 2003, IEEE Symposium on Information Visualization 2003 (IEEE Cat. No.03TH8714).

[9]  Arie van Deursen,et al.  Execution trace analysis through massive sequence and circular bundle views , 2008, J. Syst. Softw..

[10]  Lucian Voinea,et al.  CVSgrab: Mining the History of Large Software Projects , 2006, EuroVis.

[11]  Lucian Voinea,et al.  A Framework for Reverse Engineering Large C++ Code Bases , 2009, SQM@CSMR.

[12]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[13]  Tibor Gyimóthy,et al.  Columbus - reverse engineering tool and schema for C++ , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[14]  John T. Stasko,et al.  Visualization of test information to assist fault localization , 2002, ICSE '02.

[15]  Kenn R. Luecke,et al.  Re-engineering C++ component models via automatic program transformation , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[16]  Kenn R. Luecke,et al.  Reengineering C++ Component Models via Automatic Program Transformation , 2005, WCRE.

[17]  F.J.A. Boerboom,et al.  Fact extraction, querying and visualization of large C++ code bases , 2006 .

[18]  Dirk Zeckzer Visualizing software entities using a matrix layout , 2010, SOFTVIS '10.

[19]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[20]  Herb Sutter,et al.  C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series) , 2004 .