University of Leicester

Department of Computer Science

CO7201 Individual Project


Credits: 60

Convenor: Dr. Mohammad El-Ramly

Semester: June-September

Student Viva Schedule  New

Thesis and Viva

Module Description

Project Allocation and Second Marking  

Important Dates:  

        * The form should be filled electronically using a word processor and signed by the student and supervisor.


M.Sc. Project Proposals:  Updated

The following is the list of project proposed by some members of staff. Students are welcomed to discuss these projects with the staff proposing them. Also, students can propose their own projects and seek a suitable member of staff to supervise it. After picking a project and a supervisor, the student should get the project supervisor to sign the project registration form and hand it to Dr. El-Ramly by the deadline.

1. XML Tools to Support the Software Process  Dr. Simon Ambler  

2. Web Service Composition - Dr. Stephan Reiff-Marganiec  

3. Efficient XML Technology for Data Storage and QueryingProf. Rajeev Raman  

4. Coordination Technologies Prof. José Luiz Fiadeiro  

5. Development of a graphical editor and simulator for component-based Petri nets Dr. Nasreddine Aoumeur

6. Development of a graphical interface for editing/validating an integrated UML-based conceptual model  Dr. Nasreddine Aoumeur  

7. From Legacy Systems to Web Services - Dr. Mohammad El-Ramly

8. Multi User Dungeon: A Mobile Game - Dr. Piotr Kosiuczenko  

9. Online Java Automatic Knowledge Test Framewo - Dr. Piotr Kosiuczenko  

10. Imaging Fabrics for E-commerce - Proposed by Mick Sharpe

1. XML Tools to Support the Software Process –  Dr. Simon Ambler

 A mature software development process will produce many interrelated artefacts: plans, schedules, specifications, program code, test data, inspection reports, defect reports, etc. Most of these are highly structured documents.

 XML provides a standard way to specify the structure and content of documents. Special tags, with semantic significance, are introduced to mark-up the content of the document. These are particular to the type of document and are specified by a Document Type Definition (DTD).

 XML for Structured Requirements (ReqSol 1.0) is an example of an XML applied o requirements specifications and solutions documents

 The aim of this project would be to establish a general framework for storing and handling the XML documents arising from a software development process. This could be done by implementing a suitable XML database.

 The framework should include full version control and the possibility of tracing the relationships between documents. One might also enforce integrity constraints by using xlinkit

The framework might be demonstrated in the specific case of structured equirements specifications using the ReqSol mark-up language.

2. Web Service Composition - Dr. Stephan Reiff-Marganiec

 Web services are software functionality available over the internet. While each service on its own offers certain features, it is the combination of many such services that allows creating powerful applications.

 Current work is considering how web services can be composed, and there are several ideas available. My interest is in dynamic (automatic) composition of services guided by some high level language -- preferably a language in the end-users domain.

 Possible projects in this area are manifold and might address issues such as:

·        Service conflict: from telephony service we know that composing services is not straight forward, for example two services which individually function as expected might lead to new, often undesired, behaviour when composed. What does feature interaction mean in the arena of web services, how can it be addressed?

·        Goal driven composition: How can we express at some higher level how services should be composed?

·        Service composition architectures: Considering that web services are supported by the web service architecture, one can ask whether this is strong enough to support composition? What enhancements to the architecture are required to support dynamic composition?

 These ideas are rather vague, as I would expect the student to explore the area in more detail and identify a suitable project, matching their interest and overlapping with my own ideas.

3. Efficient XML Technology for Data Storage and Querying – Prof. Rajeev Raman

"XML has become a de-facto standard data interchange format.  The ability of XML to represent far more complex relationships between data items than (say) the relational model means that XML is a very promising technology for data storage and querying as well.  However, XML technology for storage and querying is very inefficient compared to relational databases. In particular, the memory usage and CPU time for running queries is much, much worse. An important research direction is to reduce the "penalty" for using XML, and there is an ongoing research project in this direction. The project would involve implementing some of XML DOM's functionality on top of a highly space-efficient and fast representation.  The language could be C++ or Java, and the student would work with a team involving me, Naila Rahman, Richard Geary and one more PhD student."

