Software as part of the RIN

Software is an important type of "Other Representation Information". It will require its own RepInfo and will itself need to be preserved.

Software may be provided in several different ways including:

  • executables

  • source code or scripts

  • software design

Each of these requires what we can call their own Representation Information - actually a Representation Information Network (RIN). The RIN is is needed to preserve the software itself, but this may then be part of a larger RIN, for some other object for which the software is Other Representation Information.

For example an executable would require:

  • the operating system, including versions, configurations and additional libraries required;

  • in the case of Java JAR files one would need details of the Java Virtual Machine, supporting libraries and configurations such as the classpath, required.

Source code would require:

  • the build files, build system and libraries required to create a usable executable.

Scripts would require:

  • the interpreter needed use the script;

  • in some cases the script, such as a Docker file, may download files from a service, in which case the downloaded file would have to be captured or the service emulated.

Software design

  • a description/explanation of the design system

  • the description of the encoding used for the software design e.g. definition of XMI for a UML export.

Preservation Objectives and Transformational Information Properties for software

There are many aspects of software which may need to be considered during the preservation of the software, where preservation is judged by usability, including:

  • the numerical output with specified input data

  • the display of information

  • the timing of processes

  • the responses to user inputs

  • effects on remote objects

Last updated