Graph-based software engineering
Software design has been of great importance since the very first programs. Even though it is not affecting the code performance, the quality of validation and verification as well as code support are greatly dependent on the code organisation. It is thus of prime interest for any coder to follow some ideology while designing and writing the code. While a great deal of approaches have been developed in the industial programming, there is no systematic approach to writing scientific code which is additionally complicated by the complexity of the application domain. The latter fact negatively contributes to another important quality of any code, namely, readability.
To tackle these issues, we develop a graph-based approach to the implementation of complex computational methods. It stems from the well-known concepts of finite-state machines, data flow diagrams and functional programming. The graph-based approach to software engineering has three levels: categorical level (data transformations as object morphisms), graphical level (representation of the algorithm as a directed graph), and interface level (software implementation of tools for graph models creation).
Related publications
-
Computer-aided design of composite materials using reversible multiscale homogenization and graph-based software engineering
A. Sokolov and A. Pershin, Key Engineering Materials 779, 11-18 (2018) -
Software tools for development of input data subsystems of computer-aided engineering complexes
A. P. Sokolov, A. Yu. Pershin, Programmnaya Ingeneria 8, 543-555 (2017)