3 - Moduleco is an object oriented modular Framework,
designed for the multi-agent simulations and using medium to formalise
agent interactions
What is a framework ?
A set of classes which defines a model of interaction
among objects…
It is dedicated to be enhanced by inheritance and
specialization
Moduleco is a framework of classes i.e. a set of highly interrelated
classes defining the structure of many possible applications. In order
to build an application from a framework, the programmer has, in the simplest
case, to extend - or redefine - some classes of the framework; for more
complicated applications, some specific classes may have to be created
from scratch.
In practice the framework implements the shared part of all possible applications
in a dedicated field: multi-agents simulation in the case of Moduleco.
Note that if the framework is the shared and stable part of many applications,
it can evolve when programmers and model designers discover new abstractions (or concepts)
that deserve to be shared.
Classes are the computerized form of concepts. They allow storage of
data and computation on data. The storage part is called attribute,
data members, or variables. The computational part is called method or
function members. We will see later what the main classes of Moduleco are.
Dynamic links : more than a library...
Frameworks are in some way the equivalent in object oriented (OO) technologies
of classical function libraries. Libraries are sets of functions that are
reusable just by calling them. A simple example is the square-root function,
that programmers do not want to implement each time they use it. It was
implemented once for good, and now, it is called without being coded again.
So, frameworks are kinds of libraries but they offer a new advantage
that comes from inheritance concept of OO technology: dynamic binding allows
the framework to call the new code. OO makes the relationship between the
framework and its client classes (which are also the descendents of some
of its classes) symmetric.
Then, using a framework means calling its functions (as for a library)
but also being called by it when functions require to be specialised.
This feature enables frameworks to share (concepts - classes, functions
- methods, data) much better than usual (non-OO) programming techniques.