OCTOBER 25 TO 29, 2009
The DOLLI 2 project was the successor to a large-scale educational student project course with a real customer, offered to students in their second year. Once again, in the time frame of a single semester a functional system was developed and delivered to the customer. We repeated the shift from a traditional lifecycle to an agile process during the project, and used video techniques for defining requirements and meeting capture.
Visualization of a program typically entails low level views of the program execution state. In most cases, this would imply visualization of the executable program. However there is a certain genre of programs that analyze or transform other programs. These programs could be compilers, static bug detectors, etc. In such cases, very often, it helps to visualize what is happening to the input program rather than the analyzer program. It is for such programs that we describe a configurable, analysis framework. For ease of exposition, we call the analyzer program the "manipulate" program, and the input program the "puppet" program. We visualize the flow of the manipulate program over the puppet program. Using this scheme, we are able to (1) gain insight into the manipulate program; (2) collect useful information / statistics about the puppet program. We have implemented the visualizer in a tool called "inSight". We ran inSight on a static debugging tool (the manipulate program) called Xylem which tries to statically find potential null pointer exceptions in, for example, the Apache Ant program (the puppet program). We report the insights gained by running Xylem through inSight on Ant and other puppet programs.
Film is a useful medium for conveying narratives inherent in user scenarios; not only in the physical world as users complete activities but also in envisioning how software might support these activities. Film allows for dynamic rendering of events, interactions, and objects situated in the domain of their use. This provides the necessary context in which to fully realise how the products of software engineering can better meet their user requirements. This paper and video presents work done in an undergraduate software engineering project management course to evaluate this potential.
Our film submission shows how a filmic representation of a scenario increases its understandability. The story is an example from the pervasive computing domain of home automation: The system protects the owner of an apartment from expensive water damage. After this exposition, the film shows how our tool may front-load a video-based analysis into subsequent system development steps: The same scenario is used in a short overview of the currently available tool support.