Year of Graduation
Software for Discrete-Event Systems Modeling with Timed Petri Nets
School of Software Engineering
There are several methodologies developed in last 20 years addressing the problems of the control theory that deals with the behavior of dynamical systems with inputs. Some of these algebraic frameworks has gained widespread and have software implementations of the underlying algorithms in differnt forms. Some of them are plugins for popular symbolic computation software systems like Scilab or implemented as standalone utilities and environments. These frameworks are quite suitable for practical usage in many mathematical-engineering spheres. The aim of this project is to develop a standalone software toolbox that utilizes an algebraic framework of dioids and petri Net modeling language together in order to simplify the workflow of modeling discrete-event dynamic systems. The key feature is the rich GUI that distinguishes this software. The technology stack used in this project (statically-typed Go programming language and the Qt Framework) gains the ability to be fully cross-platform and results in much cleaner code that could be easily modified by third-party developers in the future. An early version of this application was noted by the author of the go-qml bindings, and later was demoed by him on the GopherCon (CO, Denver, 24-26 April 2014) as a successful example of rich GUI application written with both Go and QML. The core idea of this work is to create an useful interface or wrapper to the external library that does symbolic computations in the dioid algebra, so the usage cases are matching the cases that addressed by the original theory and this particular software implementation, for example: modeling and performace evaluation of the Flexible Manufacturing Systems, communication networks, parallel computing environments, etc. The future work is assigned to the two possible directions. The first task is to improve the code quality and the performance of GUI, the second task is to implement some mechanism that will make adding the support for new methods and model types much easier.