|Project | Documents | Downloads | History | Links|
Project is in continuous development: it still has more planned goals than achieved results :)
The main goal of the GeneSim Project is to provide an open source framework to model dynamic systems, to generate simulators for them and to run the generated sims. The framework includes modelling techniques, code generation patterns, runtime libraries, tools for code generation and tools for execution of simulations.
Systems are modelled using UML or SysML, an UML extension supported by the OMG and specialized for system engineering. The system model is used to generate an object oriented set of classes that enacts the systems. Such set of classes can be integrated in user's custom code or, using a provided runtime, can be directly compiled in a dinamically loadable library (a shared object in Unix like systems, a dynamic linking library in MS Windows ones). The library has a standard interface that allows easier integration in custom applications or immediate execution by the general purpose test tools which are part of the GeneSim framework.
This approach merges several benefits:
Modelling covers continue systems and discrete systems. In the first case code generation is targeted to a time sliced simulator engine. In the second case, code generation is targeted to an event driven simulator engine. The GeneSim project started researching time sliced simulation of continuous systems. Research for modelling discrete systems is currently ongoing. Of course, the long term goal is to integrate the two modelling and code generation techniques to allow simulation of mixed discrete/continue systems.
Subprojects. GeneSim is a complex project extending on a wide research area and with ambitious goals. Research and implementation of tools proceeds by subprojects that are launched following the natural life of the project: a new aspect of system modelling needs investigation, a different pattern of code generation has to be tested, an application case study is worth to be faced, a need arises to implement or to improve a runtime component. Currently, the following subprojects are (more or less) active:
|Copyright © 2006-2009 Giovanni A. Cignoni|