SlideShare a Scribd company logo
1 of 7
Download to read offline
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011



        Visual Programming and Program Visualization
        – Towards an Ideal Visual Software Engineering
                           System –
                                              Sassi Bentrad1 and Djamel Meslati2
                            1
                              University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria
                                                Email: sassi_bentrad@hotmail.fr
                            2
                              University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria
                                               Email: meslati_djamel@yahoo.com

Abstract— There has been a great interest recently in systems             but the internal program code is now much more complicated
that use graphics to aid in the programming, debugging, and               (due to the extra code to handle the user interface). Therefore,
understanding of computer systems. The ‘’Visual                           we must find ways to make the programming task more
Programming’’ and ‘’Program Visualization’’ are exciting
                                                                          accessible to users. One approach to this problem is to
areas of active computer science research that show promise
for improving the programming process, for this they have
                                                                          investigate the use of graphics as the programming language.
been applied to these systems. This article attempts to provide           This has been called ‘’Visual Programming’’ or ‘’Graphical
more meaning to these terms by giving precise definitions,                Programming’’. Some Visual Programming systems have
and then surveys a number of systems that can be classified as            successfully demonstrated that non-programmers can create
providing Visual Programming or Program Visualization.                    fairly complex programs with little training [3]. Another class
These systems are organized by classifying them into two                  of systems try to make programs more understandable by
different taxonomies. The paper also gives a brief description            using graphics to illustrate the programs after they have been
of our approach that concentrated on both Visual Programming              created. These are called ‘’Program Visualization’’ systems
and Program Visualization for an Ideal Visual Software
                                                                          and are usually used during debugging or when teaching
Engineering System. We consider it as a new promising trend
                                                                          students how to program [4] [5]. The rest of this paper is
in software engineering.
                                                                          organized as follows. The next section attempts to provide a
Index Terms— visual language, visual programming, program                 more formal definition of these terms. The third section
visualization.                                                            discusses why graphical techniques are appropriate for use
                                                                          with programming. Then, the various approaches to Visual
                        I. INTRODUCTION                                   Programming and Program Visualization are illustrated through
                                                                          a survey of relevant systems. This survey is organized around
    Today industrial systems require more complex software
                                                                          two taxonomies presented in Section 4. In Section 5, we give
development with high qualities in terms of maintainability
                                                                          an overview of an evaluation of visual programming and
and reusability. The development of software is a complicated
                                                                          program visualization. Section 6 discuss about Visual
and tedious process, requiring highly specialized skills in
                                                                          Programming versus Program Visualization. In Section 7, some
systems programming. It is well-known that conventional
                                                                          general problems and areas for further research are addressed.
programming languages are difficult to learn and use, requiring
                                                                          Finally Sections 8 present our brief conclusion.
skills that many people do not have [1]. However, there are
significant advantages to supplying programming capabilities                                      II. DEFINITIONS
in the user interfaces of a wide variety of programs. Recently,
however, a software framework has been introduced to reduce                   Programming. In this paper, a computer ‘’program’’ is
the development time and costs associated with programming.               defined as ‘’a set of statements that can be submitted as a
For example, the success of spreadsheets can be partially                 unit to some computer system and used to direct the behavior
attributed to the ability of users to write programs (as                  of that system” [6]. While the ability to compute ‘’everything’’
collections of ‘’formulas’’). As the distribution of personal             is not required, the system must include the ability to handle
computers grows, the majority of computer users now do not                variables, conditionals and iteration, at least implicitly.
know how to program, however. They buy computers with                     Interpretive vs. Compiled. Any programming language
packaged software and are not able to modify the software                 system may either be ‘’interpretive’’ or ‘’compiled.’’ A compiled
even to make small changes. In order to allow the end user to             system has a large processing delay before statements can
reconfigure and modify the system, the software may provide               be run while they are converted into a lower-level
various options, but these often make the system more                     representation in a batch fashion. An interpretive system
complex and still may not address the users’ problems. ‘’Easy-            allows statements to be executed when they are entered. This
to-use’’ software, such as ‘’Direct Manipulation’’ systems                characterization is actu­ally more of a continuum rather than
[2] actually make the user—programmer gap worse since more                a dichotomy since even interpretive languages like Lisp
people will be able to use the software (since it is easy to use),        typically require groups of statements (such as an entire
© 2011 ACEEE                                                         56
DOI: 01.IJIT.01.03.22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


procedure) to be specified before they are executed.                  appealing ideas for a number of reasons. The human visual
Visual Programming. ‘’Visual Programming’’ (VP) refers to           system and human visual information processing are clearly
any system that allows the user to specify a program in a two         optimized for multi-dimensional data. Computer programs,
(or more) dimensional fashion. Although this is a very broad          however, are conventionally presented in a one-dimensional
definition, conventional textual languages are not considered         textual form, not utilizing the full power of the brain. Two-
two dimensional since the com­pilers or interpreters process          dimensional displays for programs, such as flowcharts and
them as long, one-dimensional streams. Visual Programming             even the indenting of block structured programs; have long
does not include systems that use conventional (linear)               been known to be helpful aids in program understanding [9].
programming languages to define pic­tures, such as,                   Clarisse [10] claims that graphical programming uses informa-
Sketchpad, CORE, PHIGS, the Macintosh Toolbox, or X-II                tion in a format that is closer to the user’s mental representa-
Window Manager Toolkit [7]. It also does not include drawing          tions of problems, and will allow data to be processed in a
packages like Apple Macintosh MacDraw, since these do                 format closer to the way objects are manipulated in the real
not create ‘’programs’’ as defined above. Visual programming          world. It seems clear that a more visual style of programming
contains various graphical approaches to specify programs.            could be easier to understand and generate for humans, espe-
Program Visualization. ‘’Program Visualization’’ (PV) is an         cially for non-programmers or novice programmers. Another
entirely different concept from Visual Programming. In Visual         motivation for using graphics is that it tends to be a higher-
Programming, the graphics is used to create the program               level description of the desired actions (often de-emphasiz-
itself, but in Program Visualization, the program is specified        ing issues of syntax and providing a higher level of abstrac-
in a conventional, textual manner, and the graphics and               tion) and may therefore make the programming task easier
animations is used to illustrate some aspects of the program          even for professional programmers. This may be especially
or its run-time execution. Program Visualization systems can          true during debugging, where graphics can be used to present
be utilized in program development, research, and teaching            much more information about the program state (such as
to help programmers and learners understand the structure,            current variables and data structures) than is possible with
abstract and concrete execution as well as the evolution of           purely textual displays. This is one of the goals of Program
software. Unfortunately, in the past, many PV systems have            Visualization. Other Program Visualization systems use graph-
been incorrectly labeled “Visual Programming” (as in [8]). PV         ics to help teach computer programming. Also, some types
systems can be classified using two axes: whether they                of complex programs, such as those that use concurrent pro-
illustrate the code, data or algorithm of the program, and            cesses or deal with real-time systems, are difficult to describe
whether they are dynamic or static.                                   with textual languages so graphical specifications may be
‘’Data Visualization’’ systems show pictures of the actual            more appropriate. The popularity of ‘’direct manipulation’’
data of the pro­gram. Similarly, ‘’Code Visualization’’               interfaces [2], where there are items on the computer screen
illustrates the actual program text, by adding graphical marks        that can be pointed to and operated on using a mouse, also
to it or by converting it to a graphical form (such as a              contributes to the desire for Visual Languages. Since many
flowchart). Systems that illustrate the ‘’algorithm’’ use             Visual Languages use icons and other graphical objects, edi-
graphics to show abstractly how the program operates. This            tors for these languages usually have a direct manipulation
is different from data and code visualization because with            user interface. The user has the impression of more directly
algorithm visualization, the pictures may not correspond              constructing a program rather than having to abstractly de-
directly to data in the program, and changes in the pictures          sign it.
might not correspond to specific pieces of the code. For
example, an algorithm animation of a sort rou­tine might show                     IV. TAXONOMIES OF VISUAL LANGUAGES
the data as lines of different heights, and swaps of two items            This paper presents two classifications. The first,
might be shown as a smooth animation of the lines moving.             discussed in the subsection A, lists the various ways that
The ‘’swap’’ operation may not be explicitly in the code,             Visual Programming systems have represented the program.
however.                                                              The second classification (subsection B) is for Program
‘’Dynamic’’ visualizations refer to systems that can show an          Visualization systems, and shows whether the systems
animation of the program running, whereas ‘’static’’ systems          illustrate the code, data or algorithm of programs. Of course,
are limited to snapshots of the program at certain points.            a single system may have features that fit into various
Visual Languages. ‘’Visual Languages’’ refer to all systems         categories and some systems may be hard to classify, so
that use graphics, including Visual Programming and Program           these taxonomies attempt to characterize the systems by their
Visualization systems. Although all these terms are somewhat          most prominent features. Also, the systems discussed here
similar and confusing, it is important to have different names        are only representative; there are many systems that have
for the different kinds of systems, and these are the names           not been. Since there are so many visual language systems,
that are conventionally used in the literature.                       it would be impossible to survey them all in a single article.
             III. ADVANTAGES OF USING GRAPHICS                        A.Classification of Visual Programming Systems (VPSs)
   Visual Programming and Program Visualization are very                 VPSs (or VPLs: Visual Programming Languages) can be
                                                                      classified in different categories according to their general
