Après avoir donné une brève description
de notre application on présente dans cette partie un scénario
pour la génération de diagrammes AUML ainsi que le fichier XML
pour un code JADE concrète. L'exemple choisi est le problème
Acheteur/Vendeur. Ce dernier peut être résolu en JADE à
travers 7 class c'est-à-dire 7 agents.
ü Classe Personne.
ü Classe Acheteur qui hérite de la classe
Personne.
ü Classe Vendeur qui hérite de la classe
Personne.
ü Classe colporteur qui hérite de la class
Vendeur.
ü Classe telemarketing qui hérite de la
class Vendeur.
ü Classe AgentA qui hérite de la class
Acheteur.
ü Et enfin, la classe AgentB qui hérite de
la class telemarketing.
Génération des diagrammesA~MC d partir de
programmes JADE
Chapitre 3 : Approche proposée et
présentation de l~oatil développé Le code de
l'agent AgentA est le suivant :
package Memoire_mecibah_zina;
import java.text.NumberFormat;
import java.text.ParsePosition;
import jade.core.AID;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
public class AgentA extends
Acheteur { protected void setup()
{
//envoyer une requete pour obtenir la liste des produits
disponibles
OneShotBehaviour demande = new
OneShotBehaviour() {
public void action()
{
ACLMessage_with_role msg = new
ACLMessage_with_role(ACLMessage.REQUEST);
msg.setContent("donner moi la liste des produits SVP");
msg.addReceiver(new AID("AgentB",
AID.ISLOCALNAME),"telemarketing",1);
send(msg);
}
};
//Traiter le message qui contient le prix du produit:
final OneShotBehaviour traiter_prix =
new OneShotBehaviour() {
public void action()
{
ACLMessage message = null;
while (message == null)
{
message = receive();
}
String msg = message.getContent();
int pos1 = msg.lastIndexOf(":");
int pos2 = msg.indexOf("D",pos1);
String prix = msg.substring(pos1+1,pos2);
float Prix = 0;
NumberFormat formatNombres =
NumberFormat.getInstance();
Prix = formatNombres.parse(prix,new
ParsePosition(0)).floatValue();