Software is eating the world: almost every aspect of modern life depends on the reliable operation of high-quality software such as Google, Uber, Amazon, Facebook, etc. Consequently, the number of software projects grows rapidly, and the scale of available code becomes massive, so-called “big code”, with billions of lines of code. As a common practice, developers often search for existing high-quality code examples to learn from the existing best solutions in order to shorten the learning curve and promote the reuse of the effective code. However, even with the help of potentially reusable code in “big code”, developing high quality and reliable software is costly: software engineers need to tackle the inherent growing complexity and escalating code size of software while avoiding bugs, and still delivering highly functional software products on time. Even within large corporations like Google and Microsoft, the amount of code continues to grow at an exponential rate. New intelligent methods are constantly sought to reduce the complexity of software and help engineers understand the code and construct high quality software in a more efficient way. Unfortunately, existing work on intelligent software development is still in its infancy and it is rarely being adopted in the actual software development process.
To improve developers’ productivity in the software development, RISE lab aims to provide intelligent and reliable support for software development, e.g., searching reusable high-quality code, automatic code completion, code quality review, and intelligent API documentation. We are also interested in keeping human (developers) in the loop. Some ongoing work include emoji and sentiment analysis, software ecosystem analysis, and new contributor on boarding analysis.