Introduction

We will look at the latest research trends and tools necessary for software evolution with an overall understanding of software engineering.

  • Lecturer: Seonah Lee
  • Class Time: Wednesday 19:00-21:50
  • Class Rome: No. 203 (or 204)

References

Major Tasks

  1. Development Project: Individually, you have to choose a development project. It could be your own research project, any open source project, or the project in your company. If you can find no project, you can choose the Ruby-on-Rails project that is incorporated with the CS169 class. In this class, you should consider several aspects of software engineering and mull over the application of software engineering principles and practices to your project. In the final presentation, you should show the application results and your reflections on the application of software engineering.
  2. Paper Presentation: You have to select one research paper from our reading list and present it. You also have to discuss another paper.

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]

Evaluation

Project Proposal (~3 Slides) 5%
Mid-term Presentation (5~10 Slides) 20%
Final Presentation (15~20 Slides) 30%
Final Report (2 Page IEEE Format) 5%
Preparation Weekly Report (1 Page) 20%
Presentation Paper Presentation 10%
Discussion Lead 5%
Attendance Attendance 5%

*. You can replace your attendance by summarizing each video lectures and submit your summary to the e-mail: This email address is being protected from spambots. You need JavaScript enabled to view it.


Course Schedule

Week Theory, Discussion and Practice Reporting, Presentation and Discussion Discussion Lead
1: 9.5 Introduction to Software Engineering:1.1-1.3    
2: 9.12 Introduction to Software Engineering:1.7-1.13 Paper Selection  
3: 9.19 Agile Methodology: Working with the Customer7.1-7.5, 7.11-7.12

 

 
4: 9.26 Thanksgiving day (No class)    
5: 10.3 National foundation day (No class)    
6: 10.10 BDD with cucumber and Capybara7.6-7.9

Project Proposal

Paper Presentation [3] 조희태

장규리
7: 10.17 TDD with RSpec8.2-8.4 Paper Presentation [2] 이주헌 김일환 
8: 10.24 TDD with RSpec8.5-8.9 Paper Presentation [9] 장규리 이건표 
9: 10.31 Code Repo Hygiene for Agile Teams10.3-10.6 Mid-term Presentation from 6:30 pm  
10: 11.7 Exploring a Legacy Codebase9.1-9.3 No Class  
11: 11.14 Refactoring & SOFA9.5-9.6, 9.8-9.10 Paper Presentation [14] 파라스  김일환
12: 11.21 Design Patterns for SaaS11.1, 11.3-11.7 Paper Presentation [11] 미르잔  파라스
13: 11.28 Practical DevOps: Deployment, Upgrades, Performance, Security12.1-12.3 Paper Presentation [1] 이건표  조희태 
14: 12.5   Final Presentation  

*. Classes and schedules can be adjusted.


Reading List (ICSE 2018 Paper)

  1. Russo, Daniel, Gerolamo Taccogna, Paolo Ciancarini, Angelo Messina, and Giancarlo Succi. Contracting agile developments for mission critical systems in the public sector. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Society, pp. 47-56. ACM, 2018.
  2. Gralha, Catarina, Daniela Damian, Anthony I. Tony Wasserman, Miguel Goulão, and João Araújo. "The evolution of requirements practices in software startups." In Proceedings of the 40th International Conference on Software Engineering, pp. 823-833. ACM, 2018.
  3. Rath, Michael, Jacob Rendall, Jin LC Guo, Jane Cleland-Huang, and Patrick Mäder. "Traceability in the wild: automatically augmenting incomplete trace links." In Proceedings of the 40th International Conference on Software Engineering, pp. 834-845. ACM, 2018.
  4. Inayat Rehman, Mehdi Mirakhorli, Meiyappan Nagappan, Azat Aralbay Uulu, and Matthew Thornton. 2018. Roles and impacts of hands-on software architects in five industrial case studies. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA, 117-127.
  5. Meng, Na, Stefan Nagy, Danfeng Daphne Yao, Wenjie Zhuang, and Gustavo Arango Argoty. Secure coding practices in java: Challenges and vulnerabilities. In Proceedings of the 40th International Conference on Software Engineering, pp. 372-383. ACM, 2018.
  6. Sawant, Anand Ashok, Mauricio Aniche, Arie van Deursen, and Alberto Bacchelli. "Understanding Developers’ Needs on Deprecation as a Language Feature." In Proceedings of the 40th ACM/IEEE International Conference on Software Engineering (ICSE 2018). forthcoming. 2018.
  7. Zhilei Ren, He Jiang, Jifeng Xuan, and Zijiang Yang. 2018. Automated localization for unreproducible builds. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA, 71-81.
  8. Foyzul Hassan and Xiaoyin Wang. 2018. HireBuild: an automatic approach to history-driven repair of build scripts. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA, 1078-1089.
  9. Saha, Ripon K., Hiroaki Yoshida, Mukul R. Prasad, Susumu Tokumoto, Kuniharu Takayama, and Isao Nanba. "Elixir: an automated repair tool for Java programs." In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, pp. 77-80. ACM, 2018.**[included in comprehensive exam.]
  10. Pengcheng Wang, Jeffrey Svajlenko, Yanzhao Wu, Yun Xu, and Chanchal K. Roy. 2018. CCAligner: a token based large-gap clone detector. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA, 1066-1077.
  11. Chase Greco, Tyler Haden, Kostadin Damevski, StackInTheFlow: behavior-driven recommendation system for stack overflow posts. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, (ICSE '18). ACM, New York, NY, USA, 5-8 **[included in comprehensive exam.]
  12. Phan, Hung, Hoan Anh Nguyen, Ngoc M. Tran, Linh H. Truong, Anh Tuan Nguyen, and Tien N. Nguyen.**[included in comprehensive exam.]"Statistical learning of API fully qualified names in code snippets of online forums." In Proceedings of the 40th International Conference on Software Engineering, pp. 632-642. ACM, 2018.
  13. Christopher Mendez, Hema Susmita Padala, Zoe Steine-Hanson, Claudia Hilderbrand, Amber Horvath, Charles Hill, Logan Simpson, Nupoor Patil, Anita Sarma, and Margaret Burnett. 2018. Open source barriers to entry, revisited: a sociotechnical perspective. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA
  14. Jane Cleland-Huang, Michael Vierhauser, and Sean Bayley. 2018. Dronology: an incubator for cyber-physical systems research. In Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER '18). ACM, New York, NY, USA, 109-112. DOI: https://doi.org/10.1145/3183399.3183408***[included in comprehensive exam.]