Environmental Modeling Framework Invasiveness: Analysis and Implications
Environmental modeling frameworks support scientific model development by providing model developers with domain specific software libraries which are used to aid model implementation. This paper presents an investigation on the framework invasiveness of environmental modeling frameworks. Invasiveness, similar to object-oriented coupling, is defined as the quantity of dependencies between model code and a modeling framework. We investigated relationships between invasiveness and the quality of modeling code, and also the utility of using a lightweight framework design approach in an environmental modeling framework. Five metrics to measure framework invasiveness were proposed and applied to measure dependencies between model and framework code of several implementations of Thornthwaite and the Precipitation-Runoff Modeling System (PRMS), two well-known hydrological models. Framework invasiveness measures were compared with existing common software metrics including size (lines of code), cyclomatic complexity, and object-oriented coupling. Models with lower framework invasiveness tended to be smaller, less complex, and have less coupling. In addition, the lightweight framework implementations of the Thornthwaite and PRMS models were less invasive than the traditional framework model implementations. Our results show that model implementations with higher degrees of framework invasiveness also had structural characteristics which previously have been shown to predict poor maintainability, a non-functional code quality attribute of concern. We conclude that using a framework with a lightweight framework design shows promise in helping to improve the quality of model code and that the lightweight framework design approach merits further attention by environmental modeling framework developers.