using sound to understand software architecture
Use of non-speech sound can facilitate the understanding of a software program. Non-speech sound has been shown to be useful in dynamic program comprehension, that is, understanding the dynamic behavior of a program. We have developed a sonification scheme to describe static software entities in Java programs, and we show that it is useful in static program comprehension, notably concerning low-level architecture. The scheme is implemented via a tool in which an Eclipse IDE is integrated with a CSound synthesis engine. The tool is intended for use by sighted software developers in a static browsing/editing environment. A validation study of the concept has been performed via one-on-one sessions with experienced software developers. Preliminary results indicate that software developers are easily able to learn and recognize sonified characteristics of software entities and their relationships by listening to sequences of mapped sound constructs. Identification of specific entities is more problematic. Developers have indicated that they would find the tool useful during both exploration and more focused programming activities. Their additional perceptions have been collected using grounded qualitative means.
software architecture architecture program comprehension comprehension sonification eclipse non-visual representations multimodal auditory display