PhD topics in Computer Science and Software Engineering
- Centre for Complex Software Systems & Services (CS3)
- Centre for Software Analysis & Testing (CSAT)
- CSSE Research
Centre for Complex Software Systems & Services (CS3)
| Project title: | Probabilistic Verification and Model-Based Quality Evaluation of Automotive and Avionic Systems |
| Supervisor: | Lars Grunske, CS3 |
Description: |
Model Based Development (MBD) has established itself as the key approach to software engineering of increasingly complex systems in automotive and aerospace domains. It has proved successful at managing complexity associated with functionality. A new approach is to use model-based techniques also for quality evaluation and predictions. Since most of quality attributes such as performance, reliability, availability, safety, and security have a probabilistic nature, probabilistic verification techniques are the best solution to perform model-based quality evaluation. The research project shall explore the possibilities of probabilistic modelling and verification techniques to reason about quality attributes early in the software development lifecycle. |
| Project title: | Scientific and business workflows |
| Supervisor: | Prof. Yun Yang and Dr Jinjun Chen, CS3 |
Description: |
Processes are everywhere. Workflow systems are facilitated to support processes. In this broad area, several interrelated PhD topics are listed which can be conducted by individual candidates. One of the current foci is the cloud computing based scientific and business workflows, so called cloud workflows, which includes research on cloud computing systems in general and their support to workflows in particular. The innovative topics in workflows span from modelling, architecture, scheduling, data management, verification and exception handling, to security, authentication, authorisation, privacy, risk and trust. |
| Project title: | Empirical Evaluation of Property Specification Patterns (Requirements Engineering) |
| Supervisor: | Lars Grunske, CS3 |
Description: |
This Research project aims to investigate with empirical experiments if using specification patterns (specifically the specification patterns of Dwyer et al. 99) has a positive impact on the ability of software engineers to formalize requirements and properties. The used specification formalisms are (timed and probabilisitic) temporal logics such as CTL, CTL*, LTL, TCTL, MTL, PCTL, CSL,….. |
| Project title: | Service-oriented computing |
| Supervisor: | Prof. Yun Yang and Dr Jinjun Chen (& Dr Jun Yan), CS3 |
Description: |
The full potential of service-oriented computing can be achieved only when consumers can use services that fit the context in which they are used. This motivates effective management of services with sophisticated control mechanisms to cater for differentiated quality of service offerings. This broad project aims to provide cutting edge IT solutions for effective management of services during their lifetime to ensure that the "right" services are used throughout the service provision. Besides, automated service discovery and composition with semantics are potential PhD topics as well. |
| Project title: | Artificial Intelligence, Intelligent agents and Multi-agent systems, Argumentation, and Automated Negotiation |
| Supervisor: | Dr. Bao Quoc Vo and Prof. Ryszard Kowalczyk, Centre for Complex Software Systems and Services (CS3) |
Description: |
Description: Research projects in these areas are focussed on:
|
Centre for Software Analysis and Testing (CSAT)
| Project title: | Metamorphic testing |
| Supervisor: | |
Description: |
There is an emerging growth in software facing the oracle problem --- no mechanism or too expensive to verify the outputs. Such software includes Internet search engines, medical diagnosis systems and bioinformatics systems. We propose an in-depth study of metamorphic testing to enhance the failure-detection capability of testing without an oracle. Besides identifying useful metamorphic relations, we shall integrate our approach with other techniques in test case selection, fault-based testing and symbolic execution, with a view to developing a more comprehensive testing methodology. The project will contribute to the foundations of software testing, discover new effective testing methods and help to improve the quality of software. |
| Project title: | Enhanced random testing - towards better cost effectiveness and fault detection capabilities |
| Supervisor: | |
Description: |
Partition and random testing are the most common methods in software quality assurance. Our previous investigations have shown that the more evenly test cases are spread across the set of program inputs, the fewer cases will be required to detect the faults. In this project, we investigate how to enhance random testing so that test cases can be spread more evenly in a cost- effective manner, in order to yield better fault-detecting capabilities. Not only will this project have an impact on the theoretical foundation of software quality, but the resulting methodologies will improve the efficacy of software testing in practice. |
| Project title: | Embedded systems testing |
| Supervisor: | |
Description: |
Embedded systems are the bedrock technology for many high-technology industries. They are used in many safety-critical situations, such as medical devices and car control systems, amongst hundreds of other applications. This project will involve the development of a comprehensive methodology for testing embedded systems, utilizing existing techniques such as metamorphic testing and adaptive random testing (see above). This project will involve realistic case studies on actual embedded systems. |
| Project title: | Regression testing |
| Supervisor: | |
Description: |
Regression testing is testing used to detect “software regressions”, where poor version control practices, such as an inadequate “bug fix”, cause a previously-discovered fault to re-emerge when further changes are made to the system. It is common for suites of regression tests to be carried out on a periodic basis during software development. However, it may happen that the size of the test set becomes too large to run in its entirety on every occasion, so a subset of these tests must be selected. In this project, new methods for selecting such subsets will be developed and evaluated both theoretically and experimentally. |
| Project title: | Testing of OO software |
| Supervisor: | |
Description: |
Object-oriented design and programming techniques are now very common in many types of software development. However, testing methodologies have not kept up with these techniques. In this project, students will examine the special features of object-oriented software design and propose new techniques that take advantage of design notations and are adapted to the more complex language features of object-oriented software. |
| Project title: | Testing of databases |
| Supervisor: | |
Description: |
Many software testing techniques treat software like a mathematical function, with little permanent state. Databases and their related software may not fit such a model, and as such testing techniques must be adapted for use to test such software. However, some testing techniques, such as metamorphic testing (see above), may be particularly well-suited for evaluating the state changes of databases. In this project, students will investigate how various testing techniques may be applied to this challenging and commercially significant type of software. |
| Project title: | Prioritization of test cases |
| Supervisor: | |
Description: |
Many testing techniques can result in the generation of very large sets of test cases. However, testers will generally want to find any existing faults as soon as possible; in some cases there will be limits on testing resources available and hence testing must cease when those limits are exhausted. Therefore, there is a strong requirement for methods of prioritizing test cases so that a set that can detect bugs as many as possible and as early as possible. Furthermore, it is important that the prioritization process, in itself, does not use too many additional resources. This project will involve the investigation of new methods for cost-effective test case prioritization. |
| Project title: | Static analysis of software |
| Supervisor: | |
Description: |
Static analysis of software examines software source code for potential faults, without actually executing the software. Techniques for such a purpose include data-flow analysis and abstract interpretation. Potential projects in this area include the adaptation of static analysis techniques to new types of software, as well as the integration of static analysis techniques and software testing. |
| Project title: | Fault localization |
| Supervisor: | |
Description: |
Once the existence of a software fault is determined, it is required to determine where the fault lies. Typically, this is done through programmer’s intuition, which is often unreliable and highly dependant on the knowledge and skill of the individual programmer. Fault localization techniques are used to determine likely locations for program faults, based on the results of testing. In this project, students will examine how the results of certain testing techniques can be used for fault localization, including improving such testing techniques to select test data that can assist in such localization. |
| Project title: | Automatic debugging |
| Supervisor: | |
Description: |
Taking advantage of techniques for fault localization (see above) and the variety of techniques for test case generation (notably metamorphic testing), in this project we propose the development of prototype tools that allow testers to integrate the information in an easy-to-use manner to identify likely code fragments that contain errors, examine them in operation, and locate the actual software faults as quickly and as easily as possible. Such projects will involve applying such prototype tools in case studies, on real-life examples where possible. |
| Project title: | Relating failure information and testing effectiveness – a hierarchy |
| Supervisor: | |
Description: |
From a mathematical perspective, the problem of selecting test cases is a case of decision-making under uncertainty, and under constraints. In essence, the tester has some probabilistic information about the likelihood of various software failures. Based on this information, and given the resource constraints, the tester chooses a sequence of test cases which maximises the number of software faults detected, and thus (when rectified) improves the software reliability to the maximum extent possible. In this project, we examine the types of information available to the tester, and determine how it can be used to construct mathematically optimal testing strategies, building a “complexity hierarchy” to which real-world testing techniques can be compared. In this manner, the effectiveness of the current state of the art in testing methodologies can be compared to theoretical limits, and future research can be directed into those areas offering the most potential for improvement. |
| Project title: | Web testing |
| Supervisor: | |
Description: |
Web browsers and web servers, have become one of the most important platforms for which software is developed, and have their own unique features such as the heterogeneity of the web environment and the inherent unpredictability of network communications over less-than-perfect infrastructure. Existing testing techniques often do not take these limitations into account. In this project, students will seek to develop new techniques, and extend existing ones, to test popular web platforms, and conduct case studies to demonstrate their effectiveness. |
| Project title: | Web-based information visualisation and navigation |
| Supervisor: | Dr Wei Lai, Centre for Software Analysis and Testing |
Description: |
This project aims at the investigation on efficient user interfaces for web information browsing and navigation. This would combine our previous research results on graph visualisation and current search engine techniques to explore efficient user interfaces. We have developed several techniques for automatic graph layout and applied graph visualisation for many applications. For example, an interface of using diagrams for showing relationships between URLs. Combined with web crawler and search engine techniques, an on-line web graph interface system has been developed for web browsing and navigation. Further investigation will be needed on the filtering, clustering, and displays for web information. |
| Project title: | Software Architecture Verification |
| Supervisor: | |
Description: |
Our research is to investigate the fundamental principles, guidelines and methodologies to address problems faced by software architects and quality assurance teams in verifying a software architecture design. Existing methods in verifying software architecture design mainly rely on the experiences and, sometimes, subjective judgements of software architect and quality assurance team members. We aim at achieving a methodology to enable a more objective approach to software architecture design verification. Such a methodology will help software engineers to overcome the above difficulties resulting in a software architecture design that is made by objective and sounded design decisions. Students with industrial experience are invited to apply for a scholarship. |
CSSE Research Group
| Project title: | Patterns of Software Evolution |
| Supervisor: | Dr. Jean-Guy Schneider and Dr. Markus Lumpe, CSSE Research |
Description: |
It is a generally accepted fact that real-world software systems change and become more complex over time. Contemporary software systems developed using object-oriented technologies are no exceptions to this rule. However, we still do not fully understand how object-oriented systems evolve over time and what kind of metrics and tools can help us in better understanding their evolutionary patterns. The aim of this project is to build on existing work in this area and develop a new methodology to facilitate the assessment of evolving object-oriented software systems. This methodology will provide better support for the analysis, understanding, and maintenance of evolving software systems. |
| Project title: | Towards the next Generation of Object-Oriented Languages |
| Supervisor: | Dr. Markus Lumpe and Dr. Jean-Guy Schneider, CSSE Research |
Description: |
Object-oriented technology has become the de-facto standard for the development of state-or-the-art software systems. However, many mainstream object-oriented programming environments only offer a fixed set of abstractions that may force developers in expressing software solutions in ad-hoc, cumbersome, and often poorly maintainable ways. In recent years, a number of extensions have been proposed to address this problem. Nevertheless, there is no unifying framework that incorporates these extensions in a systematic and type-safe way. The aim of this project is to extend existing work in this area and come up with a unified development environment where mainstream languages can be safely extended with new constructs on demand. This unified environment will assist practitioners and computer scientists alike in giving them a toolset suitable for expressing and experimenting with novel object-oriented constructs in a natural and maintainable way. |
