Home > Publications database > Reengineering NestML With Python And Monticore |
Report | FZJ-2019-00581 |
; ; ; ; ; ;
2018
Zenodo
This record in other databases:
Please use a persistent id in citations: http://hdl.handle.net/2128/21328 doi:10.5281/ZENODO.1319653
Report No.:
Abstract: The NEST Modeling Language (NestML) is a domain-specific modeling lan- guage developed with the aim to provide an easy to use framework for the specification of executable NEST simulator models. Since its introduction in the year 2012, many concepts and requirements were integrated into the existing toolchain, while the programming language Java as the underlying platform remained almost untouched, making maintenance and extension of the framework by neuroscientists a disproportionately complex and costly process. This circumstance contradicts the basic principle of NestML, namely to provide a modular and easy to extend modeling language for the neuroscientific domain.More than 90% of the overall costs arising during the development and usage of soft- ware systems originate in the maintenance phase, a circumstance which makes foresighted planning and design of software systems a crucial part of a software's life-cycle. While the effects of errors and bad design in programming in the small can be mostly mitigated by using appropriate concepts, e.g., data abstraction and modularization, wrongheaded decisions concerning the overall architecture or platform make the software's operation costly in the long term and affect the development over its whole life cycle. Here, reengineering and especially the changing of the environment or platform of the existing systems is the approach of choice given the fact, that systems often use no longer supported components, contain errors in the overall foundation or simply do not correspond to the existing requirements.This report deals with the reengineering of the NestML tools collection and its migration to Python as a new target platform. Given Python's popularity in the neuroscientific domain, a migration benefits the usability as well as integration into existing systems, facilitates extensions by neuroscientists and makes usage of bridge technologies unnecessary. In order to accelerate the development and ensure modularity as well as maintain- ability of the reengineered software, the MontiCore Language Workbench will be used and extended by Python as a new target platform for code generation.
![]() |
The record appears in these collections: |