Intelligence-Driven Software Engineering
Software applications permeate all aspects of human activity today, continuously growing in size and complexity. This exacerbates the challenge of developing and maintaining modern software systems, resulting in higher costs and lower software quality.
Two other related trends are playing into this challenge. The first is the explosive growth of artificial intelligence, specifically machine learning models, typically integrated with conventional software to realize “intelligent applications”. Such applications are arguably even more complex to develop and difficult to maintain than traditional software systems. The second trend is the emergence of Big Code – a sophisticated ecosystem of repositories that catalog virtually every aspect and every kind of artifact of a software's lifecycle. They include version control systems for source code, bug tracking systems, as well as online developer and user discussion forums. Big Code encapsulates vast amounts of human software development expertise, experience, and opinions, that can potentially be harnessed for automated software development.
We are designing and developing innovative automation tools and solutions for a wide range of software engineering tasks. These solutions leverage the intelligence embedded in Big Code by combining efficient, scalable program analysis and program synthesis with machine-learnt models that encapsulate developer insights. These solutions are expected to enable the robust, scalable development and deployment of the next generation of software systems.
- 1. Sonal Mahajan, Negarsadat Abolhassani, and Mukul R. Prasad. Recommending Stack Overflow Posts for Fixing Runtime Exceptions using Failure Scenario Matching. To appear at the 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2020), November 8-13, 2020, Sacramento, CA, USA.
- 2. Lei Liu, Mehdi Bahrami, Junhee Park, Wei-Peng Chen. Web API Search: Discover Web API and its Endpoint with Natural Language Queries. To appear at 2020 International Conference on Web Services (ICWS 2020) August 12 - 14, 2020, Honolulu, Hawaii, USA.
- 3. Mehdi Bahrami, Wei-Peng Chen. Automated Web Service Specification Generation through a Transformation-based Learning. To appear at 2020 International Conference on Web Services,” to appear at International Conference on Web Services (ICWS 2020) August 12 - 14, 2020, Honolulu, Hawaii, USA.
- 4. Mehdi Bahrami, Wei-Peng Chen. WATAPI: Composing Web API Specification from API Documentations through an Intelligent and Interactive Annotation Tool. The 3rd IEEE Workshop on Human-in-the-loop Methods and Human Machine Collaboration in BigData (IEEE HMData 2019).
- 5. Rohan Bavishi, Hiroaki Yoshida, and Mukul R. Prasad. 2019. Phoenix: Automated Data-driven Synthesis of Repairs for Static Analysis Violations. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2019). ACM, New York, NY, USA, 613-624.
- 6. Mehdi Bahrami, Junhee Park, Lei Liu, Wei-Peng Chen, API Learning: Applying Machine Learning to Manage the Rise of API Economy, The Web Conference 2018 (WWW’18) (demo track).
- 7. Qinghan Xue, Lei Liu, Wei-Peng Chen, Mooi-Choo Chuah, Automatic Generation and Recommendation for API Mashups, 16th IEEE International Conference On Machine Learning And Applications (IEEE ICMLA 2017)
- 8. Ripon K. Saha, Yingjun Lyu, Hiroaki Yoshida, and Mukul R. Prasad. 2017. Elixir: Effective Object-Oriented Program Repair. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2017). IEEE Press, Piscataway, NJ, USA, 648-659.
- 9. Hiroaki Yoshida, Susumu Tokumoto, Mukul R. Prasad, Indradeep Ghosh, and Tadahiro Uehara. 2016. FSX: Fine-grained Incremental Unit Test Generation for C/C++ Programs. In Proceedings of the 25th International Symposium on Software Testing and Analysis (ISSTA 2016). ACM, New York, NY, USA, 106-117.