论文标题

软件复活:通过向历史软件展示现代性来发现编程珍珠

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

论文作者

Dutta, Abhishek

论文摘要

有人告诉我们,阅读由他人撰写的计算机程序代码和文档是学习编写可理解和可维护的代码和文档的最佳方法之一。本文介绍的软件复活练习要求有动力的学习者在现代硬件和软件平台上编译和测试一个维护良好且广泛采用的开源软件的历史版本(例如20年历史)。本练习结束时,根据在发布时无法预见的硬件和软件平台上编译和测试历史软件发布时遇到的问题的批评。还需要学习者作为软件复活练习的一部分来解决问题。看似毫无意义的锻炼历史软件使有动力的学习者体验软件维护的痛苦和喜悦,这对于理解有助于有助于计划代码和文档的可理解性和可维护性的因素至关重要。使用20年前发布的SQLite数据库引擎的版本来说明软件复活练习的概念。该插图表明,当历史软件发布可以在现代平台上成功运行时,软件工程原理(或编程珍珠)出现了。软件复活练习还具有终生探索和从现有程序代码中学习的终身意愿的基础。

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 a historical software release on a hardware and software 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 seemingly pointless exercise of resurrecting a historical software allows motivated learners to experience the pain and joy of software maintenance which 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 program code.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源