Drag and Drop Programming

This article examines how drag and drop programming and other forms of interactive software development can assist end-users to program via the web. AJAX (Asynchronous JavaScript And XML) software is used to provide a Web 2.0 style interactive interface. This can be linked to applications and to Semantic Web information.

Lieberman [1] blames end user programming difficulties on hard to understand programming languages and techniques and argues for visualisation and translation to code to enable end-user programming. To make end-user programming easier it is possible to develop high level visualised templates and translate these into program code. The Dagstuhl report [2] argues that existing programming languages are not sufficiently dependable for end-users to reliably use. De Souza [3] argues that the goal of human-computer interaction (HCI) will evolve from making systems easy to use to making systems that are easy to develop. A template system will assist in this. Ko [4] explains that end-user programmers must be allowed to focus on their goals, and an important part of the solution is to visualise the whole program execution not just the output, so it is necessary to show the user the whole program flow not just text based bug reports. A simple illustration of the techniques that can be used to further this research area is a demonstrator for meta-programming of XML (eXtensible Markup Language) based drag and drop trees [5], this example was created with AJAX (Asynchronous JavaScript And XML), a Java applet or Python were other options investigated.

The code acts as a translator between the XML representation of the trees and interactive graphical representations. This allows open standards platform independent end-user programming. The example is based on the Scand dhtmlxTree [6] and this makes it possible to enable many other programming actions such as adding and deleting nodes, and to create other controls. Repenning [7] argues that visual programming languages using drag and drop mechanisms as a programming approach make it virtually impossible to create syntactic errors, allowing for concentration on the semantics”, and Rosson [8] also advocates this technique. Such techniques could be used with other Semantic Web-based information representations implemented with languages and structures such as XML, RDF (Resource Description Framework), and OWL (Web Ontology Language), and provision of other controls. These controls could then be used as graphical components of a simulation system made available over the web. As well as being used for web-based visual programming an environment such as this could also be employed as an interface to PC based software, or as a translator between systems. Semantic languages provide a higher level declarative view of the problem to be modelled. Coutaz [9] explains that “An interactive system is a graph of models related by mappings and transformations.” This would fit in well with the structure of RDF, which is also a graph structure.

It is important to investigate new ways of enabling collaboration between all those involved in software creation and use. The use of Semantic Web languages for declarative programming can ease the translation between different representations of information, and ease interoperability between systems. This translation or ‘Program Transformation’ allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level and end-user translation to a language more easily interpreted by computer systems. The solution to many interoperability and software problems involves programming with Semantic Web languages rather than just using them for information representation. This will make translation for interoperability easier and more reliable, and further improve the maintainability of software systems.

The research will involve using and building a visualised Semantic programming layer on languages such as AspectXML, XForms, SPARQL, and XQuery all explained in [10] and Meta languages [11][12] to create software and to build an environment for high level end-user programming. This programming environment can be used for creating programs and an environment for end-user programming. The environment can be computer language and system independent as one representation can be translated into many computer languages or Meta languages. Tools such as Amaya [13] can be used for creating and editing Semantic Web applications and documents. This research is a test case for an approach of collaborative end-user programming by domain experts. The end-user programmers can use a visual interface where the visualisation of the software exactly matches the structure of the software itself, making translation between user and computer, and vice versa, much more practical.

To enable generic end-user programming functionality it is important to develop ‘information representation languages’ based on Semantic Web declarative programming languages. Standardisation in XML/RDF enables use of declarative rules for web services. This environment also has to provide a visual development interface for end-users in a similar way to that of Unified Modeling Language (UML) for professional developers. Repenning [7] and Engels [14] argue this.


[1] Lieberman, H., 2007. End-User Software Engineering Position Paper. In: End-User Software Engineering Dagstuhl Seminar.

[2] Burnett M M, Engels G, Myers B A, Rothermel G, 2007, End-User Software Engineering Dagstuhl Seminar, http://eusesconsortium.org/docs/dagstuhl_2007.pdf.

[3] De Souza, C., 2007. Designers Need End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.
[4] Ko, A. J., 2007. Barriers to Successful End-User Programming. In: End-User Software Engineering Dagstuhl Seminar.

[5] Drag and Drop, 2007, http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/components.html.

[6] Scand dhtmlxTree, 2007, [http://www.scbr.com/docs/products/dhtmlxTree/index.shtml].

[7] Repenning, A., 2007. End-User Design. In: End-User Software Engineering Dagstuhl Seminar.

[8] Rosson, M. B., A., 2007. Position paper for EUSE 2007 at Dagstuhl. In: End-User Software Engineering Dagstuhl Seminar.

[9] Coutaz, J., 2007. Meta-User Interfaces for Ambient Spaces: Can Model-Driven-Engineering Help?. In: End-User Software Engineering Dagstuhl Seminar.

[10] Programming with XML, 2007, http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htm#ProgrammingwithXML.

[11] Dmitriev S, 2007, Language Oriented Programming: The Next Programming Paradigm – http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.

[12] Mens K, Michiels I, Wuyts R, 2002, Supporting Software Development through Declaratively Codified Programming Patterns, Expert Systems with Applications Vol 23.

[13] Quint V, Vatton I, 2005, Towards Active Web Clients, DocEng Bristol United.

[14] Engels, G., 2007. Model-Driven Development for End-Users, too!? In: End-User Software Engineering Dagstuhl Seminar.