4. Coordination Technologies – Prof. José Luiz Fiadeiro

Aims: Coordination Technologies are a set of architectural principles and modelling primitives centred around the notion of Coordination Contract.  They are based on the separation between what in systems can account for the computations that are responsible for the functionality of the services that they offer, and the mechanisms that coordinate the interconnections through which global properties of systems, such as absence of collisions and derailing, can emerge.  Such technologies rely on a mathematical model epitomised in the language CommUnity, and can be demonstrated over a Java-based Coordination Development Environment (CDE).  The Department, through the Software Specification and Design Group (SoftSD), is collaborating with ATX Software SA in the development of these technologies.

The aim of the project is to investigate the applicability of Coordination Technologies, namely through the use of CommUnity and Coordination Contracts over the CDE, to the modelling of particular kinds of systems (for instance, Railway Interlocking Systems, Telecommunications, Embedded Systems, Collaborative Systems, inter alia).  The choice of the class of system can be agreed between the student and the supervisor

Learning Outcomes:

End Product: Application models in CommUnity and their implementation in the CDE; a critical appraisal of the applicability of Coordination Technologies to the application domain concerned.

5. Development of a graphical editor and simulator for component-based Petri nets – Dr. Nasreddine Aoumeur

Description : For adequately specifying and validating distributed information systems, we have recently developed in [AouSaa02] a specification/validation framework based on a sound integration of object-orientation with modularity features into a suitable variety of algebraic Petri nets. The conceptual model referred to as CO-NETS has been experienced with several case studies including : banking specification, staff-management system, train control system, and production system: all published in conferences. The validation of CO-NETS is based on graphical animation with rewriting logic as a formal symbolic computation support.


The project around this framework consists in developing a software tool (using Java or C++) for editing and simulating these Co-nets components. More precisely the tasks would be:

1.      Conceive an adequate data structure for internally representing different Co-nets elements (places, transitions, arcs, classes, components, rewrite rules, ...). In this context, I have several exisitng structures, and the student has just to compare and adapt one of them.

2.      Implement this data structure with highly friendly graphical interfaces (with icons, menus, ...).

3.      For simulating the Co-nets, adapt the rewrite rules of the MAUDE system or develop proper rewriting system for computing transitions. Here also, I have developed several rewriting environments and the student has just to adapt them to the Co-nets specificities.

The Main References:

[AouSaa02] : N. Aoumeur and G. Saake, "A Component-Based Petri Net Model for Specifying and Validating Cooperative Information Systems". Data and Knowledge Engineering Journal, Volume 44, number 2, pages 143-187, August, 2002.

6. Development of a graphical interface for editing/validating an integrated UML-based conceptual model  Dr. Nasreddine Aoumeur

Description : In our effort of bringing more coherence, in developing complex information systems, using different UML-based diagrams and constraints (OCL), we proposed in [AouSaaUML02] a new form of integrated UML-based conceptual model. This model endeavours integrating class-diagrams, object-diagrams, state diagrams and OCL constraints, and it has a rewriting logic semantics for rapid-prototyping purposes. The model bridges the gap between a UML analysis phase and its correct implementation.


·        Propose an adequate internal representation for the UML-based integrated conceptual model (data structure for attributes, classes, generalisation, inheritance, ...)

·        Development of a graphical tool for editing this integrated model in a highly user-friendly manner.

·        Development of a rewriting-based engine for computing on this model and doing some form of simulation and validation by rapid-prototyping.

 The Main References:

[AouSaaUML02] : N. Aoumeur, G. Saake, "Integrating and Rapid-prototyping UML Structural and Behavioural Diagrams Using Rewriting Logic". In Proceedings of the 14th International Conference on Advanced Information Systems Engineering (CAiSE 2002, Toronto, Canada), A.B. Pidduck and J. Mylopoulos and C.C. Woo and M.T. Ozsu (editors), Lecture Notes in Computer Science, Volume 2348, pages 296-310, 2002.

7. From Legacy Systems to Web Services - Dr. Mohammad El-Ramly

