Preserving Software

Software is often an important part of the output of a research project. Sometimes a piece of software is the primary output of the research, sometimes it is a tool developed to interpret or analyse other outputs. Often research data can be of little use without the specific software developed to process it.

However, because software depends critically on its environment, and this environment is continually changing, software is particularly difficult to preserve in working form over the long term. This environment includes the hardware and software platform that the software runs on, the compilers, libraries, and other software components that were used to build it, and any other software, hardware or physical system that it interacts with. If software is “mothballed”, changes in any one of these related systems can render a piece of software inoperable. On the other hand, when software is actively maintained, its interfaces and functionality usually evolve so, whilst it is possible still to run it, there is no guarantee that the results will be te same as when a previous version was run in the past. So it then becomes impossible to validate previous results by rerunning a particular analysis as it was in some previous version of the software.

Many of these problems apply equally well to associated artefacts such as documentation, install scripts, test cases, tutorials etc., as much as to the software itself.

Tools and Guidelines for Preserving and Accessing Software Research Outputs

In collaboration with the Computer Science department at the University of York, STFC e-Science is undertaking a project funded by JISC to investigate issues around the deposition and preservation of software artefacts in repositories. This project will develop guidelines for the preservation of software research outputs. In particular, by monitoring and analysing in detail the activities around a case study which is a thematic software repository in the software engineering domain. See

The project will focus particularly on:

  1. the classification of software artefacts to enable their retrieval and use in new contexts,
  2. the preservation of software artefacts as their associated environment evolve,
  3. the role of standards in preservation of software,
  4. the process of depositing software as part of the research project workflow to enable validation of analyses undertaken in the course of the research lifecycle .

It will look specifically at issues concerning preservation of software rather than more generic issues related to preservation of digital objects in general.

Topic revision: r1 - 28 Jan 2008 - RobAllan
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback