Software Engineering

People sat working at computers in a lab

About us

Lancaster University's Software Engineering research focuses on the design, coding, testing and evolution of software-based systems. Our Software Engineering research uses both formal and empirical approaches, often in close collaboration with industry.

Key areas of our Software Engineering research include:

  • Software Design: Exploring new approaches to designing and structuring large, complex software systems. We work with a variety of design approaches, including model-based approaches, to improve the design of systems. We have particular expertise in the design of IOT systems.
  • Software Development Approaches: Investigating and improving the methods and tools used to develop software. We are particularly interested in approaches to ensure effective code is produced and have extensive experience in developing tool to analyse code to identify potentially problematic code.
  • Software Testing: Developing new techniques for testing software to ensure reliability. We have extensive expertise in testing using state machines.
  • Automated Software Engineering: Researching ways to automate tasks in software development, for example, we have considerable capability in the automatic repair of bugs and vulnerabilities.
  • Human Aspects of Software Engineering: Examining the role of humans in the software development process, including user experience and collaboration. Understanding the human aspects of developers in relation to effective tooling and high-quality software outputs is a crucial aspect of our research focus.
  • Emerging Technologies: Investigating the application of new technologies like AI and machine learning to software engineering. We have applied many aspects of AI, ML and NLP to the understanding, analysis and creation of software.

Members

Loading People