Chapter 2 Literature Review
2.6 Model-Driven Programming for Better Model Production
Model-Driven Programming involves creation of a high level interface for editing models to represent users’ ideas, which can be translated to program code and alternative visualisations. Visualisation and interaction research is important for enabling model creation and editing by end-user programmers; Elenius (2005) illustrates tools for achieving this.The approach of Model-Driven Programming can assist with empowerment of users to customise software at a high level of abstraction, and so minimize the need for delegation of problems to IT professionals.
Model-Driven Programming involves two transformation techniques; these are Model Transformation and Program Transformation. Model Transformation can be used to translate a model with a
representation of the problem that users would be familiar with, into a model with a representation that can be more directly translated into program code. Model Transformation can be applied to problems involving design models e.g. UML (Unified Modeling Language) diagrams, architectural descriptions, and requirements specifications, and to mathematical, engineering, and scientific modelling tools. Program Transformation is the act of changing one program into another. The languages in which the program being transformed and the resulting program are written are called the ‘source’ and ‘target’ languages, respectively.
Author(s) Title Comments Erwig et al., 2006 Automatic Generation and
Maintenance of Correct Spreadsheets?
Introduction Context and Audience
Proceedings of the 27th international conference on Software Engineering.
Issues
Erwig et al. explain worries about the error rate in spreadsheets, “Given the billions of spreadsheets in use, this leaves the worlds of business and finance horribly vulnerable to programming mistakes”.
Methods
Erwig et al. demonstrate a system for automatically generating and maintaining correct spreadsheets.
Outcomes
Improved spreadsheets can be part of a User Driven Modelling/Programming approach; this is expanded on in section 4.1 - ‘Creation of Modelling System’. This argument is developed further in sections 4.2, 4.3, and 5.1.1, and solutions prototyped in 6.4.2. Erwig et al. have produced a spreadsheet add-on that can be used to improve spreadsheet accuracy. Erwig et al.’s research has influenced this thesis towards examining an aspect of end-user programming/modelling, investigating both
improvements to and alternatives to spreadsheet modelling for this kind of computer literate end-user programmer/modeller.
Johnson, P., 2004 Interactions, collaborations and breakdowns
Introduction Context and Audience
ACM International Conference Proceeding Series; Proceedings of the 3rd annual conference on Task models and diagrams. This paper is about modelling human tasks.
Issues
Johnson makes the point that UML (Unified Modeling Language) tools need to be extended to better enable modelling of collaborative tasks. Johnson explains that successful interaction requires mapping between levels of abstractions and that translation between the levels of abstraction required by users and computers is difficult. He explains that this problem often means systems are created that make the user cope with the problems of this mis-translation.
Methods
Johnsons’ research allows the user to establish “common ground” with the computer, by the use of translation layers to convert from a user level abstraction to a computer level abstraction.
Outcomes
Johnsons’ research influences the approach used in this thesis of translations between a domain expert level of abstraction and software. Also in this thesis translations are made between different views to give flexibility for representing information appropriately to different users.
Begel, A., 2007 End-user Programming for Scientists: Modeling Complex Systems
Introduction Context and Audience End-User Software Engineering Dagstuhl Seminar.
Issues
Begel emphasizes that if programming is left only to programmers rather than allowing domain experts to be involved, the program becomes a ‘black box’ and the domain expert cannot trust or verify the results.
Methods
Begel argues that end-users may lack a mindset to form mental models of how to make the computer do what they want. Begel also explains that text based computer languages are often too obscure for end- user programmers.
Outcomes
These problems of software languages being a black box and the obscurity of some text based programming language semantics were mentioned repeatedly by engineers during this thesis. So these became important issues for the thesis, and it was judged necessary to visualise software language semantics and translate these into appropriate representations. It is necessary to research and develop a visualisation and modelling environment that helps translate engineers’ ideas into computer models.
For the hypothesis, investigation of Model-Driven Programming for Better Model Production was necessary for analysing what was needed for the translation that provides the link between modelling and programming, and acts as the translator for stepped de-abstraction of diagram into code.
Design of a translation system to enable domain experts to create models/programs is illustrated in sections 3.3.1 and 3.3.2.
Research was also undertaken into how end-user programming has been developed over past decades. 2 main conclusions resulted from examining the history of end-user computing :-
Research that created prototype systems for specialist users, school children, and other researchers and programmers, but had limited acceptance and use in the mass market can be reused with more up to date technology to assist development.
More pragmatic research that involved creation of tools for the mass market, but which avoided more long term research issues can now be extended.