Dealing With Software Collapse

From AcaWiki
Jump to: navigation, search

Citation: Konrad Hinsen (2019/05/06) Dealing With Software Collapse. Computing in Science & Engineering (RSS)
DOI (original publisher): 10.1109/MCSE.2019.2900945
Semantic Scholar (metadata): 10.1109/MCSE.2019.2900945
Sci-Hub (fulltext): 10.1109/MCSE.2019.2900945
Internet Archive Scholar (search for fulltext): Dealing With Software Collapse
Download: https://ieeexplore.ieee.org/document/8701540
Tagged: Computer Science (RSS) software engineering (RSS)



Background

  • "Software collapse" (aka bit rot): the fact that code stops working, even though it is unchanged.
  • The underlying foundation may have changed. Fig 1.png
  • Mitigations:
    • Restriction: Only build on solid foundation; dn't have a lot of dependencies
      • Good for "foundational" layer 1 and 2 software.
    • Robustness: Make your code robust to changes in foundation.
      • Not enough tooling to use. Perhaps Nix and Docker fit here.
    • Maintenance: Update when foundation changes.
      • Most common and quite time-consuming.
    • Acceptance: Accept that the construction is short-lived and start from scratch.
      • Only appropriate for throw-away code.