Software Engineering Research Laboratory

The Software Engineering Research Lab (SERL) at AUT University undertakes world-class research directed at understanding and improving the practice of software professionals in their creation and preservation of software systems. We are interested in all models of software provision – bespoke development, package and component customisation, free/libre open source software (FLOSS) development, and delivery of software as a service (SaaS). The research we carry out may relate to just one or all of these models.

Key concepts that pervade our research are context, uncertainty and evolution. We are deeply interested in the impact of context on software systems development and use; how the needs, actions and experiences of individuals, groups and organisations shape the form and utility of systems. We also believe that contemporary software engineering is characterised by significant and growing uncertainty. As a result, much of the research we do in the group addresses uncertainty in one way or another – recognising it, representing it, resisting it, reducing it. Finally, we consider software systems as continually evolving rather than static and fixed, emerging from initial needs and shifting dynamically as those needs change over time.

In relation to software systems research these concepts can be seen in research questions such as:

  • What features can we deliver in the next release?
  • Should we now adopt a test-driven development process?
  • How long will it take to develop these new features given barriers to customer involvement?
  • How will the adoption of a global development approach affect our release schedule?
  • As a software SME, how can we cost-effectively decrease the defect rate in our code?
  • What is the likely trade-off in this development project between software adaptability and performance?

At present we are working on these and other questions under the following research themes:

Requirements engineering
Process modelling, assessment and improvement
Empirical software engineering
Global software development
Search-based software engineering
Programmers, programming and professionalism
Software forensics