Automated Updates of Software Dependencies

Most modern software systems depend on existing software components, such as packages, libraries, or modules. When critical issues (e.g. security vulnerabilities) are discovered and fixed in a software component, the dependent software systems should include these fixes by updating to the latest version. However, changes in a software component can cause critical failures in the dependent software if the new version includes breaking changes. Each software system that depends on the component will need to update their code to accommodate these breaking changes, making it difficult to automate the update process. This project is investigating novel, advanced methods to automate this process. To get involved, see this advertisement for a fully-funded PhD position.

Software Developer Diversity and Inclusion

Despite the recent push to increase diversity, tech jobs remain dominated by men. Women represent less than 25% of the tech workforce at companies like Google and Facebook. The representation is even worse in Open Source Software (OSS), where less than 10% of developers are women. We know that gender diversity on software teams brings many benefits (e.g., improved productivity, innovation, and user experience). It is, therefore, critical to attract and retain women in tech. Yet, women have significantly higher turnover rates (twice as high as men), with many leaving to pursue jobs outside of tech. This project is examining barriers to retention and best practices for inclusive software teams.

Automated Software Requirement Analytics

The modern software landscape is highly competitive. Software companies need to quickly fix reported bugs and release requested new features, or they risk negative reviews and reduced market share. Online user feedback can provide software improvement insights to software developers. However, the sheer volume of feedback makes manual analysis time-consuming and cost- prohibitive. This project investigates automated techniques to extract and present software requirements from online user feedback data across a variety of feedback channels, for example app store reviews, social media, and question and answer forums.

Dysarthric Automatic Speech Recognition

Automatic speech recognition (ASR) can be very helpful for speakers who suffer from dysarthria, a neurological disability that damages the control of motor speech articulators. ASR can act as a medium to not only understand the impaired speech but also to talk on their behalf that enables them to have a better social and digital life. Nevertheless, normal speech recognition systems have not been able to understand dysarthric speech leaving speech impaired individuals not being able to utilize ASR technologies; technologies that can be life changing for them.

For more information please visit here

Autism Artificial Intelligence

Autistic spectrum disorder (ASD) is a neurodevelopment condition normally linked with substantial healthcare costs and time consuming assessments where early detection of ASD traits can help limit the development of the condition but the mean age of diagnosis in NZ is 6-7 years – usually 2-3 years after families/carers had expressed concerns. The optimal window for delivering treatment to children with ASD is at 2-3 years, which necessitates identification before two. In addition to be time consuming, clinical diagnosis has accessibility issues and rely on clinical judgment. Screening tools have been proposed but they are not being used often because of concerns about accuracy.

For more information please visit here

Deep Learning-based Automated Software Test Oracles

Test oracle is a mechanism to determine whether an application is executed correctly. It is a reliable source of how the SUT (Software Under Test) must operate. It is also expected to provide correct results for any inputs that are specified by the software specifications, and a comparator to verify the actual behaviour. Automated test oracles are helpful in providing an adequate automated testing framework.

After test cases are executed and results of the testing are generated, it is necessary to decide whether the results are valid in order to determine the correctness of the software behaviour. To verify the behaviour of the SUT, correct results are compared with the results generated by the software. The results produced by the SUT that need to be verified are called actual outputs, and the correct results that are used to evaluate actual outputs are called expected outputs. Test oracles are used as a reliable source of how the SUT must behave and a tool to verify actual outputs correctness. Usually, the verifier makes a comparison between actual and expected outputs.

Deep Learning (DL) is an umbrella term used for a collection on advanced machine learning algorithms capable of learning complex patterns from big data. In this project we would like to explore how DL based supervised, unsupervised, or reinforcement learning algorithms can be used to facilitate the design and implementation of complex software test oracles to help reduce the difficulties and complexities of testing difficult-to-test software systems.

Automated Intelligibility Assessments of Dysarthric Individuals

Dysarthria is a neurological disability that damages the control of motor speech articulators. An effective treatment plan requires a good understanding of the disability and its severity. The severity of dysarthria is usually identified by a subjective speech intelligibility assessment, which is based on the identification of how well normal speakers can comprehend the subject’s speech. In this project we would like to design a mobile based solution that uses Deep Learning algorithms to conduct an objective assessment of dysarthria by listening to individual’s speech and conducting an automated assessment.