Software Engineering
MAIN RESEARCH AREAS
-
Evidence based software engineering
We conduct empirical studies of software engineering to provide credible evidence for decision making in software development, maintenance and deployment. We offer expertise in code analysis, participatory action research, multi-vocal literature reviews and case studies.
- Fog and Cloud Computing
We study automated software engineering for fog computing, continuous integration of service-oriented systems, and web API/mashup development and maintenance.
- Human-centric issues software engineering
From digital health devices, social network platforms, to smart living infrastructures, software systems are primarily designed and built to address humans needs and ambitions. A wide variety of human-centric issues impact the design, development, and use of software systems, including the demographics (age, gender, education, incomes), abilities (physical and mental), and values (privacy, security, environmental care, equity, and autonomy) of software practitioners, end-users, and wider stakeholders. Our work centres on the investigation of how human-centric issues affect SE practice and we develop methods, tools, and techniques to explicitly consider and address these issues through the SE decision making process, from systems requirements analysis, to design, implementation, testing, validation, deployment, maintenance, retirement, and disposal.
- Legacy systems
We study legacy systems to better understand their complexity, and so better manage the maintenance and evolution of such legacy systems, and also reduce or minimise technical debt. We study such systems through analysis of multiple information sources. The ultimate aim is to de-risk such systems through supported transformation to modern architectures and techniques.
- Requirements Management and Software Evolution
Requirements changes during software development create risk to cost, schedule and quality but also represent an opportunity to add value. How can we predict and manage requirements change? We have looked at predicting requirements change from project and repository data and making use of expert judgement.
-
Search Based Software Engineering (SBSE)
How can we use machine-based search techniques to solve different optimisation problems from various software engineering areas? Faced with a huge search spaces and the difficulty of using a human-based search, often we can find the solution(s) in metaheuristic searches and evolutionary algorithms. We have used genetic algorithms, simulated annealing, taboo search and other techniques to solve problems in software release planning and in automated software refactoring.
- Software Engineering for Artificial Intelligence
We develop, evaluate and deploy technologies and practices for safe, fair, and trustworthy AI.
- Software testing and quality assurance
For more than a decade, we have performed industry-relevant, applied research on software testing and quality assurance. Most our projects are in joint collaboration with industry and with various academic/industrial collaborators in the UK, Europe and elsewhere in the world. All our projects result in technology transfer, scientific/industrial papers, and completion of several MSc / PhD theses.
- Team-based software innovation
We study the human and technical aspects of team-based software innovation, including remote work. The includes innovation practices (e.g., design thinking and agile), ‘thinking styles’, the tools for online collaboration, and team dynamics.
OUR IMPACT
StopCOVID NI app: Academics in the research theme reviewed the software processes and source code for the StopCOVID NI module and also supervised student projects to study the mobile application.
Values in Computing: Our work helps to identify the tensions within and between software development teams, stakeholders and end-users. By doing so, our research may help to anticipate technical decisions that could lead to breaches of social norms and interfere with the very public good that it wishes to support.
Linden foods - Blockchain for Food Traceability - developing and implementing blockchain technology to provide traceability on meat products from customer back to producer
EventMap - Applying multi objective optimisation to resource scheduling - developing a system to optimally manage and organise large training systems.
BT - (July 2021 - June 2023)
Fusion Project with Irish Diagnostic Lab Services - Data Warehousing for Scientific Data - developing a data warehouse system to manage animal lab test results (April 2016-Oct 2017)
STAFF
SOFTWARE ENGINEERING | Role | Interest Area | |
A Rainer | Theme Lead | Team-based software innovation | a.rainer@qub.ac.uk |
D Greer | Senior Lecturer | Empirical Software Engineering | |
V Garousi | Senior Lecturer | Software Engineering | |
M Ferrario | Senior Lecturer | Human-centred computing | |
D Athanasopoulos | Lecturer | Software Design | |
Y Sun | Lecturer | Software Engineering for AI |