The lecture course "Software Visualization" in Urals State University

Vladimir L. Averbukh
Inst. Math. Mech. & Urals State University
GSP 384, Inst. Math. Mech. 16. S. Kovalevskoi.
Ekaterinburg. Russia. 620219
averbukh@imm.uran.ru

Abstract

In this paper the purposes of the lecture course "Software Visualization", its basis, structure, contents and context are described. Also the unsolved problems and development prospects of discipline Software Visualization are discussed.

Keywords: Visual Programming, Program Visualization, Programming by Demonstrations, Visualization Metaphors, Visual Sign Systems.

  1. Introduction
  2. The formation of new scientific discipline is closely connected with creation of the appropriate lecture course.

    Herewith several tasks are solved simultaneously.

    First, the preconditions of the lecture course formation are described and also the first results of the discipline development are summed up. Thus students may begin their researches receiving a necessary initial level of knowledge. Secondly, during the creation of the lecture course its foundations and basis, achievement and unsolved problems are revealed. This analysis is necessary not only for the students, but above all for researchers. Thirdly, educational and research activity of the students involves the fresh personnel to the new discipline, that promotes its further development. The graduated students bring new ideas and knowledge in practice of software developers. In turn the experience and practice of new software usage puts new tasks before researchers.

    We consider a lecture course "Software Visualization" just from this (mentioned above) point of view. In this paper the purposes of the lecture course, its basis, structure, contents and context are described. Also the unsolved problems and development prospects of discipline Software Visualization are discussed.

  3. A structure of lecture course
  4. A lecture course "Software Visualization" is lectured in Urals State University during the last 10 years since beginning of the 90-th. Now there is the third variant of lecture course containing the following topics:

    1. Introduction (Origins and History);
    2. Software Visualization -- Main Definitions and Complex of Problems;
    3. Visual Sign Systems;
    4. Visualization Metaphors;
    5. Main Characteristics of Software Visualization Systems;
    6. Visual Programming Languages;
    7. Program Visualization Systems;
    8. Algorithm Animation;
    9. Visual Debuggers;
    10. Programming by Demonstrations;
    11. Visual methods of interaction with databases, knowledge bases and information systems;
    12. Visual Human--Computer Interactions;
    13. Conclusion.

    We consider topics 1-4 as foundation and 5-11 as survey parts of Software Visualization.

    There are two variants of textbook on this course -- more detailed but a little out-of-date and more brief [2.]. It should be stated that the formation of discipline and collecting material took place in 90-th. The most modern data on Software Visualization reflects in lecturer additions to the main lectures and also in student reports that they have to present for additional credits. These reports base on fresh papers and articles published in the last years.

  5. Origins of lecture course
  6. "Software Visualization" (SV) is lectured as a special credit semester course for four-year students-mathematicians of Urals State University who are specialized on Software Engineering. These students have an adequate background in mathematics, satisfactory knowledge in Computer Sciences and some experience in modern programming practice. They may take optional courses on Scientific Visualization, Information Visualization and on Advanced Algorithms of Computer Graphics. (A short variant of this course is lectured as a part of lecture course "Computer Visualization" for five-year students who specialized on Computer Sciences.) In additional to the theoretic exam students need to develop a simple project on SV for credit. Next semester they also need to develop more serious project. Thus the lecture course Software Visualization is supported by two programming projects.

    The course purpose is to prepare experts capable to develop the specialized Software Visualization systems and also to take part in researches and experimental developments on this area. We try to describe or more correctly to indicate the systematic approach to designing Software Visualization systems.

    The course structure on the one hand is caused by its purposes. On the other hand the structure is in response of objective characteristics of the discipline, its genesis, state of the art and basic results, direction of the further development. In many respects lecture course structure depends on origins generated researcher ideas about discipline subject.

    The conception of Software Visualization have developed first, in connection with our studies of extensive corps of papers describing visualization systems and (that is more important) containing classifications and taxonomies of these systems. Secondly, the important source of the conception is our analysis of Software Visualization systems where more attention is focused on methods of graphic representations of SV basic entities.

    Originally there was an idea about unity of visualization methods in visual programming and program visualization systems. Then this idea was strengthened after publication of the paper  [14.], where Visual Programming and Program Visualization were considered as parts of Software Visualization discipline. (Later, in the article  [15.] they have changed slightly this point of view.)

    Further our researches on quality of visualization systems and its evaluations have resulted the statement of a problem of the user behaviour interpretation and as a consequence have revealed the subjective, pragmatical approach to SV system design and its evaluations [3.], [4.].

    In our opinion the idea of existence of visualization system languages is very important. We suggest to describe these languages basing on the its semiotic analysis. Also in our opinion there is a principal unity of Visual Programming and Program Visualization systems linked with the generality of visualization languages. In this connection the theory of visual languages published in the works of S.-K. Chang and N. Shu was very useful for us  [10.], [11.], [17.], [18.]. The analysis of visual query languages, visual languages of database and knowledge base systems, graphical languages in Programming by Demonstrations systems and also iconic interface systems shows the similarity of these visual languages and languages of SV systems. This fact allows to include to our lecture course such topics as Programming by Demonstrations, Visual methods of interaction with databases, knowledge bases and information systems and Visual and Iconic Human-Computer Interactions.

    Basing on our researches we also suggest the idea of Visualization Metaphor. We consider Visualization Metaphor as a base for view design in visualization systems.

    Thus, formation of the Software Visualization theory has formed the lecture course, its theoretical and survey parts.

    In the next section we consider the content of each topics.

  7. Content of topics
  8. The first, introduction topics of lecture course are "Origins and History" and "Main Definitions and Complex of Problems of Software Visualization".

    In lectures Software Visualization is considered as unity of such discipline as Visual Programming, Program Visualization. Also Programming by Demonstrations and Visual Methods of Interaction with Databases, Knowledge Bases and Information Systems are considered in connection with Software Visualization.

    The Visual Programming is considered as using of visual programming languages based on iconic and diagrammatic representations and also languages based on spreadsheets. Our notions about this discipline were generated under influence of early works [10.], [11.], [17.], [18.] and later works [9.].

    The discipline "Program Visualization" as a rule includes problems of algorithm animation and visual debugging. In this case in beginning of the 90-th we have used the ideas from  [13.].

    It is noted that there are not an united approach to the definition and description of Software Visualization. Some of specialists and researchers include visual programming to this discipline, some of them don't [19.].

    The popular classification suggested by M.M. Burnett [8.] is based on key entities using in appropriate texts. In lectures also the classification based on stages of software development such as program designing, coding, debugging is considered.

    The next theme of lecture course is Visual Sign Systems. This topic contains the brief introductions to semiotics and the survey of visual sign systems such as a simple road sign systems and more sophisticated sign system of animation films. Semiotics is not traditional for Software Engineering studies but in our opinion semiotics is a instrument for design of visualization languages. We may note, that visualization considered as a process of mapping abstract representations into images is completely described as a sign process well known for us from semiotics determinations. Examples of sign systems are useful for software visualization system developers as idea and experience sources.

    In connection with the semiotic analysis of visualization languages it is necessary to define notions of a sign process and a sign system. Sign process is considered as a set of relation between the sign, the sign interpreter, his/her predisposition to the certain reaction on the sign, the sign signification and context. Sign system is considered as a set of signs, where relations between detonates are mapped by some way into internal relations between signs.

    Also this topics is a base for understanding of the next one -- "Visualization Metaphors". The topic "Visualization Metaphors" is based on our researches. That is why we describe its content in detail.

    We propose an approach offering a single framework for studying visual systems of various purposes and allowing a scientific basis for evaluating visual systems in order to provide a scientific foundation for their design. This approach rests on semi tic analysis and determination of the visualization language as the core of any visual system. The conception summarizes as follows:

    1. Each visualization system contains as its core the language considering as an unity of the vocabulary, syntax, semantics, and pragmatics.
    2. Visualization languages are built upon some basic idea of similarities between application domain entities with visual objects, i.e., upon a visualization metaphor.
    3. It is necessary to evaluate metaphors and visualization languages with respect to the main parameter, that is, their ability to satisfy user's needs to represent by visual way results of user's problem decisions, i.e., with respect to the adequacy in visualization.)
    4. While designing high-quality visualization systems, it is necessary to take into account the adequacy in visualization, which must be constructed as a function having as its parameters user's features and the application domain properties.

    Visualization is always based on figurative similarities of entities being studied and visual objects representing them, i.e., on some metaphoric representation. The development of this idea is the basis of every visualization language.

    There are several approaches to understanding the metaphor from the viewpoint of the development of visualization systems and visual interface.

    We define a visualization metaphor as a mapping from concepts and objects of the application domain under modeling to a system of similarities and analogies generating a set of views and a set of techniques for interaction with visual objects [1.].

    To choose a metaphor is to choose a sign system that will be used for visualization. Another function of the metaphor is to specify a context for better interpretation of elements of the given visualization language. Thus, the visualization metaphor helps understanding entities of the application domain that are being modeled, as well as creating new entities based on the internal logic of the metaphor. The components of the visual metaphor are the imagery it generates and actions it dictates for updating visual images and manipulating visual objects.

    The last topics of "fundamental" part of the lecture course is "Main Characteristics of Software Visualization Systems". The lecture contains the framework for the further survey and analysis of real systems of visual programming, program visualization, etc. and is based on ideas published in  [12.], [14.], [15.], [16.].

    The "survey part" of the lecture course consists of such topics as "Visual Programming Languages", "Program Visualization Systems" (including Algorithm Animation and Visual Debuggers), "Programming by Demonstrations" and "Visual methods of interaction with databases, knowledge bases and information systems".

    There is (a little joky) N. Shu's definition of Visual Programming Languages: "Visual Programming Languages are languages that use some visual representations (in addition to or in place of words and numbers to accomplish what would otherwise have to be written in a traditional one-dimensional programming language". As She also states: "to be considered a visual programming language, the language itself must employ some meaningful... visual expressions as a means of programming." N. Shu considered visual programming languages divided into three classes - iconic, diagrammatic and form-based visual languages. Now the last class is renamed and is known as languages based on spreadsheets.

    The most part of diagrammatic visual languages are based on "paper" presentations of program's control and data flows or such ideas as state transition diagramms, Petri nets, etc. These diagramms and schemes as a rule represent some sorts graphs for example flow or data flows. Also such projects management technologies as old IBM's HIPO (hierarchy, input, process, output) or modern UML are used with interactive visual supporting. Some of visual languages are based on specially developed graph representations.

    Iconic languages are similar to diagrammatic ones -- they use visual representation basing on pictograms or icons.

    Languages based on spreadsheets in actual fact are some sort of means for database querying. But there are attempts to develop universal "spreadsheets" languages.

    The lecture contains the survey of ideas realized in visual programming systems. Some of them are very useful for developers as examples of designing. Some of them are widely used in software engineering practice.

    The discipline "Program Visualization" as a rule includes problems of algorithm animation and visual debugging.

    Algorithm visualization and animation is understood to be the visualization of a high-level description of a piece of software which is in contrast to program animation, code or data visualization (which are collectively a kind of program visualization) where actual implemented code is visualized.

    Programs animation is used during programming education process and in the different type of debugging systems. Examples of algorithm animation systems such as Balsa [5.] [6.], Tango [20.], Zeus [7.], etc. are considered. The algorithm animation is given a much attention in our course. That is why the conception of algorithmic operations suggested in [20.] is an important and simple example of a visualizing model entity that is mapped into a visual representation.

    Debugging of a program requires an analysis of correctness: control flows, dataflows, information exchanges between modulas, and, finally, data processed by the program.

    Program and data visualization and animation increase possibilities of debugging. Visual debuggers can support a complex presentation of structure of programs and their component (up to visualizations of program codes), relationships between modulas and information exchanges between them, structures of data and contents of separate structure elements.

    The most actual now there are the problems of parallel debugging including there and performance debugging, tuning and meagering of parallel programs.

    In topic "Visual methods of interaction with databases, knowledge bases and information systems" different systems are considered. They vary from visualization environments of file systems to query languages for database and information systems. In turn visual query languages vary from visual variants of SQL to query languages basing on Virtual Reality.

    The topic "Programming by Demonstrations" is based in the main on book "Watch What I Do. Programming by Demonstrations" [21.].

    The term "Programming by Demonstrations" is defined for such systems than allow users to demonstrate examples of output and input during a programming process.

    We consider Programming by Demonstrations in three aspects:

    At last the topic "Visual Human-Computer Interactions" also is included in survey part of the lecture course. In the lecture user's manipulation languages and methods of their evaluation are considered.

    In Conclusion the quality evaluation methods of visualization systems are considered. Notions essential for developing approaches to systematic evaluation and analysis of visualization systems must be considered. They include the visual informativeness, visual expressiveness, and adequacy in visualization for corresponding systems.

    We propose to informally define informativeness as a subjective characteristics of quantity of the useful information received by a user (receiver of the information) from the visual text. The more informative is an individual visual "word", the more expressive is the whole visual "text".

    The expressiveness of a text is defined by the number of images describing meanings, as opposed to those describing events or situations. As with informativeness, estimates of visual expressiveness and its quantifiable parameters can be obtained in experimental tests.

    Adequacy in visualization defines the properties of the visual language that or class of users. While on the subject of evaluation of adequacy in visualization, allow obtaining the best solution for a particular application problem by the given user one must consider such characteristics as user perception of the visual language, precise interpretation of this language, and proper responses to requests of the interaction language. A negative factor is that phrases of the visual language under study can have an additional meaning (other than that intended by the designer of the language). The importance of adequacy in visualization depends on the visual informativeness and the visual expressiveness of the language. In order to describe adequacy in visualization, one should not only evaluate these characteristics, but also analyze the corresponding application domain and construct the model of the user or (if possible) the whole class of potential users of the system under study.

    In our opinion, the key property of visualization systems is adequacy in visualization. experimental evidence of this, as well as to work out and study experimental methods for evaluating adequacy in visualization [3.],  [4.].

  9. Conclusion
  10. The analysis of state the art in Software Visualization shows that it plays vitally necessary role only in a case of Parallel Computing. Since the 80-th many systems of parallel visual programming, visual parallel debuggers and parallel performance measurement, debugging and tuning tools were developed and describes in very important texts. The special optional course on Parallel Software Visualization is an additional to the main lecture course. This course contains the survey and analysis of appropriate systems.

    The prospects of development for research discipline are connected with the presence of young researchers. Now in our research teams dealing with Software Visualization there are near ten students. Let's note that many students specialized on Software Visualization develop the systems of Parallel Software Visualization. The other perspective directions of research is the User Modeling. We hope that user models help us to design and develop the adequate in visualization systems.

