The tribe of software developers have been slow in coming to the promised land of software visualization, so tantalizing and obvious since its inception in the early 1980's. Although many researchers were persuaded early on that visualization would someday revolutionize difficult tasks in debugging and software maintenance, most software visualizations have been too abstract or depicted information that was easy to obtain but not directly useful. Over the past decade however, several research groups have visualized the evolution of large software systems using progressively more sophisticated "city" metaphors, mapping information about software components onto familiar architectural features such as buildings and roads. This metaphor has been applied to relatively static or slowly-changing information, such as examining months or years of changes in a software repository.
This "software design" talk presents a survey of existing work on visualizing software as cities, and then introduces a "living city" metaphor, in which a set of programs written by a set of authors is visualized as a city populated by dynamic entities such as users, data structures, threads of execution, and bugs. The "living city" does not exist and implementing it will not be easy. The talk will include a discussion of what will be needed, both in terms of open research problems and existing and needed software tools.