Tuesday, December 19, 2006

User Driven Modelling - Research Approach

My intention is to enable non-programmers to create software from a user interface that allows them to model a particular problem or scenario. This involves a user entering information visually in the form of a tree diagram. I am attempting to develop ways of automatically translating this information into program code in a variety of computer languages. The research is on translating from an abstract model of a problem expressed by a user, to software to solve the problem, and visualise the solution. This is very important and useful for many people who have insufficient time to learn programming languages. Scaffidi et al (2005) explain how much programming is undertaken by those who are not professional programmers. I am making use of the open source Protégé ontology editor developed from a project of Stanford University, I have a page on the Protégé Community Wiki (2006) to describe this. I am looking to research visualisation, and visualisation techniques to create a human computer interface that allows non experts to create software.

This research demonstrates how a taxonomy can be used as the information source, from which it is possible to automatically produce software. This technique is most suitable at present to modelling, visualisation, and searching for information. The research is about the technique of User Driven Model (UDM) Development that could be part of a wider approach of User Driven Programming (UDP). This approach involves the creation of a visual environment for software development, where modelling programs can be created without the requirement of the model developer to learn programming languages. The theory behind this approach is examined, and also the main practical work in creation of this system. The basis of this approach is modelling of the software to be produced in ontology management systems such as Jena (Jena, 2006), and Protégé (Stanford University, 2006). It also has the potential to be computer language and system independent as one representation could be translated into many computer languages or Meta languages (Dmitriev, 2006).

The development of visual user interfaces has been a major step forward. The use of pictorial metaphors such as folders to represent a collection of files has greatly aided human computer interaction. Pictorial metaphors give visual feedback so the user knows what the software system is doing. This technique can be used more dynamically in simulations. Simulations represent the real world problem and provide constant feedback to the user on how the system is progressing. In this sense, all software should be regarded as a simulation. Pictorial metaphors are static, while a users' mental model is made up of mental images connected together by a set of rules. The user runs a mental model like a simulation. Static user interfaces rely on a user to string together images into a mental model which correctly represents what the system is doing. A user may generate a mental model in response to user interface metaphors which is inconsistent with the system model. Simulation can help to ensure that the designers' model, system model and users' model are all the same. This subject is explored by Crapo et al. (2001), and is the basis of the visualisation techniques used to enable the user to create and understand models that are subsequently translated into software representations. This is also explained in chapter one of Watch What I Do: Programming by Demonstration (Cypher, 1993), this explains how the Pygmalion language attempts to bridge the gap between the programmer's mental model of a subject and what the computer can accept. The author of this system David Smith (Smith, 1977) went on to develop office oriented icons as part of the Xerox's "Star" computer project.

The research applies this User Driven technique to aerospace engineering but it should be applicable to any subject. The basis of the research is the need to provide better ways for people to specify what they require from computer software using techniques that they understand, instead of needing to take the intermediate steps of either learning a computer language(s) or explaining their requirements to a software expert. These intermediate steps are expensive in terms of time, cost, and level of misunderstanding. If users can communicate intentions directly to the computer they can receive quick feedback and be able to adapt their techniques in a quick and agile way in response to this feedback.

A modelling environment needs to be created by software developers in order to allow users/model builders/domain experts to create their own models. This modelling environment could be created using an open standard language such as XML (eXtensible Markup Language). As the high level translation though this would depend on tools developed using lower level languages, this is why tools such as Protégé and DecisioPro (now called Vanguard Studio) (Vanguard Software, 2006) are used. Until recently XML has been used to represent information but languages such as Java, C++, and Visual Basic have been used for the actual code. Semantic languages such as XML could be used in future for software development as well as information representation, as they provide a higher level declarative view of the problem.

References

Scaffidi, C., Shaw, M., Myers, B., 2005. Estimating the Numbers of End Users and End User Programmers. IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC'05): 207-214 Dallas, Texas.

Protégé Community Wiki, 2006. User Driven Progamming [online]. Available from: http://protege.cim3.net/cgi-bin/wiki.pl?UserDrivenProgramming.

Jena, 2006. Jena - A Semantic Web Framework for Java [online]. Available from: http://jena.sourceforge.net/.

Stanford University, 2006. Welcome to protégé [online]. Available from: http://protege.stanford.edu/.

Dmitriev, S., 2006. Language Oriented Programming: The Next Programming Paradigm [online]. Available from: http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.

Crapo, A. W., Waisel, L. B., Wallace, W. A., Willemain, T. R., 2000. Visualization and the process of modeling: a cognitive-theoretic view. Conference on Knowledge Discovery in Data - Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining pp 218-226.

Cypher, A., 1993. Watch What I Do Programming by Demonstration. MIT Press, Chapter 1 [online]. Available from: http://www.acypher.com/wwid/Chapters/01Pygmalion.html ISBN:0262032139.

Smith, D. C., 1977. A Computer Program to Model and Stimulate Creative Thought. Basel: Birkhauser.

Vanguard Software, 2006. Vanguard Studio [online]. Available from: http://www.vanguardsw.com/products/vanguard-studio/.

2 comments:

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.