Course Information

Lecturer Prof. Seonah Lee
Time and Place Tuesday, 19:00-22:00, 407-604

This is a graduate course where we review and discuss the papers that are relevant to software evolution. Students also experiment with tools and data for verifying the results of the selected papers.

Course Introduction

Software evolution is a process of constantly changing and improving software systems that are initially developed. The cost of software evolution accounts for more than 90% of the total lifecycle cost of a software system. This course introduces the recent techniques that can resolve several problems of software evolution and that can reduce its cost. Among the solutions, we focus on mining software repositories and maintaining open source systems. Especially, to understand the recent research trends, we include ICSE2018 papers. Students also conduct replication experiments to understand the nature of experimental research. Temporarily, we are using the following site for students' submission: https://gnuse.tnaru.com/web/index

Objective

  • Students will be able to present a paper.
  • Students will be able to discuss a paper.
  • Students can understand and replicate others' work.
  • Students can understand the research trends of software evolution. 

Discussion Guidance

Graduate students who just entered the graduate school may not know how to discuss a scientific journal paper. There are a lot of useful advices. Please, refer to the following links:

Evaluation sheet

We will use the following evaluation sheet for each presenter [download]

Reading List and Schedule

March 27th Repair (Presenter: 김태형, Discussion Leader: 백형진)

April 3rd Refactoring (Presenter: 박종열, Discussion Leader: 장규리)

  • Tsantalis, Nikolaos, et al. "Accurate and Efficient Refactoring Detection in Commit History." Software Engineering (ICSE), 2018
  • Bavota, Gabriele, et al. "Methodbook: Recommending move method refactorings via relational topic models." IEEE Transactions on Software Engineering 40.7 (2014): 671-694.
  • Murphy-Hill, Emerson, Chris Parnin, and Andrew P. Black. "How we refactor, and how we know it." IEEE Transactions on Software Engineering 38.1 (2012): 5-18.

April 10th API learning (Presenter: 조희태, Discussion Leader: 정세린)

  • Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, Sunghun Kim. DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning. In Proceedings of the 26th international Joint Congerence on Artificial Intelligence (IJCAI’2017), 2017
  • Deep API Learning. Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, Sunghun Kim. Deep API Learning. In Proceedings of the 24th ACM SIGSOFT International symposium on Foundations of Software Engineering (FSE’16), pages 631-642. ACM, 2016.
  • Neural Machine Translation By Jointly Learning To Align And Translate. Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio. Neural Machine Translation By Jointly Learning To Align And Translate. In Proceedings of the International Conference on Learning Representations (ICLR'15)

April 17th No class

April 24th Cloning (Presenter: 장규리, Discussion Leader: 박종열)

  • Kamiya, Toshihiro, Shinji Kusumoto, and Katsuro Inoue. "CCFinder: a multilinguistic token-based code clone detection system for large scale source code." IEEE Transactions on Software Engineering 28.7 (2002): 654-670.*
  • On detection of gapped code clones using gap locations, Date of Conference: 4-6 Dec. 2002, Date Added to IEEE Xplore: 28 February 2003, Authors : Y. Ueda, T. Kamiya, S. Kusumoto
  • Index-based code clone detection: incremental, distributed, scalable, Date of Conference: 12-18 Sept. 2010, Date Added to IEEE Xplore: 25 October 2010, Authors : Benjamin Hummel, Elmar Juergens, Lars Heinemann
  • Using a clone genealogy extractor for understanding and supporting evolution of code clones, St. Louis, Missouri — May 17 - 17, 2005, Authors: Miryung Kim, David Notkin
  • White, Martin, Michele Tufano, Christopher Vendome, and Denys Poshyvanyk. "Deep learning code fragments for code clone detection." In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, pp. 87-98. ACM, 2016.
  • Cheng, Xiao, Zhiming Peng, Lingxiao Jiang, Hao Zhong, Haibo Yu, and Jianjun Zhao. "Mining revision histories to detect cross-language clones without intermediates." In Automated Software Engineering (ASE), 2016 31st IEEE/ACM International Conference on, pp. 696-701. IEEE, 2016.
  • Pengcheng Wang, Jeffrey Svajlenko, Yanzhao Wu, Yun Xu, Chanchal K. Roy, CCAligner: a token based large-gap clone detector, ICSE 2018 (no paper, yet)*

May 1st RTM (Presenter: 정세린, Discussion Leader: 조희태)

May 8th Bug patterns (Presenter: 백형진, Discussion Leader: 김태형)

  • Lu, Shan, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. "Learning from mistakes: a comprehensive study on real world concurrency bug characteristics." ACM SIGOPS Operating Systems Review 42, no. 2 (2008): 329-339.
  • Park, Sangmin, Richard W. Vuduc, and Mary Jean Harrold. "Falcon: fault localization in concurrent programs." In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, pp. 245-254. ACM, 2010.
  • Krena, Bohuslav, Zdenek Letko, Rachel Tzoref, Shmuel Ur, and Tomáš Vojnar. "Healing data races on-the-fly." In Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging, pp. 54-64. ACM, 2007.