3 - Moduleco is an object oriented modular Framework, designed for the multi-agent simulations and using medium to formalise agent interactions

page précédentesommairepage suivante

What is a framework ?



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.


Denis.Phan@enst-bretagne.fr, Antoine Beugnard@enst-bretagne.fr