Skip to Main Content

Contents

Subject Overview

Software Engineering is behind many of the technologies we now take for granted. It is seen in virtually all sectors of today’s economy, from handheld smart devices to cloud services and large telecommunications networks. Offered by our Department of Electrical, Computer, and Software Engineering, the specialisation covers software architecture, system performance, testing and quality assurance, requirements engineering, human-computer interaction, and documentation. Because it is largely project-oriented, software engineers also familiarise themselves with the ethical, social, legal, economical and safety issues relevant to users today.

As a result, software engineers often see their core skills as complementary to their personal interests, and demand for professionals in this field will continue to increase alongside the need to create and improve products for today’s technologically-savvy environments and users.

Knowledge and Skills

Pursuing a PhD at our University gives you access to a high-calibre research community – you may have the opportunity to publish papers, attend international conferences, and develop your network in academia and industry.

We welcome research proposals in topics relating to our key areas, including:

  • Human and social aspects of software engineering, with emphasis on the people involved in software development processes, including studying ways to improve coordination on software teams, improving comprehension of software programs, and devising novel techniques to help software developers understand what users want from the software. 
  • Software testing, which involves studying the ways to improve the verification of software systems, such as non-determinism in testing (test flakiness), test oracle generation/improvement, automated software testing, and testing of concurrent software programs.
  • Machine Learning for software engineering, focusing on best practices in designing and developing software solutions with machine learning algorithms at the core.
  • Applied Machine Learning, including designing systems for autonomous vehicles, intelligent and automated health care systems, automatic speech recognition for the speech impaired, and speaker identification and verification.
  • Parallel and reconfigurable computing, including task scheduling for parallel systems, reconfigurable computing with FPGAs, reliability in scheduling, and design of novel scheduling algorithms. 
  • Software security, including examining novel approaches for the mitigation of attacks in Cyber-Physical Systems (CPS), such as medical devices and smart grids.
  • Digital educational engineering to improve student learning by applying the software engineering process with the latest technologies, including machine learning, virtual reality, augmented reality, and more. 
  • Software engineering for robotics, including improving software tools and processes for robotic drivers and speech systems.

Potential Careers

The importance of software engineering to the modern economy means that there is a bright future ahead for graduates. This is evident in the increasing reliance on intuitive and dependable cloud-based software. This high-demand specialisation boasts benefits such as a future-proof skill set and, consequently, ample salaries. Software engineers are employed in a wide range of sectors, including ICT, commerce, industry, government, health, education and entertainment. Software engineers also find opportunities in dedicated consultancy firms, so their work often extends beyond programming: they are involved in designing solutions, financial discussions and even directing teams. Management positions are not out of reach for software engineers, due to their understanding of project management principles.

Schedule

Plan Schedules