Software Archiving Resources for Researchers

The following resources will help you increase the visibility and availability of your work which in turn enables reproducibility and reuse.


right-arrow What is software?
right-arrow Why archive software?
right-arrow Where to put archival versions of your software?
right-arrow How to cite software / make your software citable?
right-arrow How to license your software openly?
right-arrow Where to actively develop your software?
right-arrow Where to publish software?
right-arrow Additional resources


What is software?

Here, software is referring specifically to research software. That is, software that has been developed in the course of academic research by you/your lab for any purpose related to specific findings/projects/publications. Examples include: simulation software, computational models, decision support systems, text analysis code, and scripts of all kinds (e.g., Matlab, R, Python, SPSS, etc. scripts dealing with data gathering/cleaning, analysis, visualization/plotting)

Why archive your software?

Archiving code is part of ensuring the complete preservation of scholarship.  It is not just the paper that matters. To fully understand, reproduce, and extend the body of research, the associated data and code is needed as well.

In addition, it can increase research efficiency and impact by making it easier for others (and your future self) to understand and reuse the code.

Where to put archival versions of your software?

An archival repository is a place where data and code can safely be stored. It should have statements of how long items will remain available and it should be able to provide persistent and unique identifiers such as DOIs. Much like DOIs for papers, a DOI for your software and data makes it easy to unambiguously identify and cite.

The JHU Data Archive is open to all JHU faculty, students, and, staff to deposit data and code for archiving and sharing purposes. All deposits are assigned a DOI and have redundant copies. Furthermore we are available to provide free assistance in all curation activities  in order to increase the visibility and ease of understanding of each deposit.

Apart from the JHU Data Archive, there are other discipline agnostic repositories/archives such as:

How to cite software / make your software citable?

Citing software is important as it gives credit to the effort of the developers. Conversely, by making your software citable (and clearly expressing how it should be cited), it makes it easier for others to give you credit.

How to license your software openly?

Explicitly attaching a license to your software is very important as it communicates how others may use and reuse it. The following resources will help you select a license.

Where to actively develop your software?

Publicly available, discipline agnostic collaborative code development platforms:

Where to publish software?

Apart from traditional research journals, there are journals which aim to recognize the substantial scholarship involved in creating software and are more oriented to describing the software itself, rather than the results generated from it. Some software-specific journals are:

  • SoftwareX – aims to acknowledge the impact of software on today’s research practice, and on new scientific discoveries in almost all research domains.
  • Journal of Open Research Software (JORS) – features peer reviewed Software Metapapers describing research software with high reuse potential.
  • Journal of Open Source Software (JOSS) – an academic journal with a rigorous peer review process that is designed to improve the quality of the software submitted. More information here.
Additional resources