University of Leicester

computer science

[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

 

 CO7203
Planning

 

 
* CO7203 (pdf)
* J L Fiadeiro
* CO7201 (Individual Project)
* Student Learning Centre
Calendar
10/12
 
21/01
 
session on Presentation Skills I
28/01
 
session on Presentation Skills II
   
04/02
 
session on Project Planning
11/02
 
session on Writing Your Dissertation
18/02
 
session on Careers
25/04
 
plans handed-in (10:00 am, MCS Office)
09/05
 
oral presentations (10:00-15:00, MSc Lab)

 

All sessions take place in room GP LTA, 14:30-16:30.

General rules
  • Once you have agreed on a topic and direction with a supervisor, you can start preparing your plan.
  • Each plan should include: a fairly detailed problem statement; background information, including motivation and state of the art; and a proposed high-level approach to solve the problem.
  • You will be assessed on the basis of a 10-minute oral presentation (worth 30%) and a 2000 word document (excluding bibliography) that describes the project plan (worth 70%).
  • This plan can be used for your individual project (CO7201) if you so wish and you are allowed to progress after the examinations.
  • You can view or download additional guidelines.
Student Supervisor Topic
AZAM, Zeeshan Reiko Heckel Comparison of Approaches for Model-based Development of Service Oriented Architectures
CHAABAN, Huda Mohammad El-Ramly Software System Re-engineering
CROSS, Graham Mohammad El-Ramly Course Information Manager
GARTON, James Roy Crole A Simulation of a Processor Architecture
GORTON, Stephen Rajeev Raman Access Control
HAMID, Salah Reiko Heckel Comparison of Approaches for Model-based Development of Service Oriented Architectures
HU, Xiquan Reiko Heckel Modeling and Simulation of P2P Networks
JI, Xiaodong Reiko Heckel Tracking of Industry Contacts
LIANG, Jian Stephan Reiff-Marganiec AmaGoogle
LIU, Zhen Reiko Heckel Model-based Testing of Web Service Middleware
MAGULIKE, Walter Mohammad El-Ramly Information Gathering Agent using NQL
MO, Welguo Rajeev Raman Access Control
MOODY, Andrew José Fiadeiro Coordination and Problem Frames
OWOJORI, Kayode    
SHEN, Xiaofei Mohammad El-Ramly Information Gathering Agent using NQL
SIJU, Bindu Stephan Reiff-Marganiec Web Services Administrative Tool
SINGH, Rajwinder Thomas Erlebach TCP/IP Behaviour
SUN, Yongli José Fiadeiro Visualing CommUnity
TANG, Yan    
WU, Yun Mohammad El-Ramly Mining GUI Usage Data
YU, Hong Qing Stephan Reiff-Marganiec AmaGoogle
ZAYDAN, Osama Mohammad El-Ramly A Survey of Data Mining of Version Control Data
ZHANG, Chi José Fiadeiro Modelling railway systems in CommUnity
ZHAO, Xia Stephan Reiff-Marganiec Music Finder Interface to Amazon
Supervisor Topic Observations
Thomas Erlebach A generic web compendium tool for research communities Researchers working in a particular area need to keep track of the known results in the area. They want to be able to find out quickly which results are known for a particular problem and where they are published. Researchers who begin to study an area want to have a convenient way of getting a good and up-to-date overview of the area. The goal of this project is to create a tool that makes it easy to set up and maintain a website offering these facilities without in-depth knowledge of web technologies. (MORE)
Thomas Erlebach A research workbench for network discovery algorithms Recent research has studied the problem of discovering the topology of a communication network using certain types of measurements. For example, to discover the topology of the Internet, one can run traceroute experiments to detect all links that are used by packets sent between pairs of nodes. The aim of this research is to design measurement strategies that discover as much information about the network as possible in short time. In order to evaluate proposed algorithms, it would be useful to have a tool with a graphical user-interface that allows simulating and visualizing how the algorithms behave on different types of networks. Such a tool could be used by researchers as a workbench in which they experiment with and evaluate new algorithms. The goal of this project is to design and implement a tool of this type.
Neil Ghani Functional Programming in the E-economy The dominant programming paradigm is currently the object oriented formalism but this is by no means the only, or even best, option. One alternative is functional programming as exemplified by languages such as ML and Haskell. This project will ask the student to select an area of the MSc course and investigate the advantages and disadvantages of producing implementations in Haskell. Possible areas are web technologies, distributed computing, security and program design and specification but others are possible.
Rajeev Raman Access Control The aim is to have a collection of (say) XML documents, and a policy language that lets people see appropriate sections of the documents depending on their "credentials". The project is to implement a system that sends the documents to users appropriately encrypted so that a user can only see the parts of the documents that they are authorised for.
Roy Crole A Simulation of a Processor Architecture This project will involve the software development of a simulator for a small processor. The aim of the project is to develop a tool which could be used for teaching computer architecture. The inputs to the software will be small "assembly" programs written for a selected instruction set. The output will be a graphical illustration of a processor achitecture, and the dataflow around the processor as the program runs.
Roy Crole Type Checking and Inference Types play a crucial role in a wide variety of programming languages, guiding the construction of sensible code, and enabling a program which embodies a single algorithm to be applied to arguments of different types. Many languages employ type-checking algorithms which, given a program, decide whether the program can be assigned a type, and if so find that type. This project is to write an account of some aspects of the theory of types in Computer Science, and to implement a simple type-checker.
Roy Crole Object Calculus Implementation Object oriented design and code pervade modern computing. One can give an operational semantics to a simple core language which embodies the key principles of OO code; the style of the semantics is like one sees in CO3008. The aim of this project is to write an interpreter (or compiler) for such a language.
Reiko Heckel Tracking of Industry Contacts In many activities in the department contacts with industrial partners are maintained, often in an ad-hoc fassion. The system should support the coordination of these contacts, for the mutual benefit of the various roles requiring and providing such data. The system should allow semi-automatic gathering of data from a variety of sources (e.g., using Google's web service interface) and have a web-based user interface and data base/XML connection. The task includese the SE activities like gathering of requirements from stakeholders, evaluation of design alternatives, etc. (MORE)
Reiko Heckel Modeling and Simulation of P2P Networks Structured Peer-to-Peer networks employ different kinds of protocols to organize and optimze communication in the absense of a centralized network infrastructure. The evaluation of the trade-offs inherent in such protocols (e.g., to choose and/or tailor one for a particular class of applications) requires a tool support for modeling and simulation so that protocols can be tried out before they are actually implemented. The project shall use UML and graph transformation rules for modelling and simulation and could either focus on visualization or performance evaluation. (MORE)
Reiko Heckel Model-based Testing of Web Service Middleware Specifications of platforms like CORBA or Web Services are usually given in an informal, textual way. This leads to incomplete and ambiguous requirements which often lead to inconsistent implementations. The project shall use UML and graph transformation rules for modelling middleware platforms, starting from informal standards documents, and go on to develop a concept for testing implementations of these platforms against their executable models. As typical use case, a core part of a standard BPEL4WS execution engine could be modelled and used to test the (existing) Java implementation of this standard. (MORE)
Reiko Heckel Comparison of approaches for Model-based Development of Service Oriented Architectures This project will use two modelling approaches, one based on UML class modelling and one based on event driven state machine modelling, on a common sample application to build executable models. The aim will be to compare the two approaches in terms of ease of use and value obtained. The case studies used for the comparison will be extracted from requirements of real SE projects, and the project will be supervised in cooperation with Metamaxim Ltd. (MORE)
Stephan Reiff-Marganiec AmaGoogle Amazon provides a web service that can be used by software developers to access and query the Amazon catalogue. Google provides a similar interface to its search engine. This project should investigate the use of these interface to build an interesting application. The idea here is that a tool should be developed that searches for a particular actor/author/musician and then shows the DVDs/Videos/CDs or books that are available on Amazon but enhances this information with biographical data and information about fanclubs as found by Google. The implementation of the "value added" services should be in Java, as this is the most obvious technology to use when connecting to WebServices. The project will involve a complete software engineering process starting with requirements capture, leading to system design and finally implementation. The result shall be evaluated in a suitable manner. (MORE)
Stephan Reiff-Marganiec Course Information Manager The department runs a number of modules, each convened by a member of staff. Throughout the year, certain tasks have to be conducted related to the management of courses. Such tasks include the generation of studyguides, module forms and websites, as well as providing material on websites as the course progresses. Each of these tasks might be small, but they do take a considerable amount of time. So the system should improve on this time consumption by providing much automation. (MORE)
Stephan Reiff-Marganiec Music Finder Interface to Amazon Amazon provides a web service that can be used by software developers to access and query the Amazon catalogue. This project should investigate the use of this interface to build an interesting application. The idea here is a music finder that might find catalogue entries and suggestions based on information extracted from an MP3 file, i.e. the user selects an MP3 file and the program locates the respective Amazon entry for the CD(s) on which the song occurs as well as maybe other works by the same artist. (MORE)
Stephan Reiff-Marganiec Open Project The project will involve some programming, but mostly to demonstrate feasibility of ideas concerned with emerging technologies. Programming should probably be in Java in an object oriented style. The project would suit a student who is willing to face a rewarding challenge and will not feel overwhelmed by the fact that much of the new technologies are just emerging and hence there are no text books available. (MORE)
Vincent Schmitt Two players game theory The project is to investigate the theory of games in areas that apply to the e-Economy such as negotiation. Depending on the interest, the student can develop a generic software package for two-player games or investigate more algorithms for two-players games, or investigate a specific challenging game.
Vincent Schmitt Task allocation problem The project will develop an algorithmic solution for a task allocation problem to be identified with the student. For instance, given a list of tasks each with a certain duration, a list of locations where these task could be realised, a list of people able to realise these tasks, find an optimal way of realising all these tasks in a minimal amount of time. Think of a list of exams, that should take place in a room and should be attended by students. This problem is a typical optimisation problem from Operational Research. It has many variations. There are ceratinly various ways of tacking these problems: classic exhaustive search base on heuristics, probabiblistic approach. The challenge is to design "reasonable" algorithms, that means that they execute in a reasonable amount of time.
José Fiadeiro CommUnity in the World This class of projects is about developing case studies that are normally used as "benchmarks" for formal methods and architecture description languages in different application domains: patient monitoring system, steam boiler, sluice gate, cruise control, network protocols, features in telecoms, railways, inter alia. The project would include undertstanding the problem domain and the challenges that it raises to modelling languages, studying CommUnity a little further, developing the case study in CommUnity, making it available in the CommUnity Workbench as a demo and as an annex to the user's manual, and comparing the CommUnity model with other solutions in the literature. (MORE)
José Fiadeiro Visualising CommUnity This class of projects is concerned with extending the CommUnity Workbench with typical graphical representations of behaviour such as the ones available through the UML and statecharts. This includes both the internal behaviour of components and the interactions between components (connectors). A project would consist in choosing one or two specific graphical representations, define their semantics in CommUnity, and extending the CW with a corresponding graphical tool. (MORE)
José Fiadeiro Relating CommUnity This is a class of projects that are more research-oriented and can be followed to a PhD. They consist in investigating relationhips between CommUnity and other modelling languages like Abstract State Machines (ASMs) used by Microsoft, Team Automata for Collaborative Systems, Promela for Model Checking (see CO7209), the Software Cost Reduction requirements method (SCR) used by the US Navy, inter alia. This would involve studying one such specific formalism, developing translations to and from CommUnity, and illustrating them via an example. (MORE)
José Fiadeiro Spinning CommUnity This project is about applying the Spin model checker studied in CO7209 to CommUnity designs. It would involve the translation from CommUnity to Promela, the identification of classes of temporal formulas most typical of CommUnity designs, the ellaboration of a manual, and the integration of Spin and the CW. (MORE)
José Fiadeiro Coordination and Problem Frames This project is concerned with high-level design, i.e. relating requirements with architectures. More specifically, the aim is to continue work already started between Leicester and the Open University to relate Coordination and Michael Jackson's Problem Frames. The work would consist in validating the approach developed so far through key case studies and extending the approach to more general classes of Problem Frames. The research content of this project can be adjusted and can be pursued towards a PhD. (MORE)
Piotr Kosiuczenko Multi User Dungeon: A Mobile Game 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. The project executor will have to do proper requirements specification, design. He/she should also implement at least the basic functionality of the game. 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. (MORE)
Mohammad El-Ramly A Software Clustering Platform This project aims to deploy some of the known software clustering algorithms to discover software structures in Cobol and Visual Basic software systems. The work will not start from scratch. Instead, the project aims to integrate exiting technologies and build the necessary adapters to get various tools to work together and complete the missing pieces. (MORE)
Mohammad El-Ramly A Survey of Data Mining of Version Control Data The project aims to produce a survey and analysis of the current literature on applying data mining methods to version control data of CVS and other version control systems. (MORE)
Mohammad El-Ramly Software Architecture Recovery: A Case Study The project aims to study and apply the available technology for software architecture recovery and reconstruction on a software system. The purpose is rebuilding the architecture of the software and document it for the purpose of maintaining and evolving it. (MORE)
Mohammad El-Ramly Mining GUI Usage Data The project aims to expand previous work on mining recorded traces of interaction between software systems and their users to software systems with Graphical User Interfaces. (MORE)
Mohammad El-Ramly Java to C# Language Transformer The project aims to produce a language transformer that takes a Java program and produces a corresponding C# program. The transformer will be written in TXL (see references). TXL is a programming language specifically designed to support computer program analysis and source transformation tasks. It is a hybrid functional /rule-based language. The idea of source code transformation with TXL is to write a grammatical description of the first source language and a grammatical description of the target source language. Then the transformation rules that takes a source program in the first language (Java) and transforms it to a source program in the second language (C#) are written and tested. It is expected that the project duration will allow only writing a subset of C# grammar and the Java-to-C# transformation rules. I am also open to other language transformers if the student prefers to write a transformer from another to yet another language instead of Java-to-C#. The project is considerably non-traditional in the sense that most of the effort will go to understanding C# specification and translating it into TXL and inventing the structural transformations necessary to convert Java language constructs to the equivalent C# ones. (MORE)
Mohammad El-Ramly Information Gathering Agent using NQL The student will use Network Query Language (NQL) to build a software agent for information gathering. Ideally, the user will be able to identify one or more domains of interest and provide the agent with examples of the information of interest to him on the web sites related to this domain, or alternatively, the agent will observe the navigation behaviour of the user in the domain(s) of interest. From these examples, the agent will learn to gather daily information digests for the user in the domain(s) of interest and present it to him every day in the morning. Additionally, the system will have the capability of collecting information from legacy information systems to integrate with information collected from the Web. This definition is broad and flexible. (MORE)