Computer, December 1968 and 1993 [50 & 25 Years Ago]
Authors: E. Neuhold
Year: 2018

A Taxonomy of Program Visualization Systems (p. 11) “Pictorial representations of program structure, control flow, and data have always been part of the programmer’s repertoire of tools and techniques. Such representations can simplify and enhance the explanation of specific aspects of a program. Now that workstations are equipped with powerful graphics capabilities, interest has shifted from simple, static representations to dynamic representations of program behavior.” (p. 13) “Our definition suggests the model shown in Figure 1 in which program visualization is the result of an interplay of three participants: the programmer who develops the original program, the animator who defines and constructs the mapping, and the viewer who observes the graphical representation. ... Our model of visualization as a mapping leads to a classification of systems based on the domain, range, nature, and limitations of the mapping they support. To these four model-inspired criteria we add communication from the animator to the viewer, in other words, using mapping to convey information.” (p. 23) “We derived the classification principles of our new taxonomy for program visualization systems from a complete model of program visualization. For formally well-understood areas, the classification is simple and precise. Program visualization systems can readily be differentiated by scope, level of abstraction, specification method, and interface because these criteria have well-defined formal frameworks. ... The remaining classification criterion, presentation, is concerned with visual communication. This area has little formal foundation and thus is an ad hoc category in our taxonomy. Because any useful taxonomy must rely on a simple, objective, formal framework, the development of a more formal treatment of visual information presentation is a worthwhile research goal.” [Editor’s note: Since 1993 the power of visualization graphics has enabled visualization systems to present many more aspects of program behavior, as envisioned in this article.] A Classification of Computer-Aided Software Engineering Technology (p. 25) “The design, implementation, delivery, and maintenance of software are complex and expensive activities that need improvement and better control. Among the technologies proposed to achieve these goals is CASE (computer-aided software engineering): computerized applications supporting and partially automating software-production activities. Hundreds of CASE products are commercially available, offering a wide spectrum of functionalities. The evolution and proliferation of such tools has forced CASE researchers to address a new challenging topic: How can they develop more integrated and easier to use CASE tools? In response, they have conceived and introduced new products that extend traditional operating-system functionalities to provide more advanced services, such as sophisticated process-control mechanisms and enhanced database-management functionalities.” (p. 29) “A CASE tool is a software component supporting a specific task in the software-production process. Table 1 classifies such tools. ... Editing tools ... Programming tools ... Verification and validation tools ... Configuration-management tools ... Metrics and measurement tools ... Project-management tools ... Miscellaneous tools.” (p. 32) “Workbenches. Workbenches integrate in a single application several tools supporting specific software-process activities.” [Editor’s note: After developing the classification scheme, the article lists many tools available in 1993 but, as we now know, many of those tools did not last very long while some, such as Unified Modeling Language and all its supporting tools, developed a strong following and a strong market position that continues today.]