Procédé d'assistance au développement ou à l'utilisation d'un système complexe
La présente invention concerne un procédé d'assistance au développement ou à l'utilisation d'un système complexe.
Le développement d'un système complexe, c'est-à-dire d'un système comprenant une multiplicité d'éléments dont les états et/ou les opérations sont interdépendants, requiert généralement la caractérisation de ses données fonctionnelles et leur organisation sémantique ainsi qu'une réalisation d'une représentation graphique de son architecture fonctionnelle.
Par exemple, une telle représentation graphique permet d'assister un utilisateur du système en lui donnant une vue d'ensemble sur les différents éléments du système intervenant lors de son fonctionnement pour, par exemple, vérifier, valider et/ou optimiser les interactions de ces derniers.
Une telle représentation graphique est actuellement effectuée de façon manuelle par des personnes techniquement qualifiées utilisant des documents générés lors de la conception, du développement et/ou de la réali- sation du système.
Pour cela, ces personnes techniquement qualifiées doivent étudier, analyser et/ou organiser fonctionnellement une masse importante de documents, pas toujours pertinente et parfois redondante, pour identifier les éléments mis en œuvre par le système ainsi que leurs fonctions et leurs inte- ractions dans les différentes utilisations possibles.
Finalement, ces personnes techniquement qualifiées doivent manuellement reconstituer les éléments nécessaires à l'utilisateur final selon une structure fonctionnelle en effectuant une représentation graphique illustrant leur compréhension du système et de ses éléments, notamment de leurs fonctions et de leurs interactions.
Il apparaît que la réalisation d'une représentation graphique de l'architecture fonctionnelle d'un système complexe telle que décrite ci- dessus présente de nombreux inconvénients. Ainsi, elle requiert un investis-
sèment important en temps et en coût, notamment compte tenu de la qualification requise des personnes employées et de la compréhension difficile des fonctions des éléments, voire de sous-éléments, mis en œuvre par un système complexe. Typiquement, ces personnes sont des ingénieurs ayant participé au développement du système et/ou des sous-traitants qualifiés, en tant qu'acteurs permanents, et sont habitués au langage technique du fabricant du système.
Mais malgré la qualification de ces personnes, il résulte de la nature manuelle du procédé de représentation que ce dernier présente un risque d'erreur proportionnel à l'importance de cette intervention humaine.
Finalement, un tel procédé aboutit à des représentations graphiques qui peuvent se révéler rapidement et simplement caduques dues aux contextes d'évolutions et/ou aux changements durant le développement des systèmes, ou encore suite à une modification technique ultérieure du système, ce qui rend nécessaire une nouvelle étude des nouveaux documents techniques et une nouvelle représentation du fonctionnement du système.
Par ailleurs, selon un aspect de l'invention qui peut être considéré de façon indépendante, il est connu que la commercialisation d'un système complexe requiert l'offre d'un service d'assistance du type « help desk » en anglais.
Actuellement, un tel service est généralement formé par un service téléphonique et/ou un manuel d'assistance.
Toutefois, ces solutions se révèlent coûteuses et/ou inefficaces, no- tamment du fait que l'utilisateur d'un système complexe faisant face, par exemple, à une panne ou à une information d'état du système de ce dernier, doit chercher une réponse à la panne ou une explication à cette information dans un ouvrage global, couvrant l'ensemble du fonctionnement du système, généralement complexe et long. La présente invention vise à résoudre au moins un de ces problèmes.
Elle comprend la constatation que des fichiers de documents générés lors de la conception, du développement et de la réalisation d'un système complexe sont généralement écrits avec une structure et/ou une organisation de
contenu documentaire ainsi qu'un lexique et un style similaires, propres au domaine technique et/ou à l'entreprise concernés.
C'est pourquoi l'invention concerne un procédé d'assistance au développement ou à l'utilisation d'un système complexe comprenant une pluralité d'éléments dont des états et/ou des opérations sont interdépendants, une documentation du système identifiant ces états et/ou ces opérations, caractérisé en ce qu'il comprend les étapes suivantes:
L'étape d'identifier des cas d'utilisation du système dans la documentation par une recherche automatique de symboles relatifs à une util i- sation du système,
L'étape de générer à partir de ces symboles des procédures, telles qu'une procédure décrit une opération effectuée par le système en une ou plusieurs étapes au moyen de ses éléments, et
L'étape d'assister l'utilisateur en utilisant une programmation objet de ces procédures selon un standard UML pour « Uniform Modelling Language » en anglais.
Grâce à l'invention il est possible, d'une part, de générer simplement et de façon fiable une représentation graphique de l'architecture fonctionnelle statique d'un système complexe puisqu'une représentation, ou modèle objet, conforme à un standard UML peut être automatiquement généré en considérant chaque procédure comme une classe de ce standard.
Ainsi, l'invention permet de générer une représentation graphique de l'architecture fonctionnelle statique de façon simple et fiable, sans requérir un coût et des délais importants. Une telle représentation permet un contrôle fonctionnel et une validation de la cohérence des fonctions et des interactions de ces éléments du système considéré.
En outre, le résultat généré correspond à un traitement automatique d'un, voire de plusieurs, document(s). Dès lors, le risque d'erreur dû à une opération manuelle de lecture ou de représentation est inexistant.
D'autre part, selon l'aspect de l'invention pouvant être mis en œuvre de façon indépendante, l'invention permet également de fournir une assistance à un utilisateur d'un système complexe en générant des indications en
temps réel du système, basées sur l'état et le fonctionnement du système et donc adaptées à l'utilisation en cours de ce dernier, du type « help dek ».
En effet, l'utilisation de la partie dynamique d'un modèle objet, conforme au standard UML, permet de générer simplement et dynamiquement, des objets en fonction de l'état du système.
Dès lors, en considérant un document, tel que des spécifications techniques ou un manuel d'utilisation, le procédé permet de fournir à un utilisateur des informations extraites de ce document pertinentes et propres à l'utilisation en cours du système. Dans une réalisation, on utilise une partie statique de la programmation objet pour générer une représentation graphique de l'architecture fonctionnelle statique du système dans laquelle une classe d'un modèle objet correspond à une procédure générée.
Selon une réalisation, on utilise une partie dynamique de la program- mation objet pour générer des messages indiquant des opérations pouvant être effectuées par un développeur ou un utilisateur en fonction de l'état du système.
Dans une réalisation, on génère une procédure en groupant des paramètres relatifs à un même cas d'utilisation. Selon une réalisation, on détermine que deux paramètres sont relatifs à un même cas d'utilisation en considérant une analyse sémantique du symbole et/ou une analyse de la position du symbole dans la documentation.
Dans une réalisation, la documentation étant transcrite avec des mots, les symboles correspondent à des mots clefs associés à un paramètre d'un cas d'utilisation.
Selon une réalisation, on associe à chaque cas d'utilisation des passages de la documentation comprenant les mots clefs identifiés.
Dans une réalisation, on utilise un formulaire interactif comprenant des champs d'entrée correspondant à des paramètres de cas d'utilisation et/ou de procédures pour écrire la documentation.
L'invention concerne également un dispositif d'assistance au développement ou à l'utilisation d'un système complexe comprenant une pluralité
d'éléments dont des états et/ou des opérations sont interdépendants, une documentation du système identifiant ces états et/ou ces opérations, caractérisé en ce qu'il est comprend:
Des moyens pour identifier des cas d'utilisation du système dans la documentation par une recherche automatique de symboles relatifs à une utilisation du système,
- Des moyens pour générer, à partir de ces symboles, des procédures, telles qu'une procédure décrit une opération effectuée par le système en une ou plusieurs étapes au moyen de ses éléments, et - Des moyens pour assister l'utilisateur en utilisant une programmation objet de ces procédures selon un standard UML pour « Uniform Model- ling Language » en anglais selon un procédé conforme à l'une des réalisations précédentes.
L'invention concerne également une application d'un procédé d'assistance selon l'une des réalisations précédentes pour l'utilisation d'une imprimante.
L'invention sera mieux comprise à la lumière de la description effectuée ci-dessous, à titre d'exemple non limitatif, en référence aux figures ci- jointes sur lesquelles les figures 1 à 6 sont des copies d'écran illustrant le déroulement d'un procédé conforme à l'invention.
En référence à la figure 1 est représentée une documentation, sous la forme d'un texte 10, destiné à un développeur et/ou à un utilisateur d'un système complexe. Dans cet exemple, ce document est une spécification technique d'un système complexe relatif à l'établissement d'une connexion. Un tel système comprend donc une pluralité d'éléments, notamment le terminal client et l'agent, dont les états et/ou les opérations sont interdépendants puisque, par exemple, le terminal client requiert l'établissement d'une connexion TCP avec l'agent - point 1. du paragraphe intitulé « basic flow ». Conformément à l'invention, il est possible de générer de façon automatique un modèle objet de ce système, conforme à un standard du type UML, pour « Unified Modelling Language » en anglais, en effectuant dans
un premier temps une identification de cas d'utilisation du système décrits dans ce texte 10.
A cet effet, on effectue une recherche de mots clefs dans le texte 10 au moyen d'une reconnaissance automatique de caractères. Par exemple, cette recherche est effectuée vis-à-vis de termes généralement utilisés pour spécifier un paramètre d'un cas d'utilisation.
De façon non limitative, de tels termes en anglais sont :
- « context » pour décrire le contexte d'une fonction au sein d'un système, par exemple ultérieure à une autre fonction, - « summary » pour présenter de façon résumée cette fonction,
- « actors » pour identifier les éléments qui mettent en œuvre la fonction,
- « starter event », pour indiquer un événement qui démarre la fonction,
- « pre-conditions » pour les états ou conditions dans lesquelles se si- tue le système avant une opération,
- « input parameters » et « occuring events » pour les données sources considérées avant d'effectuer une fonction,
- « opérations » pour les opérations élémentaires mises en œuvre par le système, - « output data » pour les données fournies par le système,
- « post conditions » pour les états ou conditions dans lesquelles se situent le système et/ou ses éléments après avoir exécuté une opération,
- « resuit » pour présenter le résultat d'une opération, - « links with other functions » pour donner la liste des opérations,
- « graphical interface » pour la représentation graphique d'une fonction,
- « exceptions » et « alarms » pour signaler des états anormaux du système. Toutefois, la recherche de ces mots clefs peut être élargie par utilisation d'une base de données indiquant des termes pouvant spécifier un paramètre d'un cas d'utilisation avec des synonymes, des acronymes et tout
type de termes propres à, par exemple, une entreprise, un domaine technique et/ou un type de produit.
Grâce à la structure du document, il est également possible de représenter ces parties principales, ou chapitres 20 (figure 2), des indications gé- nérales 22 ou les cas d'utilisation 24 identifiées.
Dans cette réalisation, lorsqu'un mot clef a été identifié, une partie du texte 10 comprenant ce mot clef est extraite et considérée comme un paramètre d'un cas d'utilisation. Typiquement, cette partie peut correspondre à au paragraphe comprenant ce mot clef. Par la suite, selon une deuxième étape propre à l'invention, on génère des procédures dans le langage du texte, une procédure décrivant une opération effectuée dans le système de telle sorte qu'on puisse assister l'utilisateur en utilisant, lors d'une troisième étape, une programmation d'objets issus de ces procédures. A cet effet, on associe l'ensemble des paramètres relatifs à un même cas d'utilisation au sein d'une procédure en utilisant, par exemple, une analyse sémantique et/ou une analyse basée sur la position d'un ou de plusieurs mots clef dans le texte pour déterminer si deux paramètres se rapportent à un même cas d'utilisation. Le résultat d'une telle analyse sémantique est représenté sur la figure
3 avec une dénomination « classes 30 » suite à une analyse neurolinguistique des mots clefs identifiés.
Par la suite, on associe des paramètres en générant des objets comprenant, selon un ordre similaire pour chaque objet, les passages du texte associés.
Conformément à l'invention, on assiste alors l'utilisateur en utilisant une programmation objet à partir des procédures comprenant ces parties du texte selon un standard UML pour « Uniform Modelling Language » en anglais. Un tel standard permet ainsi de générer une représentation graphique
40 (figure 4) de l'architecture fonctionnelle statique du système en considérant chaque procédure comme une classe (44) d'un modèle objet.
A cet effet, certaines propriétés des procédures précédemment identifiées sont transformées en attributs d'une classe UML.
Ainsi, il devient automatique d'obtenir cette représentation fonctionnelle statique 40 de l'architecture d'un système en utilisant une représenta- tion de ces classes conformes à un modèle statique fonctionnelle propre à standard ULM.
Notamment, une telle représentation 40 montrent les liens 42 fonctionnelles de telle sorte qu'il est aisé de vérifier l'absence d'un tel lien afin de valider le système. Ainsi, comme représenté sur la figure 5, une interface utilisateur 50 peut informer ce dernier de l'avancement du fonctionnement du système tandis qu'une interface 52 interne informe un développeur/programmateur des données internes 54 requises pour mettre en œuvre une opération dont l'exécution 56 ne peut s'effectuer compte tenu de cette absence. Lorsque le lien manquant est rétabli, l'exécution 60 (figure 6) est possible et un récapitulatif 62 de cette opération peut être présenté.
De fait, selon une autre application dynamique, pouvant être utilisée de façon indépendante de l'application statique, on utilise une partie dynamique de la programmation objet UML pour générer des scripts 70 (figure 7) indiquant des opérations pouvant être effectuée par l'utilisateur en fonction de l'état du système.
Pour cela, le texte de base considéré est un texte du type manuel d'utilisation qui décrit les actions pouvant/devant être réalisées par un opérateur en fonction des opérations et/ou des états des éléments du système. Dans ce cas, des procédures générées selon l'invention comprennent des parties de ce manuel, extraites par un procédé conforme à l'invention, indiquant les opérations devant être effectuées par l'utilisateur en fonction des opérations et/ou des états du système.
Dans ce cas, l'utilisation de la partie dynamique du standard ULM permet d'afficher la procédure pertinente, c'est-à-dire les parties pertinentes du manuel, en fonction de l'état et/ou d'une opération du système.
Ainsi, l'invention permet de générer un « help desk » proactif, c'est-à- dire agissant préalablement à une demande de l'utilisateur, et fournissant des informations ciblées et évolutives en fonction de l'utilisation du système.
La présente invention peut, par exemple, être utilisée dans le do- maine des imprimantes où des opérations d'entretien et/ou de réparation peuvent être fournies à un utilisateur.
La présente invention est susceptible de nombreuses variantes: Par exemple, il est possible d'utiliser un formulaire interactif comprenant des champs d'entrée correspondant à des paramètres de cas d'utilisation et/ou de procédures pour écrire le texte de base de telle sorte que l'opération de reconnaissance de caractère se limite à la reconnaissance des champs d'entrée.
De même, les applications de l'invention peuvent être diverses et concerner, à titre d'exemple non limitatif, un serveur, un ordinateur ou, d'une façon générale, un appareil effectuant des opérations tel qu'un périphérique comme une imprimante ou un téléphone portable.