© 2011 ACEEE                                                     57
DOI: 0.IJIT.01.03. 22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


program representation paradigm [11]. As the field of VPSs              programmer to visualize the execution of a program as a
has matured, more and more interest has been focused on                 sequence of different cell states which progress through time.
creating a robust, standardized classification for work in the          Examples of form-based VPSs are Forms/3, ASP (Analytic
area. Such a classification system not only aids researchers            Spreadsheet Package), NoPumpG, NoPumpII and Penguims.
in finding related work but also provides a baseline with which         Besides that, there are VPSs such as Vampire [14], ChemTrains
to compare and evaluate different systems. Some of the most             and BITPICT which combine visual object-oriented
important names in the field, including Chang, Shu, and                 programming language with a rule-base approach.
Burnett, have worked on identifying the defining                             TABLE I. C LASSIFICATION   OF   VISUAL PROGRAMMING LANGUAGES.
characteristics of the major categories of VPSs [17, 16, 11].The
following presents a summary of the classification scheme
discussed below:
     Purely visual language
     Hybrid text and visual systems
     Others, such as Programming-by-example systems,
        Constraint-oriented systems and Form-based systems
Note that the categories are by no means mutually exclusive.
Indeed, many languages can be placed in more than one
category. The single most important category has to be purely
visual languages that have been derived entirely or
predominantly from graphical rules. Such languages are
characterized by heavy reliance on visual techniques                    It is important to note that in each of the categories mentioned
throughout the programming process. The programmer                      above, we can find examples of both general-purpose VPSs
manipulates icons or other graphical representations to create          and languages designed for domain-specific applications.
a program which is subsequently debugged and executed in                Table 1 summarizes classification of most of the visual system
the same visual environment. The program created is compiled            or VPSs frequently quoted according to the three categories
directly from its visual representation and is never translated         highlighted above. The field of visual programming has
into an interim text-based language. Examples of these                  evolved greatly over the last ten years. Continual
languages include Pictorial Janus, VIPR, Prograph and PICT.             development and refinement of languages in the categories
There are other suggestion to subdivide this category into              discussed above have led to some work which was initially
more specific language paradigm such as object-oriented,                considered to be part of the field being reclassified as related
functional, imperative and logic. Burnett and Baker [11] have           to but not actually exemplifying visual programming. These
developed a classification scheme for classifying VPS research          VPS orphans, so to speak, include algorithm animation
papers. Their aim is to help other researchers to easily locate         systems, such as BALSA [17], which provide interactive
relevant works in this field. Another subset of VPSs favors             graphical displays of executing programs and graphical user
the idea of integration of visual languages with well-                  interface development tools, like those provided with many
established textual programming languages. They perceive                modern compilers including Microsoft Visual C++. Both types
the integration might be more likely to meet the actual                 of systems certainly include highly visual components, but
requirements of practical software development than the                 they are more graphics applications and template generators
highly ambitious goal of creating purely visual languages.              than actual programming languages.
These hybrid systems may include both programs created
visually and then translated into high-level textual language,          B. Classification of Program Visualization Systems (PVSs)
or programs which involve the use of graphical elements in a                The systems discussed in this section are not
textual language. The work of Andrew, Erwig and Meyer [12]              programming systems since code is created in the
are examples of programs created graphically and the system             conventional manner. Therefore, none of the systems
generates textual program from it. The latter includes works            discussed below appears in the previous sections. Graphics
to extend existing textual language such as C++ and Basic.              is used here to illustrate some aspect of the program after it is
The current commercial system in this category includes                 written. Table 2 shows some Program Visualization systems
Visual Basic and Visual C++. Beside the two major categories            classified by whether they attempt to illustrate the code, data
discussed, there exist many VPSs which fall into smaller                or algorithm of a program, and whether the displays are static
classifications similar to Pygmalion or Sketchpad. They are             or dynamic. Some systems fit into multiple categories, because
termed constraint-based languages which are especially                  they illustrate multiple aspects or have different modes.
popular for simulation design. An example of this is ThingLab
II [13], which is an object-oriented and constrainted
programming system. A few other VPSs follow the metaphor
of spreadsheets and these languages are classified as form-
based VPSs. Programming using form-based VPSs involves
altering a group of interconnected cells and allowing the
© 2011 ACEEE                                                       58
DOI: 01.IJIT.01.03.22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


       TABLE I. CLASSIFICATION OF PROGRAM VISUALIZATION SYSTEMS.           of these two categories have not intersected; VP interfaces
                                                                           allow for the creation of programs from graphical elements
                                                                           representing specific static-code procedures, whereas PV
                                                                           interfaces permit graphical viewing of arbitrary (though finite
                                                                           in range) procedures within a program without any capability
                                                                           to change the program. However, in a reconfigurable system,
                                                                           the user must be able to manipulate pre-existing dynamic
                                                                           arbitrary procedures to create programs. Thus, traditional
                                                                           visual languages, VP and PV, are not useful for a
                                                                           reconfigurable system when taken separately; the system in
                                                                           fact requires both.
                                                                           A. A Round-Trip Visual Engineering
                                                                              In classical programming languages, programs are
                                                                           represented as text, and the meaning results from the linear
                                                                           order of lexical elements. Visual programs consist of graphical
    V. EVALUATION OF VISUAL PROGRAMMING AND PROGRAM
                                                                           and often also textual elements. The meaning of the programs
                           VISUALIZATION
    Visual Languages are new paradigms for programming,
and clearly the existing systems have not been completely
convincing. The challenge clearly is to demonstrate that
Visual Program­ming and Program Visualization can help with                 depends on the spatial placement of and the connection
real-world problems. The key to this, in my opinion, is to find            between these elements. In accordance with various
appropriate domains and new domains to apply these                         programming paradigms, there are control-flow, data-flow,
technologies to. For general-purpose programming by                        functional, object-oriented, rule-based, form-based, and
professional programmers, textual languages are probably                   hybrid (multi-paradigm) visual programming languages. Many
more appropriate. However, we will find new domains and                    visual programming languages just allow the user more or
new forms of Visual Language where using graphics will be                  less to visually build the abstract syntax tree of a textual
beneficial. The systems discussed in this paper show that                  program1. If a program created using Visual Programming is
some successful areas so far include:                                      to be displayed or debugged, clearly this should be done in
                                                                           a graphical manner, which might be considered a form of
For Visual Programming:
                                                                           Program Visualization. However, it is more accurate to use
       Helping to teach programming (FPL, Pict, etc.),                    the term Visual Programming for systems that allow the
       Allowing non-programmers to enter information in limited           program to be created using graphics, and Program
        domains (OPAL, spread-sheets),                                     Visualization for systems that use graphics only for illustrating
       Allowing non-programmers to construct animations                   programs after they have been created. The distinction
        (PLAY) and simple computerized lessons for computer-               between the Visual Programming Language and Visualization
        aided instruction (Rehearsal World),                               subareas is that visualization employs visual techniques to
       Helping with the construction of user interfaces (Peridot,         display data, software, algorithms and programs, but does
        State Transition UIMS), and                                        not use these techniques to program visually.
       Most significantly, financial planning with spreadsheets.
For Program Visualization:
       Helping to teach algorithms involving data structures
        (Sorting out Sorting, BALSA),
       Helping to teach program concepts, such as Prolog code
        execution (TPM), and
       Helping to debug programs (MacGnome).

  VI. VISUAL PROGRAMMING VERSUS PROGRAM VISUALIZATION
   Graphical interfaces fall within one of two categories:
Visual Programming (VP) or Program Visualization (PV), both
of which are subclasses of Visual Languages. The former
category is comprised of interfaces which allow the user to
                                                                                Figure 1. Visual Programming vs. Program Visualization
create programs graphically, whereas the latter category is
                                                                           1
comprised of interfaces which convert previously-written                     There a re also integrated development environments for textual
                                                                           programming languages that have been called “visual” for marketing
conventional code to a viewable form. In the past, the domains
                                                                           reasons.
© 2011 ACEEE                                                          59
DOI: 0.IJIT.01.03. 22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


