paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software

软件复活:通过将历史软件现代化来发现编程珠玑
ICSE 2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET)2023匹配度 1/10 · 该论文讨论的是软件工程教育中的“软件复活”练习,让学习者修复历史开源软件以理解编程原则,与静态分析、Agentic 程序、LLM 辅助分析、浮点或贝叶斯程序分析均无直接关系。引用 0 inbox
Abhishek Dutta
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出“软件复活”练习:让学习者在现代平台复活20年前的开源软件,通过修复与反思掌握编程珠玑。

阅读他人编写的程序代码与文档被认为是学习编写可读、可理解且可维护代码的最佳途径之一,但缺乏具体可操作的练习。本文提出“软件复活”练习:要求学习者在现代硬件与软件平台上编译并测试一个维护良好且广泛采用的开源软件的历史版本(如20年前发布的版本),并针对当时无法预见的平台问题开发修复。练习最后要求撰写评论,对维护历史软件的体验进行批判性反思。以20年前发布的SQLite数据库引擎版本为例的实践表明,在软件复活的反思性学习循环中,软件工程原理(即编程珠玑)会自然涌现。该概念有望培养终身探索并从现有代码与文档中学习的意愿。

问题
如何让学习者在实践中有效学习可读、可维护的代码与文档编写,而不仅仅是阅读他人代码。
方法
提出“软件复活”练习,让学习者在现代平台编译、测试历史开源软件版本并开发修复,最后撰写反思评论。
评估
以20年前发布的SQLite数据库引擎版本为例进行案例展示,表明软件工程原理在反思学习循环中涌现。
原文摘要(Abstract)

Reading computer program code and documentation written by others is, we are told, one of the best ways to learn the art of writing readable, 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. The learner develops fixes for the issues encountered during compilation and testing of the software on a platform that could not have been foreseen at the time of its release. The exercise concludes by writing a critique which provides an opportunity to critically reflect on the experience of maintaining the historical software. An illustrative example of the software resurrection exercise pursued on a version of the SQLite database engine released 20 years ago shows that software engineering principles (or, programming pearls) emerge during the reflective learning cycle of the software resurrection exercise. The concept of software resurrection has the potential to lay foundations for a lifelong willingness to explore and learn from existing code and documentation.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{Dutta23,
  title = {Software Resurrection: Discovering Programming Pearls by Showing Modernity to Historical Software},
  author = {Abhishek Dutta},
  booktitle = {ICSE},
  year = {2023},
  doi = {10.1109/icse-seet58685.2023.00016}
}