Spine Deliverable 2.1 Software Design Document

Pekka T. Savolainen, Juha Kiviluoma, Erkka Rinne, Antti Soininen, Joseph Dillon, Manuel Marin

Research output: Book/ReportReport

413 Downloads (Pure)


Spine Toolbox is an application that provides means to define, manage, and execute energy system models. It gives the user the ability to collect, create, organize, and validate model input data, execute a model with selected data and finally archive and visualize the results or output data. Spine Toolbox is designed to support the creation and execution of scenarios in optimization and simulation. In the Spine project, the main use case has been SpineOpt, which is a highly adaptable model generator for multi-energy systems. In addition, Spine Toolbox supports a wide variety of other models and tools if they follow the conventions of Spine Toolbox or there is an interpreter between the application and the external tool. One of the conventions is the Spine data structure, which is an entity-relationship data model for a structured yet flexible storage of data. The interface to the data structure is an integral part of both Spine Toolbox and SpineOpt because it enables them to communicate using a common vocabulary. Spine Toolbox is implemented in Python and SpineOpt in Julia.

This deliverable presents a high-level software design for Spine Toolbox and for the various tools it supports. It contains the application use cases, functional and non-functional requirements, system overview, chosen implementation language(s), dependencies, versioning, application validation requirements, testing and security requirements, and general development guidelines. The aforementioned have been collected in co-operation with Spine members and stakeholders, who have been using Spine Toolbox since its inception. The last chapter presents an overview of the Spine data structure.

The first version of this deliverable was published in project M02 and this final version presents the updated design of the software. Spine is an open-source project. In the fall of 2018, Spine Toolbox source code and documentation was released to the public. Spine Toolbox as well as the whole Spine software suite is available in a web-based version control repository system called GitHub (https://github.com/Spine-project). In addition, the user guide and other documentation is available on https://readthedocs.org/. Spine Toolbox is licensed under the GNU Lesser General Public License (LGPL). Spine Toolbox documentation, user guide and all original graphics have been released with the Creative Commons BY-SA 4.0 license. We hope to attract a lively and active community around the Spine software suite that will continue development also after the project has ended.
Original languageEnglish
Number of pages44
Publication statusPublished - 30 Sept 2021
MoE publication typeD4 Published development or research report or study


  • Horizon 2020


Dive into the research topics of 'Spine Deliverable 2.1 Software Design Document'. Together they form a unique fingerprint.

Cite this