Dependable Systems Group


The Dependable Systems Group has three major themes: Software Engineering, Formal Methods and Security. Its research is broad and multi-faceted, and can vary from highly theoretical, abstract models, through the development of numerous branches of technology, into empirical studies of industrial practice.

The focus is the development of software that is reliable, dependable and secure. This encompasses a number of approaches to ensuring the dependability of software, from the softer approaches through software development methods and software project management, to more formal approaches through refinement, verification and automatic program construction.

The Dependable Systems Group has worked with numerous industrial partners on nationally and internationally funded research projects, including IBM, BT Global Research and Development, Atos Research and Innovation, Oracle and SAP Research.

Staff Members

Dr Paul Clarke

Dr David Gray

Dr Geoff Hamilton

Prof Rory O'Connor

Dr David Sinclair

Affiliated Centres

LERO (The Irish Software Research Centre)

Example Research Projects

  • Software Parallelisation: parallelising software by hand is tedious and error-prone; the programmer is forced to think about the implementation of parallelism in addition to algorithmic requirements. By automatically introducing parallelism into programs, the programmer is freed from explicitly implementing parallelism and can therefore concentrate on algorithmic issues. Developing techniques for the automatic parallelisation of software should allow parallel software to be developed that is less error-prone than parallel software developed by hand, and will also have significantly less development and verification costs associated with it. Examples of the projects carried out in this topic are AUTOPAR and TAAPOS.

    AUTOPAR: Automatic Parallelization of Programs
    The aim of AUTOPAR is to make use of recent developments in automatic program transformation techniques to automatically parallelize functional programs to run efficiently on multicore architectures. Click here for more details.

    TAAAPOS: Towards Architecture Aware Automated Parallelisation of Systems
    The aim of TAAAPOS is to develop tools and techniques which support the porting of software from existing serial implementations into ones suitable to run on parallel architectures. Click here for more details.

  • Data Security and Usage Control in the Cloud: this project aims to develop a cloud-based infrastructure that will enable users to securely store data in a cloud and control how the data is accessed by users and services. Users and services will store and access data through Trusted Access Services. Each data object stored in the cloud will be encrypted by the Trusted Access Service and only exist in the cloud in its encrypted form. Each data object will have an associated Usage Policy that is signed by the Trusted Access Service. This Usage Policy will define who can access the data and how the data object will be managed by the Trusted Access Services. The Usage Policy will also record the activity on the data object to enable an audit trail to be maintained on each data object. The internal protocols used in the Trusted Cloud will be modelled and verified to ensure that the data stored within the Cloud is not leaked from the Trusted Cloud.
  • Secure Mobile Code: One of the main issues facing the deployment and acceptance of mobile and distributed systemsis security. Proof-carrying code is a promising technique to ensure the safety of mobile code, but it remains to be seen whether it will scale up to more sophisticated security policies. The key idea behind proof-carrying code is that the code producer is required to create a formal safety proof that shows that the code respects the defined safety policy. Then, the code consumer is able to use a simple and fast proof validator to check with certainty that the proof is valid and hence the foreign code is safe to execute. In this project, we make use of recent advances we have made in the areas of automatic theorem proving and security analysis to greatly extend the proof-carrying concept.
  • Secure Verification of Location Claims: Location information is increasingly being used by computer systems to offer services based on where a user is located. For example, the location of a user’s mobile phone can be used locate nearby facilities such as restaurants or assist the emergency services to respond to a 999 call. In this project we are researching secure techniques for verifying that location information supplied by a user is correct and that they are not making a false claim to be at a particular location. We will apply the results of this research to Vehicular Ad-hoc Networks (VANETs) so that location claims by vehicles can be verified.
  • Software Team Dynamics and Tacit Knowledge: software development relies heavily on employee expertise, specifically tacit knowledge to produce software. In small teams knowledge is shared easily and problems solved quickly through direct verbal communication. This tacit, undocumented knowledge is a major asset of software SMEs. This research project is investigating the role of tacit knowledge in Irish software SMEs, with a view to understanding the role of team dynamics and documentation in the software process and how tacit knowledge can be shared for the benefit of the company. It aims to produce a model of best practice that can be achieved without a major administration overhead.
  • Software Process: its Context and its Adaptation: Where groups of people are engaged in software development, the software process provides the infrastructure for effective work practices that support the achievement of business objectives. The process itself can be a complex affair, with many different concerns to be appropriately catered for. In terms of the software engineering context, it too is complex and therefore harmonising a software process with a software engineering context poses a significant challenge. Added to this challenge is the unavoidable reality that software engineering contexts are subject to change (sometimes a lot of change). We presently conduct active research in this space and additional suggestions for new research in this space are always welcome.