Showing posts with label Diagrammatic Programming. Show all posts
Showing posts with label Diagrammatic Programming. Show all posts

Saturday, April 10, 2010

Empowering engineers and others to create software

With my PhD work, there was extensive prototyping of software solutions created and feedback from engineers. At first engineers tended to ask for software that followed the strategy of the business and met its deadlines. What emerged over time though was a desire from engineers to have more control over the software so that they could do this themselves and have input into this strategy. With a top down strategy and inflexible software and rules about what can be used and installed, missing of deadlines, and problems in meeting aims were built into the system, and engineers realised this.

So even in engineering, an industry that by its nature has to be conservative, due to safety needs, it is realised that empowerment is necessary in software development. So there was a need to empower the engineers by provision of collaborative software that could be installed and used as easily as possible and be adaptable. Empowering the engineers to be fully involved in the creation and maintenance of such software, because they're interested in the software and what it can do, was essential to make the use, re-use and maintenance of the software practical. This is necessary because it would not be possible to achieve application of useful software by any top down strategy, with limited involvement of higher managers and software suppliers. Visualisation and modelling of the software by a large range of people can be achieved by use of diagrams to show the problem and software structure, as part of the software and how it is used.

Further feedback was obtained from others via an online survey of a greater cross section of others rather than only engineers. This bore out that people want more control and involvement in software development and use, and that visual editing of the software over the web is the best way to achieve this.

Thursday, September 03, 2009

User Driven Modelling/Programming Definition

User Driven Modelling/Programming - is a technique for combining visualised colour coded and linked equations, into a system which models a whole program, and visualises the entirety of a program that performs modelling/calculation. This system is created via a collaborative ontology/database and translated in an automated way from the information source to the result output, in order to allow computer end-users to create programs/models, and link these, and in order for programmers to create program development systems. This is a human/computer translation and system creation system.

A particular research area I want and need to research is that of developing a modelling/programming user interface further in order to simplify tasks enough that non-programmer engineers can begin to program/model.

My research is described on my Google Sites pages - http://sites.google.com/site/userdrivenmodellingprogramming/.

Wednesday, May 20, 2009

Enabling diagrammatic de-abstraction and modelling of engineering problems

Abstract
This paper discusses efforts to enable de-abstraction of engineering problems from a representation suitable for engineers to that suitable for computer models and code. The key question is to what extent diagrammatic representations of problems can be used in order to provide modelling solutions. To achieve this, a source tree is created, this is translated to computer code, then represented as a result tree. This enables engineers to visualise problems such as representation of a product data structure in a way familiar to them, and this also gives a visual and colour coded representation of equations. This visualisation is easier to navigate and understand than that which can be provided by spreadsheets, and more maintainable. This research could also be used for business modelling, process modelling, and workflow.

Introduction
C.S. Peirce (1906) stated in 'Prolegomena to an Apology for Pragmaticism' "Come on, my Reader, and let us construct a diagram to illustrate the general course of thought; I mean a system of diagrammatization by means of which any course of thought can be represented with exactitude". That is the purpose of this research, but to limit the scope and so make application of this theory testable the research is restricted mainly to engineers (because they often think in terms of diagrams) and to the domain of modelling (which often requires diagrams). So the aim is to apply the research first where it can have the most use and encourage others to expand it for other domains and other users. This research is intended to simplify computing for computer literate non-programmers, this includes many engineers. The main research area is enabling users such as engineers to model the problems they encounter in manufacturing and design. However, the wider aim is to prototype research for enabling a larger range of software users to model their problems. The intention is to create collaborative tools that allow users to develop software in a way they will be familiar with from their use of spreadsheets. This research brings together 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.

Figure 1 shows the way iterative development is used both in this research and in the implementation to ensure that changes can be made systematically as necessary and without disrupting the project.


Figure 1. Research Development Iterations

