Research
Vision
My vision in research is to "make Software Engineering more like traditional Engineering disciplines" - by leveraging human-centric visual modelling approaches to model, reason about and generate complex software systems. To this end, my research has focused on software engineering, particularly software engineering tools and associated methods. I have worked most recently in the areas of domain-specific visual languages (DSVLs), model-driven engineering methods and tools, software security engineering and human aspects of development and testing. Previously I worked in the areas of aspect-oriented software development, software architecture, process-centred tools, user interfaces - especially model-driven, multi-device, sketch-based and web-based diagramming UIs, and visual languages. I have also written some papers about software engineering, computer science and Information Systems engineering education.
In late 2019 I was awarded an Australian Research Council Laureate Fellowship for 2020-2024 on Human-Centric, Model-driven Software Engineering, which will be my major research focus for the next several years.
You can find our HumaniSE lab website here.
Community Leadership and Service
I am currently Senior Associate Editor for ACM Computing Surveys, an Associate Editor for ACM Transactions on Software Engineering and Methodology, an Associate Editor for IEEE Software, an Associate Editor for the Automated Software Engineering journal, and on the Editorial Board for the Journal of Computer Languages. From 2014-2021 I was one of two Associate Editor-in-Chief for IEEE Transactions on Software Engineering, and previously was an Associate Editor for IEEE Transactions on Software Engineering from 2010-2013.
I am on the Steering Committee for the IEEE/ACM International Conference on Software Engineering and on the Steering Committee for the IEEE/ACM International Conference on Automated Software Engineering. I was twice previously on the Steering Committee for the IEEE/ACM International Conference on Automated Software Engineering (2009-2015, and 2002-2006), and I am also an ASE Fellow. I was twice on the Steering Committee for the IEEE Conference on Visual Languages and Human-centric Computing (2014-2018 and 2008-2012). I was Steering Committee Chair for the Australian Conference on Software Engineering conference 2009-10.
I was the General Chair for ICSE2023 in Melbourne, Australia. I was the General Chair for ASE2020 held online due to the COVID-19 pandemic. I was also the General Chair for ASE2021. I was General Chair for ASE2009 and PC Co-chair for ASE2003. I am PC-Co Chair for VLHCC 2024. I was General Chair and on the Programme Committee for IEEE VL/HCC 2014. I was the Demonstrations Track co-Chair for ICSE 2014. I was PC Chair for VL/HCC2006.
I was the President of COmputing Research and Education (CORE) Australasia, the Australasian Computer Science academics professional association, in 2013 and 2014. I was on the CORE Executive committee 2013-2019.
I was on the ARC College of Experts (2019-2021). I was the Chair of the ARC 2018 Engagement and Impact Assessment (EI 2018) Science and Technology panel. I served on the ARC College of Experts 2015-2017 and the New Zealand MBIE Smart Ideas and High Value Manufacturing and Services Panels 2014-2-19. I was on the Mathematics, Information and Computing Sciences (MIC) ARC ERA 2012 Research Evaluation Committee.
I am on the PC for ICSE2025. I was on the PC form ICSE2022, ICSE 2019, ICSE 2017, ICSE 2016, ICSE 2015, ICSE 2013, ICSE2009, ICSE2007 and ICSE 2005. I was on the PC for ASE 2018. I was on the PC for VLHCC 2021, VLHCC 2020, VLHCC 2018. I was on the PC for MODELS 2014 and I was on the PC for INTERACT 2015. I have been on the Automated Software Engineering PC or ERP every year since 1998. I was on the PC for IEEE VL/HCC 2017, 2016, 2015, 2012, 2011, 2010, 2009 and 2008 and several times earlier. I was on the RE'21 PC. I was on the PC for WICSA 2012. I have served on the MODELS PC many times; the INTERACT PC many times, the WICSA PC several times, and I have served on the AVI and ECOWS programme committees several times. I was on the ASWEC 2013 Programme Committee, was PC co-Chair for ASWEC 2008 and ASWEC 2007 and served on the ASWEC PC many times. I have refereed for a wide range of software engineering journals including TSE, TOSEM, CSUR, IST, S-P&E, JSS, JVLC, SoSym, SQJ, and IET Software. We ran the 8th Melbourne Computing Education Conventicle, 18th Nov 2011 @ Swinburne. I was on the PC of the 2012 CSEE&T conference.
I gave keynote addresses at:
I do consulting/applied research work with a variety of companies. These have included, among many others, Unisono, Sanitarium, Mailguard, Thales Australia, CA Labs, XSol Ltd, Orion Health Ltd, Peace Software Ltd, and Whitecloud Systems Ltd.
Current Projects
Major current projects include human-centric, model-driven software engineering, large language models for software engineering, domain-specific visual languages especially for big data analytics applications, smart home software systems, model-driven cloud security engineering, performance engineering tools, and data mapping tools. A number of opportunities exist to work with me on these or related projects. Please have a look and contact me if interested...
A summary of my grants relating to many of these can be found here.
A brief outline of each below:
Human-centric Software Engineering
I have long had an interest in a number of "human-centric" aspects of software engineering. These include, but are not limited to, personality impact on performance e.g. pair programming and testing, emotional reactions to software, age, gender, culture and team climate on software development and usage, agile approaches to software engineering, usability testing and reporting, more human-centric requirements capture and modelling, and many others.
I won an ARC Laureate Professorship late 2019 to research this area much more deeply and broadly.
Domain-specific Visual Language Tools
We have been researching the use of visual languages for complex model development, exploration and evolution for many years. More recently this has included developing novel support tools for specifying such tools, generating them, and deploying them in a range of domains. More information can be found here
Model-driven Engineering tools
We have been developing tools that use DSVLs to generate a range of systems via model-driven development techniques to enhance quality and productivity. Much of the work has been done with industrial partners in the health, utility, business process and web engineering domains. More information can be found here
Large Language Models for Software Engineering
We have been working on various applications of LLMs for SE for some time, well before the advent of GPT3, ChatGPT etc. These include for requirements engineering, inclusive sofware development, Q&A sites, and others. More information can be found here.
Software Engineering Tools
Much of my research has been focused on developing novel software engineering tools. This began with design tools using visual languages, then included integrated software development environments and process-centred environments. More recently has included requirements engineering, knowledge management, software architecture, user interface design, and testing tools. More information can be found here
Smart Software for Ageing, Social Services and Health
We are looking at ways to improve delivery of health and social services using new software technologies. In particular, we are interested in the use of in-home and in-care sensors and human-centric interaction devices, AI, hand-held, mobile, iPad, software-as-service and Web 2.0 social media concepts in the Social Services and Health primary care domains. More information can be found here
Performance Engineering techniques and tools
I have been interested in performance engineering of complex software systems for many years. Current work focuses on very large scale enterprise systems and cloud computing systems. Previous work has included enterprise systems, data aggregation systems and E-commerce systems. More information can be found here
Software security engineering, especially for cloud computing
I have become very interested in software security engineering techniques and tools. This includes model-driven approaches to generating security solutions from high-level definitions, domain-specific languages to augment requirements and design notations to capture security properties and their cross-cutting impacts, and platform-level security including autonomic virtual machine monitoring and protection. More info here .
Data mapping and transformation tools
I have been interested in data mapping, model transformation and code generation tools for a long time. I am particularly interested in high-level, visual ways to express model to model and model to code transformations and generate transformation scripts, engines, code... More details here .
Requirements Engineering tools
I have been interested in Requirements Engineering tools for many years. This began with support for requirements modelling in SPE, and then supporting Aspect-oriented Requirements Engineering with JComposer. More recently it has included supported early-phase requirements engineering with sketching-based requirements capture tools, such as MaramaSketch and SUMLOW, and capturing and improving requirements with MaramaAI, using Esssential Use Cases and Essential User Interface approaches. More information can be found here
Human-centric modelling tools
For a while I have been interested in sketching-based design tools, especially for software design applications. I have had a few projects looking at different aspects of this problem. I am also interested in other human-centric approaches such as guesture-based input, haptic feedback, large screen displays, tabletop displays, augmented relality, 3D user interfaces and mobile device user interfaces. See ourSketch Recognition , MaramaSketch , SUMLOW and digital ink papers.
Computing Education
Ever since I began teaching I have been interested in Computing Education. Initially this was in Information Systems, where I started teaching, then progressed to Computer Science Education and then Software Engineering Education, and Engineering Education in general. I have published a number of papers on education aspects of computing. More information can be found here
Model-driven Engineering for GPUs
We investigated the development of domain-specific visual languages for GPUs. In particular we looked at how to model scientific software applications in mollecular simulation, astrophysics and bioinformatics at high levels using visual languages, and generating GPU C code from these models using model-driven engineering techniques. We developed the Horus-HPC tool to support this. Details here.
Software Architecture
I have been interested in a variety of aspects of software architecture for many years. This includes tools to support architecture modelling and analysis, performance engineering of architectures, visualisation of complex architectures, domain-specific visual languages and software architecture modelling, dynamic and run-time adaptable architectures, service-oriented architectures, Quality of Service issues in software architectures, ... and many more!! More info can be found here
Process-centred environments
I have been interested in process-centred enviornments, software process modelling and enactment, workflow tools, and business process modelling and enactment tools for many years. Initially this was in the context of integrated development environments; more latterly in business process modelling approaches and tools. Examples include Serendipity-II and IMAL .
Advanced Knowledge Management Platforms
We are researching new ways to manage complex knowledge about software - and other information - artefacts. This includes Visual Wikis to make such information more accessible and navigatable; complex analysis of diverse informaiton sources to enrich it; and web-based authoring tools to enable it to be better created, modified and shared. Preliminary examples are the Thinkbase and Thinkpedia tools. We are exploring use of and enhancement of these toolsets with several industrial partners. More information can be found at http://thinkbase.cs.auckland.ac.nz andhttp://thinkpedia.cs.auckland.ac.nz/
Adaptive user interfaces for web and mobile devices
Adaptive user interfaces are ones that run on multiple devices and - ideally - adapt to the target device. I have worked on a number of novel approaches to supporting desktop and web-based adaptive UIs, mobile UIs and 3D adpative UIs. In addition, we have developed several platforms for rich interaction interfaces for domain-specific visual languages tools in web browsers and mobile phones. More info here
Aspect-oriented component engineering
I originally developed an approach to represent and use cross-cutting concerns at requirements time to better support component engineering - the general approach now commonly known as "early aspects". I then developed this to use aspect-oriented techniques for architecture, design, and testing. We then applied this idea to engineering services for SOAs. I, students and colleagues developed various support tools for these approaches. See here for an overview of the main concepts.
NetPay micro-payment systems
Xiaoling (Sharlene) Dai continued a PhD with me in the early 2000s working on NetPay, a novel, off-line micro-payment system. We developed several prototypes, architectures to realise the system, conducted several evaluations and then applied the approach to peer-to-peer information exchange and other domains. More information can be found here .
Software Process and Product Improvement
We have been researching new tools and techniques to enhance product quality and development processes. Our aim is to develop and deploy practical techniques and tools with software companies to make a real difference to their product quality and development productivity. Key focus areas include software project management and process improvement; analysis and visualisation of software metrics; model-driven engineering and domain-specific visual language tools; and model-based testing. More information can be found at https://wiki.auckland.ac.nz/display/csisppi
Older Projects
Some of my older projects have included:
Pounamu - a meta-CASE tool
Pounamu was a several-year project looking at building a meta-CASE tool for domain-specific visual language environments. We developed the tool as a stand alone system (in retrospect - a mistake - we should have developed it as a set of ArgoUML extensions). We developed a range of extensions including thin-client editing, mobile editing, collaborative editing, version control, and a wide range of exemplar DSVL tools using Pounamu. Pounamu was superseeded by Marama. Part of the work was supported by a large PGSF SER Domain-specific Software Tools grant.
MViews and JViews - component-based software architecture for multiple view, multiple user systems
MViews was developed as part of my PhD research, a framework for implementing multi-view textual and visual integrated development environments. As part of this work, we wanted to develop a more structured and flexible multi-view environment platform, apply it to a range of software engineering tool exemplar problems, and achieve a novel view consistency mechanism that could handle a wide range of change propagations between different view notation types and abstraction levels. MViews was implemented with an object-oriented Prolog and included a persistent object database and collaborative editing support. We carried on this theme of research with MViews for several further years, before porting it to Java - to become JViews - with a number of substantial reworkings of the framework.
SPE integrated design & development environment (IDE)
SPE - Snart Programming Environment - was an IDE built on top of MViews for Snart, an Object-oriented Prolog I developed as part of my PhD work. Snart was designed to be a fully fledged programming language with OO features on top of Prolog. Snart was used to implement the Mviews framework and MViews to implement SPE. MViews was at one stage fully modelled using Snart and new MViews-based tools could be developed in SPE. We had inteneded to replace this with a Jcomposer/Pounamu-style customised IDE with its own DSVLs for MViews but never quite got there. SPE still illustrates what I originally envisaged in my PhD work as a fully integrated, multiple textual and graphical view IDE with a wide range of view types, abstraction levels and full consistency management between all of the views, semi-automated or fully-automated depending on the complexity and ambiguity of view updates.
JComposer metaCASE tool for designing/generating JViews-based applications
JComposer was a meta-CASE tool developed using JViews and for generating JViews-based environments. Its tool user interfaces were realised using BuildByWire, developed by Rick Mugridge and using constraint propagation to compose tool UI components for graphical and textual views. We built a number of exemplar software engineering and other domain-specific visual language tools with JComposer and used it in a number of extensions to JViews, before it was superseeded by Pounamu.
Serendipity-II and Serendipity - decentralised, process modelling and enactment systems with visual software agent specification and deployment tools
SoftArch - a software architecture modelling, analysis and dynamic visualisation system
Argo/MTE - a software architecture performance analysis environment
Thin-client and zoomable diagramming with Pounamu tools
Component- and web service-based integration and collaborative support for Pounamu tools
JViews component-based groupware
Design notation mapping tools and techniques
Integrated construction design environments
Various pubications relating to these can be found off my publications page...