Académique Documents
Professionnel Documents
Culture Documents
a. L'analyse du dialogue
• On distingue trois types d'analyse : lexicale (gestion des E/S, affichage,
interaction), syntaxique (traitement et séquencement du dialogue) et
sémantique (analyse des concepts manipulables par l'application).
• La plupart des modèles d'application que nous verrons plus loin associent
chacune des analyses à un module, parfois même les regroupe dans un seul.
1. Le Contrôleur de dialogue
1.2. Le contrôleur de Dialogue
b. Le contrôle du dialogue
• Le contrôle correspond à la validité des déclenchements des opérations
qui dépend du contexte (les données, les traitements antérieurs, etc.).
• Le contrôle du dialogue signifie également la gestion des enchaînements
des opérations suite aux interactions de l'utilisateur.
• En résumé le contrôleur de dialogue a pour fonction de vérifier la validité
des interactions et de gérer les enchaînements de traitements qui en
découlent.
1. Le Contrôleur de dialogue
1.2. Le contrôleur de Dialogue
b. Le contrôle du dialogue
• Exemple:
Un bouton non grisé signifie que son déclenchement est possible et inversement
un bouton grisé signifie que son déclenchement est impossible. Dans les deux
cas, l'interface a été informée de la présentation à donner au bouton. Le
contrôleur a pu décider de cette information en fonction des données et des
opérations antérieures (puisque le contrôleur est chargé principalement de gérer
les enchaînements de tâches).
Le fait d'avoir achevé une opération permet d'en exécuter d'autres et ceci doit se
répercuter à l'écran par exemple en rendant un menu, un bouton ou une zone
de saisie accessibles. Il est donc intéressant que le contrôleur connaisse les
enchaînements nécessaires pour atteindre les buts.
1. Le Contrôleur de dialogue
1.3. Caractéristiques d'un contrôleur de dialogue
• Le développement des TIC a permis à un public de plus en plus nombreux,
mais surtout de plus en plus varié, de manipuler des logiciels.
• La diversité de ce public a obligé les concepteurs à prendre en compte tous
les types de public au sein d'une même application alors qu'auparavant
c'était le public qui s'adaptait au logiciel.
• La gestion du dialogue homme-machine est donc devenu un travail à part
entière et doit respecter certaines propriétés d'ordre général qui
permettent de définir un bon contrôleur de dialogue.
• En plus des critères classiques du génie logiciel, i.e. extensibilité,
réutilisabilité, etc. un contrôleur de dialogue doit répondre aux critères
suivants:
1. Le Contrôleur de dialogue
1.3. Caractéristiques d'un contrôleur de dialogue
Flexibilité : à cause de la diversité de compétence du public, le contrôleur doit pouvoir fournir
des types de dialogue différents en fonction du type du public.
Par exemple un débutant n'utilisera que les menus alors qu'un expert utilisera de
préférence les raccourcis clavier ou les touches de fonction.
Adaptabilité : le contrôleur de dialogue doit être capable de s'adapter au niveau et au style de
son interlocuteur. Deux types de solutions sont possibles : soit plusieurs styles sont
directement implémentés dans le système et celui-ci en choisit un en fonction de l'utilisateur,
soit il n'y a que des règles de style et c'est en fonction de l'utilisateur que le contrôleur les
applique ou non.
Exemple: systèmes tutoriels intelligents qui sont capable de reconnaître le niveau des
élèves et se mettre à leur niveau, donc s’adapter.
Intégrité : le contrôleur de dialogue doit être capable de protéger le système contre des accès
ou des modifications non autorisés. C'est une des propriétés fondamentales d'un contrôleur
de dialogue.
1. Le Contrôleur de dialogue
1.3. Caractéristiques d'un contrôleur de dialogue
Recouvrement : il doit être possible de récupérer des erreurs faites durant une session de dialogue
avec relativement peu d'efforts. Exemple:
La fonction défaire/refaire (Undo/Redo) que l'on trouve de plus en plus dans les IHM est
l'exemple le plus frappant.
La fonction qui permet de conserver l’historique des actions qui ont été exécutées depuis le
début d’une session. Il est donc possible dans certains cas de défaire une action et
d'annuler toutes celles qui ont suivi.
Partage : à partir d'une même structure de contrôle de dialogue, il doit être possible de travailler
simultanément sur plusieurs tâches d'une même application. On parle alors de dialogues multi-fil.
Robustesse : elle représente l'aptitude du contrôleur de dialogue à fonctionner dans des conditions
anormales. Ceci implique la gestion des erreurs prévisibles telles que les erreurs d'intention et
d'exécution et celle des erreurs imprévisibles telles que les interruptions de tâches, etc.
2.Modèles d'architecture
2.Modèles d'architecture
• Une architecture logicielle (Modèles d'architecture) décrit d’une manière
symbolique et schématique les différents élément d’un ou plusieurs systèmes
informatiques, leurs interrelations et leurs interactions.
• Différents modèles :
• Modèle fondamentale
• modèle de Seeheim
• Modèle-Vue-Contrôleur (MVC)
• Présentation-Abstraction-Contrôle (PAC)
• Etc.
2.1. Architecture fondamentale
• Le noyau fonctionnel : Il doit fournir un minimum des services dans le cadre d'une
interface :
Notification : possibilité pour un module externe d'être prévenu lorsque l'état du
noyau sémantique change (données et traitements),
Prévention des erreurs : possibilité de savoir si un appel de fonction est licite dans
un certain contexte, (pas avec des exceptions (c'est trop tard !), fonctions de test
(accepté, refusé))
Annulation : possibilité de revenir à des états antérieurs du noyau sémantique
(annulation d'une transaction en BD, Historique).
2.2. Le modèle de Seeheim
Le modèle de Seeheim est le premier modèle qui a mis en valeur le contrôleur de
dialogue par l'intermédiaire de la séparation d'une application en trois modules.
Rôle historique: modèle logicielle permettant de remplacer les interfaces
textuelles en interfaces graphiques sans changer le noyau fonctionnel.
Ce modèle a pour but de distinguer la gestion du dialogue de la sémantique de
l'application.
Il est composé de trois modules qui sont greffés sur le noyau applicatif. Chacun
de ces modules est distinct des autres et possède des rôles bien déterminés.
2.2. Le modèle de Seeheim
• Un événement est détecté et capté par tous les agents dont les récepteurs actifs
à cet instant sont capables de l'intercepter.
• Cet événement est ajouté à la file d'attente de chaque agent qui l'a détecté.
• Quand vient son tour, le traitement de l'événement provoque un changement
d'état de l'agent qui peut alors à son tour émettre de nouveaux événements.
• Grâce à ce type de fonctionnement, il est possible de travailler en dialogue multi-
fil en associant à chaque fil un agent spécifique à une partie du dialogue. On
dispose ainsi d'un système, supportant le parallélisme, à contrôle réparti et non
plus centralisé dans un seul composant.
2.3. Le modèle à agents
Mise en œuvre d’un modèle à agents
Principes :
le modèle correspond aux données de
l'application (structures et fonctions),
la vue présente des informations à
l'utilisateur à partir des données du
modèle,
le contrôleur se charge de l'interaction
avec l'utilisateur.
Un client envoie une requête à l'application,
celle-ci est analysée par le contrôleur, qui
demande au modèle approprié d'effectuer les
traitements, puis renvoie la vue adaptée si le
modèle ne l'a pas déjà fait.
2.4. Le modèle MVC
Contrôleur:
Gestion des évènements
Traitement des requêtes GET/POST
Modèle Vue
Gestion des données Interface utilisateur
Requêtes SQL HTML, JavaScript, XML
Lecture/écriture des fichier
2.4. Le modèle MVC
Le modèle MVC permet a priori de travailler de manière modulaire impliquant
ainsi une relative clarté et réutilisabilité dans le code de l'application.
Utilisé dans des plusieurs plateformes, par exemple: Excel, Swing, applications
web (.Net, aspx, JSP/Servlets/EJBs etc…),…
Avantage:
• vues multiples synchronisées,
• vues et contrôleurs modulaires,
• développement de composants réutilisables,
• cohérence interne et externe des interfaces.
• Séparer dans le code: les données (le Modèle), la ou les Vues, le Contrôle,
Le modèle:
public class Student {
private String id;
private String name;
La vue:
• L'Abstraction (le M de MVC) qui est l'ensemble des concepts et des fonctions de
l’agent.
définit donc les fonctionnalités sémantiques de l’agent,
représente l'expertise de l'agent, gère les données à représenter,
2.5. Le modèle PAC
Un objet PAC interactif simple est composé d'une image qui définit le comportement
visible par l'utilisateur (Présentation) des fonctions qu'il utilise (Abstraction), et d'un
module pour gérer la connexion entre ces deux modules (Contrôle).
2.5. Le modèle PAC