Envision
Envision is an IDE prototype featuring a visual structured editor for object-oriented languages. We use Envision to experiment with new interfaces for creating programs. In contrast to traditional IDEs, Envision allows rich meta-data and non-textual content such as diagrams or tables to be directly embedded as part of the program. To enable quick code entry, Envision focuses on keyboard-based interactions, which provide a familiar experince to developers used to text editors. Our goal is to create a tool that improves the productivity of expert programmers who work on large projects in diverse domains.
Project Members
The project has been completed. Please contact Peter Müller in case of questions or comments.
With Envision we aim to create a next-generation software development environment that will boost the productivity of software engineers. Envision features a fast and scalable visual programming interface that can present a program's structure as a flexible combination of text and graphical objects. The visual representation is coupled with novel interaction techniques to facilitate quick navigation and comprehension of programs. This is crucial for modern software engineering, where developers have to deal with large-scale code bases and are subject to information overload from many tools for analysis, verification, testing, debugging, etc.
Highlights
- Flexible visualization framework for freely mixing text and graphics.
- Scalable visualizations - millions of objects can be rendered simultaneously.
- Keyboard-centric interactions - specially designed interaction mechanisms enable the easy navigation and direct editing of visualizations, just by using the keyword, matching the speed of a text editor.
- Support for rich meta-data and non-textual artifacts of software engineering such tables and diagrams. Keeping this extra data in a single repository together with the program code allows the creation of useful links between the two, and enables better tools.
- A flexible query mechanism, which enables developers to combine information from different sources, visualize the results of queries in different ways, and automatically perform actions such as changing the code.
- Support for object-oriented programming - one can import a subset of the Java language into Envision and then edit, compile and debug the code. Work is ongoing to support a fuller subset of Java and other OO languages such as C++. We are exploring a unified tree model for object-oriented programs of different languages. This model is user-extensible and allows for new language constructs to be plugged in.
- Open-source with a BSD license - external pageEnvision on GitHubcall_made
- Written in C++, based on the external pageQtcall_made framework.
The motivation behind the project, the initial architecture of Envision, and some interesting use cases were first expressed in DownloadDimitar Asenov's Master's thesis (PDF, 2.2 MB)vertical_align_bottom.
Publications
- D. Asenov: Envision: Reinventing the Integrated Development Environment
Ph.D. Thesis, 2017. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] - D. Asenov and B. Guenat and P. Müller and M. Otth: Precise Version Control of Trees with Line-based Version Control Systems
Fundamental Approaches to Software Engineering (FASE), 2017. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] - D. Asenov and P. Müller and L. Vogel: The IDE as a Scriptable Information System
Automated Software Engineering (ASE), 2016. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] - D. Asenov and P. Müller and L. Vogel: The IDE as a Scriptable Information System (extended version)
arXiv:1607.04452 [cs.SE], 2016. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] [external pagearXivcall_made]
- D. Asenov and O. Hilliges and P. Müller: The Effect of Richer Visualizations on Code Comprehension
Human Factors in Computing Systems (CHI), 2016. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] [DownloadExperiment data (ZIP, 55.9 MB)vertical_align_bottom]
- D. Asenov and P. Müller: Envision: A Fast and Flexible Visual Code Editor with Fluid Interactions (Overview)
Visual Languages and Human-Centric Computing (VL/HCC), 2014. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] [DownloadCogTool simulation data (CGT, 5.8 MB)vertical_align_bottom]
- D. Asenov and P. Müller: Envision: A Fast and Flexible Visual Code Editor with Fluid Interactions
Technical Report, ETH Zurich, 2014. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom] [DownloadCogTool simulation data (CGT, 5.8 MB)vertical_align_bottom]
- D. Asenov and P. Müller: Customizing the Visualization and Interaction for Embedded Domain-Specific Languages in a Structured Editor
Visual Languages and Human-Centric Computing (VL/HCC), 2013. [DownloadPDFvertical_align_bottom] [DownloadBIBvertical_align_bottom]
Past student projects
- Manuel Galbier, Master's Thesis, SS 2016
DownloadImproving Code Reviews using the Envision IDEvertical_align_bottom - Lukas Vogel, Master's Thesis, AS 2015
DownloadAugmenting software development with information scriptingvertical_align_bottom - Patrick Lüthi, Master's Thesis, SS 2015
DownloadSelf-hosting the Envision Visual Programming Environmentvertical_align_bottom - Cyril Steimer, Research in Computer Science, SS 2015
DownloadTask-specific views in Envisionvertical_align_bottom - Balz Guenat, Bachelor's Thesis, SS 2015
DownloadTree-based Version Control in Envisionvertical_align_bottom - Lukas Vogel, Research in Computer Science, AS 2015
DownloadDebugging in Envisionvertical_align_bottom - Martin Pascal Otth, Master's Thesis, SS 2014
DownloadFine-grained Software Version Control Based on a Program's Abstract Syntax Treevertical_align_bottom - Sascha Dinkel, Bachelor's Thesis, SS 2014
DownloadEnhancing the visual documentation artifacts in Envisionvertical_align_bottom - Patrick Lüthi, Bachelor's Thesis, AS 2013
DownloadSemantic Zoom Support for Envisionvertical_align_bottom - Jonas Trappenberg, Bachelor's Thesis, SS 2013
DownloadSupporting documentation artifacts in Envisionvertical_align_bottom - Lukas Vogel, Bachelor's Thesis, SS 2013
DownloadC++ Support in Envisionvertical_align_bottom - Andrea Helfenstein, Bachelor's Thesis, AS 2012
DownloadDeclarative API for Defining Visualization in Envisionvertical_align_bottom - Dimitar Asenov, Master's Thesis, AS 2010
DownloadDesign and Implementation of Envision - a Visual Programming Systemvertical_align_bottom - Dimitar Asenov, Research in Computer Science, SS 2010
DownloadA feasability study for a general-purpose visual programming systemvertical_align_bottom