Web services is the hottest trend in business application integration. The World Wide Web consortium (W3C) defines a Web service as: "a software application identified by a URI, whose interface and bindings are capable of being defined, described and discovered as XML artefacts. A Web service supports direct interactions with other software agents using XML-based message exchange via Internet-based protocols." 

The online technical dictionary defines Web services as: "a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards over an Internet protocol backbone. XML is used to tag the data, SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI is used for listing what services are available. Used primarily as a means for businesses to communicate with each other and with clients, Web services allow organizations to communicate data without intimate knowledge of each other's IT systems behind the firewall. Unlike traditional client/server models, such as a Web server/Web page system, Web services do not provide the user with a GUI. Web services instead share business logic, data and processes through a programmatic interface across a network. The applications interface, not the users. Developers can then add the Web service to a GUI (such as a Web page or an executable program) to offer specific functionality to users. Web services allow different applications from different sources to communicate with each other without time-consuming custom coding, and because all communication is in XML, Web services are not tied to any one operating system or programming language." 

On the other hand, software legacy systems are the backbone for computing services in many organizations, with years of investment and proven reliability. With every new computing revolution, IT industry and research have to invent methods for leveraging  legacy systems with the new technology. With the advent of PC's, emulators were invented to access legacy systems. With the advent of window systems, graphical emulators came followed by screen scraping to dress up legacy screens. With the advent of CORBA and distributed objects, focus shifted to objectifying legacy systems, i.e., wrapping their services as objects. With the advent of the Internet, a lot of work was done to Web-enable legacy systems. With new trends in programming languages or new versions of older languages, source code transformation gets attention. Web services are no exception. A lot of useful business services are residing on legacy applications and wrapping them as Web services, brings the best of both worlds together.

In this project, the student will explore how legacy systems can migrate to Web services. In other words how the services of a legacy systems can be decomposed and offered as Web services. Of particular interest is:

However, as Web Services technology is still at infant-to-toddlers stages and I am myself new to Web Services, there is amble room to jointly define the project with the interested student and tailor it to his/her interest. 


[ACKM04] Gustavo Alonso, Fabio Casati, Harumi Kuno, Vijay Machiraju, Web Services: Concepts, Architectures and Applications, Springer Verlag, ISBN 3-540-44008-9, 2004.

[Elr03] Mohammad El-Ramly, Reengineering Legacy User Interfaces Using Interaction Traces, Ph.D. Thesis, university of Alberta, Canada, 2003. Publications from the thesis are available here.

[Vog03] Werner Vogles, Gustavo Alonso, Web Services Are Not Distributed Objects, IEEE Internet Computing, Nov.-Dec. 2003.

[KE02] D. Kuebler and W. Eibach, Adapting legacy applications as Web services, Technical Article, developerWorks newsletter, IBM Corporation, Jan.-Feb. 2002 .

8. Multi User Dungeon: A Mobile Game - Dr. Piotr Kosiuczenko

We use mobile gadgets like mobile phones or palms in our everyday life. We know how to use them for contacting other people and doing small computations. But we do not use them in the whole extend. In particular, except of applets, we do not use mobile software. The goal of this project(s) will be to implement a mobile computer game called MUD (Multi User Dungeon), capable of running on mobile devices like handy or hand-held or move from one host to another. Different users may play a simple game like tick-ta-toe on distance using their mobile gadgets or PC instated of game boards. This may happen, for example by exchange of SMS messages. Such a way of playing would prove rather very expensive, since the users would have to pay for each move. Mobile software reduces the communication overhead and costs. Instead of sending messages or calling a remote methods, executable code is sent. In the project(s), the idea is to send a strategy in the form of executable code, which will then play with another user or another strategy. If a player or a strategy wins, then the winner gets some points and may decide to play with another user or to send the strategy elsewhere. Ideally, a mobile device or PC will provide a virtual room for game to be carried out. A virtual room provider may charge the players for each game or for each move. The virtual room owner has to provide the prices for playing in his room. The owner can not change the amount charged for a move while two players are playing in the room. After arriving to a room and checking the prices, a virtual player may decide to face a rival or not. It can see some information like IP-number of the device the player is originating from. For example, if the opposite player wan several games, the virtual player may decide not to play with another player. If there are players in the room, but no one is willing to play (the room owner included), the room owner is supposed to pay the amount charged for a play. The players may also set the amount they win/loose in a game. The project executor will have to do proper requirements specification, design. He/she should also implement at least the basic functionality of the game. There exist proper graphical notations for modelling of mobile systems (cf. SDM, ADM). There exist also programming languages for mobile system implementation like Mobile Java and Jade. See:

