Foundations of Software Systems (FoSS)


The group promotes a holistic view of the development of computer science theory and its application to computer systems. The Foundations of Software Systems group consists of 6 faculty and 9 researchers and PhD students.

The Foundations of Software Systems group is interested in the theory and practice of computation and communication.

Its theoretical research is concerned with building formal models, then exploring and exploiting their properties. These models range from the exact description of various flavours of computation, including concurrent and reversible computation, through programming language related features like type systems and specification logics to network protocols. While the group’s activities rest on solid mathematical and logical foundations, its ultimate objective is to turn those new designs and insights into tools that support the corresponding programming and networking related activities.

The group’s networking research follows the user-centered approach and has two main objectives: building opportunistic, delay-tolerant networks to support efficient information dissemination in connectivity challenged environments, and designing network protocols for efficient communication within data centres. The potential benefits of machine learning and Software-Defined Networking are explored in that context. To evaluate measurable objectives, the University’s High Performance Cluster is used to run simulations of large-scale opportunistic networks and data centres.

In further applications the FoSS group is developing automated software testing tools to detect faulty code, and verification tools to prove safety-critical properties of programs like memory-safety. In the area of concurrent and distributed systems, the group investigates and designs meta-programming features and compilation techniques for concurrency.

The FoSS group has strong links to industry (e.g. OnApp, Moogsoft, InterDigital) and a history of deployments in real environments, ranging from street markets to football and other sport event arenas. Recent work on delay tolerant networks has been successfully commercialised through a spin-off company, TribeHive.  A bug-finding and automated test-generating tool for C, Java and Javascript programs is developed by a spin-off company in Oxford, DiffBlue.


Networking and Distributed Systems

Networking and distributed systems technology is beginning to mature as it reaches a wider audience through the Internet and other channels. Our research is focused on two distinct areas:

  • The majority of networked services are now hosted within data centres, where large racks of standard computers hosting multiple virtual machines are connected together by a networking infrastructure. We are currently looking at the effective update and management of distributed store using mulitcast fountain codes, and the adaptation of Multipath TCP to take advantage of the multiple paths available within the network.
  • Another strand of networking research is based on understanding how we can engineer networks when the end-consumer of the information is a human being: a user-centered networking approach. Current research is investigating how to build a delay tolerant network to support efficient dissemination of networked services in connectivity challenged environments - the Digital Stadium project. This work has resulted in a spin out company, TribeHive Ltd.

Foundations of Computation

The long term aim of foundations research is to provide better programming languages, better specification mechanisms, better verification tools, and a better integration between languages, specification and verification. Our specialities are graphical formalisms for concurrent programming, quantum computation, separation logic with an emphasis on higher-order state and object calculi, types for concurrent languages, timed and untimed process calculi and logics for functional and concurrent languages.