Software engineering and modelling has much in common with engineering modelling, also the tools used for both have much in common. Software process modelling, engineering process modelling, and business/workflow modelling share a common approach, and similar tools. Much of this commonality is in the need to transform requirements into design into code semi-automatically. To achieve this, continuous consultation between potential users e.g. engineers for engineering modelling problems and developers for software problems is required.

Methodology
A common factor in these various types of modelling is the need to transform between a high level abstraction, to a lower level such as a computer model and then code. This is illustrated by examples of semi-automatically produced programs/models (Hale, 2008). The translation process involves translating from a tree/graph representation and for each node this is translated into a code representation of the equation that relates this node to any others, and this code is then presented in the interface as a result tree/graph. This can be achieved for programs and/or web pages. Kraus et al. (2007) examine and implement this transformation problem and also produce code and/or web pages. Uschold (2003) defines the Semantic Web as being machine usable and associated with more meaning. So this is a good way to convey the abstractions represented in a source and result tree to the end user.

The intention is to demonstrate a way to construct diagrammatic representations of cost using the example of an aircraft wingbox. The wingbox is the structure or skeleton of the wing. These diagrammatic representations are achieved by visual representation of items and equations that make up wingbox cost. These items and equations can be represented in standardised categories used in engineering - ‘materials’, ‘processes’, ‘cost rates’ etc. These categories are standard for engineering and the methods for representing items and equations that relate the items can be expressed in standard mathematical form. Therefore using the same methodology and same categories it would be possible to represent other items and equations in the same way. So this methodology is reusable for costing other engineering components including those outside aerospace. The costing method is also recursive because components and sub components can be costed separately or together and top down or from bottom up. This methodology has the potential to be applied to any calculation based modelling problem.

Solutions to this transformation problem can be found by adapting current tools and techniques using a systematic approach. Such tools and techniques involve use of modelling tools, spreadsheets, ontology management tools, and Semantic Web Web 2.0 tools. These possible solutions are not mutually exclusive and their combination could be the best way of providing usable collaborative modelling tools for computer literate end users and domain experts. The link between these alternative ways of advancing current research is translation and User Driven Modelling/Programming.

The User Driven Modelling/Programming approach advocated in this thesis has the advantage that it is using a modelling approach for creating modelling solutions and involves creating systems to create systems. This makes it possible to solve the problem by breaking it down into stages and allowing software developers to concentrate on the most complex software problems and domain experts to be able to concentrate on their domain problem. The standardisation possible in this approach can allow software developers to create modelling systems for generic purposes that can be customised and developed by domain experts to model their domain. This methodology can be facilitated by :-

· Modelling Tools - Building an end-user interface and extending the translation capabilities of UML (Unified Modelling Language) and/or other modelling tools (Johnson, 2004).
· Spreadsheets - Improving the structuring and collaboration capabilities of spreadsheets, and enabling customisation of spreadsheet templates for particular domains and users.
· Ontology Tools - Extending the modelling capabilities and equation calculations in ontology tools and providing an end-user interface.
· Semantic Web/Web 2.0 - Extending the capabilities of Semantic Web and Web 2.0 style web based development tools to allow collaborative modelling.

Figure 2 shows the solutions, and how these make User Driven Modelling/Programming possible :-


Figure 2. Methodology Diagram - Enabling User Driven Modelling/Programming

It is possible to create an extra layer of visualised semantics to enable users to specify commands in structured language. This approach of adding extra layers is the way this visual programming works. Users provide the information the program needs at the visual interface layer, and program code is created automatically. The layers provide the bridge between abstract ideas and computer code. If this approach is taken to its logical conclusion, it would be possible to allow the user to specify what the computer should do. Then each layer would communicate this to the layer below until the computer performs the action required. A simple example of this approach is the use of spreadsheets. Users can specify a calculation in mathematical terms using a formula. The spreadsheet then calculates the result of the formula. Users can change the formula if it is incorrect without any need to write code or re-compile. This accounts for the popularity of spreadsheets. However, spreadsheets do not provide the centralised and structured data-store required for a distributed collaborative system. Therefore, the research concentrates on combining the wide applicability of generic spreadsheet modelling with structured and adaptable modelling and visualisation.

