<Desc/Clms Page number 1>
"Un appareil de contrôle de logiciels" La présente invention concerne un appareil de contrôle de logiciels d'application.
Dans la description du présent brevet, le terme"contrôle"se rapporte à l'ensemble des opérations de contrôle réalisées avant l'expédition d'un logiciel ou d'un ensemble de logiciels, ce au cours du développement et de l'étape finale de ce développement, de même qu'il se rapporte à la maintenance permanente, au développement et au support du logiciel après l'expédition de celui-ci vers l'utilisateur final.
Plusieurs méthodes spécifiques de contrôle sont connues actuellement, dont une est décrite dans la description du brevet européen nO EP-BI-0286361 (Westinghouse).
Toutefois, un des problèmes auxquels ont été confrontés les ingénieurs de champ d'essai lors du contrôle de logiciels d'application a été d'assurer l'accès à la version la plus récente du logiciel utilisée sur un système destinataire. Fréquemment, il se produit des retards lorsqu'il s'agit d'accéder aux programmes et aux fichiers de données corrects destinés à un système destinataire particulier et des erreurs sont souvent entraînées par l'utilisation d'une version incorrecte de logiciel. Cela peut conduire à une perte de temps considérable, à une perte de revenus et à une perte de confiance des clients. Cela fut particulièrement le cas pour des organisations de développement de logiciels où un grand nombre de logiciels d'application utilisés sur des systèmes destinataires sont développés par l'organisation.
Une façon d'aborder le problème a été d'accéder en mode interactif via le modem au système destinataire et de transmettre les signaux de diagnostic d'erreurs via les lignes de communication. Alors que ce procédé se révèle satisfaisant dans une certaine mesure, il présente des limites quant à la nature du contrôle pouvant être réalisé. Par exemple, il n'est dans certains cas pas pratique de réaliser des contrôles très étendus utilisant de larges volumes de données et de programmes utilisés par les
<Desc/Clms Page number 2>
systèmes destinataires. En outre, cette approche ne permet pas un accès rapide aux programmes et aux données tels qu'ils ont été développés sur le système central dans des situations où différentes pièces de logiciels d'application sont développées.
Les objectifs de la présente invention sont donc de développer un appareil de contrôle de logiciels, lequel : - est capable de fournir un accès presque immédiat à tous les programmes et à toutes les données de contrôle appropriées, ceux-ci étant développés en interne et à distance sur des systèmes destinataires sur site ; - fournit un accès correct aux mises à jour les plus récentes de programmes et de fichiers de données, ce de manière simple et ne requérant que très peu de temps de programmation ; - permet un vaste contrôle dans toutes les situations ; et - assure l'efficacité du contrôle de nouvelles versions de logiciels d'application destinés à être installés sur un grand nombre de systèmes destinataires.
Conformément à la présente invention, il est prévu un appareil de contrôle de logiciels destiné à contrôler un logiciel de système destinataire développé sur un système central, l'appareil comprenant : - un contrôleur d'essai connecté à une mémoire vive ; - une pile de disques durs connectée à un contrôleur de disques comprenant : . un fichier d'instructions de contrôle d'accès de sécurité ;
<Desc/Clms Page number 3>
. un groupe d'instructions de contrôle de logiciels ; et . des programmes et des données pour le logiciel devant être testé, - une interface d'entrée connectée au contrôleur d'essai et destinée à la réception des commandes d'essai ;
et - une interface de sortie, appareil de contrôle dont la pile de disques renferme des sous-répertoires pour chaque ensemble de logiciels d'application, les sous-répertoires comprenant : - un niveau émetteur cible contenant plusieurs groupes de programmes, chaque groupe étant associé à un système destinataire et contenant des programmes développés ou modifiés sur ledit système destinataire ; - un niveau émetteur central contenant plusieurs groupes de programmes, chaque groupe étant associé à un système destinataire et contenant des programmes destinés au dit système destinataire et étant développés ou modifiés sur un système central afin de développer le logiciel ; - un niveau de base contenant un ensemble de fichiers communs à tous les systèmes destinataires ;
et - un niveau de données contenant plusieurs fichiers de données de contrôle, chaque fichier étant associé à un système destinataire, appareil de contrôle dont le contrôleur d'essai comprend un dispositif permettant de : - déterminer automatiquement les sous-répertoires corrects et, à l'intérieur des
<Desc/Clms Page number 4>
dits sous-répertoires, les groupes corrects de programmes dans les niveaux émetteur cible et émetteur central ainsi que les fichiers corrects de données dans le niveau de données pour chaque séance d'essai déclenchant le signal introduit sur l'interface d'entrée ;
et - commander automatiquement l'extraction des dits groupes de programmes, des programmes de base et des dits fichiers de données par l'accès aux niveaux émetteur cible, émetteur central et aux commandes de base et de données ainsi que par la transcription des programmes et des données restituées sur la mémoire vive, par l'extraction des instructions de contrôle et par la commande de contrôle des programmes et des données restitués dans la mémoire vive.
Selon une forme de réalisation de l'invention, la pile de disques durs enregistre un fichier de codes de système destinataire, chaque code étant associé à une séance d'essai, et le contrôleur d'essai comprend un dispositif destiné à extraire un code de système destinataire conformément aux signaux reçus de déclenchement de la séance d'essai et destiné à permettre automatiquement l'accès aux programmes et aux données appropriés de même qu'aux instructions de contrôle ainsi que leur extraction par décodage du code du système destinataire.
De préférence, la pile de disques mémorise un fichier de listes, chaque liste étant associée à un code particulier de système destinataire et comprenant les adresses pour les programmes appropriés des sous-répertoires et les fichiers de données associés.
Selon une autre forme de réalisation de l'invention, le fichier des codes du système destinataire et le fichier des listes sont mis à jour de manière dynamique par le contrôleur d'essai en temps réel.
Selon une autre forme de réalisation de l'invention, les fichiers de données de
<Desc/Clms Page number 5>
contrôle comprennent des échantillons de données d'essai pour le système destinataire associé, et le contrôleur d'essai comprend un dispositif destiné à la mise à jour automatique d'un fichier de données comprenant des données réelles provenant du système destinataire à distance et requises pour le contrôle.
On comprend plus clairement la présente invention grâce à la description de certaines formes de réalisation qui est donnée ci-après uniquement à titre d'exemple et faisant référence au dessin annexé, lequel est un schéma illustrant un appareil de contrôle de logiciels conforme à l'invention.
Si l'on se réfère au dessin, celui-ci représente un appareil de contrôle de logiciels conforme à l'invention et désigné généralement par le numéro de référence 1. L'appareil 1 comprend un contrôleur d'essai 2, lequel est un circuit de contrôle à micro-processeur de modèle IBM AS400 9406F. 50 comprenant un disque dur de 12,5 Gb et une mémoire vive de 96 Mb.
L'appareil 1 est destiné au contrôle de logiciels d'application pour systèmes destinataires et développés sur un système central. Le contrôle du logiciel a lieu au cours du développement, lors des étapes finales de développement et après le lancement du programme pour un support permanent et le développement de nouvelles versions pour les systèmes destinataires.
Le contrôleur d'essai 2 est connecté à une interface d'entrée 3 permettant à un ingénieur de champ d'essai d'enregistrer les instructions régissant les opérations de contrôle devant être exécutées. Le contrôleur 2 lit un fichier de contrôle d'accès de sécurité 4 enregistré sur disque et comprenant des instructions de contrôle de sécurité afin de permettre l'accès des utilisateurs aux données et aux programmes mémorisés.
Le fichier 4 est généré par le système d'exploitation de l'appareil 1 et comprend l'accès aux instructions de contrôle. Ces instructions de contrôle d'accès sont mémorisées comme un profil pour chaque utilisateur de l'appareil 1, chaque
<Desc/Clms Page number 6>
utilisateur disposant d'une entrée indexée dans le fichier d'utilisateur de type définition également mémorisé dans le disque. De cette manière, une demande d'utilisation du système est dans un premier temps contrôlée afin de fixer un code autorisé d'identification de l'utilisateur. Lorsque l'identité de l'utilisateur a été validée, la liste indexée de profils est adressée afin de déterminer les droits d'accès de cet utilisateur particulier.
Toutefois, il est en outre prévu un groupe d'instructions de contrôle d'accès en fonction du niveau de contrôle, ce afin de fournir un niveau de sécurité qui est plus élevé que celui établi par le système d'exploitation. Cette mesure est appliquée par la définition d'un groupe exclusif de types de définitions d'utilisateurs en plus des définitions du système d'exploitation. Les droits d'accès établis dans ces types de définitions peuvent par exemple exclure l'accès à certaines versions d'outils logiciels et/ou de développement assurant ainsi que l'accès au cadre d'utilisation correct de développement ou de contrôle soit fixé par un directeur de projet ou un officier de sécurité. Le fait de déterminer l'accès de cette manière éloigne la possibilité pour l'ingénieur du champ d'essai d'accéder à un logiciel auquel il n'a pas accès.
Les codes pour les objets des systèmes destinataires (programmes et données) sont mémorisés dans un fichier 5 sur une pile de disques durs à laquelle on accède par le contrôleur d'essai 2. Ces codes sont associés directement aux instructions d'accès de sécurité du fichier 4 de telle sorte que chaque utilisateur ayant accès à l'appareil de contrôle de logiciels 1 peut uniquement accéder aux objets désignés par les codes du fichier 5. Les codes du fichier 5 peuvent dans la pratique se rapporter aux objets telle qu'une phase de contrôle particulière d'un certain projet de développement de logiciels.
Le format peut être : Code du système prototype Objets TSC 0073 Programmes et données pour les logiciels d'application #05, phase
<Desc/Clms Page number 7>
de contrôle #3 TSC 0135 programmes et données pour le support de logiciels d'application #7 installés sur un système destinataire #105 et contrôle du service de support.
Un aspect très important concerne le fait que le contrôleur d'essai 2 maintient de manière dynamique le fichier 5 en temps réel afin d'offrir un accès de sécurité aux versions appropriées du logiciel.
D est prévu un fichier 6 mémorisant les listes bibliothèques pour les codes du système destinataire. Les objets (programmes et données) sont mémorisés sur l'appareil de contrôle de disque 1 sous forme de groupes ou de listes et la séquence permettant d'accéder aux bibliothèques pour toute tâche particulière est régie par une liste. Dans l'appareil 1, il est prévu une liste pour chaque code de système prototype du fichier 5 dans une liaison bi-univoque. Pour chaque code du fichier 5, il est prévu une liste bibliothèque dans le fichier 6 régissant la séquence dans laquelle on accède aux objets pour l'opération particulière. H est prévu un contrôleur de disques 7 permettant au contrôleur 2 d'accéder aux objets qui sont mémorisés sur une pile de disques durs.
Sur le dessin, le flux des signaux d'accès aux objets mémorisés sur la pile de disques 8 est désigné par le groupe de flèches 20 (en traits interrompus). Lors du fonctionnement, lorsque un ingénieur de champ d'essai souhaite accéder aux objets pour le contrôle, il encode simplement les détails corrects requis par le contrôleur d'essai, en réponse aux instructions de contrôle d'accès extraites à partir du fichier 4.
Une fois cet encodage réalisé, le contrôleur d'essai 2 détermine automatiquement le code correct du système destinataire, la liste bibliothèque associée et extrait ensuite
<Desc/Clms Page number 8>
les objets appropriés. Lors de cette étape, le contrôleur d'essai 2 crée automatiquement le cadre d'essai correct pour l'ingénieur de champ d'essai. H s'agit là d'une étape très importante dans la mesure où différentes opérations de contrôle sont possibles et où un nombre déroutant de systèmes destinataires doit être supporté.
Un avantage pratique concerne le fait que lors de l'utilisation des fichiers 4,5 et 6 et lors d'une mise à jour en temps réel et dynamique du fichier du code du système prototype 5 et du fichier de liste 6, l'ingénieur de champ d'essai sera toujours confronté à un cadre d'essai correct, de même que les pertes de temps et les erreurs dues au travail sur des versions de logiciels dépassées seront par exemple évitées.
Pour chaque groupe de logiciels d'application, la pile de disques durs 8 présente des sous-répertoires 8 (a) comme le montre le dessin. Par souci de clarté, ces sousrépertoires 8 (a) se rapportent uniquement à quatre systèmes destinataires, alors que dans la pratique ils sont présents dans un nombre généralement beaucoup plus élevé.
En outre, alors que chaque système destinataire est représenté comme ne comprenant qu'une seule bibliothèque, on appréciera le fait que la présence d'un plus grand nombre est possible et même probable. Les sous-répertoires 8 (a) comprennent le niveau TO (émetteur-cible), le niveau HO (émetteur central), le niveau B (base) et le niveau D (données).
Le niveau TO contient une bibliothèque pour un système destinataire gérant (ou destiné à gérer) le groupe particulier de logiciels d'application associé aux sousrépertoires 8 (a). Chaque bibliothèque est associée à un système destinataire et aux programmes spécifiques au système destinataire particulier et qui sont émis sur le système destinataire.
Le niveau HO contient une bibliothèque pour chaque système destinataire gérant (ou destiné à gérer) le groupe de logiciels d'application. Chaque bibliothèque est associée à un système destinataire et présente des programmes spécifiques au système destinataire. Toutefois, dans ce cas, des programmes sont émis par le système central.
<Desc/Clms Page number 9>
Le niveau B présente une simple (vaste) bibliothèque associée au groupe de logiciels d'application mais est commun à tous les systèmes destinataires gérant (ou destinés à gérer) ce logiciel. Cette bibliothèque ne comprend que des programmes objets.
Enfin, le niveau D présente un groupe de bibliothèques de fichiers de données, chacune étant associée à un système destinataire particulier. Les fichiers de données sont dans de nombreux cas des échantillons de données d'essai qui peuvent être reçus en différé ou qui peuvent dans certains cas être mis à jour en direct à partir du système destinataire, ce en fonction de la nature du contrôle requis. L'association de ces fichiers aux programmes associés est mise à jour de manière dynamique grâce à l'utilisation d'une base de données de tables d'accès presque relationnelle. Les fichiers de données des bibliothèques D peuvent également contenir des paramètres pour le fonctionnement du système destinataire.
Lors du fonctionnement, les programmes et les données pour une séance d'essai sont extraites par le contrôleur de disques 7 accédant automatiquement aux bibliothèques correctes pour la séance par détermination des sous-répertoires corrects et des adresses de bibliothèques à partir de la liste extraite à partir du fichier 6. L'accès aux bibliothèques est possible dans les séquences TO, HO, B et D même si une bibliothèque de TO ou HO est vide. La restitution des programmes et des données associées à la mémoire vive 9 est désignée par les flèches 30.
On appréciera immédiatement le fait que l'appareil de contrôle de logiciels 1 mémorise tous les programmes et toutes les données de contrôle associées pour tous les systèmes destinataires pour lesquels le logiciel d'application est développé et a été développé par le système central de l'appareil 1. Etant donné que les programmes spécifiques au système destinataire sont séparés, l'appareil 1 peut mémoriser une bibliothèque à un seul niveau pour chaque pièce de logiciel d'application. En outre, la subdivision des programmes spécifiques du système destinataire en niveaux HO et TO offre une nouvelle structure et augmente les facilités d'accès.
Dans la mesure
<Desc/Clms Page number 10>
où, dans la moyenne, la bibliothèque de base B mémorise plus de 80% de tous les programmes localisés dans les différents systèmes destinataires, chacun ayant son propre logiciel d'application, les niveaux TO et HO peuvent être relativement petits et bien entendu, la bibliothèque de base ne doit être enregistrée qu'une fois. Ce dispositif permet à l'appareil de mémoriser tous les programmes pour les systèmes destinataires sans avoir besoin d'une très grande capacité de mémoire et en évitant des temps de réponse très lents.
En réalité, cela signifie que le cadre d'essai destiné au contrôle de développement de prédiffusion, au contrôle de support de post-diffusion et également au contrôle de mise à jour de la version et de la diffusion est développé de la même manière. Cela offre une uniformité et une cohérence de contrôle à tous les niveaux. La flexibilité est également fournie. Par exemple, un ingénieur de champ d'essai expérimenté et un stagiaire auront différentes listes bibliothèques pour la même séance d'essai. Celles-ci doivent être pré-encodées dans le fichier 6 de telle sorte que le cadre d'essai pour le stagiaire comprend des pseudo-bibliothèques copiant le véritable cadre d'essai. Les programmes peuvent donc être utilisés par le stagiaire et tout changement ou dommage commis par inadvertance n'aura pas d'effet nuisible sur le véritable cadre d'essai.
Le statut de tels programmes et de telles données dans la liste du stagiaire peut être contrôlé afin de déterminer la progression de la formation.
Un autre avantage de la mémorisation des programmes et des données d'une telle manière concerne le fait que les listes contenues dans le fichier 6 peuvent être réglées à l'avance pour chaque code de système destinataire et peuvent contrôler la manière d'accès aux programmes et aux données par une voie prédéterminée avec peu ou pas de risque d'erreur. Par exemple, lors du contrôle du projet 1, phase 1, il sera prévu un code de système destinataire particulier dans le fichier 5 et à cet effet une liste bibliothèque dans le fichier 6. Cette liste bibliothèque régira la manière selon laquelle le contrôleur de disques 7 permet l'accès du contrôleur d'essai 2 aux programmes et aux données mémorisées.
Il est donc prévu une structure d'ensemble assurant dans un premier temps l'accès aux programmes émetteur cible et dans un second temps
<Desc/Clms Page number 11>
l'accès aux programmes émetteur central, ce avant l'accès aux programmes équivalents dans la bibliothèque de base. Ce procédé assure qu'il y ait toujours un accès aux mises à jour les plus récentes des programmes pour chaque système destinataire.
Le flux de signaux le plus important par la suite concerne la restitution par le contrôleur d'essai 2 des instructions d'essai provenant d'un fichier 10. Ces instructions sont transmises (comme le montre la flèche 40) directement vers la mémoire vive 9 de telle sorte que les données et les programmes qui sont transcrits peuvent être testés. Toute la procédure de contrôle est exécutée dans la mémoire vive 9. Les signaux de sortie de contrôle sont transmis vers un écran de sortie 12 comme le montre la flèche 50.
Lorsqu'une nouvelle donnée relative à un cadre d'essai particulier ou une nouvelle donnée de contrôle relative à un projet est reçue par le fichier d'essai 10, la base de données des conditions d'essai est transcrite ou ajoutée, tel que requis.
Lors de la réception d'une demande pour un signal d'essai ou de donnée provenant du contrôleur d'essai 2, les fichiers d'essai ou de données associés à l'unité testée sont extraits conformément aux liaisons associées gardées en mémoire par la base de données sur le disque et mémorisés dans la mémoire vive 9. Ces valeurs de données ou ces paramètres de contrôle sont alimentés vers l'unité testée en série ou en mode parallèle à travers le bus. La manière selon laquelle ils sont reçus est déterminée par l'unité testée.
Le fichier de contrôle 10 est structuré afin de répondre à l'unité testée au moyen d'instructions de contrôle configurées à l'étage de programme, à l'étage de module et à l'étage de système. Les instructions de contrôle génèrent des signaux de contrôle valides et des signaux de contrôle non valides, chacun pouvant être guidé vers un décodeur de signal de contrôle (non représenté) et pouvant indiquer à l'ingénieur de
<Desc/Clms Page number 12>
champ d'essai la procédure de contrôle interactif. De manière alternative, elles peuvent prévoir un contrôle automatique de régression par l'accès à d'autres paramètres de contrôle également mémorisés sur le disque. Cela dépend du code de système destinataire approprié.
B convient d'apprécier que l'appareil 1 permet une augmentation de la productivité des ingénieurs de champ d'essai dans la mesure où les objets sont déterminés très rapidement et automatiquement pour chaque projet particulier. On appréciera également le fait que en raison de la structure du dispositif de stockage 8, l'accès aux dernières mises à jour des programmes et des données est toujours correct. En outre, l'accès aux données et aux programmes est très rapide, même dans le cas où des programmes et des données destinées à un grand nombre de systèmes destinataires doivent être mémorisées.
Cela évite dans de nombreuses circonstances la nécessité de recourir à un accès en ligne aux fichiers de données d'un système destinataire particulier et permet un accès vaste et rapide à toutes les dernières mises à jour des programmes et des données pour chaque système destinataire. La structure permet une mémorisation d'une seule bibliothèque de base pour chaque pièce de logiciel d'application et il est donc possible d'enregistrer le code pour tous les systèmes destinataires.
Un autre aspect de l'invention concerne la manière selon laquelle les opérations de contrôle peuvent être étendues afin de fournir de meilleures lignes de codes pour un système destinataire. Dans le cas où un tel programme est développé, il est possible, grâce à une opération très simple, de réaliser une recherche à travers la ou les listes de bibliothèque pour chaque système destinataire afin de déterminer s'il existe une version spécifique de système destinataire de ce programme de telle sorte qu'une comparaison puisse être réalisée de même qu'une décision de changement ou de non changement puisse être prise.
En d'autres termes, les caractéristiques de l'appareil de contrôle 1 permettent une augmentation efficace de la puissance des programmes sur un grand nombre et une grande variété de systèmes destinataires.
<Desc/Clms Page number 13>
La présente invention ne se limite pas aux formes de réalisation décrites ci-dessus qui peuvent varier dans leur construction et dans leurs détails.