ModelLayer
DevModelLayer consists of tools used to develop model components according to the reference architecture of the BioMA ModelLayer.

ACC

The API Class Coder is an application to generate the C# code of classes and interfaces. These classes are meant to be included in the application programming interface assembly of model components designed using the Model Layer architecture of the BioMA platform; the library core reference is CRA.ModelLayer.dll

Using the ACC is the second step in building a model component, and it requires that files of Domain Classes with the same namespace (typically: MyOrganization.Domain.MyComponent.Interfaces), built using the application Domain Class Coder, are available.

All classes will be used when building the relevant assembly via the IDE Visual Studio; they target the .NET framework 4.5 and refer to C# 5. The application is deployed via internet and installed from an URL; in this case, everytime the application is started, it will check for available updates.
DCC

The Domain Class Coder (DCC) is a Windows application to generate C# (Microsoft .NET 4.5 platform) code to be used as domain classes containing values and attributes for each variable used to model a given domain. Attributes are set via the type VarInfo, which implements a set of attributes to describe a variable: Name, Description, MaxValue, MinValue, DefaultValue, Units, Type, URL. The application targets at facilitating the labour consuming process of coding domain classes, in perspective using information retrieved via a web application from an online knowledge base linked to an ontology.

A model component using domain classes encapsulates its relevant ontology. The set of attributes allows identifying univocally all the concepts (variables in component terms) used in a component. The values assigned to such attributes can be used for general documentation, and for testing pre- and post-conditions both in components, and in applications, for field validation in user interface forms, according to the design-by-contract approach.

The content of domain classes can be: 1) extracted from a centralized repository (via a web application which allows downloading an XML file), 2) defined in an Excel file and exported as a tab delimited file, 3) extracted from binaries, and 4) entered by hand. Such files can be processed by DCC to produce the value and VarInfo classes code, with reference to the CRA.ModelLayer.DLL core library. Data can also be exported as an XLM file inclusive of schema.

If DCC is installed from the installation URL, every time the program is launched a check for updates is made.
MCE

The Model Component Explorer (MCE) is a Windows application to visualize the interfaces and the semantics of components developed according to the design proposed by Donatelli and Rizzoli (2008).

The design uses domain classes to make the component interface semantically rich; MCE allows identifying domain classes, the attributes of each variable, and the signature of each interface model. Also, for each model implemented, MCE allows identifying inputs, parameters (if any), outputs, and associated models (if any).

A new feature of MCE allows making sample running of model units (simple strategies) selecting for the plot which indipendent variable and at most two outputs. Parameter values can be changed. The utility creates a graph showing the output selected vs. the independent variable.

MCE also allows exporting the information above as Xml files which can used to populate an ontology browser.
SCC

SCC (Strategy Class Coder) is a Microsoft Windows application which facilitates implementing a model class (a strategy) according to the specifications of the ModelLayer used in the platform BioMA, such us encapsulation parameters definition, pre- and post- conditions tests. The relevant code, other than the actual implementation of model equations, is provided by SCC by generating a C# code class.

During the development of a software component implementing biophysical models, the first steps are:

1 the definition of the domain to be modeled, developing domain classes

2 the definition of the models interfaces

Once such classes and the interface are implemented, SCC can be used to generate the code to implement a strategy with the exception of the model algorithm, which can be added at a later time.

SCC allows saving and loading a strategy definition in an XML file, and uses a template for a strategy class provided as a text file containing placeholders. SCC creates code compatible to the version 3.5 of the Microsoft .NET platform.