24.06.2013 Views

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

sémantiques soient déclenchées lorsque l’<strong>utilisateur</strong> bouge le curseur de sélection mais<br />

lorsque ce dernier valide son choix.<br />

5.7.4 La Couche Structuration d’unités de présentation et de fonctions sémantiques<br />

Cette couche se compose tout d’abord du module PU Organizer. Son but a déjà été<br />

brièvement décrit. Nous nous contenterons donc de donner une idée des données produites en<br />

sortie. Chaque unité de présentation source est du type de celle décrite dans le point 5.7.2. la<br />

version organisée de l’unité de présentation se présente comme suit :<br />

liste de paires (#OIA) ou de sous-unités de présentations organisées #<br />

tâche mère du type (sans l’attribut childs)<br />

Le second module vise, d’une part, à générer de manière correcte les fonctions sémantiques<br />

liées aux opérateurs temporels et d’autres parts, à isoler les tâches inactives à l’ouverture de<br />

l’application. La première fonctionnalité a un déroulement en plusieurs étapes.<br />

La première étape consiste à nettoyer une unité de présentation organisée en remontant d’un<br />

niveau les sous-unités de présentation pour lesquelles la mère a un opérateur temporel binaire<br />

identique à celui de ses tâches filles.<br />

La deuxième étape consiste à isoler chaque opération en générant une liste de triplets :<br />

tâche(s) Source#tâche(s) Destination#Opérateur<br />

Le fait que plusieurs tâches (des listes en réalité) puissent jouer le rôle de source ou<br />

destination implique qu’il faudra également effectuer, le cas échéant, un sous-traitement sur<br />

ces tâches.<br />

Une fois cette étape réalisée, nous effectuons alors une troisième étape, consistant à simplifier<br />

certains des triplets obtenus et à modifier l’unité de présentation source. Voici les différentes<br />

modifications à réaliser.<br />

Soit X#Y#Op, un triplet où : - X est une (liste de) tâche(s) Source<br />

- Y est une (liste de) tâche(s) Destination<br />

- Op est un opérateur temporel parmi <br />

Si X se réduit à une seule tâche et si Y est une liste de tâches :<br />

- Si Op est un opérateur concurentiel et OpY, l’opérateur temporel commun aux tâches<br />

de Y (rappelons que notre modèle utilise un arbre prioritaire), est un opérateur de<br />

séquence, alors X n’est en réalité concurrent qu’avec la première tâche de Y<br />

Si X est une liste de tâches (peu importe la nature de Y) :<br />

- Si Op est un opérateur de séquence et OpX est un opérateur de concurrence, nous<br />

devrons modifier l’unité de présentation principale en ajoutant un bouton de validation<br />

permettant d’indiquer quand ces tâches concurrentes seront terminées afin de<br />

continuer la séquence.<br />

- Si Op est un opérateur de séquence et si OpX est un opérateur de choix, nous devrons<br />

modifier ce triplet en une liste de triplet pour que chaque tâche contenue dans X puisse<br />

déclencher les tâches de Y<br />

88

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!