Brevet FR3021131A1 — publié le 20151120

La présente invention concerne la gestion des écrans par un module logiciel d'interface utilisateur graphique. Dans le domaine de la gestion des écrans d'un module logiciel d'interface utilisateur graphique, le temps de changement d'écran, d'un écran courant actif à un 5 écran suivant, doit rester faible afin de conserver un agrément d'utilisation pour l'utilisateur. L'augmentation régulière de la puissance de traitement des processeurs permet d'augmenter la complexité des écrans en conservant un temps de changement d'écran sensiblement constant et du moins inférieur à un seuil d'attente acceptable par un 10 utilisateur. Un changement d'écran comprend typiquement différentes étapes : - une récupération en mémoire des données ressources nécessaires au nouvel écran, - un éventuel traitement de mise en forme de ces données, 15 - une éventuelle construction graphique de l'image du nouvel écran, - un chargement en mémoire graphique de l'image du nouvel écran et enfin, - une bascule vers ce nouvel écran, lorsqu'il devient actif et remplace l'écran courant, ancien écran actif. Le public est habitué à des performances, à une ergonomie, à une complexité 20 d'écran, liées aux performances des processeurs généraux utilisés pour les équipements grand public que sont les ordinateurs personnels, les tablettes, ou les ordiphones. Il est fortement souhaitable de pouvoir offrir aux clients des performances, une ergonomie, et une complexité d'écran, similaires ou du moins proches de celles des équipements grand public. 25 Cependant les performances des processeurs disponibles et la complexité des écrans ne permettent généralement pas de réaliser un changement d'écran dans un temps inférieur au seuil d'attente acceptable par un utilisateur. Afin de résoudre ce problème plusieurs approches sont connues. Une première approche est d'augmenter la puissance de traitement du 30 processeur. Cette approche, en plus de son coût, peut dans certains domaines s'avérer impossible. Ainsi, du fait de procédures de qualification et/ou de durcissement, les processeurs utilisés dans les calculateurs embarqués, par exemple dans les véhicules automobiles, sont disponibles avec un retard de quelques années et souffrent de performances moindres par rapport aux processeurs disponibles à la même date dans les 35 produits grand public. Une autre approche, que l'on souhaite éviter en ce qu'elle confère une apparence « démodée » à un produit, consiste à dégrader la complexité des écrans et/ou les performances. Une autre approche, afin de gagner du temps, consiste à pré-charger tous les 5 écrans. Parmi les étapes d'un changement d'écran, certaines sont plus longues que d'autres. Ainsi la bascule, par exemple, est très courte. Aussi est-il possible de réaliser en avance les autres étapes du changement d'écran, afin que lors du changement d'écran, il ne reste plus que des étapes courtes, telles que la bascule. Cette approche, combinée à une tendance actuelle qui multiplie les fonctionnalités et donc le nombre d'écrans, parfois 10 jusqu'à plusieurs centaines, nécessite une quantité de mémoire dynamique très importante pour stocker les écrans pré-chargés. Or la mémoire dynamique, utilisée pour charger ou pré-charger les écrans, est, particulièrement pour les calculateurs embarqués, une ressource très couteuse. Il convient donc de proposer un autre paradigme de gestion des écrans. 15 L'invention propose une approche originale sans présenter les inconvénients de l'art antérieur. L'invention concerne un procédé de gestion des écrans d'un module logiciel d'interface utilisateur graphique, comprenant, après chaque activation d'un nouvel écran courant, les étapes suivantes : 20 - détermination d'un jeu d'écrans à pré-charger, - pré-chargement dudit jeu d'écrans. Lorsque l'écran suivant est déterminé, bascule vers ledit écran suivant, qui devient le nouvel écran courant actif, en utilisant l'écran pré-chargé si ledit écran suivant est pré-chargé, ou après réalisation d'un chargement dudit écran suivant en cas contraire. Selon une autre caractéristique, le pré-chargement est réalisé pendant le temps d'activation durant lequel l'écran courant est actif. Selon une autre caractéristique, la détermination du jeu d'écrans à pré-25 charger comprend les étapes : - établissement pour un écran donné, d'une liste des écrans successeurs, - ordonnancement de ladite liste en fonction d'une probabilité décroissante d'être l'écran suivant de l'écran donné et/ou d'un coût décroissant de pré-chargement, et/ou d'un coût mémoire de stockage croissant, 30 - sélection dans ladite liste du ou des n premier(s) écran(s). Selon une autre caractéristique, les probabilités d'être l'écran suivant d'un écran donné, sont calculées une fois, au cours d'une phase préalable. Selon une autre caractéristique, les probabilités d'être l'écran suivant d'un écran donné, sont mises à jour dynamiquement. Selon une autre caractéristique, n est constant. Selon une autre caractéristique, n est tel que le ou les n premier(s) écran(s) sélectionné(s) totalise(nt) une quantité de mémoire inférieure à la quantité de mémoire allouée au pré-chargement. Selon une autre caractéristique, le ou les écran(s) sélectionné(s) présente(nt) une probabilité d'être l'écran suivant supérieure à un seuil. Selon une autre caractéristique, le ou les n premier(s) écran(s) sélectionné(s) cumule(nt) un temps de pré-chargement inférieur à un temps d'activation moyen, respectivement minimum, pendant lequel l'écran courant est actif. D'autres caractéristiques, détails et avantages de l'invention ressortiront plus clairement de la description détaillée donnée ci-après à titre indicatif en relation avec des dessins sur lesquels : - la figure 1 présente le principe de l'invention, - la figure 2 illustre un mode de réalisation d'une table statistique des successeurs. La figure 1 présente, de manière simplifiée, l'environnement, le problème et le principe de l'invention. Tous les écrans El - E4, le cas échéant sous forme de ressources RI - R4, aptes à permettre de produire lesdits écrans El - E4, sont initialement stockés dans une mémoire de stockage S. Un écran courant Ec est actuellement actif et correspond à l'écran actuellement affiché par un module logiciel d'interface utilisateur graphique. Pour cela, l'écran courant Ec doit être chargé en mémoire dynamique D. L'écran suivant Es, qui sera ultérieurement déterminé par une action de l'utilisateur, n'est pas encore connu. Cependant, ledit écran suivant Es, qui succédera à l'écran courant Ec pour devenir le nouvel écran actif, activé en lieu et place de l'écran courant Ec actuel, appartient nécessairement à un ensemble d'écrans El - E4 successeurs de l'écran courant Ec. On utilise dans la présente le terme « successeur » pour qualifier un suivant potentiel et le terme « suivant » pour qualifier le suivant effectif. Les interfaces utilisateur graphiques modernes permettent souvent un changement d'écran depuis un écran courant quelconque vers sensiblement tout autre écran. Aussi l'ensemble des successeurs peut être très étendu et comprendre, au plus, tous les écrans El - E4, le cas échéant à l'exclusion de l'écran courant Ec. Il peut exister des moyens permettant de réduire ledit ensemble des successeurs, par exemple lorsqu'il est impossible qu'un écran soit atteint directement depuis l'écran courant Ec. Le but du procédé selon l'invention est de pré-charger PR un jeu d'écran El - E3 aussi limité que possible, ledit jeu présentant une probabilité la plus élevée possible de contenir effectivement l'écran suivant Es, tel qu'il sera déterminé ultérieurement en fonction d'au moins une action de l'utilisateur. Le procédé selon l'invention est réitéré après chaque activation d'un nouvel écran courant Ec, et comprend plusieurs étapes. Pour ledit écran courant Ec il est déterminé un jeu d'écrans El - E3 à pré-charger. Ce jeu d'écrans El - E3 est ensuite effectivement pré-chargé PR. Le pré-chargement PR est généralement effectué en mémoire dynamique D. Ainsi dans l'exemple illustré à la figure 1, parmi quatre écrans El - E4, chargeables ou pré-chargeables à partir des ressources correspondantes RI - R4, il est sélectionné un jeu d'écrans El - E3 à pré-charger PR. El est pré-chargé à partir des ressources Ri. E2 est pré-chargé à partir des ressources R2. E3 est pré-chargé à partir des ressources R3. E4 n'a pas été retenu pour faire partie du jeu d'écrans à pré-charger et n'est pas pré-chargé à partir des ressources R4. Le pré-chargement PR comprend pour chaque écran El - E3 pré-chargé, tout 15 ou partie des opérations à réaliser pour réaliser un changement d'écran depuis l'écran courant Ec vers ledit écran pré-chargé. Les opérations effectivement retenues pour le pré-chargement d'un écran sont définies individuellement pour cet écran. Parmi toutes les opérations nécessaires à un changement d'écran : récupération en mémoire statique S des données ressources RI - R4 nécessaires à 20 construire un écran El - E4, un éventuel traitement de mise en forme de ces données, une éventuelle construction graphique de l'image de l'écran El - E4, un chargement en mémoire dynamique graphique de l'image de l'écran El - E4, et une bascule vers cet écran El - E4, lorsqu'il devient actif et remplace l'écran courant Ec, seule la dernière opération de bascule ne peut être réalisée de manière anticipée. Parmi les autres 25 opérations, il peut être choisi de réaliser l'une ou l'autre de ces opérations, principalement sur la base du temps nécessaire à leur réalisation. Ainsi une opération suffisamment courte pourra être reportée au moment de l'activation. Au contraire une opération plus longue pourra avantageusement être réalisée au cours du pré-chargement PR. Le but du pré-chargement PR est de réaliser en avance notamment les opérations les plus 30 couteuses en temps. Ainsi, dès que l'écran suivant Es est effectivement connu, il ne reste plus, pour activer ledit écran suivant Es et le transformer en nouvel écran courant actif, qu'a réaliser les opérations restantes non réalisées durant le pré-chargement PR et à réaliser a minima la dernière opération : la bascule. Ainsi, le pré-chargement PR permet de réduire le temps apparent de 35 changement d'écran, au temps de quelques opérations courtes et au minimum au temps de l'opération de bascule, qui s'avère être négligeable. Le temps apparent de changement d'écran est compté à partir de l'instant où l'écran suivant Es est connu avec certitude. Lorsque l'écran suivant Es est déterminé, les éventuelles dernières opérations non réalisées pendant le pré-chargement PR et l'opération de bascule vers l'écran 5 suivant Es sont réalisées, afin que l'écran suivant Es devienne le nouvel écran courant Ec et soit affiché. Si l'écran suivant Es est présent parmi les écrans pré chargés El - E3, ledit écran pré-chargé El - E3 est directement utilisé, économisant ainsi le temps des opérations réalisées pendant le pré-chargement PR, et permettant ainsi de réduire le 10 temps apparent de changement d'écran, compté à partir du moment où l'écran Es est connu avec certitude, peut plus facilement être inférieur à un seuil d'attente acceptable par un utilisateur. Toute la qualité de la stratégie de choix des écrans pré-chargés El - E3 consiste à assurer, avec une bonne probabilité, que l'écran Es puisse être affiché dans un temps acceptable en s'assurant qu'il soit présent parmi les écrans pré-chargés El - E3 si 15 le temps nécessaire à sa construction complète, suivie de son affichage, ne permet pas d'obtenir un temps acceptable. Ceci est le cas dans l'exemple illustré par la figure 1, où l'écran suivant Es est l'écran E2 qui fait partie du jeu d'écrans El - E3 pré-chargés. Si la stratégie a malgré tout échoué et que l'écran suivant Es n'est pas au nombre des écrans pré-chargés El - E3, le procédé réalise au contraire un chargement 20 complet dudit écran suivant Es, incluant toutes les opérations de changement d'écran. Dans ce cas, que l'on tente d'éviter au maximum, le procédé voit sa performance localement dégradée, mais le fonctionnement est assuré. Afin que le gain de temps soit effectif, le pré-chargement PR, y compris les opérations couteuses en temps, est avantageusement réalisé pendant le temps 25 d'activation, temps où l'écran courant Ec est actif et affiché à l'écran. Ainsi les opérations effectuées au titre du pré-chargement PR sont réalisées en temps masqué. Ainsi le temps de changement d'écran se décompose en un temps de pré-chargement, comprenant avantageusement les opérations longues, et réalisé en temps masqué, et un temps apparent de changement d'écran, débutant dès que l'écran suivant Es est connu, et réduit 30 aux opérations résiduelles, non réalisées pendant le pré-chargement PR, comprenant au minimum l'opération finale de bascule. Il se déduit du principe précédent que la qualité de la stratégie de détermination du jeu d'écrans à pré-charger El - E3 se mesure à sa capacité à déterminer un jeu d'écrans comprenant avec une bonne probabilité l'écran non encore 35 connu qui deviendra l'écran suivant Es, ce jeu étant de taille minimale, du fait du coût de la mémoire dynamique D. Aussi, selon un mode de réalisation possible, la détermination du jeu d'écrans à pré-charger El - E3 comprend les étapes suivantes. Pour un écran donné, qui peut typiquement être l'écran courant Ec, une première étape établit pour ledit écran donné une liste des écrans successeurs El - E4. Cette liste comprend au maximum tous les écrans existants dans l'application logicielle. Le cas échéant cette liste est avantageusement réduite aux seuls écrans pouvant être atteints depuis ledit écran donné. Cette liste exclut encore l'écran courant Ec qui ne peut se suivre lui-même. Au cours d'une deuxième étape, ladite liste est ordonnée ou ce qui est équivalent, chaque écran successeur se voit affecter un score permettant ensuite d'ordonner la liste par ordre de score décroissant. Ledit ordonnancement ou ladite notation peut être réalisé selon différents critères. Ainsi, l'ordonnancement peut être réalisé selon un premier critère en fonction d'une probabilité P d'être l'écran suivant Es de l'écran donné. L'ordonnancement est réalisé selon une probabilité P décroissante. Ainsi un écran aura d'autant plus de chances d'être pré-chargé qu'il est un écran suivant Es probable de l'écran donné. Selon un autre critère, ledit ordonnancement peut être réalisé en fonction d'un coût C de pré-chargement, typiquement exprimé par un temps nécessaire au pré-chargement PR ou une quantité de calculs à réaliser pour effectuer le pré- chargement PR. L'ordonnancement est réalisé selon un coût C décroissant. Ainsi un écran aura d'autant plus de chances d'être pré-chargé qu'il est couteux à pré-charger. Selon un autre critère, ledit ordonnancement peut être réalisé en fonction d'un coût mémoire Cm de pré-chargement, typiquement exprimé par une quantité de mémoire nécessaire au pré-chargement PR. L'ordonnancement est réalisé selon un coût mémoire Cm croissant. Ainsi un écran aura d'autant plus de chances d'être pré-chargé qu'il est peu consommateur de mémoire. Tous les critères précédents peuvent être combinés entre eux pour réaliser l'ordonnancement. A partir de la liste ordonnée, une troisième étape sélectionne les n premiers 30 écrans El - E3 de la liste afin de former le jeu d'écrans à pré-charger PR. Selon un mode de réalisation avantageux, une combinaison de deux critères ou plus peut être exprimée sous forme de règles, par exemple pour les critères probabilité P et coût C, de la forme : - si un écran présente une probabilité P élevée et un coût C élevé alors cet écran 35 doit être pré-chargé, - si un écran présente une probabilité P élevée et un coût C moyen alors cet écran doit être pré-chargé, - si un écran présente une probabilité P élevée et un coût C faible alors cet écran ne doit pas être pré-chargé, - si un écran présente une probabilité P moyenne et un coût C moyen alors cet écran doit ne doit pas être pré-chargé, - si un écran présente une probabilité P faible et un coût C élevé alors cet écran doit être pré-chargé, - si un écran présente une probabilité P faible ou un coût C faible alors cet écran ne doit pas être pré-chargé. Ces règles peuvent être interprétées par un moteur à logique floue afin de 10 prendre en compte simultanément l'ensemble des critères retenus et réaliser de manière conjointe l'étape d'ordonnancement et l'étape de sélection. Selon un premier mode de réalisation, les probabilités P d'être l'écran suivant Es d'un écran donné, sont calculées une seule fois. Ce calcul peut être réalisé simplement en analysant l'arbre des connexions 15 possibles entre écrans. Alternativement, ce calcul peut être réalisé par observation d'une utilisation du logiciel selon un scénario d'utilisation typique. Il peut ainsi être établi une table statistique pour chaque écran. Ainsi telle qu'illustrée à la figure 2, une telle table statistique présente pour un écran Ec une table indexée sur l'ensemble des écrans. Pour chaque écran 20 indexant, la table comprend une probabilité P que ledit écran indexant soit l'écran suivant de l'écran Ec. Ainsi un écran El présente une probabilité Pi, un écran E2 une probabilité P2, et un écran Ep une probabilité Pp d'être l'écran suivant Es de l'écran Ec. L'écran Ec lui-même est exclu en ce qu'il ne peut être son suivant. La ligne de la table de la figure 2 peut être déterminée pour tout écran en lieu et place de l'écran Ec et fournir 25 ainsi une matrice statistique. Selon le premier mode de réalisation cette table/matrice statistique est déterminée une fois, au cours d'une phase préalable à l'utilisation effective du logiciel, et est utilisée de manière statique par le procédé, afin de déterminer le jeu d'écrans El - E3 à pré-charger. 30 Si un coût de pré-chargement C ou tout autre critère, tel le coût mémoire Cm, est utilisé lors de l'étape d'ordonnancement, un tel coût C ou autre critère peut avantageusement être stocké dans une table, éventuellement confondue avec la table statistique. Ainsi un écran El présente un coût Ci, un écran E2 un coût 02, un écran Ec un coût Cc, et un écran Ep un coût Cp. Ces coûts Ci, C2, Cc, Cp peuvent typiquement 35 être déterminés durant ladite phase préalable. Selon un autre mode de réalisation, la table/matrice statistique est mise à jour dynamiquement. Dans ce cas, les probabilités Pi, P2, Pp, pour chaque écran Ec, sont recalculées par observation des changements d'écran en cours d'utilisation du logiciel. Ainsi chaque changement d'écran est analysé et vient modifier le nombre d'occurrences d'un écran en tant que écran suivant Es d'un écran courant Ec. Une telle approche nécessite d'embarquer dans le logiciel un module d'observation et d'analyse des changements d'écran apte à mettre à jour la table statistique. Une telle approche permet avantageusement d'optimiser la table/matrice statistique en fonction d'un utilisateur et ainsi de déterminer un jeu d'écrans El - E3 à pré-charger le plus susceptible de contenir l'écran suivant Es, y compris dans un jeu comprenant un nombre réduit d'écrans. De plus une telle approche permet une auto-adaptation à un utilisateur, y compris en cas de changement d'habitudes de l'utilisateur, ou de changement d'utilisateur. Il peut être supposé que les coûts C restent sensiblement invariables. Aussi une mise à jour des coûts C ne semble pas d'un grand intérêt. L'étape de sélection est importante en ce qu'elle dimensionne le jeu d'écrans El - E3 à pré-charger. Cette dimension doit rester réduite afin de ne pas grever le budget mémoire alloué au pré-chargement PR, tout en étant assuré, avec une probabilité suffisante, que l'écran suivant Es est compris dans ledit jeu. La sélection conserve les n premiers écrans de la liste ordonnée, ou encore 20 les n écrans ayant obtenu le meilleur score lors de l'étape de notation. Selon un premier mode de réalisation, simple, le nombre n d'écrans sélectionnés est choisi constant ; n est alors typiquement configurable et est un paramètre du procédé. Selon un autre mode de réalisation, particulièrement adapté au cas où les 25 écrans ne présentent pas des tailles comparables, le nombre d'écrans sélectionnés est tel que la quantité de mémoire allouée au pré-chargement PR soit constante. Ainsi n est tel que le ou les n premier(s) écran(s) sélectionné(s) totalise(nt) une quantité de mémoire dynamique occupée inférieure (ou égale) à la quantité de mémoire allouée au pré-chargement PR. 30 Selon un autre mode de réalisation, il n'est conservé/sélectionné que les écrans dont la probabilité P d'être suivant est supérieure à un seuil donné. Ce seuil est typiquement configurable et est un paramètre du procédé. Un tel mode de réalisation permet de réduire encore la quantité de mémoire dynamique allouée au pré-chargement PR. La mémoire ainsi libérée peut alors avantageusement être dédiée à 35 d'autres fonctions. Il est encore possible de tenir compte du temps d'activation moyen, respectivement minimum, de l'écran courant Ec, soit le temps pendant lequel l'écran courant Ec est actif et est affiché. Ce temps est indicatif du temps disponible pour réaliser le pré-chargement PR avant que l'écran suivant Es ne soit déterminé. Il n'est pas utile de pré-charger un écran si ce pré-chargement PR n'est pas terminé lorsque l'écran suivant Es est connu et que la bascule doit être réalisée. Aussi, le ou les n premier(s) écran(s) sélectionné(s), peuvent être déterminés tels qu'ils cumule(nt) un temps de pré-chargement inférieur au temps d'activation moyen, respectivement minimum, pendant lequel l'écran courant Ec est actif. Ce temps d'activation moyen, respectivement minimum, peut typiquement être déterminé, pour tous les écrans, à l'instar du coût de pré-chargement C, durant une phase /0 d'utilisation préalable. Ce temps d'activation est avantageusement stocké dans une table indexée sur les écrans. REVENDICATIONS1. Procédé de gestion des écrans (El - E4, Ec, Es) d'un module logiciel d'interface utilisateur graphique, caractérisé en ce qu'il comprend, après chaque activation d'un nouvel écran courant (Ec), les étapes suivantes : - détermination d'un jeu d'écrans (El - E3) à pré-charger, - pré-chargement (PR) dudit jeu d'écrans (El - E3), lorsque l'écran suivant (Es) est déterminé, bascule vers ledit écran suivant (Es), qui devient le nouvel écran courant (Ec) actif, en utilisant l'écran pré-chargé (El - E3) si ledit écran suivant (Es) est pré-chargé, ou après réalisation d'un chargement dudit écran suivant (Es) en cas contraire. 2. Procédé selon la revendication 1, où le pré-chargement (PR) est réalisé pendant le temps d'activation durant lequel l'écran courant (Ec) est actif. 3. Procédé selon l'une quelconque des revendications 1 ou 2, où la détermination du jeu d'écrans à pré-charger (El - E3) comprend les étapes : - établissement pour un écran donné, d'une liste des écrans successeurs (El - E4), - ordonnancement de ladite liste en fonction d'une probabilité (P) décroissante d'être l'écran suivant (Es) de l'écran donné et/ou d'un coût (C) décroissant de pré-chargement, et/ou d'un coût mémoire (Cm) de stockage croissant, - sélection dans ladite liste du ou des n premier(s) écran(s) (El - E3). 4. Procédé selon la revendication 3, où les probabilités (P) d'être l'écran suivant (Es) d'un écran donné, sont calculées une fois, au cours d'une phase préalable. 5. Procédé selon la revendication 3, où les probabilités (P) d'être l'écran suivant (Es) d'un écran donné, sont mises à jour dynamiquement. 6. Procédé selon l'une quelconque des revendications 3 à 5, où n est constant. 7. Procédé selon l'une quelconque des revendications 3 à 5, où n est tel que le ou les n premier(s) écran(s) sélectionné(s) totalise(nt) une quantité de mémoire inférieure à la quantité de mémoire allouée au pré-chargement. 8. Procédé selon l'une quelconque des revendications 3 à 7, où le ou les 25 écran(s) sélectionné(s) présente(nt) une probabilité d'être l'écran suivant supérieure à un seuil. 9. Procédé selon l'une quelconque des revendications 3 à 8, où le ou les n premier(s) écran(s) sélectionné(s) cumule(nt) un temps de pré-chargement inférieur à untemps d'activation moyen, respectivement minimum, pendant lequel l'écran courant (Ec) est actif.