This blog is about my PhD research (now finished) at University of the West of England into User Driven Modelling. This is to make it possible for people who are not programmers to create software. I create software that converts visual trees into computer code. My web site is http://www.cems.uwe.ac.uk/~phale/. I'm continuing this research and the blog. My PhD is at http://eprints.uwe.ac.uk/17918/ and a journal paper at http://eprints.uwe.ac.uk/17817/.
Monday, February 15, 2010
Translation between models/programs
Tuesday, September 29, 2009
User Driven Modelling Explanation - Cube
The cube model, as for all the engineering/process models is made up of the definition, in this case of the cube, and a colour coded representation of all the processes, materials, tooling, consumables, resources, and rates used for the manufacture of the cube; these are read in from the ontology in response to user choices. This makes it possible to investigate scenarios such as in this case whether to manufacture using welding, or riveting, and different options for use of tooling, consumables, resources, and rates. From investigating different options, different trees are created to represent different paths/options, and from this the production cost tree is created with results and feedback on exactly what made up the process/cost. Figure 1 illustrates how the different sub ontologies/taxonomies are colour coded in order to ensure it is easier to read the meaning of the tree and the interrelationships between the different aspects of the model.

Figure 1 Cube model example - illustrates choice of process etc.
Figure 2. Translation to SVG Visualisation
This shows the interactive version of the diagram that works in Internet Explorer using the Adobe SVG viewer 3 http://www.cems.uwe.ac.uk/~phale/SVGCubeExample/CubePartDefinitionwithCosts.htm - SVG Viewer download - http://www.adobe.com/svg/viewer/install/.
Next the implementation of this research was illustrated with the more complex example of an aircraft wingbox, using the same approach.
Saturday, July 11, 2009
User Driven Modelling Explanation - Cube

Figure 1. Cube model example - Illustrates choice of process etc.
Wednesday, June 03, 2009
Decision Support Tool Representation
Equations/formulae can be represented in the ontology, and then sent to the model which can then visualise them and calculate results. A Decision support tool called Vanguard System was used for this.
This screenshot illustrates how a decision support system tree view of the spar (wing part)branch from a wing process and cost model can be created with information translated from an ontology (in Protege) of related taxonomies (sub ontologies), and where necessary from user's selections (e.g. of materials). The tree, including all the default part definition information for the spar, is produced automatically. The buttons in the tree enable choices to be made by the user about materials, consumables, rates, and processes. Branches are created in response to these choices. The values in the branch nodes can then be changed as required.

