Abstract for: An Object-Oriented Type System for System Dynamics
Modules (as implemented in iSee software) are nestable containers designed to support the development of hierarchical model structure. They are a valuable tool for increasing the readability and transparency of a model by allowing the model author or reviewer to work at different levels of complexity, as well as making feedback between different components more explicit. However, because modules lack the concept of inheritance, you cannot answer the question 'how is this module of structure related to that module of structure' except by manual comparison. Jim Hines' Molecules provides a hierarchy of common, ready to use pieces of structure. By not forcing modelers to implement common idioms over and over again, Molecules can make new-model creation easier. At the same time, the idea of construction by replacement and relabeling makes it quite hard for software to keep track of the evolving complexity of model structure in a way similar to iSee modules. The paper describes how inheritance and classes can be applied to system dynamics models, primarily through a type system supporting classical inheritance along with a standard library of molecules, with the goal of enabling the rapid creation of exceptionally readable models.