Friday, December 15, 2006

Allowing Users to program

Research Aim

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. My thesis identifies 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.

Within this thesis 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 thesis, 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 visualisation also shows the flow of information. A further advantage of tree based visualisation techniques is that a simple problem can be modelled, and when necessary extra complexity can be modelled by extending the tree. This is useful when at first only sketchy information is available, but later more details can be modelled.

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 PaternĂ² has investigated this subject as part of the End User Development in Europe network (PaternĂ², 2005).

References

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® 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: http://eusesconsortium.org/.

Network of Excellence on End User Development in Europe (EUD.Net), 2006. Network of Excellence on End User Development [online]. Available from: http://giove.cnuce.cnr.it/eud-net.htm.

Institute for End User Computing (IEUC), 2006. Institute for End User Computing Inc. [online]. Available from: http://www.ieuc.org/home.html.

2 comments:

Anonymous said...

This is a great website! Easy to find helpful information. Your web site is helpful. I will be back!
- userdrivenmodelling.blogspot.com z
spaghetti alla carbonara

Anonymous said...

This is a great website! Easy to find helpful information. Your web site is helpful. I will be back!
- www.blogger.com 8
spaghetti alla carbonara