Two different platforms can be used for implementing this game: an Agent Platform like JADE and the Micro Java Platform. In the first case, the student should know the basic features of the Agent Platform and be able to write programs for this platform.

In the case Micro Java Platform, basic knowledge of and the ability to write programs for this platform are required. In this case also two different projects are possible: a project devoted to mobile platform implementation and a project devoted to the game itself. These two projects require close cooptation.

9. Online Java Automatic Knowledge Test Framework - Dr. Piotr Kosiuczenko  

The goal of this project will be to design an automatic test framework. The MSc candidates will be asked to do some Java-programming exercises and submit their answers online. The submitted programs will be compiled and, if syntactically correct, tested. For the testing, JUnit will be used. JUnit displays the number of failures and errors found. Candidates will repeat their solutions until they manage to submit a correct one, or of their chose to proceed to the next exercise. At the very end of the test, the test system will advise student to read more or less advanced stuff, depending on his/her performance. The diagnosis should be based on performance (time spent, number of questions answered) and multiple-choice questions. The system should be safe, i.e. it should disallow execution of dangerous programs. The project will focus also on ways of ensuring safety.

10. Imaging Fabrics for E-commerce - Proposed by Mick Sharpe

Project Allocation and Second Marking




Suggested 2nd Marker

 A Hammad   Web Service Composition  Dr. Stephan Reiff-Marganiec   Dr. Irek Ulidowski
 J. Siu Online Java Automatic Knowledge Test Framework Dr. Piotr Kosiuczenko Dr. Michael Hoffmann
M. Sharpe Imaging Fabrics for E-commerce Dr. Mohammad El-Ramly   Dr. Simon Ambler
N. Altoyan Development of a graphical editor and simulator for component-based Petri nets Dr. Nasreddine Aoumeur / Prof. José Luiz Fiadeiro    Dr. Alexander Kurz
W. Altoyan Multi User Dungeon: A Mobile Game  Dr. Piotr Kosiuczenko Dr.  Fer-Jan de Vries

Students Presentations and  Preliminary Reports

Student Presentation:

  1. 1:00 - 1:15 A...
  2. 1:15 - 1:30 J...
  3. 1:30 - 1:45 M...
  4. 1:45 - 2:00 N...
  5. 2:00 - 2:15 W... 

Preliminary Report:

Interim Report 1 (5%)

Interim Report 2 (5%)

  1. A clear description of what progress has been made to achieve the project objectives and what is still to be done.
  2. An updated version of your plan that describes what activities were added, deleted, shortened and/or  extended and why.
  3. The TOC of your thesis
  4. Any other relevant information.

Thesis and Viva

  1. A electronic copy of the dissertation 
  2. A copy of the source code of the software developed, if any.
  3. An installable or executable copy of the software that is ready to run.
  4. A copy of any technical documentation and/or user manual of the software, if any.
  1. A declaration of originality as shown below..
  2. An abstract and table of content.
  3. The technical background of the work, including appropriate references to the technical literature.
  4. Specific objectives of the project.
  5. Detailed specification of the software produced, if any.
  6. The technical contribution of the project, including experimental and/or theoretical results.
  7. Conclusions; including overview of what has actually been achieved by the project, changes in the plan from the original one and the reasons, interpretation of the results, and suggestions how the project could be further extended.
  8. A list of references.
  9. Appendices if required.




Student Viva Schedule

Student  Time/Date Place
N. Altoyan 10:30 am, Wed 22 September 2004 Office of Dr. Alexander Kurz
W. Altoyan 11:30 am,  Wed 22 September 2004 Office of  Dr. Piotr Kosiuczenko  
J. Siu 9:30 am, Wed 22 September 2004 Office of  Dr. Piotr Kosiuczenko