Friday, August 17, 2007

User-Driven Model-Driven Programming

A model-driven approach is important for enabling of user-driven programming. User-Driven Model-Driven Programming is the way to make it possible for a much wider range of people to do their own programming. This combines the approaches of End-User Programming, the Semantic Web and Modelling. The mechanism for this is program transformation, translating from user view to model to code. The diagram below shows this approach.


User Driven Model Driven Programming Diagram

User Driven Model Driven Programming

Ways my research is pursued in order to make User Driven Programming possible are :-

1 Semantic Web and Web 2.0 approach to enabling User Generated Content - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.
2 User Centric Extensions to UML (Unified Modelling Language) e.g. http://www.himalia.net/ this approach also ventures into 1 and 3).
3 Visual Programming Extensions to spreadsheet type formulae based modelling, an example is http://wiki.vanguardsw.com/ enabled using approach 1.

This research links with the approach of enabling User Generated Content and providing a Visual Programming System. While my thesis concentrates mainly on 1 and 3, 2 is just as important and is referenced.

So there is considerable overlap between these three approaches and they must be integrated within interdisciplinary research to enable user driven programming. One approach to this is a Semantic User Interface, this is explained here -http://www.himalia.net/docs_semanticUI.html. This can enable Drag and Drop programming http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm#DragandDropProgramming that combines the benefits of all three research approaches. The important factor is to connect the user interface with the underlying code, so the two share the same structure and users can properly see how their actions can change the underlying code.

The next step is to make possible collaborative user-driven programming by sharing the visualisation of models across computer networks and between collaborators. In order to make user driven modelling and programming possible, it is essential that a communication mechanism is established, which allows users to generate changes and receive changes generated by the modelling system.

My pages on subjects related to this are -

End-User Programming - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm.

Language and Tool Mapping - http://www.cems.uwe.ac.uk/~phale/#LanguageToolMapping.

Model-Driven Programming -http://www.cems.uwe.ac.uk/amrc/seeds/softwareengineering.htmModelDrivenProgramming.

Modelling and Semantic Web -http://www.cems.uwe.ac.uk/amrc/seeds/ModellingSemanticWeb.htm.

Semantic Web - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htm.

No comments: