View Infinity

View Infinity: A Zoomable Interface for Feature-Oriented Software Development

 

 

Overview

With View Infinity developers can explore an SPL from its feature model down to its implementation. It offers visualization facilities on three layers of abstraction: feature model, file structure, and source code.

Screenshots/Video

To get a better impression of the zooming process, we created a video

Zoom levels

Screenshot of zoom levels in View Infinity

Code View

Screenshot of code view in View Infinity

Feature View

Screenshot of feature model view in View Infinity

File View (Tree Layout)

Tree layout type I in file view (Mobile Media project)

Levels-of-detail

Levels-of-detail in file view in View Infinity

Ballon Layout / Circular Layout / Energy-based Layout

To scale the file view for large projects, different layouts are available:

Ballon layout in feature model view (Mobile Media project) Circular layout in feature model view (Mobile Media project) Energy-based layout in file view (Mobile Media project)

Examples

Currently, there are two example projects for View Infinity
Expression problem, a software product line for the evaluation of arithmetic expressions
MobileMedia, a software product line for the manipulation of multi media data on mobile devices [1]

Evaluation

In an experimental setting, we evaluated how experienced SPL developers work with View Infinity. To this end, we designed a small study in two phases: First, we let developers work with their preferred IDE. 2 developers work with Visual Studio, 5 with Eclipse. Second, we let developers work with View Infinity.
To test the usability of View Infnitiy, we designed 4 tasks that developers should work on, 2 for each phase. First, developers should locate all files containing a certain feature. Second, developers should locate a bug that occured under a certain configuration. We used both kinds of tasks in both phases. An overview of all tasks is available here.
At the end of the experiment, we gave developers a questionnaire, in which they should evaluate View Infinity. In the questionnaire, subjects should rate several statements about View Infinity on a five-point Likert scale [2]. The results indicate that View Infinity is intuitive to use and has great potential in supporting SPL developers. An overview questions and according answers is available here.

Download

You can download View Infinity and all example projects in one file (zip): Download View Infinity & Examples. Then, you can start with step 3 of the instructions.
You can also download View Infinity without examples (zip): Download View Infinity. See below for instructions.

Instructions

 

  1. Download View Infinity and extract the zip-Archive
  2. Download example project(s) and extract it in the directory, in which the executable of View Infinity is (View Infinity.exe)
  3. Start the executable (View Infinity.exe)
  4. Select the folder of the example project and klick 'Ok'
Depending on how fast your system is, it may take a minute until View Infinity has loaded the project.

 

References

[1] E. Figueiredo, N. Cacho, M. Monteiro, U. Kulesza, R. Garcia, S. Soares, F. Ferrari, S. Khan, F. Filho, and F. Dantas. Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In ICSE '08: Proceedings of the International Conference on Software Engineering, pages 261{270. ACM Press, 2008.

[2] Rensis Likert. A Technique for the Measurement of Attitudes. Archives of Psychology, 22(140):1-55, 1932.