Mike Holcombe - Third Year Projects 2000-2001

Research Projects:

WMLH-1: PIY-II and Extreme Programming
WMLH-2: Perfect plants
WMLH-3: Communicating X-machines.
WMLH-4: Specifying intelligent agents.
WMLH-5: Intelligent agents and artistic creation.
WMLH-6: NARTROF - reverse engineering fortran into X-machines.
WMLH-7: Evolving databases.
WMLH-8: Medieval English Searching Tool.

Project description.

WMLH-1: PIY-II and extreme programming

Key words: HCI, Java, X-machines.

Description

This will take further the project that established the feasibility of the approach last year. Who needs programmers! Many straightforward business applications could be programmed by the user - who understands the business process much better. These days almost anyone can design a web page using a modern word processor and if they can also use a spreadsheet - understand the standard types of data used in say Excel 6 together with the way to write formulae then they should have all the skills needed to design a suitable program. The first project involved defining an environment which will take a simple graphics package to represent a series of screens comprising the user interface, combine them with suitable definitions of data and formulae to represent the processing carried out behind these screens, use a simple editor to specify the order in which the screens are called and the processing carried out and generate a complete working system, possibly in Java, to form a complete business application. The Stamp Dealer example (see the CD notes associated with COM221) demonstrated the screen based design method that lies behind this method (based on X-machines). The project last year generated an environment which could be used to create such a system. What we have to do now is to convert the designs produced by the tool into executables. This will involve looking at code generation and building a suitable parser like system which will then be fed into a suitable code generation program.

The project will also attempt to utilise some new ideas in Extreme programming by finding a simple formal basis to this activity based around the use of Business Process Models which are functionally tested and integration through the use of a stream X-machine model which is almost automatic in an imperative programming language.

Extreme Programming (XP) is a new "lightweight" methodology designed to help small groups of programmers achieve maximum results, even on large projects with rapidly-changing requirements. XP is controversial, but many of the organizations that have tried it are experiencing remarkable success. We hope to understand the benefits and the weakness of the approach by trying to formalise it more and see whether it can be adapted to application building by end users.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top
Project description.

WMLH-2:Perfect plants V

Key words: Graphics, Java, X-machines.

Description

This is a continuation of previous projects and will build on the software developed during them. Realistic images of plants can be generated using a method known as L-systems. These are like formal grammars and consist of sets of rules which form the basis of substitutions into strings which represent a growing plant. Software has been written which allows for the definition of these systems and their use in generating 3-dimensional images of plants and trees. See the book "Algorithmic beauty of plants". As you probably know each species of plant can be described (and defined) in relation to its structural form, the shape of its leaves, their arrangement on the stems, the structure and components of the flowers, seeds and roots or bulbs. Botanists have developed a vocabulary to describe these features. The proposed system will require a user-friendly interface to allow for a botanist, when faced with a plant identification problem, to be able to input information about the shape and type of leaves, stems etc. and the system will then generate images of what such a plant would look like - which can be compared with the field specimen. Since nothing is ever perfect and there is genetic and environmental variation it should be possible to produce several images illustrating the sort of variations that might be met. The project aims to introduce these elements by allowing for the growing string representation of the plant to be altered - deleting substrings to reflect the removal of parts of the plant which are eaten or destroyed in some way. We will then explore the many different strategies for carrying out string deletion in order to identify those that are biologically plausible and which generate interesting (and imperfect) images of plants. A particularly neat development is the use of a state machine to control a set of L-systems. In this way we can simulate complex growth using very simple L-grammars.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-3: Communicating X-machines editor and simulator.

Key words: Specifications, X-machines, Java.

Description

This project will build on the successful Visual Z tools developed previously and is intended to combine the best features of the Z tools to define simple types and functions together with a state diagram editor.The communicating X-machine system will be built onto this using a very neat way to describe the communication between a collection of such machines.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-4: Specifying intelligent agents

Key words: AI, Java, X-machines.

Description