As shown in Figure 1, visual programming and program                    constructed, or to be understood and analyzed. The knowledge
visualization complement each other. Program visualization              K is obtained through the user’s cognitive capability C,
generates visualizations from specifications of software                particularly the perceptual ability in the context of visual
systems, while visual programming generates software                    programming and program visualization. The knowledge also
systems from visual specifications. Combining the two                   enhances the cognitive capability and plays the key role in
approaches allows Round-Trip Visualization, for example by              driving the interactive exploration E through the user interface.
producing a visual presentation from the source code of a               Through the user interface, the user provides specifications S
system, changing this visual presentation, and generating a             for the program to be developed or the algorithms and their
new system. By such a definition, the system which we hope              parameters to be applied. Upon the specification supplied, a
to achieve through our approach proposed would technically              visual program V is displayed and ed­ited as an image I. In the
be referred to as a VP system, since the “only” qualifier in the        context of program visualization, V represents the visualization
PV definition eliminates any other possibility. That is, a VP           of a program’s properties, such as status, structure, interac­tion
system can have some PV aspects, such as graphical                      among its components, or output results. Its image I is perceived
debugging, and yet still be considered VP. However, it is               by the user, with an increase in knowledge K as a result. Program
unclear in our minds that such definitions were meant to                P is what the user is interested. It is to be developed in the case
apply to a system with extensive use of both PV and VP                  of visual programming, or comprehended and analyzed in the
techniques, as would be needed in a reconfig­urable system.             case of pro­gram visualization. The program in this conceptual
We therefore anticipate a need for a new class of visual                model has a broader sense than the traditionally understood
language which extensively incorporates both PV and VP                  program as defined by Graham (1987). P can be any of the
techniques. Such a hybrid visual programming language                   following:
would permit the graphical creation of pro­grams (as in VP)                  A code sequence conforming to a traditional
from visualized pre-existing conventional code (as in PV).                      programming language such as Java,
The pre-existing conventional code could be adjusted                         A code sequence conforming to a mark-up language
external to the system, and subsequent system sessions                          such as XML which may not necessarily carry any
would then reflect these changes using PV techniques. The                       computation, or
code could then be configured interactively us­ing VP                        A binary code or data structure generated (e.g. by a
techniques. These ideas are included in our approach and                        parser) from a high-level specification.
will be implementing within a software framework which                  As defined in Section 2, visual programming (VP) refers to a
through him we hope to achieve an Ideal Visual Software                 process in which the user specifies programs in a two or more
Engineering System.                                                     dimensional fashion, i.e. in the direction of V to P. Program
                                                                        visualization (PV), on the other hand, refers to a process in which
B. The Conceptual Model
                                                                        certain properties of a program are displayed in a two or more
    To explain the visual programming process supported by              dimensional fashion according to the user’s selec­tion of
a VPL, we use a high level conceptual model to illustrate the           parameters and/or algorithms. The process of PV is clearly in
roles of the user, user interface, and visual program. This             the direction of P to V. Usually, a VPL aims at easing the process
model also clearly defines the differences between visual               of program specification S through graphical interaction and
programming and program visualization, which play                       direct manipulation with a minimal requirement of the
complementary roles in software development. We adapt the               programming knowledge. The easiness of the specification S
model of van Wijk (2006) that was used to identify the major            for a given program P is measured by the amount of time T
ingredients, costs and gains in the field of visualization. The         required, represented by dS/dt, While a PV system aims at
adapted model, illustrated in Figure 2, considers the major             maximizing the user’s gain in his/her knowledge K about the
ingredients of the user, user-interface, and program, rather            program P under analysis. The measurement of PV’s
than those of the user, visualization, and data in the context          effectiveness is made when the user takes time T to gain
of visualization.                                                       additional knowledge K(T)-K(0) about the program P, represented
                                                                        by dK/dt. An Ideal Visual Software Engineering System should
                                                                        support Round-Trip Vis-ual Engineering by incorporating both
                                                                        visual programming and program visualization. Consistent
                                                                        graphical formalisms in both VP and PV are desirable in order to
                                                                        maintain the user’s mental map (Misue et al, 1995) throughout
                                                                        the life-cycle of the development.

                                                                          VII.GENERAL PROBLEMS AND AREAS FOR FUTURE RESEARCH
Figure 2. A Conceptuel Model of Visual Programming and Program
                         Visualization                                     As described in the previous section, the largest area for
The boxes in Figure 2 denote containers; add circles denote             future research is to prove that Visual Languages will actually
processes that transform inputs into outputs. The user is               help users. Although these systems are attractive for a number
modeled with his/her knowledge K about the program to be                of reasons, and some have been successfully used, they share

© 2011 ACEEE                                                       60
DOI: 01.IJIT.01.03.22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


a number of more technical problems unsolved which are fruitful            Fortunately, prelim­inary results are appearing for the advantages
areas for future research.                                                 of using graphics for teaching students how to program [18].
                                                                           Poor representations. Many visual representations are simply
A. All Visual Languages
                                                                           not very good. Programs are hard to understand once created
    The problems mentioned in this section apply to many Visual            and difficult to debug and edit. This is especially true once the
Programming and Program Visualization Systems.                             programs get to be a non-trivial size.
Difficulty with large programs or large data. Almost all visual          Lack of Portability of Programs. A program written in a
representations are physically larger than the text they replace,          textual language can be sent through electronic mail, and used,
so there is often a problem that too little will fit on the screen.        read and edited by anybody. Graphical languages require special
This problem is alleviated to some extent by scrolling and various         software to view and edit; otherwise they can only be viewed
abstraction mechanisms.                                                    on hard­copy.
Need for automatic layout. When the program or data gets to
be large, it can be very tedious for the user to have to place each        B. Specific Problems for Visual Programming
component, so the system should lay out the pic­ture                           Lack of functionality. Many VP systems work only in a
automatically. Unfortunately, for many graphical representations,          limited domain.
generating an attractive layout can be difficult, and generating a         Inefficiency: Most VP systems run programs very slowly.
perfect layout may be intractable. For example, generating an               Unstructured programs. Many VP systems promote
optimal layout of graphs and trees is NP-Complete [20]. More               unstructured programming practices in the software engineering
research is needed, therefore, on fast layout algorithms for graphs        sense (like GOTO). Many do not provide abstraction mechanisms
that have good user interface characteristics, such as avoiding            (procedures, local variables, etc.) which are necessary for
large scale changes to the display after a small edit.                     programs of a reasonable size.
Lack of formal specification. Currently, there is no formal way           Static representations of programs that are hard to under
to describe a Visual Language. Something equivalent to the                 stand. For flowcharts, AMBIT and similar systems, the pro-
BNFs used for textual languages is needed. This would provide              gram begins to look like a maze of wires. For Rehearsal World
the field with a ‘’hard science’’ foundation, and may allow tools          and similar        systems, the static representation is simply
to be created that will make the construction of editors and               normal linear code.
compilers for Visual Languages easier. Chang [19] [21], Glinert            No place for comments. An interesting point is that virtually
[22] and Selker [23] have made attempts in this direc­tion, but            no VP system provides a place for comments.
much more work is needed.                                                  Many Visual Programs do not integrate with programs
Tremendous difficulty in building editors and environments.              created in different languages, such as text. A Visual Program
Most Visual Languages require a specialized editor, compiler,              might be appropriate for some aspects of the programming task
and debugger to be created to allow the user to use the language.          but not others. An exception is MPL (A Graphical Programming
With textual languages, conventional, existing text editors can            Environment for Matrix Processing based on Logic and
be used and only a compiler and possibly a debugger need to be             Constraints) which uses a Visual Language for matrices and a
written. Currently, each graphical language requires its own editor        textual language for everything else. Another approach is for
and environment, since there are no general purpose Visual                 the compiler for the visual programming language to generate
Language editors. These editors are hard to create because there           conventional computer programs (e.g., in C), so they can be
are no ‘’editor­­compilers’’ or other similar tools to help. The           combined with other programs.
‘’compiler-compiler’’ tools used to build compilers for textual
                                                                           C. Specific Problems for Program Visualization
languages are also rarely useful for building compilers and
inter­preters for Visual Languages. In addition, the language                    Difficulty in specifying the display. Newer Program
designer must create a system to display the pictures from the             Visualization systems are beginning to ease the task of specifying
language, which usually requires low-level graphics                        the display, but it can still be very difficult to design and pro­gram
pro­gramming. Other tools that traditionally exist for textual             the desired graphics. Some systems, such as BALSA-II make it
languages must also be created, including pretty-printers, hard-           easy to choose from a pre-defined set of displays, but creating
copy facilities, program checkers, indexers, cross-referencers,            other displays can still be very difficult because it involves making
pattern matching and searching (e.g., ‘’grep’’ in Unix), etc. These        low-level calls to the graphics primitives.
problems are made worse by the historical lack of portability of           Problem of controlling timing. For dynamic data visualization,
most graphics programs.                                                    it is difficult to specify when the displays should be updated.
Lack of evidence of their worth. There are not many Visual               Issues of aesthetics in timing are very important to produce
Languages that would be generally agreed are ‘’successful,’’               useful animations.
and there is little in the way of formal experiments or informal
experience that shows that Visual Languages are good. It would                                       VIII. SUMMARY
be interesting to see experimental results that demonstrated that              Visual Programming and Program Visualization are exciting
visual programming techniques or iconic languages were better              areas of active computer science research that show promise for
than good textual methods for performing the same tasks. Metrics           improving the programming process (i.e. to improve the user
might include learning time, execution speed, retention, etc.              interface to programming environments), especially for non-
© 2011 ACEEE                                                          61
DOI: 0.IJIT.01.03. 22
ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011


