IntrosPAC
Objectifs

PAC-Amodeus [thèse de L.Nigay] propose une décomposition fonctionnelle normalisée applicable à tout système interactif. Comme tout modèle de référence, il intervient très tôt dans le processus de conception d’une solution implémentationnelle [Coutaz J, Nigay. Architecture logicielle
conceptuelle des systèmes interactifs]
. Eloigné du code concret, il est souvent difficile pour des développeurs, et notamment pour des étudiants, d’en comprendre la nature et l’intérêt.

Pour répondre à ces difficultés, nous proposons IntrosPAC, un outil fondé sur la programmation par aspects, qui visualise l'architecture , le cheminement des messages dans celle-ci, ainsi que le contenu des agents constituants un logiciel structuré selon les précepts de PAC-Amodeus.

Utilisé depuis 2001 pour l’enseignement des architectures logicielles en IHM, IntrosPAC a rencontré un vif succés auprès des étudiants et du corps enseignant à l'Université Joseph Fourier de Grenoble.

IntrosPAC : un outil pour l'enseignement
Si vous désirez utiliser IntrosPAC (soit pour vous former au développement de systèmes interactifs suivant l'architecture PAC-Amodeus, soit pour enseigner cette architecture à vous étudiants) alors envoyez moi un e-mail et je serais heureux de pouvoir vous faire profiter d'IntrosPAC et d'un site web associé décrivant 2 TPs directement utilisables. Ce site web sert de référence pour l'enseignement d'architecture des systèmes interactifs en Master 2 à l'Université Joseph Fourier de Grenoble.



Principes

IntrosPAC est un outil fondé sur la programmation par aspects, qui visualise l’architecture conceptuelle d’un système interactif à partir de l’analyse du code source supposé structuré selon les préceptes de PAC-Amodeus. Par une visualisation animée, IntrosPAC permet au programmeur débutant de comprendre la structure logicielle de son code et de détecter les transgressions aux règles du modèle de référence.

IntrosPAC utilise les conventions de nommage entre les facettes PAC intrasèques au modèle PAC-Amodeus pour en déduire l'architecture , tracer les appels de méthodes entre facettes et connaître le contenu des facettes. Les règles de programmation PAC sont nécessaires et suffisantes pour l'utilisation d'IntrosPAC :

  1. Les agents sont composés en arborescence.
  2. La facette Contrôle d’un agent connaît les facettes Abstraction, Présentation de cet agent, de même que les fils de l’agent, s’ils existent.
  3. La communication entre facettes est initiée soit par l’action de l’utilisateur sur une facette Présentation, soit par une action de l’adaptateur du noyau fonctionel (ANF) sur une facette Abstraction.

Pour savoir plus :

  • "IntrosPAC : un outil pour enseigner et comprendre PAC-Amodeus". Article de recherche de type démonstration publié à IHM'03.
  • "IntrosPAC : un outil pour enseigner et comprendre PAC-Amodeus". Présentation de 5mn donnée à IHM'03.
Le principe utilisé pour créer IntrosPAC peut être facilement repris pour enseigner et comprendre d'autres types d'architecture comme ALV ou MVC. Si vous souhaitez le faire ou refaire IntrosPAC pour un autre langage (par exemple JAVA), je suis prêt à vous aider.
Implémentation

IntrosPAC est écrit en tcl/tk selon un mécanisme objet définit par François Bérard. Pour utiliser IntrosPAC, il suffit d'hériter d'un des objets suivants :

  • FacetteControle,
  • FacetteAbstraction,
  • FacettePrésentation.
Ces objets définissent simplement les conventions de nommage utilisées par InstroPAC. IntrosPAC est externe à ce code et s'utilise donc dynamiquement à l'éxecution si cela est souhaité. Ainsi l'utilisation d'IntrosPAC reste invisible au programmeur (En programmation orientée aspect, IntrosPAC définit un aspect, il est donc externe au code fonctionnel du système interactif). Pour utiliser ce code et IntrosPAC, vous devez suivre le protocole définit plus haut.


Photos d'écrans

Application gérant la formule des gaz parfaits. Les champs température, pression et nombre de moles sont modifiables.

Résultat de l'utilisation d'IntrosPAC sur cette application. L'arborescence des agents PAC est dessinée.

La circulation des messages au sein de l'architecture est visualisée de manière dynamique.
Le contenu de chaque facette est visualisable. Le contenu correspond aux noms des attributs et à leur valeur à cet instant. Ainsi, l'on remarque qu'une facette controle a bien un pointeur sur son abstraction et sa présentation.
Visualisation de la facette abstraction d'un agent. La valeur de la pression correspond bien à la valeur présentée à l'utilisateur (à une conversion d'unité près).
Visualisation de la facette présentation d'un agent. Cette facette gère les éléments de l'ihm présentée à l'utilisateur. Ainsi elle contient tous les interacteurs nécessaires à la présentation du concept de pression.

Videos
 

Web pages created by Christophe Lachenal

Thanks to Paula & Andy for layout images