Software Engineering For Visual Programming Languages: Presented By: Parichaya Pandey
Software Engineering For Visual Programming Languages: Presented By: Parichaya Pandey
Programming Languages
Presented by:
Parichaya Pandey
Visual Programming
• VPLs may be further classified, according to the type and extent of visual
expression used, into icon-based languages, form-based languages, and diagram
languages.
• Visual programming environments provide graphical or iconic elements which
can be manipulated by users in an interactive way according to some specific
spatial grammar for program construction.
• The general goal of VPLs is to make programming more accessible to novices and
to support programmers at three different levels:
Visual Programming
• Syntax: VPLs use icons/blocks, forms and diagrams trying to reduce or even to
completely eliminate the potential of syntactic errors helping with the
arrangement of programming primitives to create well-formed programs. Non
VPLs examples would be spell check in word processors underlining or even auto
correcting individual words or grammar.
• Semantics: VPLs may provide some mechanisms to disclose the meaning of
programming primitives. This could include help functions providing
documentation functions built-in to programming languages.
• Pragmatics: VPLs support the study of what programs mean in particular
situations. This level of support allows users to put artifacts created with a VPL
into a certain state in order to explore how the program would react to that state.
Software engineering issues particular to VPLs
• The third is more an opportunity than a problem: many of the language features
made possible by multidimensionality and pioneered in VPLs have inherent
elements of software engineering support.
Dynamic documentation and program
comprehension
• Program comprehension is critical in the debugging and maintenance phases of
the software lifecycle.
• Combination of concrete values with visual feedback leads naturally to the idea of
software animation, and many VPLs include various forms of this.
• Software animation can be thought of as a dynamically computed documentation
mechanism for supporting program comprehension.
• Unfortunately, almost all of these studies have investigated only static
diagrammatic notations, omitting the dynamic graphics, concreteness, and
feedback mechanisms found in many VPLs.
Dynamic documentation and program
comprehension
• However, the use of dynamic graphics of concrete values as a program
comprehension mechanism was specifically investigated in two studies regarding
software animation’s effects on people’s ability to comprehend and work with
previously existing programs.
• The results were that animations helped the participants with program
comprehension if the participants were actively involved in working with the
animations.
Testing
• The high degrees of concreteness and immediate visual feedback present in some
VPLs have been motivated in part by a kind of “instant testing” goal, with the idea
that if the user immediately sees the result of a program edit, he or she will spot
programming bugs as quickly as they are made, and hence will be able to
eradicate them right away.
• This motivation has been especially prevalent in end-user VPLs, but is also found
in VPLs for professional programmers.
• However, spreadsheet systems provide evidence that concreteness and immediate
visual feedback have not been enough for finding and removing most of the bugs
in a spreadsheet’s formulas: there is a substantial body of research showing that
spreadsheets often contain bugs.
Debugging
• Code reuse is the practice of using existing code for a new function or software.
• But in order to reuse code, that code needs to be high-quality. And that means it
should be safe, secure, and reliable.
• Developing software that fulfills these requirements is a challenge. Systematically
developing high-quality reusable software components and frameworks is even
harder.
Conclusion