programmers or novice programmers, but more work needs to                [10] Olivier Clarisse and Shi-Kuo Chang, “VICON: A Visual Icon
be done. A number of interesting systems have been created in            Manager”, Visual Languages. New York: Plenum Press, pp. 151–
each area, and there are some that cross the boundaries. This            190, 1986.
paper has attempted to classify some of these systems and                [11] Burnett, M.M., Baker, M.J.: A classification system for visual
                                                                         programming languages. J. Vis. Lang. Comput. 5(3), pp. 287–300
present the general problems with them in hopes that this will
                                                                         ,1994.
clarify the use of the terms and provide a context for future
                                                                         [12] M. Erwig, and B. Meyer.: Heterogeneous Visual Languages-
research. The success of spreadsheets demonstrates that if we            Integrating Visual and Textual Programming. In 11th IEEE Symp,
find the appropriate paradigms, graphical techniques can                 On Visual Languages, Darmstadt. pp. 318–325, 1995.
revolutionize the way people interact with computers. The paper          [13] J. H. Maloney, A. Borning and B. N. Freeman-Benson.:
also gives a brief description of our approach that concentrated         Constraint Technology for User-Interface Construction in ThingLab
on both Visual Programming and Program Visualization for                 II. In Proceedings OOPSLA 89, ACM SIGPLAN Notices, Vol. 24,
an Ideal Visual Software Engineering Environment. This                   No. 10, pp. 381–388, 1989.
has allowed us to reduce training time and programming time              [14] D. W. Mcintyre.: Design and Implementation with Vampire.
                                                                         In M. M. Burnett, A. Goldberg, and T. Lewis, eds.: Visual Object-
on our manipulators from weeks to days, or even hours. We
                                                                         Oriented Programming: Concepts and Environments. Englewood
believe that this novel approach will open a new-direction in
                                                                         Cliffs, Prentice-Hall, 1994.
the programming languages development field.                             [15] C. Dos Santos, “Visualisation métaphorique tridimensionnelle
                                                                         de l’information”, Ph.D. thesis, Ecole nationale supérieure des
                          REFERENCES                                     télécommunications, PARIS-ENST, 2002.
                                                                         [16] Shu, N. C. Visual Programming Languages: A Perspective and
[1] C. Lewis and G.M. Olson. “Can Principles of Cognition Lower
                                                                         a Dimensional Analysis, pp. 11–34. Plenum Press, 1986.
the Barriers to Programming?”, Empirical Studies of Programmers,
                                                                         [17] Chang, S. Visual languages: A tutorial and survey. IEEE
vol. 2, Ablex, 1987.
                                                                         Software, 4(1):pp. 29–39, January 1987.
[2] Ben Shneiderman, “Direct Manipulation: A Step Beyond
                                                                         [18] Nancy Cunniff, Robert P. Taylor, and John B. Black, “Does
Programming Languages”, IEEE Computer. pp. 57–69, Aug, 1983.
                                                                         Programming Language Affect the Type of Conceptual Bugs in
[3] Daniel C. Halbert, “Programming by Example”, PhD Thesis,
                                                                         Beginners’ Programs? A Comparison of FPL and Pascal”,
Computer Science Division, Dept. of EE&CS, University of
                                                                         Proceedings SIGCHI’86: Human Factors in Computing Systems,
California, Berkeley, 1984, Also: Xerox Office Systems Division,
                                                                         Boston, MA. pp. 175–182, April 13–17, 1986.
Systems Development Department, TR OSD-T8402, December,
                                                                         [19] S. K. Chang, M. Tauber, B. Yu, and J.S. Yu, “A Visual Language
1984.
                                                                         Compiler”, IEEE Transactions on Software Engineering. pp. 506–
[4] Brad A. Myers, “Visual Programming, Programming by
                                                                         525, May, 1989.
Example, and Program Visualization; A Taxonomy”, Proceedings
                                                                         [20] D. S. Johnson, “The NP-Completeness Column: an ongoing
SIGCHI’86: Human Factors in Computing Systems. Boston, MA,
                                                                         guide”, Journal of Algorithms, pp. 89–99, 1982.
pp. 59–66, April 13–17, 1986.
                                                                         [21] Shi-Kuo Chang, G. Tortora, Bing Yu, and A. Guercio, “Icon
[5] Brad A. Myers, “The State of the Art in Visual Programming
                                                                         Purity - Toward a Formal Theory of Icons”, 1987 Workshop on
and Program Visualization”, Carnegie Mellon University Computer
                                                                         Visual Languages. August 19–21, 1987. Linkoping, Sweden. IEEE
Science Department Technical Report No. CMU-CS-88-114. Feb,
                                                                         Computer Society, pp. 3–16.
1988.
                                                                         [22] Ephraim P. Glinert and Jakob Gonczarowski, “A (Formal)
[6] Dictionary of Computing. Oxford: Oxford University Press,
                                                                         Model for (Iconic) Programming Environments”, Human-Computer
1983.
                                                                         Interaction-Interact’87, Elsevier Science Publishers (North
[7] Joel McCormack and Paul Asente, “An Overview of the X
                                                                         Holland). pp. 283–290, 1987.
