690 likes | 845 Views
Génie Logiciel Avancée. et les. profiles. Application aux. systèmes multi-agents. :. UML 2.0. Élaboré par : Mohamed Ali Jbéli Safouane Azzabi. Agenda. UML 2.0 Profiles Systèmes multi-agents Les outils Profile pour les SMA Conclusion. UML 2.0 Tendance ou révolution.
E N D
Génie Logiciel Avancée et les profiles Application aux systèmes multi-agents : UML 2.0 • Élaboré par : • Mohamed Ali Jbéli • Safouane Azzabi
Agenda • UML 2.0 • Profiles • Systèmes multi-agents • Les outils • Profile pour les SMA • Conclusion
UML 2.0 Tendance ou révolution
Histoire de copains Booch,Jacobsen and Rumbaugh
2003 Rumbaugh Booch Jacobson 1997 1998 1996 2002 2001 1967 Historique UML 2.0 (MDA) UML 1.4.1 UML 1.4 (actions sémantiques) UML 1.3 (extensibilité) UML 1.1 (OMG Standard) Fondement de l’OO (Nygaard, Goldberg, Meyer,Stroustrup, Harel, Wirfs-Brock, Reenskaug,…)
Besoins -Infrastructure : Concepts de bases plus précis pour un meilleur support de la MDA-Superstructure : Personnalisation + Consolidation des concepts existant,-Langage de contraintes OCL : Alignement conceptuel parfait avec UML,-Standard d’échange de diagramme.
Évolution -Sémantiques des modèles grandement précisées (éviter les problèmes d’interprétation) -Rendre possible la traduction d’un modèle UML en programmes compilables -Rapprochement des modèles des programmes (sans pour autant devoir programmer)
Complete Level StateMachines StructuredClasses andComponents Activities Interactions DetailedActions Flows Intermediate Level Basic Level Structure • Langage noyau + Sous langages MOF Profiles OCL Basic UML(Classes, Basic behavior, Internal structure, Use cases…) UML Infrastructure
Profiles Le compromis
PH reached X start ControlPH MonitorPH Current PH enable stop disable RaisePH Input valvecontrol Les modèles : vue sceptique “…bubbles and arrows, as opposed to programs, …never crash” B. Meyer“UML: The Positive Spin”American Programmer, 1997
Les modèles dansl’ingénierie • Avant de construire une réalisation... …on construit des modèles …et on en apprend
Les modèles dansl’ingénierie • Une représentation réduite de la réalité : • Objectif : Comprendre un système ou une solution complexeCommuniquer les idées à propos des problèmes et des solutionsConduire l’implémentations
Caractéristiques d’un modèle • Abstrait • Compréhensible • Exacte • Indicatif • Faible coût Pour qu’il soit utile, un modèle doit avoir toutes ces caractéristiques
. . . Problématique • Fossé sémantique due à: • Particularité des constructions actuelles, • Méthodes de constructions, • Effets d’échelle, • Influence de la météo… • Peuvent engendrer des problèmes graves.
Du contemplatif au productif • Les modèles sont souvent utilisés pour • Réfléchir, Définir la structure gros grain, documenter • Ils sont alors contemplatifs • Ils ne permettent aucun gain significatif • Il faut alors qu’ils deviennent productifs • Permettre la génération automatique de code, de déploiement, …
UML Productif ? • Par nature, un modèle UML ne peut pas être productif • Indépendance des langages, sémantique trop générale • Il faut donc spécialiser UML pour être productif • UML pour CORBA, UML pour EJB, UML pour RT, … • Il faut profiler UML
Profiles Un profile est un dialecte d’UML dans une plateforme particulière ou un domaine donné.
Profiles • Un profil UML permet de spécialiser UML • Un profil UML permet par exemple de préciser qu’une classe UML est en fait un EJB session • Un profil est composé de stéréotypes, de tagged value et de contraintes
Stéréotypes • Un stéréotype se défini principalement sur les classes UML • Une classe stéréotypée porte la sémantique du stéréotype • Les stéréotypes sont fortement utilisés pour les générations
Tagged Value • Les tagged value sont principalement utilisés pour ajouter des informations sur les classes • Une tagged value peut être vue comme un nouveau méta-attribut • Exemple de tagged value: • JavaName: le nom Java de la classe si différent du nom de la classe • EJBSessionType: le type d’EJB Session (Stateless, Stateful)
Contraintes • Les contraintes sont utilisées pour exprimer des relations les stéréotypes et les tagged value • Les contraintes servent a exprimer la sémantique du profil • Exemple: • Toute classe stéréotypée « EJBRemoteInterface » doit être réalisée par une classe stéréotypé « EJBImplementationClass »
Place des profiles Dans les 4 niveaux de la MDA, il n’y a pas de place pour les profiles. MOF M3 M2 UML CWM Profile M1 Model Profile model M0 Run time model
Exemple Définition d’un simple profile EJB
Les outils Solution de facilité !
Problématique Malgré la diversité des outils CASE, ils se partagent les mêmes fonctionnalités et les mêmes limitation concernant la définition des profiles.
Spécifications • Respect des principes MDA • Transformation des modèles : XMI • Les contraintes : OCL • Support de UML 2.0 • La sémantique des diagrammes • Infrastructure et superstructure • API riches de méta-classes
ArgoUML • Outil libre • Écrit en Java • Génération de fichier XMI • Supporte OCL • Ne supporte pas UML 2.0 • Possibilité d’ajout de stéréotypes, de tagged values et de contraintes • Incapable d’en avoir une vision générales Ce n’est pas un Éditeur de profiles!
Ameos • Outil de la société Aonix • Génération de fichier XMI • Éditeur de profile • Respecte MDA : UML est considéré comme un profile • Pas d’interpréteur OCL • Pas d’API de méta-classes
ObjecteeringUML • Outil de la société Softeam • Éditeur de profile • API riche de méta-classes • Langage J : analyse des modèles, génération de code, contraintes • Pas d’interpréteur OCL • Pas de génération de fichier XMI
Systèmes multi-agents Vers l’intelligence humaines
Définitions • Systèmes dans lesquels des entités intelligentes (appelés agents) interagissent les uns avec les autres. • Un agent est une entité autonome (un programme ou un robot), intelligente (décision et apprentissage) et qui a des capacités sociales.
Définitions • L’interaction entre les agents peut être coopérative ou individuelle. • Les agents peuvent se partager le même objectif ou se livrer à leurs propres intérêts.
Caractéristiques • Chaque agent a une information, une capacité, plus ou moins compète, à résoudre un problème • Pas de commande globale du système • Données décentralisées • Calcul asynchrone
Domaines d’application • Recherche & Développement • des langage de communication, • des protocoles de communication, • des architectures des SMA, • Gestion des catastrophes, • Communication Pear-To-Pear, • Génie Logiciel, • Télécommunication (Plus grand investisseur)
Agents : Pourquoi ? • Simplifier l’informatique distribuée, • Gestionnaires de ressources. • Surmonter les problèmes des interfaces d’utilisateurs, • Assistants personnels qui s’adaptent à l’utilisateur.
Classification(Nwana) • Mobilité : mobile ou statique, • Modèle de raisonnement : délibératif ou réactif, • Rôle : gestion ou information • Attributs idéales : autonomie, apprentissage et coopération.
Classification(Nwana) Agents intelligents Agents collaboratifs évolutifs Coopèrent Apprennent Autonomes Agents collaboratifs Agents d’interfaces
Quelque types d’agents • Agents collaboratifs • Agents d’interface • Agents mobiles
Agents collaboratifs • Origine de la recherche sur les agents • Modulaires (interface, tâche, information), • Négocient pour résoudre des conflits, • Collaborent pour réaliser l’intégration d’informations, • Fournissent des solutions pour des problèmes de : • Trafic aérien, • Gestion des réseaux de télécommunication. • Protocole : Contract Net…
Architecture Source: K. Sycara, Distributed Intelligent Agents, IEEE Expert 1996
KQML • Protocole pour échanger de l’information entre agents. • Ensemble riche de types de messages et de significations à but performatif. • Tout ce qui est nécessaire à la compréhension du message est inclus dans le message lui-même.
Agents d’interface • Supportent et fournissent l’assistance, • Coopèrent avec l’utilisateur, • Encapsulent une forme d’apprentissage • Observation et imitation de l’utilisateur, • Réception de feedback, • Instructions implicites, • Conseils de la part d’autres agents.
Agents mobiles • Peuvent migrer d’une machine à une autre, • Avantage pratique et non pas fonctionnel : • Réduire le coût de la communication, • Informatique asynchrones, • Applications : • Extraction d’informations distribuées, • Routage dans les réseaux de télécommunication.