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/.
Friday, July 13, 2007
User Driven Modelling - Detailed Explanation - Part 2 - Research Approach
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 Protege and DecisioPro http://www.vanguardsw.com/are used. Vanguard are creating a modelling network where universities can share decision support models over a network [Vanguard 2006]. This tool was used because it was selected during a project to evaluate, and then use software to solve costing problems. We are creating a modelling network that will link to that of Vanguard http://www.cems.uwe.ac.uk/amrc/seeds/models.htm.
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.
A requirement of this research is that open standard semantic languages are used to represent information, to be used both as input and output of the model. These languages are based on XML. These same open standard languages can be used for developing the program code of models. It is proposed that software and information represented by the software, be separated but represented in the same open standard searchable way. Software and the information it manipulates are just information that has different uses, there is no reason why software must be represented differently represented differently from other information. So XML can be used both as the information input and output by the application, and for the definition of the model itself. The model can read or write information it represents, and the information can read from or write to the model. This recursion makes 'meta-programming' possible. Meta programming is writing of programs by other programs. The purpose of this is to provide a cascading series of layers that translate a relatively easy to use visual representation of a problem to be modelled, into code that can be run by present day compilers and interpreters. This is to make it easier for computer literate non-programmers to specify instructions to a computer, without learning and writing code in computer languages. To achieve this, any layer of software or information must be able to read the code or the information represented in any other. Code and information are only separated out as a matter of design choice to aid human comprehension, they can be represented in the same way using the same kinds of open standard languages.
Dynamic software systems such as outlined by Huhns [1]. Huhns explained that current techniques are inadequate, and outlines a technique called Interaction-Oriented Software Development, concluding that there should be a direct association between users and software, so that they can create programs, in the same way as web pages are created today. Paternò [2] explains research that identifies abstraction levels for a software system. These levels are task and object model, abstract user interface, concrete user interface, and final user interface. Stages take development through to a user interface that consists of interaction objects. This approach can be used for automating the design of the user interface and the production of the underlying software. Paternò states that 'One fundamental challenge for the coming years is to develop environments that allow people without a particular background in programming to develop their own applications'. Paternò goes on to explain that 'Natural development implies that people should be able to work through familiar and immediately understandable representations that allow them to easily express relevant concepts'.
The methods used for this representation and translation will be explained in the rest of this document.
References
1 Huhns, M. (2001). Interaction-Oriented Software Development. International Journal of Software Engineering and Knowledge Engineering, 11: 259-279.
2 Paternò, F. (2005). Model-based tools for pervasive usability. Interacting with Computers, 17(3): 291-315.
My Home Page is www.cems.uwe.ac.uk/~phale/.
Friday, January 19, 2007
User Generated Content
How to help users help themselves - http://news.bbc.co.uk/1/hi/technology/6270593.stm
A very important recommendation Professor Geist makes on actions Government can take relating to improving access to public research is this - "the introduction of open access requirements for publicly-funded research".
I agree with this point he makes.
Other content of the article is -
"Internet law professor Michael Geist describes how governments can help their citizens make the most of the web.
Time Magazine's choice late last month of "You" (by which it meant all the users generating content on the web) as the person of the year was mocked by critics as a poor choice that by-passed several notable political leaders.
Yet the choice may ultimately be viewed as the tipping point when the remarkable outbreak of internet participation that encompasses millions of bloggers, music remixers, amateur video creators, citizen journalists, wikipedians, and Flickr photographers broke into the mainstream."
Professor Geist explains "the role of government will be to support the enormous economic and cultural potential of user-generated content, while avoiding steps that might impede its growth."
How to help users help themselves - http://news.bbc.co.uk/1/hi/technology/6270593.stm 17 January 2007
BBC Technology news - Web users driving change in 2007 - http://news.bbc.co.uk/1/hi/technology/6198125.stm - Mark Ward Technology Correspondent - 1st January 2007.
'You' named Time's person of 2006 - http://news.bbc.co.uk/1/hi/technology/6187113.stm 17 December 2006
Below is a very good BBC Radio 4 program (downloadable - listen again) that explains how the new approaches to open source and web software allowing user-generated content is likely to affect business -
BBC Radio 4 - New Wave Computing - http://www.bbc.co.uk/radio4/news/inbusiness/inbusiness_20070111.shtml - Peter Day talks to some of the rising stars of the new revolution and finds out how the computer industry is changing yet again 11th January 2007.
This report makes the case for increased use of open-source software -
BBC Technology news - Open source gets European boost - http://news.bbc.co.uk/1/hi/technology/6270657.stm - The European Commission has added its voice to the debate about the use of open source software. - 17 January 2007.
http://news.bbc.co.uk/1/hi/technology/4849402.stm - BBC Podcast - 23 January 2007 - Open Source Software.
I have a web 2.0 and AJAX page at http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htm.