Toolkit”, Proceedings of the ACM SIGGRAPH Symposium on User
                                                                         [23[ Ted Selker and Larry Koved, “Elements of Visual Language”,
Interface Software, Banff, Alberta, Canada. pp 46–55, Oct, 17-19,
                                                                         IEEE Workshop on Visual Languages. October 10–12, 1988.
1988.
                                                                         Pittsburgh,
[8] Robert B. Grafton and Tadao Ichikawa, eds. IEEE Computer,
                                                                         PA. Computer Society Order Number 876, IEEE Computer Society
Special Issue on Visual Programming. Aug, 1985.
                                                                         Press, Terminal Annex, P.0. Box 4699, Los Angeles, CA 90051. pp.
[9] David C. Smith, “Pygmalion: A Computer Program to Model
                                                                         38–43, 1988.
and Stimulate Creative”, Thought. Basel, Stuttgart: Birkhauser,
1977.




© 2011 ACEEE                                                        62
DOI: 01.IJIT.01.03.22

More Related Content

What's hot

MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionLuca Berardinelli
 
11.location based spatial query processing in wireless system
11.location based spatial query processing in wireless system11.location based spatial query processing in wireless system
11.location based spatial query processing in wireless systemAlexander Decker
 
3.[10 13]location based spatial query processing in wireless system
3.[10 13]location based spatial query processing in wireless system3.[10 13]location based spatial query processing in wireless system
3.[10 13]location based spatial query processing in wireless systemAlexander Decker
 
Ontology Mapping for Dynamic Multiagent Environment
Ontology Mapping for Dynamic Multiagent Environment Ontology Mapping for Dynamic Multiagent Environment
Ontology Mapping for Dynamic Multiagent Environment IJORCS
 
Context-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewContext-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewThiwanka Makumburage
 
ZORA MDE Short Presentation 3.2
ZORA MDE Short Presentation 3.2ZORA MDE Short Presentation 3.2
ZORA MDE Short Presentation 3.2Momir Boskovic
 
Implementation of Agent Based Dynamic Distributed Service
Implementation of Agent Based Dynamic Distributed ServiceImplementation of Agent Based Dynamic Distributed Service
Implementation of Agent Based Dynamic Distributed ServiceCSCJournals
 
IRJET- A Vision based Hand Gesture Recognition System using Convolutional...
IRJET-  	  A Vision based Hand Gesture Recognition System using Convolutional...IRJET-  	  A Vision based Hand Gesture Recognition System using Convolutional...
IRJET- A Vision based Hand Gesture Recognition System using Convolutional...IRJET Journal
 
Context Aware Computing
Context Aware ComputingContext Aware Computing
Context Aware ComputingMOHIT DADU
 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Editor IJCATR
 
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...farshad33
 
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...SBGC
 
UbiComp2011: ContextCapture (Poster)
UbiComp2011: ContextCapture (Poster)UbiComp2011: ContextCapture (Poster)
UbiComp2011: ContextCapture (Poster)Ville Antila
 

What's hot (19)

395 401
395 401395 401
395 401
 
MICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context EvolutionMICE: Monitoring and modelIng of Context Evolution
MICE: Monitoring and modelIng of Context Evolution
 
11.location based spatial query processing in wireless system
11.location based spatial query processing in wireless system11.location based spatial query processing in wireless system
11.location based spatial query processing in wireless system
 
3.[10 13]location based spatial query processing in wireless system
3.[10 13]location based spatial query processing in wireless system3.[10 13]location based spatial query processing in wireless system
3.[10 13]location based spatial query processing in wireless system
 
Digital Pen En 2008
Digital Pen En 2008Digital Pen En 2008
Digital Pen En 2008
 
Ontology Mapping for Dynamic Multiagent Environment
Ontology Mapping for Dynamic Multiagent Environment Ontology Mapping for Dynamic Multiagent Environment
Ontology Mapping for Dynamic Multiagent Environment
 
Context-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewContext-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature Review
 
Pert15
Pert15Pert15
Pert15
 
ZORA MDE Short Presentation 3.2
ZORA MDE Short Presentation 3.2ZORA MDE Short Presentation 3.2
ZORA MDE Short Presentation 3.2
 
Implementation of Agent Based Dynamic Distributed Service
Implementation of Agent Based Dynamic Distributed ServiceImplementation of Agent Based Dynamic Distributed Service
Implementation of Agent Based Dynamic Distributed Service
 
IRJET- A Vision based Hand Gesture Recognition System using Convolutional...
IRJET-  	  A Vision based Hand Gesture Recognition System using Convolutional...IRJET-  	  A Vision based Hand Gesture Recognition System using Convolutional...
IRJET- A Vision based Hand Gesture Recognition System using Convolutional...
 
Context Aware Computing
Context Aware ComputingContext Aware Computing
Context Aware Computing
 
Ai
AiAi
Ai
 
Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
 
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...
Topic 4 -software architecture viewpoint-multi-agent systems-a software archi...
 
542 546
542 546542 546
542 546
 
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...
Mobile computing java ieee projects 2012 Seabirds ( Chennai, Pondicherry, Vel...
 
UbiComp2011: ContextCapture (Poster)
UbiComp2011: ContextCapture (Poster)UbiComp2011: ContextCapture (Poster)
UbiComp2011: ContextCapture (Poster)
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 

Viewers also liked

A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...
A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...
A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...IDES Editor
 
Gravitational Based Hierarchical Clustering Algorithm
Gravitational Based Hierarchical Clustering AlgorithmGravitational Based Hierarchical Clustering Algorithm
Gravitational Based Hierarchical Clustering AlgorithmIDES Editor
 
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...IDES Editor
 
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...IDES Editor
 
Physical Layer Technologies And Challenges In Mobile Satellite Communications
Physical Layer Technologies And Challenges In Mobile Satellite CommunicationsPhysical Layer Technologies And Challenges In Mobile Satellite Communications
Physical Layer Technologies And Challenges In Mobile Satellite CommunicationsIDES Editor
 
Image Fusion of Video Images and Geo-localization for UAV Applications
Image Fusion of Video Images and Geo-localization for UAV ApplicationsImage Fusion of Video Images and Geo-localization for UAV Applications
Image Fusion of Video Images and Geo-localization for UAV ApplicationsIDES Editor
 
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...IDES Editor
 
IEEE-Communications-Mag-CSDCYorkU
IEEE-Communications-Mag-CSDCYorkUIEEE-Communications-Mag-CSDCYorkU
IEEE-Communications-Mag-CSDCYorkUKeith Menezes
 

Viewers also liked (8)

A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...
A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...
A Novel Optimum Technique for JPEG 2000 Post Compression Rate Distortion Algo...
 
Gravitational Based Hierarchical Clustering Algorithm
Gravitational Based Hierarchical Clustering AlgorithmGravitational Based Hierarchical Clustering Algorithm
Gravitational Based Hierarchical Clustering Algorithm
 
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...
Preventing Autonomous System against IP Source Address Spoofing: (PASIPS) A N...
 
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...
Development of Robust Adaptive Inverse models using Bacterial Foraging Optimi...
 
Physical Layer Technologies And Challenges In Mobile Satellite Communications
Physical Layer Technologies And Challenges In Mobile Satellite CommunicationsPhysical Layer Technologies And Challenges In Mobile Satellite Communications
Physical Layer Technologies And Challenges In Mobile Satellite Communications
 
Image Fusion of Video Images and Geo-localization for UAV Applications
Image Fusion of Video Images and Geo-localization for UAV ApplicationsImage Fusion of Video Images and Geo-localization for UAV Applications
Image Fusion of Video Images and Geo-localization for UAV Applications
 
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...
Performance Comparison of Rerouting Schemes of Multi Protocol Label Switching...
 
IEEE-Communications-Mag-CSDCYorkU
IEEE-Communications-Mag-CSDCYorkUIEEE-Communications-Mag-CSDCYorkU
IEEE-Communications-Mag-CSDCYorkU
 

Similar to Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System –

Automated Java Code Generation (ICDIM 2006)
Automated Java Code Generation (ICDIM 2006)Automated Java Code Generation (ICDIM 2006)
Automated Java Code Generation (ICDIM 2006)IT Industry
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software EvaluationLori Gilbert
 
Object and method exploration for embedded systems
Object and method exploration for embedded systemsObject and method exploration for embedded systems
Object and method exploration for embedded systemsMr. Chanuwan
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingDr Sukhpal Singh Gill
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
 
Mit104 software engineering
Mit104  software engineeringMit104  software engineering
Mit104 software engineeringsmumbahelp
 
Introducton of event-driven edited.pptx
Introducton of event-driven edited.pptxIntroducton of event-driven edited.pptx
Introducton of event-driven edited.pptxkristinatemen
 
Software engineering
Software engineeringSoftware engineering
Software engineeringh2eEdgar
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for RoboticsLorran Pegoretti
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentEditor IJCATR
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 

Similar to Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System – (20)

Automated Java Code Generation (ICDIM 2006)
Automated Java Code Generation (ICDIM 2006)Automated Java Code Generation (ICDIM 2006)
Automated Java Code Generation (ICDIM 2006)
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software Evaluation
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Object and method exploration for embedded systems
Object and method exploration for embedded systemsObject and method exploration for embedded systems
Object and method exploration for embedded systems
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
Programming
ProgrammingProgramming
Programming
 
Mit104 software engineering
Mit104  software engineeringMit104  software engineering
Mit104 software engineering
 
Introducton of event-driven edited.pptx
Introducton of event-driven edited.pptxIntroducton of event-driven edited.pptx
Introducton of event-driven edited.pptx
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 

More from IDES Editor

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A ReviewIDES Editor
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...IDES Editor
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...IDES Editor
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...IDES Editor
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCIDES Editor
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...IDES Editor
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingIDES Editor
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...IDES Editor
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsIDES Editor
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...IDES Editor
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...IDES Editor
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkIDES Editor
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetIDES Editor
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyIDES Editor
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’sIDES Editor
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...IDES Editor
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance AnalysisIDES Editor
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesIDES Editor
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...IDES Editor
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...IDES Editor
 

More from IDES Editor (20)

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A Review
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive Thresholds
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through Steganography
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’s
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance Analysis
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
 

Recently uploaded

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System –

  • 1. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System – Sassi Bentrad1 and Djamel Meslati2 1 University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria Email: sassi_bentrad@hotmail.fr 2 University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria Email: meslati_djamel@yahoo.com Abstract— There has been a great interest recently in systems but the internal program code is now much more complicated that use graphics to aid in the programming, debugging, and (due to the extra code to handle the user interface). Therefore, understanding of computer systems. The ‘’Visual we must find ways to make the programming task more Programming’’ and ‘’Program Visualization’’ are exciting accessible to users. One approach to this problem is to areas of active computer science research that show promise for improving the programming process, for this they have investigate the use of graphics as the programming language. been applied to these systems. This article attempts to provide This has been called ‘’Visual Programming’’ or ‘’Graphical more meaning to these terms by giving precise definitions, Programming’’. Some Visual Programming systems have and then surveys a number of systems that can be classified as successfully demonstrated that non-programmers can create providing Visual Programming or Program Visualization. fairly complex programs with little training [3]. Another class These systems are organized by classifying them into two of systems try to make programs more understandable by different taxonomies. The paper also gives a brief description using graphics to illustrate the programs after they have been of our approach that concentrated on both Visual Programming created. These are called ‘’Program Visualization’’ systems and Program Visualization for an Ideal Visual Software and are usually used during debugging or when teaching Engineering System. We consider it as a new promising trend students how to program [4] [5]. The rest of this paper is in software engineering. organized as follows. The next section attempts to provide a Index Terms— visual language, visual programming, program more formal definition of these terms. The third section visualization. discusses why graphical techniques are appropriate for use with programming. Then, the various approaches to Visual I. INTRODUCTION Programming and Program Visualization are illustrated through a survey of relevant systems. This survey is organized around Today industrial systems require more complex software two taxonomies presented in Section 4. In Section 5, we give development with high qualities in terms of maintainability an overview of an evaluation of visual programming and and reusability. The development of software is a complicated program visualization. Section 6 discuss about Visual and tedious process, requiring highly specialized skills in Programming versus Program Visualization. In Section 7, some systems programming. It is well-known that conventional general problems and areas for further research are addressed. programming languages are difficult to learn and use, requiring Finally Sections 8 present our brief conclusion. skills that many people do not have [1]. However, there are significant advantages to supplying programming capabilities II. DEFINITIONS in the user interfaces of a wide variety of programs. Recently, however, a software framework has been introduced to reduce Programming. In this paper, a computer ‘’program’’ is the development time and costs associated with programming. defined as ‘’a set of statements that can be submitted as a For example, the success of spreadsheets can be partially unit to some computer system and used to direct the behavior attributed to the ability of users to write programs (as of that system” [6]. While the ability to compute ‘’everything’’ collections of ‘’formulas’’). As the distribution of personal is not required, the system must include the ability to handle computers grows, the majority of computer users now do not variables, conditionals and iteration, at least implicitly. know how to program, however. They buy computers with Interpretive vs. Compiled. Any programming language packaged software and are not able to modify the software system may either be ‘’interpretive’’ or ‘’compiled.’’ A compiled even to make small changes. In order to allow the end user to system has a large processing delay before statements can reconfigure and modify the system, the software may provide be run while they are converted into a lower-level various options, but these often make the system more representation in a batch fashion. An interpretive system complex and still may not address the users’ problems. ‘’Easy- allows statements to be executed when they are entered. This to-use’’ software, such as ‘’Direct Manipulation’’ systems characterization is actu­ally more of a continuum rather than [2] actually make the user—programmer gap worse since more a dichotomy since even interpretive languages like Lisp people will be able to use the software (since it is easy to use), typically require groups of statements (such as an entire © 2011 ACEEE 56 DOI: 01.IJIT.01.03.22
  • 2. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 procedure) to be specified before they are executed. appealing ideas for a number of reasons. The human visual Visual Programming. ‘’Visual Programming’’ (VP) refers to system and human visual information processing are clearly any system that allows the user to specify a program in a two optimized for multi-dimensional data. Computer programs, (or more) dimensional fashion. Although this is a very broad however, are conventionally presented in a one-dimensional definition, conventional textual languages are not considered textual form, not utilizing the full power of the brain. Two- two dimensional since the com­pilers or interpreters process dimensional displays for programs, such as flowcharts and them as long, one-dimensional streams. Visual Programming even the indenting of block structured programs; have long does not include systems that use conventional (linear) been known to be helpful aids in program understanding [9]. programming languages to define pic­tures, such as, Clarisse [10] claims that graphical programming uses informa- Sketchpad, CORE, PHIGS, the Macintosh Toolbox, or X-II tion in a format that is closer to the user’s mental representa- Window Manager Toolkit [7]. It also does not include drawing tions of problems, and will allow data to be processed in a packages like Apple Macintosh MacDraw, since these do format closer to the way objects are manipulated in the real not create ‘’programs’’ as defined above. Visual programming world. It seems clear that a more visual style of programming contains various graphical approaches to specify programs. could be easier to understand and generate for humans, espe- Program Visualization. ‘’Program Visualization’’ (PV) is an cially for non-programmers or novice programmers. Another entirely different concept from Visual Programming. In Visual motivation for using graphics is that it tends to be a higher- Programming, the graphics is used to create the program level description of the desired actions (often de-emphasiz- itself, but in Program Visualization, the program is specified ing issues of syntax and providing a higher level of abstrac- in a conventional, textual manner, and the graphics and tion) and may therefore make the programming task easier animations is used to illustrate some aspects of the program even for professional programmers. This may be especially or its run-time execution. Program Visualization systems can true during debugging, where graphics can be used to present be utilized in program development, research, and teaching much more information about the program state (such as to help programmers and learners understand the structure, current variables and data structures) than is possible with abstract and concrete execution as well as the evolution of purely textual displays. This is one of the goals of Program software. Unfortunately, in the past, many PV systems have Visualization. Other Program Visualization systems use graph- been incorrectly labeled “Visual Programming” (as in [8]). PV ics to help teach computer programming. Also, some types systems can be classified using two axes: whether they of complex programs, such as those that use concurrent pro- illustrate the code, data or algorithm of the program, and cesses or deal with real-time systems, are difficult to describe whether they are dynamic or static. with textual languages so graphical specifications may be ‘’Data Visualization’’ systems show pictures of the actual more appropriate. The popularity of ‘’direct manipulation’’ data of the pro­gram. Similarly, ‘’Code Visualization’’ interfaces [2], where there are items on the computer screen illustrates the actual program text, by adding graphical marks that can be pointed to and operated on using a mouse, also to it or by converting it to a graphical form (such as a contributes to the desire for Visual Languages. Since many flowchart). Systems that illustrate the ‘’algorithm’’ use Visual Languages use icons and other graphical objects, edi- graphics to show abstractly how the program operates. This tors for these languages usually have a direct manipulation is different from data and code visualization because with user interface. The user has the impression of more directly algorithm visualization, the pictures may not correspond constructing a program rather than having to abstractly de- directly to data in the program, and changes in the pictures sign it. might not correspond to specific pieces of the code. For example, an algorithm animation of a sort rou­tine might show IV. TAXONOMIES OF VISUAL LANGUAGES the data as lines of different heights, and swaps of two items This paper presents two classifications. The first, might be shown as a smooth animation of the lines moving. discussed in the subsection A, lists the various ways that The ‘’swap’’ operation may not be explicitly in the code, Visual Programming systems have represented the program. however. The second classification (subsection B) is for Program ‘’Dynamic’’ visualizations refer to systems that can show an Visualization systems, and shows whether the systems animation of the program running, whereas ‘’static’’ systems illustrate the code, data or algorithm of programs. Of course, are limited to snapshots of the program at certain points. a single system may have features that fit into various Visual Languages. ‘’Visual Languages’’ refer to all systems categories and some systems may be hard to classify, so that use graphics, including Visual Programming and Program these taxonomies attempt to characterize the systems by their Visualization systems. Although all these terms are somewhat most prominent features. Also, the systems discussed here similar and confusing, it is important to have different names are only representative; there are many systems that have for the different kinds of systems, and these are the names not been. Since there are so many visual language systems, that are conventionally used in the literature. it would be impossible to survey them all in a single article. III. ADVANTAGES OF USING GRAPHICS A.Classification of Visual Programming Systems (VPSs) Visual Programming and Program Visualization are very VPSs (or VPLs: Visual Programming Languages) can be classified in different categories according to their general © 2011 ACEEE 57 DOI: 0.IJIT.01.03. 22
  • 3. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 program representation paradigm [11]. As the field of VPSs programmer to visualize the execution of a program as a has matured, more and more interest has been focused on sequence of different cell states which progress through time. creating a robust, standardized classification for work in the Examples of form-based VPSs are Forms/3, ASP (Analytic area. Such a classification system not only aids researchers Spreadsheet Package), NoPumpG, NoPumpII and Penguims. in finding related work but also provides a baseline with which Besides that, there are VPSs such as Vampire [14], ChemTrains to compare and evaluate different systems. Some of the most and BITPICT which combine visual object-oriented important names in the field, including Chang, Shu, and programming language with a rule-base approach. Burnett, have worked on identifying the defining TABLE I. C LASSIFICATION OF VISUAL PROGRAMMING LANGUAGES. characteristics of the major categories of VPSs [17, 16, 11].The following presents a summary of the classification scheme discussed below:  Purely visual language  Hybrid text and visual systems  Others, such as Programming-by-example systems, Constraint-oriented systems and Form-based systems Note that the categories are by no means mutually exclusive. Indeed, many languages can be placed in more than one category. The single most important category has to be purely visual languages that have been derived entirely or predominantly from graphical rules. Such languages are characterized by heavy reliance on visual techniques It is important to note that in each of the categories mentioned throughout the programming process. The programmer above, we can find examples of both general-purpose VPSs manipulates icons or other graphical representations to create and languages designed for domain-specific applications. a program which is subsequently debugged and executed in Table 1 summarizes classification of most of the visual system the same visual environment. The program created is compiled or VPSs frequently quoted according to the three categories directly from its visual representation and is never translated highlighted above. The field of visual programming has into an interim text-based language. Examples of these evolved greatly over the last ten years. Continual languages include Pictorial Janus, VIPR, Prograph and PICT. development and refinement of languages in the categories There are other suggestion to subdivide this category into discussed above have led to some work which was initially more specific language paradigm such as object-oriented, considered to be part of the field being reclassified as related functional, imperative and logic. Burnett and Baker [11] have to but not actually exemplifying visual programming. These developed a classification scheme for classifying VPS research VPS orphans, so to speak, include algorithm animation papers. Their aim is to help other researchers to easily locate systems, such as BALSA [17], which provide interactive relevant works in this field. Another subset of VPSs favors graphical displays of executing programs and graphical user the idea of integration of visual languages with well- interface development tools, like those provided with many established textual programming languages. They perceive modern compilers including Microsoft Visual C++. Both types the integration might be more likely to meet the actual of systems certainly include highly visual components, but requirements of practical software development than the they are more graphics applications and template generators highly ambitious goal of creating purely visual languages. than actual programming languages. These hybrid systems may include both programs created visually and then translated into high-level textual language, B. Classification of Program Visualization Systems (PVSs) or programs which involve the use of graphical elements in a The systems discussed in this section are not textual language. The work of Andrew, Erwig and Meyer [12] programming systems since code is created in the are examples of programs created graphically and the system conventional manner. Therefore, none of the systems generates textual program from it. The latter includes works discussed below appears in the previous sections. Graphics to extend existing textual language such as C++ and Basic. is used here to illustrate some aspect of the program after it is The current commercial system in this category includes written. Table 2 shows some Program Visualization systems Visual Basic and Visual C++. Beside the two major categories classified by whether they attempt to illustrate the code, data discussed, there exist many VPSs which fall into smaller or algorithm of a program, and whether the displays are static classifications similar to Pygmalion or Sketchpad. They are or dynamic. Some systems fit into multiple categories, because termed constraint-based languages which are especially they illustrate multiple aspects or have different modes. popular for simulation design. An example of this is ThingLab II [13], which is an object-oriented and constrainted programming system. A few other VPSs follow the metaphor of spreadsheets and these languages are classified as form- based VPSs. Programming using form-based VPSs involves altering a group of interconnected cells and allowing the © 2011 ACEEE 58 DOI: 01.IJIT.01.03.22
  • 4. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 TABLE I. CLASSIFICATION OF PROGRAM VISUALIZATION SYSTEMS. of these two categories have not intersected; VP interfaces allow for the creation of programs from graphical elements representing specific static-code procedures, whereas PV interfaces permit graphical viewing of arbitrary (though finite in range) procedures within a program without any capability to change the program. However, in a reconfigurable system, the user must be able to manipulate pre-existing dynamic arbitrary procedures to create programs. Thus, traditional visual languages, VP and PV, are not useful for a reconfigurable system when taken separately; the system in fact requires both. A. A Round-Trip Visual Engineering In classical programming languages, programs are represented as text, and the meaning results from the linear order of lexical elements. Visual programs consist of graphical V. EVALUATION OF VISUAL PROGRAMMING AND PROGRAM and often also textual elements. The meaning of the programs VISUALIZATION Visual Languages are new paradigms for programming, and clearly the existing systems have not been completely convincing. The challenge clearly is to demonstrate that Visual Program­ming and Program Visualization can help with depends on the spatial placement of and the connection real-world problems. The key to this, in my opinion, is to find between these elements. In accordance with various appropriate domains and new domains to apply these programming paradigms, there are control-flow, data-flow, technologies to. For general-purpose programming by functional, object-oriented, rule-based, form-based, and professional programmers, textual languages are probably hybrid (multi-paradigm) visual programming languages. Many more appropriate. However, we will find new domains and visual programming languages just allow the user more or new forms of Visual Language where using graphics will be less to visually build the abstract syntax tree of a textual beneficial. The systems discussed in this paper show that program1. If a program created using Visual Programming is some successful areas so far include: to be displayed or debugged, clearly this should be done in a graphical manner, which might be considered a form of For Visual Programming: Program Visualization. However, it is more accurate to use  Helping to teach programming (FPL, Pict, etc.), the term Visual Programming for systems that allow the  Allowing non-programmers to enter information in limited program to be created using graphics, and Program domains (OPAL, spread-sheets), Visualization for systems that use graphics only for illustrating  Allowing non-programmers to construct animations programs after they have been created. The distinction (PLAY) and simple computerized lessons for computer- between the Visual Programming Language and Visualization aided instruction (Rehearsal World), subareas is that visualization employs visual techniques to  Helping with the construction of user interfaces (Peridot, display data, software, algorithms and programs, but does State Transition UIMS), and not use these techniques to program visually.  Most significantly, financial planning with spreadsheets. For Program Visualization:  Helping to teach algorithms involving data structures (Sorting out Sorting, BALSA),  Helping to teach program concepts, such as Prolog code execution (TPM), and  Helping to debug programs (MacGnome). VI. VISUAL PROGRAMMING VERSUS PROGRAM VISUALIZATION Graphical interfaces fall within one of two categories: Visual Programming (VP) or Program Visualization (PV), both of which are subclasses of Visual Languages. The former category is comprised of interfaces which allow the user to Figure 1. Visual Programming vs. Program Visualization create programs graphically, whereas the latter category is 1 comprised of interfaces which convert previously-written There a re also integrated development environments for textual programming languages that have been called “visual” for marketing conventional code to a viewable form. In the past, the domains reasons. © 2011 ACEEE 59 DOI: 0.IJIT.01.03. 22
  • 5. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 As shown in Figure 1, visual programming and program constructed, or to be understood and analyzed. The knowledge visualization complement each other. Program visualization K is obtained through the user’s cognitive capability C, generates visualizations from specifications of software particularly the perceptual ability in the context of visual systems, while visual programming generates software programming and program visualization. The knowledge also systems from visual specifications. Combining the two enhances the cognitive capability and plays the key role in approaches allows Round-Trip Visualization, for example by driving the interactive exploration E through the user interface. producing a visual presentation from the source code of a Through the user interface, the user provides specifications S system, changing this visual presentation, and generating a for the program to be developed or the algorithms and their new system. By such a definition, the system which we hope parameters to be applied. Upon the specification supplied, a to achieve through our approach proposed would technically visual program V is displayed and ed­ited as an image I. In the be referred to as a VP system, since the “only” qualifier in the context of program visualization, V represents the visualization PV definition eliminates any other possibility. That is, a VP of a program’s properties, such as status, structure, interac­tion system can have some PV aspects, such as graphical among its components, or output results. Its image I is perceived debugging, and yet still be considered VP. However, it is by the user, with an increase in knowledge K as a result. Program unclear in our minds that such definitions were meant to P is what the user is interested. It is to be developed in the case apply to a system with extensive use of both PV and VP of visual programming, or comprehended and analyzed in the techniques, as would be needed in a reconfig­urable system. case of pro­gram visualization. The program in this conceptual We therefore anticipate a need for a new class of visual model has a broader sense than the traditionally understood language which extensively incorporates both PV and VP program as defined by Graham (1987). P can be any of the techniques. Such a hybrid visual programming language following: would permit the graphical creation of pro­grams (as in VP)  A code sequence conforming to a traditional from visualized pre-existing conventional code (as in PV). programming language such as Java, The pre-existing conventional code could be adjusted  A code sequence conforming to a mark-up language external to the system, and subsequent system sessions such as XML which may not necessarily carry any would then reflect these changes using PV techniques. The computation, or code could then be configured interactively us­ing VP  A binary code or data structure generated (e.g. by a techniques. These ideas are included in our approach and parser) from a high-level specification. will be implementing within a software framework which As defined in Section 2, visual programming (VP) refers to a through him we hope to achieve an Ideal Visual Software process in which the user specifies programs in a two or more Engineering System. dimensional fashion, i.e. in the direction of V to P. Program visualization (PV), on the other hand, refers to a process in which B. The Conceptual Model certain properties of a program are displayed in a two or more To explain the visual programming process supported by dimensional fashion according to the user’s selec­tion of a VPL, we use a high level conceptual model to illustrate the parameters and/or algorithms. The process of PV is clearly in roles of the user, user interface, and visual program. This the direction of P to V. Usually, a VPL aims at easing the process model also clearly defines the differences between visual of program specification S through graphical interaction and programming and program visualization, which play direct manipulation with a minimal requirement of the complementary roles in software development. We adapt the programming knowledge. The easiness of the specification S model of van Wijk (2006) that was used to identify the major for a given program P is measured by the amount of time T ingredients, costs and gains in the field of visualization. The required, represented by dS/dt, While a PV system aims at adapted model, illustrated in Figure 2, considers the major maximizing the user’s gain in his/her knowledge K about the ingredients of the user, user-interface, and program, rather program P under analysis. The measurement of PV’s than those of the user, visualization, and data in the context effectiveness is made when the user takes time T to gain of visualization. additional knowledge K(T)-K(0) about the program P, represented by dK/dt. An Ideal Visual Software Engineering System should support Round-Trip Vis-ual Engineering by incorporating both visual programming and program visualization. Consistent graphical formalisms in both VP and PV are desirable in order to maintain the user’s mental map (Misue et al, 1995) throughout the life-cycle of the development. VII.GENERAL PROBLEMS AND AREAS FOR FUTURE RESEARCH Figure 2. A Conceptuel Model of Visual Programming and Program Visualization As described in the previous section, the largest area for The boxes in Figure 2 denote containers; add circles denote future research is to prove that Visual Languages will actually processes that transform inputs into outputs. The user is help users. Although these systems are attractive for a number modeled with his/her knowledge K about the program to be of reasons, and some have been successfully used, they share © 2011 ACEEE 60 DOI: 01.IJIT.01.03.22
  • 6. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 a number of more technical problems unsolved which are fruitful Fortunately, prelim­inary results are appearing for the advantages areas for future research. of using graphics for teaching students how to program [18]. Poor representations. Many visual representations are simply A. All Visual Languages not very good. Programs are hard to understand once created The problems mentioned in this section apply to many Visual and difficult to debug and edit. This is especially true once the Programming and Program Visualization Systems. programs get to be a non-trivial size. Difficulty with large programs or large data. Almost all visual Lack of Portability of Programs. A program written in a representations are physically larger than the text they replace, textual language can be sent through electronic mail, and used, so there is often a problem that too little will fit on the screen. read and edited by anybody. Graphical languages require special This problem is alleviated to some extent by scrolling and various software to view and edit; otherwise they can only be viewed abstraction mechanisms. on hard­copy. Need for automatic layout. When the program or data gets to be large, it can be very tedious for the user to have to place each B. Specific Problems for Visual Programming component, so the system should lay out the pic­ture Lack of functionality. Many VP systems work only in a automatically. Unfortunately, for many graphical representations, limited domain. generating an attractive layout can be difficult, and generating a Inefficiency: Most VP systems run programs very slowly. perfect layout may be intractable. For example, generating an  Unstructured programs. Many VP systems promote optimal layout of graphs and trees is NP-Complete [20]. More unstructured programming practices in the software engineering research is needed, therefore, on fast layout algorithms for graphs sense (like GOTO). Many do not provide abstraction mechanisms that have good user interface characteristics, such as avoiding (procedures, local variables, etc.) which are necessary for large scale changes to the display after a small edit. programs of a reasonable size. Lack of formal specification. Currently, there is no formal way  Static representations of programs that are hard to under to describe a Visual Language. Something equivalent to the stand. For flowcharts, AMBIT and similar systems, the pro- BNFs used for textual languages is needed. This would provide gram begins to look like a maze of wires. For Rehearsal World the field with a ‘’hard science’’ foundation, and may allow tools and similar  systems, the static representation is simply to be created that will make the construction of editors and normal linear code. compilers for Visual Languages easier. Chang [19] [21], Glinert No place for comments. An interesting point is that virtually [22] and Selker [23] have made attempts in this direc­tion, but no VP system provides a place for comments. much more work is needed. Many Visual Programs do not integrate with programs Tremendous difficulty in building editors and environments. created in different languages, such as text. A Visual Program Most Visual Languages require a specialized editor, compiler, might be appropriate for some aspects of the programming task and debugger to be created to allow the user to use the language. but not others. An exception is MPL (A Graphical Programming With textual languages, conventional, existing text editors can Environment for Matrix Processing based on Logic and be used and only a compiler and possibly a debugger need to be Constraints) which uses a Visual Language for matrices and a written. Currently, each graphical language requires its own editor textual language for everything else. Another approach is for and environment, since there are no general purpose Visual the compiler for the visual programming language to generate Language editors. These editors are hard to create because there conventional computer programs (e.g., in C), so they can be are no ‘’editor­­compilers’’ or other similar tools to help. The combined with other programs. ‘’compiler-compiler’’ tools used to build compilers for textual C. Specific Problems for Program Visualization languages are also rarely useful for building compilers and inter­preters for Visual Languages. In addition, the language  Difficulty in specifying the display. Newer Program designer must create a system to display the pictures from the Visualization systems are beginning to ease the task of specifying language, which usually requires low-level graphics the display, but it can still be very difficult to design and pro­gram pro­gramming. Other tools that traditionally exist for textual the desired graphics. Some systems, such as BALSA-II make it languages must also be created, including pretty-printers, hard- easy to choose from a pre-defined set of displays, but creating copy facilities, program checkers, indexers, cross-referencers, other displays can still be very difficult because it involves making pattern matching and searching (e.g., ‘’grep’’ in Unix), etc. These low-level calls to the graphics primitives. problems are made worse by the historical lack of portability of Problem of controlling timing. For dynamic data visualization, most graphics programs. it is difficult to specify when the displays should be updated. Lack of evidence of their worth. There are not many Visual Issues of aesthetics in timing are very important to produce Languages that would be generally agreed are ‘’successful,’’ useful animations. and there is little in the way of formal experiments or informal experience that shows that Visual Languages are good. It would VIII. SUMMARY be interesting to see experimental results that demonstrated that Visual Programming and Program Visualization are exciting visual programming techniques or iconic languages were better areas of active computer science research that show promise for than good textual methods for performing the same tasks. Metrics improving the programming process (i.e. to improve the user might include learning time, execution speed, retention, etc. interface to programming environments), especially for non- © 2011 ACEEE 61 DOI: 0.IJIT.01.03. 22
  • 7. ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 programmers or novice programmers, but more work needs to [10] Olivier Clarisse and Shi-Kuo Chang, “VICON: A Visual Icon be done. A number of interesting systems have been created in Manager”, Visual Languages. New York: Plenum Press, pp. 151– each area, and there are some that cross the boundaries. This 190, 1986. paper has attempted to classify some of these systems and [11] Burnett, M.M., Baker, M.J.: A classification system for visual programming languages. J. Vis. Lang. Comput. 5(3), pp. 287–300 present the general problems with them in hopes that this will ,1994. clarify the use of the terms and provide a context for future [12] M. Erwig, and B. Meyer.: Heterogeneous Visual Languages- research. The success of spreadsheets demonstrates that if we Integrating Visual and Textual Programming. In 11th IEEE Symp, find the appropriate paradigms, graphical techniques can On Visual Languages, Darmstadt. pp. 318–325, 1995. revolutionize the way people interact with computers. The paper [13] J. H. Maloney, A. Borning and B. N. Freeman-Benson.: also gives a brief description of our approach that concentrated Constraint Technology for User-Interface Construction in ThingLab on both Visual Programming and Program Visualization for II. In Proceedings OOPSLA 89, ACM SIGPLAN Notices, Vol. 24, an Ideal Visual Software Engineering Environment. This No. 10, pp. 381–388, 1989. has allowed us to reduce training time and programming time [14] D. W. Mcintyre.: Design and Implementation with Vampire. In M. M. Burnett, A. Goldberg, and T. Lewis, eds.: Visual Object- on our manipulators from weeks to days, or even hours. We Oriented Programming: Concepts and Environments. Englewood believe that this novel approach will open a new-direction in Cliffs, Prentice-Hall, 1994. the programming languages development field. [15] C. Dos Santos, “Visualisation métaphorique tridimensionnelle de l’information”, Ph.D. thesis, Ecole nationale supérieure des REFERENCES télécommunications, PARIS-ENST, 2002. [16] Shu, N. C. Visual Programming Languages: A Perspective and [1] C. Lewis and G.M. Olson. “Can Principles of Cognition Lower a Dimensional Analysis, pp. 11–34. Plenum Press, 1986. the Barriers to Programming?”, Empirical Studies of Programmers, [17] Chang, S. Visual languages: A tutorial and survey. IEEE vol. 2, Ablex, 1987. Software, 4(1):pp. 29–39, January 1987. [2] Ben Shneiderman, “Direct Manipulation: A Step Beyond [18] Nancy Cunniff, Robert P. Taylor, and John B. Black, “Does Programming Languages”, IEEE Computer. pp. 57–69, Aug, 1983. Programming Language Affect the Type of Conceptual Bugs in [3] Daniel C. Halbert, “Programming by Example”, PhD Thesis, Beginners’ Programs? A Comparison of FPL and Pascal”, Computer Science Division, Dept. of EE&CS, University of Proceedings SIGCHI’86: Human Factors in Computing Systems, California, Berkeley, 1984, Also: Xerox Office Systems Division, Boston, MA. pp. 175–182, April 13–17, 1986. Systems Development Department, TR OSD-T8402, December, [19] S. K. Chang, M. Tauber, B. Yu, and J.S. Yu, “A Visual Language 1984. Compiler”, IEEE Transactions on Software Engineering. pp. 506– [4] Brad A. Myers, “Visual Programming, Programming by 525, May, 1989. Example, and Program Visualization; A Taxonomy”, Proceedings [20] D. S. Johnson, “The NP-Completeness Column: an ongoing SIGCHI’86: Human Factors in Computing Systems. Boston, MA, guide”, Journal of Algorithms, pp. 89–99, 1982. pp. 59–66, April 13–17, 1986. [21] Shi-Kuo Chang, G. Tortora, Bing Yu, and A. Guercio, “Icon [5] Brad A. Myers, “The State of the Art in Visual Programming Purity - Toward a Formal Theory of Icons”, 1987 Workshop on and Program Visualization”, Carnegie Mellon University Computer Visual Languages. August 19–21, 1987. Linkoping, Sweden. IEEE Science Department Technical Report No. CMU-CS-88-114. Feb, Computer Society, pp. 3–16. 1988. [22] Ephraim P. Glinert and Jakob Gonczarowski, “A (Formal) [6] Dictionary of Computing. Oxford: Oxford University Press, Model for (Iconic) Programming Environments”, Human-Computer 1983. Interaction-Interact’87, Elsevier Science Publishers (North [7] Joel McCormack and Paul Asente, “An Overview of the X Holland). pp. 283–290, 1987. Toolkit”, Proceedings of the ACM SIGGRAPH Symposium on User [23[ Ted Selker and Larry Koved, “Elements of Visual Language”, Interface Software, Banff, Alberta, Canada. pp 46–55, Oct, 17-19, IEEE Workshop on Visual Languages. October 10–12, 1988. 1988. Pittsburgh, [8] Robert B. Grafton and Tadao Ichikawa, eds. IEEE Computer, PA. Computer Society Order Number 876, IEEE Computer Society Special Issue on Visual Programming. Aug, 1985. Press, Terminal Annex, P.0. Box 4699, Los Angeles, CA 90051. pp. [9] David C. Smith, “Pygmalion: A Computer Program to Model 38–43, 1988. and Stimulate Creative”, Thought. Basel, Stuttgart: Birkhauser, 1977. © 2011 ACEEE 62 DOI: 01.IJIT.01.03.22