It is important to enable changes to the design of the information source and its structure as necessary, even when it contains information. This makes possible continuous improvement of the information and its representation together. Clear visualisation of the structure makes out of date and duplicate information obvious, so it can be changed by the end-users of the information. This provides for maintenance of information quality without necessitating end-users to understand relational database design; though relational databases can still be accessed by software specialists for more in depth and less frequent structural changes.

Program transformation allows for writing in one representation or language, and translating to another. This is particularly useful for language independent programming, or for high level and end user programming that can then be translated to a language more easily interpreted by computer systems.

A taxonomy representation is translated into a computer model. Relationships can be conveyed to a software model that evaluates them. Information is translated from the taxonomy and is visualised in tree form in a decision support tool with the example of spar manufacture information. The visualisation of the information in a tree can be further translated into visualisation as an interactive diagram. The representation can be translated into different languages, to allow for language independence.

Figure 3 explains the transformation process.


Figure 3. Translation Process

Related Research
Crapo et al. (2002) assert the need for a methodology for creation of systems to enable more collaborative approaches to modelling by domain expert end-users, and that this combined with visualisation would allow engineers to model problems accurately. Huhns (2001) and Paternò, (2005) both explain that alternatives to the current approach to software development are required. Modelling languages such as Alloy explained by Wallace (2003) can be used as an interface to an End-User Programming environment. Transformation from a model building environment to program code has been investigated by Gray et al. (2004).

Conclusion
Experienced programmers can build a modelling environment that can then be used by non programmers to create models or solve other software problems. This was achieved for the DATUM (Design Analysis Tool for Unit-cost Modelling) project with Rolls-Royce, and the modelling environment created was used by their engineers. This is described by Scanlan et al. (2006). Collaboration, simulation and modelling have been investigated to determine the requirements for future research in modelling of problems. This should allow translation from a model-based representation of software to the actual software. This can involve automatically producing software for a Semantic website from visual representations of the problem. The core of this modelling infrastructure is automated generation of models created with World Wide Web Consortium (W3C) standards based languages, and the visualisation of information represented in such W3C standard ways. This research investigated alternative approaches to software development, which give users greater involvement. This partially automates the process of software creation via a collaborative process and equation tree that maps the problem structure, and user interface creation by providing a means to manage a hypermedia concept map.

References
Crapo, A. W., Waisel, L. B., Wallace, W. A., Willemain, T. R., 2002. Visualization and Modelling for Intelligent Systems. In: C. T. Leondes, ed. Intelligent Systems: Technology and Applications, Volume I Implementation Techniques, 2002 pp 53-85.

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

Gray, J., Zhang, J., Lin, Y., Roychoudhury, S., Wu, H., Sudarsan, R., Gokhale, A., Neema, S., Shi, F., Bapty, T., 2004. Model-Driven Program Transformation of a Large Avionics Framework. In: Third International Conference on Generative Programming and Component Engineering GPCE, pp 361-378.

Hale, P. 2008. http://www.cems.uwe.ac.uk/~phale/EconomicModels/ModelsVisualised.htm.

Huhns, M., 2001. Interaction-Oriented Software Development. International Journal of Software Engineering and Knowledge Engineering, 11, pp 259-279.

Johnson, P., 2004. Interactions, collaborations and breakdowns. In: ACM International Conference Proceeding Series; Proceedings of the 3rd annual conference on Task models and diagrams Vol 86 Prague, Czech Republic.

Kraus, A., Knapp A., Koch, N., 2007. Model-Driven Generation of Web Applications in UWE. http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-261/paper03.pdf In Proc. MDWE 2007 - 3rd International Workshop on Model-Driven Web Engineering, CEUR-WS/, Vol 261, July 2007.

