Mike Holcombe - 3rd year Projects 2003-4

WMLH-1: XP story tool
WMLH-2: *******.
WMLH-3: *******.
WMLH-4: *******.
WMLH-5: *******.
WMLH-6: *******.
WMLH-7: *******.
WMLH-8: *******

Project description.

WMLH-1: XP story tool.

Key words: testing, Java, X-machines.

Description

*******

This project requires programming ability.

Resources

No specific requirements other than access to PCs and Java.

Reading

*******

Module Links

COM221 - Software engineering practice. Back to top
Project description.

WMLH-2: Ants and agents.

Key words: Java, HTML, PVM.

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. Another area might be strategy games. There is a 3rd year report which touches on this.

The Communicating X-machine model is a simple and intuitive way of representing collections of agents which exist in an environment that permits them to communicate with each other. Examples of systems that we will try to model include social insects - ants and bees. This links to a PhD project funded by British Telecom which is looking at the way some insects communicate in order to discover algorithms and processes which could help in the management of future mobile phone networks.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to Suns, Java, PVM (Parallel Virtual Machine)

Reading

Module Links


Back to top
Project description.

WMLH-3: Image repositories.

Key words:

Description

Libraries of digital objects such as digitised two and three dimensional images are becoming important in many areas of research. This project will investigate the opportunities for establishing such a small library of images using XML as a means of categorising and managing the repository. We will also look for useful feature recognition software that could be used to search and query the digital objects directly without the need for extensive cataloging of each object and the recording of this information in a traditional database. Thus we want to ask questions such as get me all those images that show a sunset over the sea in the case where the library is of scenic photographs and views. As part of the project we may collaborate with another department, for example archaeology, in building a library of digitised images of interesting pre-historic artefacts.

Resources

Standard equipment.

Reading


Back to top
Project description.

WMLH-4: Hybrid machine simulator.

Key words: Hybrid machines, X-machines.

Description

Hybrid machines are generalisations of finite state machines that involve continuous rather than discrete processes. A simple example is a model of a boiler with a thermostat. The system has 2 states - boiler ON and boiler OFF. While the system is in ON the water is heated according to a set of equations that describe how the temperature of the water changes over time. When the thermostat trips there is a state change to OFF and a new set of equations come into play, these describe how the liquid cools.

We are using this type of model to explore biological systems, such as the rice blast fungus, the immune systems etc.

What we want to build is a system that will allow us to define a hybrid machine, the states, the variables and the equations and then to try to animate the model by letting it run and to allow different events to occur that will cause a state change. Part of the output from the model will be graphs of the variables showing how they change their values during the operation of the model.

Resources

No specific requirements other than access to PCs.

Reading

Papers for the supervisor. See also http://www.dcs.shef.ac.uk/~wmlh/UCLarticle1.pdf

Back to top

Project description.

WMLH-5: Testing tools for eXtreme Programming .

Key words: Java.

EXtreme Programming (XP) is a lightweight methodology that eliminates the design stage and concentrates on the evolutionary delivery of requirements driven by a carefully constructed set of test cases.The test sets are run almost continuously and tools are required to support this process. Two specific tools come to mind.

A test set applicator which allows for a file of test cases to be applied to a partially completed program and the results presented in a convenient way. In order to do this the link between the test set and the requirements and the program design need to be made explicit. Thus there is a need for a program to generate test sets from a suitably defined requirement and the refinement (expansion) of the set as the requirements are extended during the software development process.

This project requires programming ability.

Resources

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

Reading

Module Links


Back to top
Project description.

WMLH-6: Flat file database system.

Key words: Java.

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 amongst 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. A previous project focused on large linear structures - simple records with large numbers of fields and on XML based databases and investigated ways of designing quick query algorithms and to see how these perform against a traditional relational system. The project went on 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. This was successful and indicated that the benefits of doing this were considerable.

This year we will try to build a tool which could be regarded as a flat file database management system to see whether we can capitalise on the success of the previous experiments.

This project requires programming ability.

Resources

No specific requirements other than access to PCs and Java.

Reading

Module Links


Back to top
Project description.

WMLH-7: Art agent.

Key words: Java.

This looks at intelligent agents 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.

Previously we have looked at an agent to create pictures in the style of Piet Mondrian which involved studying Mondrian's detailed theory of art appreciation. We tried to capture some of his rules in the agent and this has laid the foundation for further work. Another abstract artist who created a detailed theory was Paul Klee and we could look at this, his pictures involve a more extensive pallette than Mondrian's and so present an interesting challenge.

This project requires programming ability.

Resources

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

Reading

Module Links


Back to top
Project description.

WMLH-7: X-machine tool in java.

Key words: Java.

X-machines are a simple-to-use graphical approach to system design. A tool to define and check X-machines is required, it would be built in java. A language, called the X-machine description language (XMDL), has been defined and the tool would have two functions. It would accept files written in accordance with the XMDL syntax and check that they are syntacticaly correct, with some type checking as well. Another feature of the tool would be to provide an animation capability for a properly specified X-machine. If time permits it might be possible to build a graphical front end that both assists in the creation of XMDL descriptions but also provides graphical output for the simulations. One of the big advantages of the X-machine apporach is the ability to generate test sets from XMDL descriptions. This tool would enable the construction of an integrated design and test system for software engineering to be built.

This project requires programming ability.

Resources

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

Reading

Module Links


Back to top