"cyber-film": a Visual Approach that Facilitates Program Comprehension

This paper presents a visual approach that will make program comprehension easy. This visual approach employs "Cyber-Films" where a user can use them not only as a programming tool but also as a learning tool. This paper briefly describes how to use "Cyber-Films" as a programming tool, how to use them as a learning tool, and how to guarantee the absence (or at least minimize the presence) of syntax errors in programming. In order to verify that "Cyber-Films" are also useful as a learning tool, a prototype implementation was developed and an experiment was conducted. This paper presents and discusses the results of that experiment. Its goal was to evaluate whether or not the visual approach used was easy to understand even for users with no background at all. The results of that experiment showed that the majority of the respondents correctly identified each scheme of communication presented in "Cyber-Film" format by just observing the set of frames in animation either once or twice and at most thrice before understanding a given scheme. Because the respondents easily identified how a given scheme worked by observing it, this approach can also facilitate the understanding of programs written by other people.

[1]  Dennis Gannon,et al.  Parallel program visualization using SIEVE.1 , 1992, ICS '92.

[2]  Tiziana Catarci,et al.  VidaMine: a visual data mining environment , 2004, J. Vis. Lang. Comput..

[3]  John C. Grundy,et al.  Softarch: Tool Support for Integrated Software Architecture Development , 2003, Int. J. Softw. Eng. Knowl. Eng..

[4]  Jack J. Dongarra,et al.  Graphical development tools for network-based concurrent supercomputing , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[5]  R. Mark Meyer,et al.  Towards a better visual programming language: critiquing Prograph's control structures , 2000 .

[6]  Henry Lieberman,et al.  Will software ever work? , 2001, CACM.

[7]  Nikolay N. Mirenkov,et al.  Multimedia representation of matrix computations and data , 2002, Inf. Sci..

[8]  Message P Forum,et al.  MPI: A Message-Passing Interface Standard , 1994 .

[9]  Nicholas Carriero,et al.  How to write parallel programs: a guide to the perplexed , 1989, CSUR.

[10]  Kang Zhang,et al.  Visual Programming for Message-Passing Systems , 1999, Int. J. Softw. Eng. Knowl. Eng..

[11]  Yoram Moses,et al.  Algorithm visualization for distributed environments , 2004, J. Vis. Lang. Comput..

[12]  Michael G. Norman,et al.  Models of machines and computation for mapping in multicomputers , 1993, CSUR.

[13]  Mary Lou Soffa,et al.  A visualization system for parallelizing programs , 1992, Proceedings Supercomputing '92.

[14]  Péter Kacsuk,et al.  Designing parallel programs by the graphical language GRAPNEL , 1996, Microprocess. Microprogramming.

[15]  Kang Zhang,et al.  The PCG: An Empirical Study , 2001, J. Vis. Lang. Comput..

[16]  M. Erwig Xing: a visual XML query language , 2003, J. Vis. Lang. Comput..

[17]  David Canfield Smith,et al.  Programming by example: novice programming comes of age , 2000, CACM.

[18]  Martin Schulz,et al.  Memory access behavior analysis of NUMA-based shared memory programs , 2002, Sci. Program..

[19]  Kang Zhang,et al.  A Distributed Parallel Programming Framework , 2002, IEEE Trans. Software Eng..

[20]  Alfred L. McKinney A recent radical graphical approach to programming , 2003 .

[21]  T. Pietrzykowski,et al.  Advanced programming aids in PROGRAPH , 1985, SIGSMALL '85.

[22]  Feng-Jian Wang,et al.  Towards a Practical Visual Object-Oriented Programming Environment: Desirable Functionalities and their Implementation , 1999, J. Inf. Sci. Eng..

[23]  K. C. Gross,et al.  Advances in parallel computing for reactor analysis and safety , 1994, CACM.

[24]  James C. Spohrer,et al.  KidSim: programming agents without a programming language , 1994, CACM.

[25]  Chris Sells,et al.  Mastering Visual Studio .Net , 2003 .

[26]  Hideki Koike,et al.  The role of another spatial dimension in software visualization , 1993, TOIS.

[27]  C. T. Crowe,et al.  Parallel Algorithms for Particles-Turbulence Two-Way Interaction Direct Numerical Simulation , 2002, J. Parallel Distributed Comput..

[28]  Deborah Estrin,et al.  Network Visualization with Nam, the VINT Network Animator , 2000, Computer.

[29]  Shi-Kuo Chang,et al.  A visual editor for multimedia application development , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[30]  Michael J. Jacobson,et al.  Cognitive visualisations and the design of learning technologies , 2004, Int. J. Learn. Technol..

[31]  Cherri M. Pancake,et al.  Usability Issues in Developing Tools for the Grid - And How Visual Representations Can Help , 2003, Parallel Process. Lett..

[32]  Nikolay N. Mirenkov,et al.  Self-Explanatory Components: A New Programming Paradigm , 2001, Int. J. Softw. Eng. Knowl. Eng..

[33]  Péter Urbán,et al.  Neko: a single environment to simulate and prototype distributed algorithms , 2001, Proceedings 15th International Conference on Information Networking.

[34]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[35]  Alan F. Blackwell,et al.  Visual Programming in the Wild: A Survey of LabVIEW Programmers , 2001, J. Vis. Lang. Comput..

[36]  Weigang Wang Visualizing and interacting with hypermedia-based process-centric enterprise models , 2003, J. Netw. Comput. Appl..

[37]  Rajkumar Buyya,et al.  GridSim: a toolkit for the modeling and simulation of distributed resource management and scheduling for Grid computing , 2002, Concurr. Comput. Pract. Exp..

[38]  Fulvio Babich,et al.  Formal methods for specification and analysis of communication protocols , 2002, IEEE Communications Surveys & Tutorials.

[39]  R. Mark Meyer,et al.  SIVIL: a true visual programming language for students , 2001 .

[40]  Bruce H. Thomas,et al.  Applying cartoon animation techniques to graphical user interfaces , 2001, TCHI.

[41]  Henry Lieberman,et al.  Programming by example: visual generalization in programming by example , 2000, CACM.

[42]  Lorenzo Alvisi,et al.  Paralex: an environment for parallel programming in distributed systems , 1991, ICS '92.

[43]  Kirsten N. Whitley Visual Programming Languages and the Empirical Evidence For and Against , 1997, J. Vis. Lang. Comput..

[44]  Jack J. Dongarra,et al.  HeNCE: A Heterogeneous Network Computing Environment , 1994, Sci. Program..

[45]  Cindy E. Hmelo-Silver,et al.  Comparing expert and novice understanding of a complex system from the perspective of structures, behaviors, and functions , 2004, Cogn. Sci..

[46]  Nikolay N. Mirenkov,et al.  Visual computing within environment of self-explanatory components , 2002, Soft Comput..

[47]  Herbert A. Simon,et al.  Why a Diagram is (Sometimes) Worth Ten Thousand Words , 1987 .

[48]  Isabel F. Cruz,et al.  DOODLE: a visual language for object-oriented databases , 1992, SIGMOD '92.