Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software
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 |