Paternò, F., 2005. Model-based tools for pervasive usability. Interacting with Computers, 17(3), pp 291-315.

Peirce, C.S. - 1906. Prolegomena to an Apology for Pragmaticism - http://www.existentialgraphs.com/peirceoneg/prolegomena.htm.

Scanlan, J., Rao, A., Bru, C., Hale, P., Marsh, R., 2006. DATUM Project: Cost Estimating Environment for Support of Aerospace Design Decision Making. Journal of Aircraft, 43(4).

Uschold, M., 2003. Where are the semantics in the semantic web? AI Magazine Vol 24 (3) pp 25-36.

Wallace, C., 2003. Using Alloy in process modelling. Information and Software Technology, 45(15), pp 1031-1043.


Tuesday, April 14, 2009

Benefits from Enabling End User Programming

My research is to test an approach of using digital technology, to make software and modelling development easier for computer literate end users. This would then enable them to solve problems to help their, and their teams’ work to be more productive. The current problem is that the communication and translation steps required between users, and software developers, and help desk are too many, and too varied, this results in cost, uncertainty, delays, confusion, and confrontation. The solution is for software developers to develop more customisable software that can be customised by end-users.

An example is user’s development of spreadsheets, this indicates user’s willingness to use and develop software to meet their needs, but productivity in spreadsheet development can be poor, as they are difficult to track, and share. More advanced software tools are often not available to users, or take too long to learn. Semantic Web technologies can provide a solution to this by provision of free and customisable, shareable, and fully visualised applications for use in particular sectors. Development of such applications, and their use in industry would be proof of this.

Thursday, August 28, 2008

Semantic Web Programming

Semantic Web Programming would allow searching the Semantics within programs rather than just outputs. This would be a step on from open source programming, this would allow open semantics programming. The code could then be visualised and interacted with using all the tools available for visualising semantic web languages. The whole tree/graph structure of a program could be visualised and searched easily.

Programming with XML is already enabled, and progress can now be made in using those languages such as RDF and OWL which are higher in the Semantic Web stack.

Programming with XML is possible using XForms, XQuery, Simkin, Metal, and many Rich Internet Application development environments.

Programming is becoming possible using OWL and OWL-S (OWL for Web Services). Visualisation of OWL structures enables editing by using UML Activity Diagrams, and OWL models programming structures such as if-then-else, and while loops.

Useful Links

Berners-Lee, T., Semantic Web - XML2000 - Architecture - http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html

Dmitriev, S., Jetbrains - Meta Programming System - http://www.onboard.jetbrains.com/is1/articles/04/10/lop/ - Language Oriented Programming: The Next Programming Paradigm - Sergey Dmitriev.

From BPEL4WS Process Model to Full OWL-S Ontology - http://www.eswc2006.org/poster-papers/FP13-Aslam.pdf - Muhammad Ahtisham Aslam, Sören Auer - University of Leipzig Germany, Jun Shen - University of Wollongong Australia - ABSTRACT - BPEL4WS is one of the most utilized business process development languages. It can be used to develop executable business processes as a combination of Web Services interactions in a specific sequence called process flow. But still BPEL4WS lacks sufficient representation of business process semantics required for business processes automation. On the other hand OWL-S (OWL for Web Services) is designed to present such kind of semantic information. There exists similarity in the conceptual model of OWL-S and BPEL4WS that can be used to overcome this lack of semantics in BEPL4WS by mapping the BPEL4WS process model to the OWL-S ontology. The mapped OWL-S service can be dynamically discovered, composed and invoked on the basis of matching semantics. Such a process of mapping syntax based Web Services composition in the form of BPEL process model to Semantic Web Services composition in the form of OWL-S composite service can also enable automation of BPEL processes as OWL-S services by applying AI planning techniques. In this paper we present a mapping strategy and a mapping tool that can be used to map BPEL processes to the OWL-S suite of ontologies.

