Write a Blog >>
ICSE 2023
Sun 14 - Sat 20 May 2023 Melbourne, Australia

Reading computer program code and documentation written by others is, we are told, one of the best ways to learn the art of writing intelligible and maintainable code and documentation. The software resurrection exercise, introduced in this paper, requires a motivated learner to compile and test a historical release (e.g. 20 years old) version of a well maintained and widely adopted open source software on a modern hardware and software platform. This exercise concludes by writing a critique based on issues encountered while compiling and testing the historical software release on a modern platform that could not have been foreseen at the time of release. The learner is also required to fix the issues as a part of the software resurrection exercise. The exercise of resurrecting a historical software allows the learner to experience the pain and joy of software maintenance. Such an experience is essential for understanding the factors that contribute to intelligibility and maintainability of program code and documentation. The concept of software resurrection exercise is illustrated using a version of the SQLite database engine that was released 20 years ago. This illustration shows that software engineering principles (or programming pearls) emerge when a historical software release is adapted to run successfully on a modern platform. The software resurrection exercise also has the potential to lay foundations for a lifelong willingness to explore and learn from existing software tools.

Paper (pdf, 5 pages) (dutta2023software-icse2023.pdf)98KiB
Slides (pdf) from the talk at ICSE-2023 (software-resurrection-adutta-icse2023-slides.pdf)1.22MiB

Wed 17 May

Displayed time zone: Hobart change

15:45 - 17:15
Introductory and undergraduate educationSEET - Software Engineering Education and Training at Meeting Room 106
Chair(s): Rafael Prikladnicki School of Technology at PUCRS University
15:45
15m
Talk
Are you cloud-certified? An Experience Report to Prepare Computing Undergraduates for Cloud Certification with Experiential Learning
SEET - Software Engineering Education and Training
Eng Lieh Ouh Singapore Management University, Benjamin Kok Siew Gan Singapore Management University
16:00
15m
Talk
Understanding Students' Knowledge of Programming Patterns Through Code Editing and Revising Tasks
SEET - Software Engineering Education and Training
Sara Nurollahian University of Utah, Anna Rafferty Carleton College, Eliane Wiese University of Utah
16:15
15m
Talk
Speak, Memory! Analyzing Historical Accidents to Sensitize Software Testing Novices
SEET - Software Engineering Education and Training
Natalia Silvis-Cividjian Vrije Universiteit (VU) Amsterdam, Fritz Hager NA
16:30
15m
Talk
Software startup within a university - producing industry-ready graduates
SEET - Software Engineering Education and Training
Saara Tenhunen University of Helsinki, Tomi Männistö University of Helsinki, Petri Ihantola University of Helsinki, Jami Kousa University of Helsinki, Matti Luukkainen University of Helsinki
16:45
7m
Talk
Teaching MLOps in Higher Education through Project-Based Learning
SEET - Software Engineering Education and Training
Filippo Lanubile University of Bari, Silverio Martínez-Fernández UPC-BarcelonaTech, Luigi Quaranta University of Bari, Italy
16:52
7m
Talk
Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software
SEET - Software Engineering Education and Training
Abhishek Dutta University of Oxford
Pre-print Media Attached File Attached
17:00
7m
Talk
Teaching Computer Science Students to Communicate Scientific Findings More Effectively
SEET - Software Engineering Education and Training
Marvin Wyrich Saarland University, Stefan Wagner University of Stuttgart
Pre-print