N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Subject-oriented design: towards improved alignment of requirements, design, and code
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Toolkit Design for Interactive Structured Graphics
IEEE Transactions on Software Engineering
Subtext: uncovering the simplicity of programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 5th international conference on Aspect-oriented software development
The Visula programming language and environment
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Code Thumbnails: Using Spatial Memory to Navigate Source Code
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Hi-index | 0.00 |
Programmers use many views of their code to assess its structure and behavior: call graphs, data-flow diagrams, structural diagrams, etc. The motivation for using such views is that the semantics of textual code is difficult to "stand back and assess": If you step back from code, it just appears as a mass of unreadable text. However, the diagrams themselves are also of limited use: the shapes only summarize limited semantic information, so the visual presentation can be as disorganized and confusing as the original code. In this paper we propose Silhouette, a visual programming language and design tool that allows developers to capture the meaning of their program in the visual structure of their code. The shapes chosen by the developer represent abstractions of the underlying functionality or structure, and can be infinitely nested to allow different levels of abstraction. The goal is for programmers to build a correspondence between the shape of their program and its meaning. We believe that Silhouette gives programmers more flexibility in matching their high-level abstractions to code and enables a wide variety of design strategies.