Introduction to OWL - http://www.w3schools.com/rdf/rdf_owl.asp - OWL is a language for processing web information. What You Should Already Know Before you study OWL you should have a basic understanding of XML, XML Namespaces and RDF.

MetaL - http://www.meta-language.net/ - MetaL: An XML based Meta-Programming language.

OWL - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/RDF/RDF.htmOWL

OWL-S API - http://www.mindswap.org/2004/owl-s/api/ - Mindswap - Maryland Information and Network Dynamics Lab Semantic Web Agents Project - OWL-S API provides a Java API for programmatic access to read, execute and write OWL-S (formerly known as DAML-S) service descriptions. The API supports to read different versions of OWL-S (OWL-S 1.0, OWL-S 0.9, DAML-S 0.7) descriptions. The API provides an ExecutionEngine that can invoke AtomicProcesses that has WSDL or UPnP groundings, and CompositeProcecesses that uses control constructs Sequence, Unordered, and Split. Executing processes that relies on conditionals such as If-Then-else and RepeatUntil is not supported in the default implementation. But this implementation can be extended to handle these constructs if the application that uses the OWL-S descriptions has a custom syntax and evaluation procedure for the conditions.

OWL-S Editor - http://owlseditor.semwebcentral.org/download.shtml - Download.

OWL-S Editor - http://iswc2004.semanticweb.org/demos/02/paper.pdf - Grit Denker and Daniel Elenius and David Martin - SRI International, California, USA, Linkoping University, Linkoping, Sweden - INTRODUCTION - An increasing number of organizations are endorsing Web Services (WS) technology to extend corporate resources to customers and partners and to leverage resources of others. AlthoughWeb Services, based on XML technology, allow interoperability, they do not support efficient and flexible search, allocation, composition, runtime monitoring, or invocation of those Web Services. Semantic Web Services (SWSs) use semantically rich annotations to facilitate these tasks. Richer semantics can provide fuller, more flexible automation of service provision, and use and support the construction of more powerful tools and methodologies.

OWL-S Editor to Semantically Annotate Web-Services - http://staff.um.edu.mt/cabe2/supervising/undergraduate/owlseditFYP/OwlSEdit.html - University of Malta - Department of Computer Science and A.I. - James Scicluna - The current version of the Owl-S Editor can be downloaded from here. We welcome any feedback related to how the tool was used and how effective it was to solve your particular needs. Let us know so that we can improve the tool.

OWL-S: Semantic Markup for Web Services - http://www.daml.org/services/owl-s/1.1/overview/ - Abstract - The Semantic Web should enable greater access not only to content but also to services on the Web. Users and software agents should be able to discover, invoke, compose, and monitor Web resources offering particular services and having particular properties, and should be able to do so with a high degree of automation if desired. Powerful tools should be enabled by service descriptions, across the Web service lifecycle. OWL-S (formerly DAML-S) is an ontology of services that makes these functionalities possible. In this document we describe the overall structure of the ontology and its three main parts: the service profile for advertising and discovering services; the process model, which gives a detailed description of a service's operation; and the grounding, which provides details on how to interoperate with a service, via messages.

OWL Web Ontology Language Guide - http://www.w3.org/TR/owl-guide/ - W3C Recommendation 10 February 2004 - The World Wide Web as it is currently constituted resembles a poorly mapped geography. Our insight into the documents and capabilities available are based ..word searches, abetted by clever use of document connectivity and usage patterns. The sheer mass of this data is unmanageable without powerful tool support. In order to map this terrain more precisely, computational agents require machine-readable descriptions of the content and capabilities of Web accessible resources. These descriptions must be in addition to the human-readable versions of that information.

