Allowing Users to Program

by Peter Hale - Date: 2006-12-15 - Word Count: 792 Share This!

This research arises out of projects to create systems to facilitate management of design and cost related knowledge within aerospace organisations, with the aim of using this knowledge to reduce the costs of designing and manufacturing products. The research is to identify ways that problems arising from the model development process can be addressed, by a new way of providing for the creation of software. With experience from projects, which have used a combination of proprietary software solutions and bespoke software, it is possible to identify the approach of User Driven Programming (UDP) as an effective software development technique. This research unites approaches of object orientation, the semantic web, relational databases, and model driven and event driven programming, (Frankel et al., 2004) explain the opportunities for and importance of this kind of research. The approach encourages much greater user involvement in software development. The advantages of increasing user involvement in software development are explained by (Olsson, 2004). The intention of this research is to allow users to create the whole model/program they develop without typing code.

For this research summary the terms user, and domain expert are used interchangeably. The user is a domain expert who wants a problem represented and modelled using software. The domain is engineering but this research could be applied to other domains. The users/domain experts may well be computer literate and able to model certain problems using a software tool such as a spreadsheet. For reasons that will be explained later, this is only sufficient for simpler problems. The reasons that spreadsheets should not be used to represent complex models are connected with difficulties in maintaining, extending, and reusing spreadsheet models. So to be able to model a complex problem, the users/domain experts currently must specify their requirements to other software experts, who may or may not have domain knowledge themselves. It is difficult to find and afford to employ those who have sufficient expertise in both the software and the domain. Someone without the domain knowledge may not understand the requirements. Putting the right team together is a difficult balancing act, and project teams will not be able to model a problem such as a new design unless all team members can access relevant software, to understand the problem to be modelled and solved (Rodgers et al, 2001).

Software development is time consuming and error prone because of the need to learn computer languages. If people could instruct a computer without this requirement they could concentrate all their effort on the problem to be solved. This would mean they could customise software to model problems before and while they are trying to solve them instead of having to request the IT software provider to add features, at great cost in terms of time, money, and added complexity of software. I call this personal programming alternative User Driven Programming (UDP) within this research, and for the examples demonstrated the term User Driven Modelling (UDM) is used to explain the application of User Driven Programming to model development. This research aims to create software that enables people to program using visual metaphors. Users enter information in a diagram, which for these examples is tree based. Tree based visualisation is often a good way of representing information structures and/or program code structures. Sometimes other types of network based visualisations are used, and I also examine converting these visualisations into other diagrammatic forms, including CAD style representations, and charts. The software developed as part of this research translates this human readable representation into computer languages. The tree also shows the flow of information.

This technique is a kind of End User Programming, research in this area is undertaken by the (End Users Shaping Effective Software (EUSES), 2006) research collaboration mainly in the USA, and (Network of Excellence on End User Development in Europe (EUD.Net), 2006), and by the (Institute for End User Computing, IEUC). Fabio Paterṇ has investigated this subject as part of the End User Development in Europe network (Paterṇ, 2005).


Frankel, D., Hayes, P., Kendall, E., McGuinness, D., 2004. The Model Driven Semantic Web. 1st International Workshop on the Model-Driven Semantic Web (MDSW2004) Enabling Knowledge Representation and MDA(r) Technologies to Work Together.

Olsson, E., 2004. What active users and designers contribute in the design process. Interacting with Computers 16, pp 377-401.

Rodgers, P. A., Caldwell, N. H., M., Clarkson, P.J., Huxor, A. P, 2001. The management of concept design knowledge in modern product development organizations. International Journal of Computer Integrated Manufacturing, 14(1), pp 108-115.

End Users Shaping Effective Software (EUSES), 2006. Welcome to EUSES [online]. Available from:

Network of Excellence on End User Development in Europe (EUD.Net), 2006. Network of Excellence on End User Development [online]. Available from:

Institute for End User Computing (IEUC), 2006. Institute for End User Computing Inc. [online]. Available from:

Related Tags: programming, project, modelling, end user programming, software development, user driven programming

I am a Researcher in the final year of my PhD. I specialise in applying Semantic Web techniques. My current research is on a technique of 'User Driven Modelling/Programming'. 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. This is very important and useful for many employees that have insufficient time to learn programming languages. I am looking to research visualisation, and visualisation techniques to create a human computer interface that allows non experts to create software.

I am a member of the Institute for End User Computing (IEUC).

My Home Page is

Your Article Search Directory : Find in Articles

© The article above is copyrighted by it's author. You're allowed to distribute this work according to the Creative Commons Attribution-NoDerivs license.

Recent articles in this category:

Most viewed articles in this category: