0% found this document useful (0 votes)
33 views

Software Engineering For Visual Programming Languages: Presented By: Parichaya Pandey

Visual programming languages (VPLs) aim to make programming more accessible by reducing syntactic errors and using graphical elements. They support programmers at the syntax, semantics, and pragmatics levels. Software engineering for VPLs faces challenges in developing approaches compatible with their non-traditional paradigms and supporting diverse audiences. However, VPL features like dynamic documentation and immediate feedback also provide opportunities for integrated software engineering support. Developing high quality, reusable code is important but difficult for VPLs.

Uploaded by

Roshan Kr Shah
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Software Engineering For Visual Programming Languages: Presented By: Parichaya Pandey

Visual programming languages (VPLs) aim to make programming more accessible by reducing syntactic errors and using graphical elements. They support programmers at the syntax, semantics, and pragmatics levels. Software engineering for VPLs faces challenges in developing approaches compatible with their non-traditional paradigms and supporting diverse audiences. However, VPL features like dynamic documentation and immediate feedback also provide opportunities for integrated software engineering support. Developing high quality, reusable code is important but difficult for VPLs.

Uploaded by

Roshan Kr Shah
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Software Engineering For Visual

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

• Three features alluded to above have particular implications to software


engineering in VPLs.
• The first is diversity of audience: while some users of VPLs are professional
programmers, some are end users with no training in professional software
engineering notions and methods.
• The second is how to develop software engineering approaches that are fully
compatible with the non-traditional paradigms and mechanisms used in VPLs.
• For example, specifying program semantics by directly manipulating objects or
demonstrating with concrete examples is not the way programming is done in
traditional languages, and there is as yet little research into suitable software
engineering support mechanisms for these non-traditional language features.
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

• In the context of software engineering, debugging is the process of fixing a bug in


the software.
• It refers to identifying, analyzing and removing errors. This activity begins after
the software fails to execute properly and concludes by solving the problem and
successfully testing the software.
• It is considered to be an extremely complex and tedious task because errors need
to be resolved at all stages of debugging.
Steps involved in debugging

• Problem identification and report preparation.


• Assigning the report to software engineer to the defect to verify that it is genuine.
• Defect Analysis using modeling, documentations, finding and testing candidate
flaws, etc.
• Defect Resolution by making required changes to the system.
• Validation of corrections.
Difference Between Debugging and Testing

• Debugging is different from testing.


• Testing focuses on finding bugs, errors, etc. whereas debugging starts after a bug
has been identified in the software.
• Testing is used to ensure that the program is correct and it was supposed to do
with a certain minimum success rate.
• Testing can be manual or automated. There are several different types of testing
like unit testing, integration testing, alpha and beta testing, etc.
Code reuse

• 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

• Three features of VPLs raise challenges and opportunities regarding how to


provide appropriate software engineering support.
• The first challenge comes from the fact that non-traditional audiences are often
the target users of these languages, and these users are usually not formally
trained in programming or software engineering.
• At the same time, these features also give rise to opportunities for highly
integrated software engineering support mechanisms.
• By attending to the significant differences between traditional languages and
VPLs, it may be possible to devise software engineering support methods that
achieve the desirable properties of methods for traditional languages, although
they may look very different from traditional methods.
THANK YOU !!!!

You might also like