Author/Authors :
Joel M. Rahman b، نويسنده , , Shane P. Seaton، نويسنده , , Susan M. Cuddy، نويسنده ,
Abstract :
Several modern development environments allow executable components, such as hydrologic models, to carry metadata describing
the properties and capabilities of the components. These metadata may be restricted to the names of variables, and their respective
data types, or may extend to other information, such as classification of variables (e.g. input or output), numeric constraints on
parameters (e.g. between 0 and 1, or greater than 0) or aliases (e.g. rainfall, also known as precipitation). Introspection in these
environments allows tool developers to write programs and other components that make use of these metadata to provide generic
model processing tools, while allowing model developers to take advantage of these tools without additional development effort.
Typical model processing tools include model integration systems, parameter optimisers, automatic user interface generation and
automated IO. One approach to implementing model introspection and metadata, used by the Interactive Component Modelling
System (ICMS), is to extract information from a model when compiling a custom modelling language. An alternate approach,
applied in a new modelling framework, relies on the language independent introspection provided by the .NET environment. These
uses of introspection streamline model development within modelling frameworks, reducing the effort required to take advantage
of other framework capabilities, such as dynamic visualisation. Introspection based systems, while introducing flexibility, defer
until runtime various type checks that are typically performed by a language compiler. This introduces a performance penalty that
may become significant in some circumstances.
Keywords :
ICMS , Introspection , .NET , Model metadata