References

  1. Averbukh V.L. Visualization Metaphors // {\it Programming and Computer Software.} Vol. 27, No. 5, 2001 pp. 227-237
  2. Averbukh V.L. Software Visualization. Ural State University, Ekaterinburg, 1995. (In Russian.)
  3. Averbukh V.L. Toward Formal Definition of Conception "Adequacy in Visualization" // {\it Proc. 1997 IEEE Symposium on Visual Languages,} Sept. 23-26, 1997. Isle of Capri, Italy. -- S.l.: IEEE Comput. Soc., 1997. pp. 46-47.
  4. Averbukh V.L., Konovalov A.V., Vorzopov V.V. An Approach to Evaluations of Software Visualization // Human Factors in Computing Systems. CHI 97 Extended Abstracts. Atlanta, Georgia USA, 22-27 March 1997. ACM, 1997, p. 42.
  5. Brown M.H., Sedgewick R. A System for Algorithm Animation // Computer Graphics. 1984, V.18, N 3. July. pp. 177-186.
  6. Brown M.H. Exploring Algorithm Using BALSA II //  IEEE Computer. 1988 V.21. N.5, May. pp. 14-36.
  7. Brown M.H. Zeus: A System for Algorithm Animation and Multi-View Editing // IEEE Workshop on Visual Languages (October 1991). pp. 4-9.
  8. Burnett M., Baker M. A Classification System for Visual Programming Languages // {\it Journal of Visual Languages and Computing}, September 1994, pp. 287-300.
  9. Burnett M.M., Baker M.J., Bohus C., Carlson P., Yang Sh., van Zee P. Scaling Up Visual Programming Languages // IEEE Computer. Vol. 28 N. 3: March 1995, pp. 45-54
  10. Chang S.-K. Visual Languages: A Tutorial and Survey //  Visualization in Programming. (Lecture Notes in Computer Science 282). Berlin. Springer-Verlag. 1987. pp. 1-23.
  11. Chang S.-K., Tauber M.J., Yu B., Yu J.-S. A Visual Language Compiler // IEEE Transactions on Software Engineering. Vol. 15 No 5 (May 1989). pp. 506-525.
  12. Eisenstadt M., Domingue J., Rajan T., Motta E. Visual Knoledge Engeneering // IEEE Transactions on Software Engineering. Vol. 16 No 10 (October 1990). \mbox{pp. 1164-1177.}
  13. Myers B.A. Taxonomies of Visual Programming and Program Visualization // Journal of Visual Languages and Computing. Vol. 1, No 1 (March 1990), pp. 97-123.
  14. Price B.A., Small I.S., Baecker R.M. A Taxonomy of Software Visualization // IEEE Computer Society Press Reprint. 1992.
  15. Price B.A., Baecker R.M., Small I.S. A Principled Taxonomy of Sofware Visualization // {\it Journal of Visual Languages and Computing} V. 4 (1993) N 3, pp. 211-266.
  16. Roman G.-C., Cox K.C. A Taxonomy of Program Visualization Systems // IEEE Computer. 1993 V. 26, N 12, pp. 11-24.
  17. Shu N.C. Visual Programming Languages: A Perspective and Dimension Analysis // Visual Languages. New York. Plenum Publishing Corporation. 1986. pp. 11-34.
  18. Shu N.C. Visual Programming : Perspectives and Approaches // IBM System Journal. Vol. 22, No 4, 1989. pp. 525-547.
  19. Software Visualization: Programming as a mutli-media experience. MIT Press. 1998.
  20. Stasko J.T. Tango: A Framework and System for Algorithm Animation // IEEE Computer. Vol. 23, No 9 (September 1990). pp.  27-39.
  21. Watch What I Do. Programming by Demonstrations. (Ed.- Allen Cypher) MIT Press. Cambridge, (Mass.), 1993.