Intelligence-Centric 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 with machine-learnt models that encapsulate developer insights. They also include technologies specifically developed or adapted for the analysis of intelligent software applications. These solutions are expected to enable the robust, scalable development and deployment of the next generation of intelligent software systems.
- 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.
- 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.
- 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.
- Shauvik Roy Choudhary, Mukul R. Prasad, and Alessandro Orso. 2013. X-PERT: Accurate Identification of Cross-browser Issues in Web Applications. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 702-7