Machine learning has been very popular nowadays, especially in data analytics and decision makings. Many fields have adopted learning based techniques to improve the accuracy of prediction or pattern recognition. This project investigates whether machine learning techniques can be used in the automated creation of software programs. Software construction could be learned based on examples. The question is how such an example based learning could be transferred and understood by machines? The project will conduct research to answer the question and provide a viable solution if such a process is feasible to achieve.
Automation reflects an essential aspect of future software engineering practice, e.g., intelligent and automated software development. The era of computing has revolutionised the mathematical computation and data processing from human-power into machine-power. However, the current software production is still largely depended on manual code development, i.e., humans write programs manually based on the design solutions. Despite the slow development process, the errors introduced by the programmers contribute to a substantial portion (approx. 70%) of defects in the final software product. Ideally, the executable software should be automatically generated from the design model, which has been known in other engineering disciplines, such as mechanical and electrical, as ‘product automation’. It will not only dramatically increase the productivity but also the quality of modern software development.
1) Research in the current state-of-art of machine learning techniques;
2) Investigate the use of modern ML technologies to propose a feasible solution for software creation.
Based on the proposed solution, develop a software system that realises the software generation environment with evaluations.
Lab allocations have not been finalised