Intelligent Agents are currently "hot news". An Intelligent Agent is a piece of software which acts autonomously on behalf of a user to achieve that user's goals. They behave in a proactive way interacting with their environment and possibly other Intelligent Agents to solve complex tasks. The first stage of the project is to try to specify different classes of Intelligent Agents in a fairly formal manner. The book "A.I - A Modern Approach" by Russell and Norvig (Prentice-Hall) is a key reference. We will use a combination of simple data description techniques and finite state machines to describe them. It may also be interesting to see how a community of Intelligent Agents might behave and to look at several strategies from co-operation to competition applied to such a situation. A possible application area is in intelligent debugging. Suppose we were to look at the issues associated with debugging something like a Java program. The compiler produces a lot of information, error messages and so on, there is a detailed description of the syntax of the language as well as some information about its semantics, coupled with a certain amount of information about the programmer's intention (a specification or design of sorts). It might prove sufficient to design an agent or agents to automatically fix some of the more common bugs. See the article : Nardi, Miller & Wright, "Collaborative programmable intelligent agents." Communications of the ACM, 41(3), 96-104, 1998.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-5: Intelligent agents and artistic creation.

Key words: Graphics, Java, X-machines.

Description

This also looks at intelligent agents as described above but in the context of a single agent which could generate artistic graphical images. The project will consider how a simple series of strategies for constructing graphical images could be defined and then some feedback loop introduced which provided some artistic evaluation (based on simple rules) so that the image could be adapted or extended to provide an image which was in some sense pleasing.

This project requires programming ability and an interest in artistic expression and appreciation.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-6: NARTROF (reverse engineering Fortran code)

Key words: Reverse engineering, Java, X-machines.

Description

There is a great deal of money invested in Fortran code in many application areas, some of which are safety and mission critical. One project in the Verification and Testing Research Group is looking at radiation planning software used in the treatment of cancer. The source code is written in Fortran77 and has been extensively revised over the years. There is no documentation. The research project has identified a mechanism for extracting a formal specification of the software from this source code in the form of a generalised state machine. This project would involve creating an environment that would allow for the process of building such a specification semiautomatically. The key aspects include identifying the overall architecture of the system, what procedures call what, and the flow of control and data through the system. This information is then used to construct a collection of machines that describe the processing within a procedure and the relationships between them. Once this has been done various other analysis can be carried out. Much of the analysis of the fortran structures and how to derive an X-machine has been done and some code for doing this is also available. The system needs to be refined and developed further to produce a workable environment for reverse engineering from arbitrary fortran code. Details of the X-machine method (which is what will be used) can be found on: http://www.dcs.shef.ac.uk/~wmlh

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-7: Evolving databases.

Key words: Databases, Java, X-machines XML.

Description

The establishment view of information system design is to create a database and to base the system upon this. This entails analysts examining the types of data relating to the business process, examining the relationships that pertain amoongst this data and building a data model which might be a relational or Object-oriented model. the database is then implemented using (usually) a DBMS etc. The relational model developed to deal with issues such as data integrity and the performance problems associated with very slow mainframes with tiny RAM and slow tape based storage. Are these still a problem now? The main weakness of the current approach is that the business world is very dynamic and within a few months the business processes may change fundamentally (the company starts exporting our products to Russia, the company buys another company with incompatible systems, we join EMU etc.). We have to hire expensive analysts to completely reengineer the data model and build a new system at vast expense. Who needs it? What we want to investigate is much simpler data model structures with smart query and search algorithms that will take advantage of the modern technology of very fast PCs, cheap storage and fast disk access etc. and which can be easily extended or revised without the need for a complete rebuild when the context has changed. The initial focus will be on large linear structures - simple records with large numbers of fields and to investigate ways of designing quick query algorithms and to see how these perform against a traditional relational or OO structure. We will then try to redesign the system to see if it is possible to adapt the linear structure to a new set of data requirements without a lot of effort.

We will use the extensible markup language XML to explore alternative ways to represent data in a structured but highly flexible way. There is emerging interest in XQL, a query language for XML but the principal way to search is to use fast text methods. The main reference is any good book on databases such as Date or Elmasri & Navathe and any book on XML.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-8: Medieval English Searching Tool.

Key words: Text, searching.

Description

This project is n collaboration with Professor D. Burnley, Department of English Language and Linguistics.

The purpose of the project is to produce a really good search engine (preferably SGML-compatible) which would run on desktop machines. At present nothing appropriate exists. The nearest thing to it is WordCruncher for Windows , but this has been abandoned by the developers. This may be released as Open Source, when it could form the basis of a very good system. It is a fast and flexible indexed full-text search engine , and for early text has the tremendous advantage of being able to search for any of the items in list A (of variable spellings) in stated proximity to any of the items in list B. If it is possible to obtain some source code then the project would be complete the development of the system or else to develop a new version of such a tool. Professor Burnley's research area is medieval English texts and such a tool would be of great value to this field. The likely programming language is C++ or Java.

This project requires programming ability.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

April 7th 2000.