Software Engineering and Distributed Systems
Software Engineering and Distributed Systems
Sub topics:
- Cloud Computing
- Heterogeneous Computing
- Computer Networks
- Parallel Computing
- High Performance Computing
- Unmanned Aerial Vehicles
- Software Engineering
- Edge computing
- Energy-efficient Computing
Software Engineering involves the use of an engineering approach to the development of software that solves real-world problems. Every task that computers perform uses software to do it. Software engineers take engineering principles such as measurement, modelling and trade-off analysis and apply them to the creation and management of software. As computer systems grow in complexity and power, Software Engineering enables them to adapt to these changes. A computer network is a collection of computing devices that are connected for the purpose of sharing information or completing tasks. Any system where data is shared digitally across devices or nodes uses a network. The type of network used depends on a range of variables, such as the number and geographical spread of the devices, the communication protocols, and the transmission medium.
In Distributed Systems, either multiple computers are used, or a single computer contains a network of interacting processes. In some cases, such as Cloud Computing, Distributed Systems allow users to access infinitely scalable computing power, without this power sitting in their device. Other Distributed Systems aim to create higher computing power through the merging of computers, with either the same or different types of processor. In each case, the system provides better capabilities than any single computer could. Edge Computing brings data storage and processing from the cloud to its ‘edge’, where numerous local machines carry out the role of a cloud server. This makes data transfer quicker and more efficient. As we enter the age of the Internet of Things (IoT), holding data in huge data centres and sending information through a central location to a device near to the original one is a waste of energy. In the case of Unmanned Aerial Vehicles, distributed computing aims to create networks of drones which are interconnected and respond to each other and their environment in real time, without referring back to a central control.
High Performance Computing refers to the use of a distributed system of computing devices to perform tasks that are infeasible or impossible within a single computer. HPC does this by networking its separate nodes to perform tasks in parallel, enabling many scientific advances where the data to be analysed has grown exponentially in recent years. The environmental footprint of HPC has the potential to be very damaging, however, and a major current research direction is how to retain the power of HPC while reducing the energy that it requires.
Associated Staff
(opens in a new window)Professor John Murphy
(opens in a new window)Dr Seán Russell
(opens in a new window)Dr Gavin McArdle
(opens in a new window)Dr Anca Delia Jurcut
(opens in a new window)Assoc Professor Eleni Mangina
(opens in a new window)Assoc Professor Mel Ó Cinnéide
(opens in a new window)Dr Simon Caton
(opens in a new window)Dr Andrew Hines
(opens in a new window)Dr Deepak Ajwani
(opens in a new window)Dr Fatemeh Golpayegani
(opens in a new window)Dr Vivek Nallur
(opens in a new window)Dr Nhien An Le Khac
(opens in a new window)Assoc Professor Rem Collier
(opens in a new window)Assoc Professor Guenole Silvestre
(opens in a new window)Dr Liliana Pasquale
(opens in a new window)Dr Brett Becker
(opens in a new window)Assoc Professor Alexey Lastovetsky
(opens in a new window)Mr Damian Dalton
(opens in a new window)Professor Liam Murphy
(opens in a new window)Assoc Professor Neil Hurley
(opens in a new window)Dr Shen Wang
(opens in a new window)Professor Gregory O'Hare
(opens in a new window)Professor Mohand Kechadi
(opens in a new window)Dr Lina Xu