Skip to content Skip to footer

Three-Tier Model of Research Software

The three-tier model of research software provides a framework for understanding the diverse landscape of software in research - from scripts, code, notebooks, to computational workflows, libraries, modules, frameworks, utilities and applications. This model distinguishes three tiers of research software based on the intent behind it - i.e. focussing on the purpose for which the software is being built:

  • Analysis code,
  • Prototype tools, and
  • Research software infrastructure.

Three-tier model of research software

Diagram from “EVERSE Paving the way towards a European Virtual Institute for Research Software Excellence” presentation by F. Psomopoulos, February 2025, adapted by Aleksandra Nenadic under CC-BY 4.0 licence

The model acknowledges a relationship between the tiers: software at higher tiers often comes from the further development of software at a lower tier. Software at lower tiers often rely upon software at higher tiers (e.g. established infrastructure services and libraries). This interconnectedness highlights the importance of supporting all levels of research software development and acknowledging the ways in which it can impact research.

Analysis code

Analysis code is research software that captures computational research processes and methodology, often used in simulation, data generation, preparation, analysis and visualisation. It typically represents software created for personal use with a small scope, such as scripts quickly put together to analyse data.

Analysis scripts, especially in academic research projects, often remain unpublished. Scripts can thus be lost when a researcher changes computer or leaves an institution. This work may then have to be re-done by other researchers and the ability to learn lessons from the original work diminishes.

However, the trend toward publishing code alongside academic papers has been growing. More researchers are realising that sharing their analysis code alongside their results is essential for transparency, reproducibility, and collaboration. When shared and collaboratively developed, analysis scripts developed for specific solutions can start on the journey towards becoming more comprehensive prototype or fully-fledged software infrastructure tools that benefit many people in the research or software development community.

Here are some examples of analysis code and their associated publications (in alphabetical order):

Prototype tools

Prototype tools are research software that demonstrates a new idea, method or model for use beyond the project in which it originated, often as a substantive intellectual contribution or a proof of concept. These software tools are designed to answer multiple research questions and are typically developed and used by more than one person. They often began as a collection of analysis scripts before evolving into more comprehensive tools.

Some examples of prototype tools are provided below (in alphabetical order).

  • agnpy - a Python tool for modelling jetted Active Galactic Nuclei radiative processes.
  • Compas Toolkit - a high-performance C++ library offering GPU-accelerated functions for use in quantitative MRI research.
  • CoupledNODE.jl - a Julia implementation of the Coupled Neural ODEs (CNODEs) method, a data-driven approach to solve Partial Differential Equations (PDEs) in a multiscale context using closure modelling.
  • ehtim (ent-imaging) - Python modules for simulating and manipulating VLBI data and producing images with regularised maximum likelihood methods for radio interferometry,
  • Gemdat - a Python library for the analysis of diffusion in solid-state electrolytes from molecular dynamics simulations.
  • Nipype, a Python tool for neuroimaging data processing.
  • Tulipaenergymodel - an optimization model for the electricity market and its coupling with other energy sectors to determine the optimal investment and operation decisions for different types of assets.

Research software infrastructure

Research software infrastructures include software that captures broadly accepted ideas, methods and models for use in research, warranting close researcher involvement in their development. This tier represents a broadly applicable research software, often with a large and possibly distributed development team.

Some examples of research software infrastructures are provided below (in alphabetical order):

  • Open-Source projects such as Biopython — what started as a set of scripts for bioinformatics has evolved into a widely-used toolkit for computational biology, with thousands of contributors.
  • Gammapy - a Python package for gamma-ray astronomy providing a wide range of tools for analysing data from ground-based gamma-ray telescopes and space-based observatories, making it a crucial tool for astrophysicists studying cosmic sources of high-energy radiation, such as black holes, neutron stars, and supernova remnants. The package is supported by the European Strategy Forum on Research Infrastructures (ESFRI), emphasising its importance within the European scientific community.
  • GROMACS, a software suite for high-performance molecular dynamics and output analysis.
  • Jupyter Notebooks/JupyterLab - initially, Jupyter Notebooks were just a tool for sharing code and results in a more interactive format. But as more developers contributed, the project evolved into JupyterLab, a full-fledged web-based data science environment.
  • SciPy and NumPy - provide essential numerical computing capabilities used across many scientific domains. Many of the functions and algorithms started as individual, specific analysis scripts. Over time, they were expanded, optimised, and integrated into powerful, general-purpose scientific libraries used worldwide.
  • Tools like TensorFlow and scikit-learn started out as smaller scripts and research experiments. As they gained more contributors, they evolved into comprehensive infrastructures with rich documentation, user guides, and community support.

History and context

The three-tier model originated from the Australian Research Data Commons (ARDC) as part of their “National Agenda for Research Software” and was also inspired by discussions around “Dealing With Software Collapse”. It emerged from the need to better categorise and support different types of research software, recognising that a one-size-fits-all approach is inadequate for the varied purposes and stakeholders involved in research software - “best practice” in the production of analysis code, prototype tools and research software infrastructure could mean quite different things. The term research software infrastructure used in the model was influenced by the discussion in “Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure”.

Since its introduction, the model has gained international recognition. It has been referenced in various contexts, including the “FAIR Principles for Research Software (FAIR4RS Principles)”. Similar tiered approaches have been adopted by other organisations, such as the German Aerospace Center (DLR) in their “Software Engineering Guidelines”.

The three-tier model aligns with a broader vision of recognising research software as a first-class output of research. It provides a framework for addressing specific challenges at each tier, from increasing transparency in analysis code to enabling broad impact through quality prototype tools and ensuring sustained support for research software infrastructure.

For initiatives like EVERSE, the three-tier model offers a valuable lens through which to view research software quality and excellence. It suggests that practices, tools, and assessment criteria may need to be adjusted based on the tier of software being considered, contributing to a more comprehensive framework for research software quality that can be applied across diverse research contexts. The essence of the three-tier model is that software in different tiers has distinct purposes, stakeholders, and needs. This nuanced approach allows for more appropriate development, management, and assessment strategies tailored to each tier.

The three-tier of research software aligns closely with practical Software Management Plan (SMP) frameworks. As outlined in the “Practical Guide to Software Management Plans”, SMPs can be tailored to low, medium, and high management levels, corresponding to analysis code, prototype tools, and research software infrastructure respectively. This alignment demonstrates how the three-tier model can guide the development of appropriate management practices for different types of research software, ensuring that software management efforts are appropriately scaled to the nature and intended use of the software. By mapping specific SMP requirements to each tier, researchers and institutions can enhance the quality and sustainability of research software across all levels of complexity and scope.