The OWL-S Editor - A Development Tool for Semantic Web Services - http://owlseditor.semwebcentral.org/documents/paper.pdf - Daniel Elenius, Grit Denker, David Martin, Fred Gilham, John Khouri, Shahin Sadaati, and Rukman Senanayake - SRI International, Menlo Park, California, USA - Abstract. The power of Web Service (WS) technology lies in the fact that it establishes a common, vendor-neutral platform for integrating distributed computing applications, in intranets as well as the Internet at large. Semantic Web Services (SWSs) promise to provide solutions to the challenges associated with automated discovery, dynamic composition, enactment, and other tasks associated with managing and using service-based systems. One of the barriers to a wider adoption of SWS technology is the lack of tools for creating SWS specifications. OWL-S is one of the major SWS description languages. This paper presents an OWL-S Editor, whose objective is to allow easy, intuitive OWL-S service development and to provide a variety of special-purpose capabilities to facilitate SWS design. The editor is implemented as a plugin to the Protege OWL ontology editor, and is being developed as open-source software.

The OWL-S Editor - A Domain-Specific Extension to Protégé - Elenius, D., 2005. - 8th Intl. Protégé Conference - July 18-21, 2005 - Madrid, Spain.

Programming with XML - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htmProgrammingwithXML

Rich Internet Applications - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htmRichInternetApplications

Simkin - http://www.simkin.co.uk/- A high-level lightweight embeddable scripting language which works with Java or C++ and XML.

VISUAL MODELING OF OWL-S SERVICES - http://members.deri.at/~jamess/pdfs/scicluna-iadis2004.pdf - Msida MSD 06, Malta (Europe) - Mr. James Scicluna, Mr. Charlie Abela, Dr. Matthew Montebello, Department of Computer Science and Artificial Intelligence, University of Malta - ABSTRACT - The Semantic Web is slowly gathering interest and becoming a reality. More people are becoming aware of this and are trying to embed Semantic Web technologies into their applications. This involves the use of tools that can handle rapid ontology building and validation in an easy and transparent manner. In the area of Semantic Web Web Services (SWWS) an OWL-S specification defines a set of ontologies through which a semantic description of the service can be created. At times this is not an easy task and could result in an incorrect specification of the description or even lead the fainthearted user to resort to some other type of description language. This paper describes the OWL-S editor tool that provides two methodologies in which such a web services description can be developed without exposing the developer to the underlying OWL-S syntax. These methodologies are based on a mapping from WSDL to OWL-S and on modeling a composite service using standard UML Activity Diagrams.

XForms - http://www.cems.uwe.ac.uk/amrc/seeds/Ajax/ajax.htmXForms

XQuery - http://www.cems.uwe.ac.uk/amrc/seeds/PeterHale/XML/XML.htmXQuery

Friday, May 30, 2008

Visual Diagrammatic Programming

With visual diagrammatic modelling it was possible to include one model within another as a software component, and demarcate responsibility for building, maintenance, and updating of each model. This was difficult using spreadsheets, and possible with non-visual programming though the link between individual responsibilities and code produce was not as clearly identified, because non-programmers cannot participate in code production. As an example, for cost modelling of an aircraft wing, different experts might build software models for wing spars, wing skins etc, and another expert might be responsible for the overall wing cost model. The wing spar and skins model would then be inserted into the overall wing cost model.

The techniques demonstrated in this thesis can aid progress towards accessing of data held using Semantic Web standards, and also other information that might be locked into particular systems such as databases, spreadsheets and enterprise systems. The translation and de-abstraction approach assists with enabling high level diagrammatic visualisations to be used and translated to computer queries. Programming using Semantic Web technologies can :-

* Assist with translating non-Semantic Web information into Semantic Web information.
* Assist in production of Semantic Web information by end-users by.
* Assist end-users to query non-Semantic Web information.

Further Visualisation Information is at - http://www.cems.uwe.ac.uk/amrc/seeds/Visualisation.htm

End User Programming Information is at - http://www.cems.uwe.ac.uk/amrc/seeds/EndUserProgramming.htm