Results can also then be output to the web for navigation and visualisation, and maybe for interactive web based modelling and visualisation.
Friday, December 19, 2008
Automated Production of Engineering Models
This example demonstrates the research I have undertaken into automating the model creation process for engineering process models.
This example is of manufacturing a cube, where the cost of manufacture depends mainly on the size of the cube, its wall thickness, what material is used, and what process is used. This is a simple example, a real world example involving hand layup of a spar (wing component) proved to be too complicated for ease of demonstration explanation, especially over the web.
An ontology (held in Protege http://protege.stanford.edu/) is used to represent the common information needed for all cube models, (and other models) produced. The ontology is broken down into sub ontologies for parts, materials, processes, consumables, resources, and tooling. These are colour coded in the visualisation/interactive model to ease understanding.
Code written for this research is used to recursively read the Protege tree (via nested SQL calls), and reproduce the tree in the modelling system (Vanguard System http://www.vanguardsw.com/products/vanguard-system/). The modelling system enables calculations, and extra code written for this research also allows choices to be made by the user/modeller.
This simple example enables the user/modeller to make choices of the material, process, consumables, resources, and tooling to be used, for the manufacture of this cube. In this example choices were made for material - Aluminium, and process - Rivetting.
Cube Model
This model is then output to an online representation (this works in Internet Explorer only, a version for Mozilla Firefox is also in progress). The IE version requires the Adobe SVG player, currently downloadable, and free).
The online SVG (Scalable Vector Graphics) representation provides an interactive CAD type representation of the component, that can be manipulated, to change size and wall thickness. The wall thickness is indicated by the inner dotted cube. As the size or wall thickness of the cube is altered, immediate feedback is provided. Alterations can be made with the up/down buttons. Also if these values, or the Aluminium cost per metre cubed are changed, the calculated parameter and cost values change automatically, in response.
The SVG representation shown below can be found at http://www.cems.uwe.ac.uk/~phale/SVGCubeExample/CubePartDefinitionwithCosts.htm.
Cube Model - Translated to SVG
http://www.cems.uwe.ac.uk/~phale/SVGCubeExample/CubePartDefinitionwithCosts.htm.
It is also possible to zoom in and out of the diagram, and move it around the screen.
As well as engineering models, I have experimented with economics models, and with translating either type of model to Java, and Java applets. Below is a screenshot of a simple economic model translated and visualised as an interactive Java applet.
Consumption Function translation from modelling system into Java
The models created as part of this research are available at - http://www.cems.uwe.ac.uk/~phale/EconomicModels/ModelsVisualised.htm.
Tuesday, November 18, 2008
Economic Models 2
At present the main focus is on extending the translation to interactive representations in Java and JavaScript. These will allow users to amend the parameter values of models and to see the result recalculated.
Once all or most of the translations are fully working, I'll concentrate on adding multiple models. Each model could then be translated automatically to many different visualisations/representations. I'll concentrate mainly on economic models, but might also eventually include other kinds of equation based models.
Economic Models - previous post - http://userdrivenmodelling.blogspot.com/2008/11/economic-models.html.
Economic Models Example -
http://www.cems.uwe.ac.uk/~phale/EconomicModels/ModelsVisualised.htm.
Java Applet Example - http://www.cems.uwe.ac.uk/~phale/EconomicModels/Bized/ConsumptionFunctionVanguardOutput/ConsumptionFunctionVanguardOutputInteractive/build/ConsumptionFunctionModelJavaAppletVanguardInteractive.html.
Tuesday, November 11, 2008
Economic Models
The next step is to visualise the Models in the web browser, and in various languages, to show the concept of multiple language implementations being created from one model. These multiple language implementations all share the same semantics and provide a tree based representation of this semantics.
These are demonstrated at http://www.cems.uwe.ac.uk/~phale/EconomicModels/ModelsVisualised.htm, different representations are provides, so that hopefully at least one representation is accessible to the various web browsers. So far there is an XML, HTML, and Java Applet representation. My intention is to extend both the representation of models and the number and type of models represented, until there is a large grid of models, and representations. Options for extending the representation are to JavaScript, SVG, RSS, RDF, and meta programs, and to increase, the interactivity/editability of the models.
This technique should allow automated creation of many models and language representations of them automatically, using one set of model code outputters/translators.
I'm getting the economic models from Biz/ed - http://www.bized.co.uk/educators/he/spreadsheet/section_1.htm. Eventually I might extend this to other types of models as well as engineering and economic models.
The implementation of the models is at http://www.cems.uwe.ac.uk/~phale/EconomicModels/ModelsVisualised.htm.
Wednesday, January 09, 2008
Code Generation 2008 conference
Code Generation 2008 - http://www.codegeneration.net/conference/index.php - 25th-28th June 2008 - Cambridge, UK - A growing number of developers are using or planning to use model-based code generation - are you ready for the next evolutionary step in software? - WHO'S CG2008 FOR? - CG2008 is for software practitioners and those with a stake in the future of their development organisation.
Final Call for Speakers:
Submission Deadline: Friday January 18th 2008
We are seeking high-quality session proposals covering topics on
model-driven software development (including Software Factories,
Model-Driven Architecture (MDA), Domain-Specific Languages (DSLs),
Generative Programming, Software Product Lines and related areas).
Sessions could cover topics such as:
- Code Generation and Model Transformation tools and approaches
- Defining and implementing modelling languages
- Domain Analysis and Domain Engineering
- Language evolution and modularization
- Meta Modelling
- Runtime virtual machines versus direct code generation
- Tool and technology adoption
Real-world case studies based on any aspect of these and related
approaches are particularly encouraged although more theoretical
sessions are also welcome.
Accepted speakers have their conference fees waived. We will also be
offering a discount on conference fees to non-speaking academic
participants. More information will be available when the programme goes
online on 25th February.
Visit http://www.codegeneration.net/conference/index.php for more
details on the event or contact me for more information.
What people said about our previous conference - Code Generation 2007:
"I've been working in domain-specific modelling for a dozen years ...
and in this time this has been the highest-quality conference on this
topic that I've been to - and I've been to a few."
"The combined-for that matter, individual-expertise present was
remarkable, and presented a tremendous opportunity for knowledge exchange."
"The presentations were all top quality, making it often difficult to
decide between the concurrently running sessions. The wealth of MDD
knowledge present and the event was impressive, not only from the
presenters, but from the other delegates as well."
Best wishes for a happy and successful 2008.
I have an Events page at which has mainly computing and aerospace events listed and linked to - http://www.cems.uwe.ac.uk/~phale/Events.htm.

