Brevet FR3005183A1 — publié le 20141031

Procédé assisté par ordinateur de simulation d'une application informatique destinée à fonctionner sur une plateforme de calcul La présente invention concerne le domaine de la conception de plateformes de calcul. Les plateformes de calculs, embarquées ou non, sont présentes dans de nombreux domaines techniques. Des plateformes de calcul embarquées sont présentes en particulier dans le domaine automobile, le domaine ferroviaire ou encore le domaine avionique. Une plateforme de calcul est un dispositif électronique et informatique dédié à l'exécution d'une ou plusieurs applications informatiques. Afin d'explorer en avance de phase des architectures possibles pour la plateforme de calcul, il est envisageable de modéliser la plateforme de calcul et les applications, afin d'évaluer les performances de l'ensemble. Néanmoins, la plateforme de calcul et les applications sont souvent développées par des fournisseurs différents, et, pour des raisons de confidentialité, en particulier dans le domaine avionique, le fournisseur d'une application fournit rarement le code applicatif de cette application. Il est possible d'effectuer l'analyse de dimensionnement de la plateforme de calcul à partir d'applications de test représentatives des applications qui seront effectivement exécutées sur le plateforme de calcul. Mais l'analyse de la compatibilité, entre la plateforme de calcul et les applications, qui en résulte, reste souvent trop imprécise. Un des buts de l'invention est de proposer un procédé assisté par ordinateur de simulation d'une application destinée à être exécuté sur une plateforme de calcul, qui permette d'obtenir des résultats avec une précision satisfaisante. A cet effet, l'invention propose un procédé assisté par ordinateur de simulation d'une application informatique comprenant des instructions, le procédé de simulation comprenant les étapes de : - établir un modèle d'application numérique modélisant l'application, le modèle d'application comprenant au moins un module paramétrable modélisant des instructions, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - générer une séquence de stimuli à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul. Selon d'autres modes de mise en oeuvre, le procédé comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles : - le modèle d'application comprend au moins un module d'appel de service modélisant des instructions d'appel d'un service d'un système d'exploitation d'une plateforme de calcul ;; - le modèle d'application comprend au moins un module de traitement modélisant des instructions de traitement de données ; - un module de traitement comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de traitement, le nombre de variable(s), le type de variable(s), le nombre d'immédiat(s), le type d'immédiat(s) ; - le modèle d'application comprend au moins un module de contrôle modélisant une structure de contrôle de l'application ; - au moins un module de contrôle comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de structure de contrôle, une probabilité de test positif et un nombre d'itérations d'une boucle ; - la séquence de stimuli est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de contrôle ; - le modèle comprend au moins un module d'appel de fonction simulant l'appel d'une fonction de l'application définie par un ensemble d'instructions de l'application. - la séquence de stimuli est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de d'appel de fonction. - le procédé comprend l'application de la séquence de stimuli en entrée d'un modèle numérique de plateforme de calcul et le relevé des traces du fonctionnement du modèle de plateforme de calcul. L'invention concerne également un produit programme d'ordinateur pour la simulation d'une application informatique comprenant des instructions, le produit programme d'ordinateur étant exécutable sur un ordinateur et comprenant : - une interface permettant d'établir un modèle d'application modélisant l'application, le modèle d'application comprenant au moins un module paramétrable modélisant des instructions de l'application, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - un générateur pour lire le modèle d'application et générer une séquence de stimuli à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul. L'invention et ses avantages seront mieux compris à l'étude de la description qui va suivre, donnée uniquement à titre d'exemple et faite en référence aux dessins annexés, sur lesquels : - la Figure 1 est une vue schématique d'une plateforme de calcul pour la mise en oeuvre d'applications informatiques ; - La Figure 2 est une vue schématique d'un ordinateur sur lequel est installé un logiciel de simulation d'une application informatique et un modèle de plateforme de calcul ; - la Figure 3 illustre un modèle d'application modélisant une application informatique ; et - les Figures 4 et 5 illustrent des modèles modélisant des fonctions d'applications informatiques. La plateforme de calcul 2 représentée sur la Figure 1 est configurée pour la mise en oeuvre d'applications A1, A2...An informatiques. La plateforme de calcul 2 comprend au moins un calculateur 4 possédant des ressources matérielles 6 et au moins un système d'exploitation (« Operating System » en anglais) pour l'exécution de la ou chaque application A1, A2...An par les ressources matérielles 6 sous le contrôle du ou de chaque système d'exploitation OS. Une application contient un ensemble d'instructions générant lors de l'exécution de l'application des requêtes à exécuter par les composant matériels 6 de la plateforme de calcul 2 sous le contrôle du système d'exploitation OS. La plateforme de calcul 2 comprend ici un seul calculateur 4. En variante, une plateforme de calcul comprend plusieurs calculateurs interconnectés par un bus de communication, chaque calculateur comprenant des composants matériels. La plateforme de calcul 2 comprend ici un seul système d'exploitation OS. En variante, une plateforme de calcul comprend plusieurs systèmes d'exploitation. Une plateforme de calcul comprenant plusieurs calculateurs comprend par exemple un système d'exploitation par calculateur. Une plateforme de calcul peut comprend plusieurs systèmes d'exploitation pour un même calculateur. Le système d'exploitation OS forme une interface entre les applications et les ressources matérielles. Il comprend une pluralité de services Si, S2... Sn propre à être appelés par les applications A1, A2. .An et mis en oeuvres par les ressources matérielles. Un service Si, S2,.. .Sn est un ensemble prédéfini d'opérations effectuées par les ressources matérielles. Les ressources matérielles 6 sont du type microprocesseur, mémoire cache (mémoire Li, mémoire L2, etc.), mémoire vive RAM (SRAM, DRAM, etc.), mémoire morte ROM, mémoire statique RAM, composant programmable (type FPGA, CPLD, EPLD, autre), interface d'entrées/sorties (ou interface I/O pour « Input/Output » en anglais), bus de communication, et tout autre composant matériel qui peut être intégré dans une plateforme de calcul. Les requêtes d'une application sont par exemple du type : requête de calcul à exécuter par un processeur ou par un composant programmable (type FPGA, CPLD, EPLD, autre), requête d'écriture ou de lecture dans une mémoire ou des registres, requête d'accès à une interface d'entrées/sorties, requête d'accès à un bus de communication, et tout autre requête d'accès à une ressource matérielle de la plateforme de calcul. Une application est programmée sous la forme d'un code. Une application se décompose en fonctions informatiques. Chaque fonction est une partie du code codant une séquence d'instructions pour la réalisation d'une tâche déterminée. Il est possible de décomposer une fonction en opérations de différents types, chaque opération incluant une ou plusieurs instructions de la fonction. Il est en particulier possible de distinguer les opérations de contrôle, les opérations de traitement, les opérations d'appels de service et les opérations d'appel de fonction. Une opération de contrôle (ou structure de contrôle) est un ensemble d'instructions codant un passage d'une opération de la fonction à une autre. Les opérations de contrôle déterminent l'ordre d'exécution des opérations de la fonction. Les opérations de contrôle comprennent, à titre d'exemple non limitatif, les sauts conditionnels, les tests alternatifs et les boucles. Une opération de traitement est un ensemble d'instructions codant un traitement de données. Les opérations de traitement comprennent, à titre d'exemple non limitatif, les opérations de calcul (addition, multiplication...) et les opérations de manipulation des données (décalage de variables dans une mémoire, échange de variables dans une mémoire...) Une opération d'appel de fonction est un ensemble d'instructions codant un appel à une autre fonction de l'application. Les opérations d'appel de fonction déterminent l'ordre d'exécution des différentes fonctions de l'application. Une opération d'appel de service est un ensemble d'instructions codant un appel à un service du système d'exploitation OS. Les opérations d'appel de service comprennent par exemple la lecture d'une mémoire, l'écriture d'une mémoire, la réalisation d'un calcul par le processeur, ... Un procédé assisté par ordinateur de simulation d'une application destinée à être exécutée sur une plateforme de calcul, comprend une étape de modélisation d'application, dans laquelle on établit un modèle d'application numérique modélisant l'application, et une étape de génération de séquences de stimuli, dans laquelle, à partir du modèle d'application, on génère des séquences de stimuli pour stimuler un modèle de plateforme. Une séquence de stimuli simule une séquence de requêtes générée par l'application à destination des ressources matérielles 6 de la plateforme de calcul 2 sous contrôle du système d'exploitation. Comme illustré sur la Figure 2, l'étape de modélisation est mise en oeuvre à l'aide d'un ordinateur 10 sur lequel est installé un logiciel de modélisation 12 comprenant des instructions propre à être exécutées par l'ordinateur 10. Le logiciel de modélisation 12 comprend une interface de modélisation 14 permettant à un opérateur d'établir un modèle d'application 16. Un modèle d'application 16 se présente sous la forme d'un fichier numérique codant le modèle d'application 16. Le logiciel de modélisation 12 permet d'associer un module paramétrable à chaque opération de chaque fonction de l'application. Une application est ainsi modélisée par une pluralité de modules, chaque module décrivant une opération associée respective. Chaque module est formé d'un paramètre descriptif ou d'une liste de paramètres descriptifs décrivant l'opération associée. Les paramètres décrivent notamment le type d'opération et des caractéristiques particulières de cette opération, en particulier des caractéristiques influençant le dimensionnement la plateforme de calcul pour l'exécution de l'application. Les paramètres d'un module décrivent l'opération mais ne permettent pas de déterminer les instructions de la portion de code correspondante. Les paramètres décrivant une opération sont différents d'une opération à une autre. Il existe différents modules correspondant à différentes opérations. De préférence, le logiciel de modélisation 12 comprend une bibliothèque 17 contenant des modules prédéfinis, sélectionnables et paramétrables par l'intermédiaire de l'interface de modélisation 14 pour l'établissement du modèle d'application 16. De préférence, le logiciel de modélisation 12 permet de créer et d'enregistrer de nouveaux modules. Les modules comprennent des modules de traitement modélisant des opérations de traitement de données, des modules de contrôle modélisant des opérations de contrôle, des modules d'appel de fonction modélisant des opérations d'appel de fonction et des modules d'appel de service, modélisant des opérations d'appel de service. Les modules de traitement comprennent des modules de calcul modélisant des opérations de calcul sur des données. Les paramètres d'un module de calcul comprennent, à titre d'exemple non limitatif, le type de calcul (arithmétique, ...), le nombre de variables, le type de variables (entier, flottant...), le nombre d'immédiats, le type d'immédiats ... Trois opérations et des paramètres descriptifs associés sont donnés ci-dessous à titre d'exemple : a = b + c : 3 variables entières, 0 immédiat, 1 opération arithmétique d = 3,5 : 1 variable flottante, 1 immédiat flottant, 1 opération arithmétique e = (f + 3)/2 : 2 variables entières, 2 immédiats entiers, 2 opérations arithmétiques Les modules de traitement comprennent des modules de manipulation de variables modélisant des opérations de manipulation de variables, par exemple des opérations de décalage des variables dans une mémoire ou d'échange de variables dans une mémoire. Les paramètres des modules de manipulation de variables comprennent par exemple le nombre de variables manipulées, le type des variables manipulées (entier, flottant...), le type de manipulation (échange, rotation, empilage, dépilage...). Les modules de contrôle comprennent des modules d'ouverture de boucle, modélisant une instruction d'ouverture de boucle et des modules de fermeture de boucle, modélisant une instruction de fin de boucle. Les paramètres d'un module d'ouverture de boucle ou d'un module de fermeture de boucle comprennent à titre d'exemple le type de boucle (« tant que », « jusqu'à ce que » ...) et un coefficient de pondération indiquant un nombre d'itérations de la boucle. Les modules de contrôle comprennent des modules de test alternatif, modélisant des instructions de test alternatif. Les paramètres d'un module de test alternatif associé à un test comprennent par exemple le type de test (« si », « sinon », « selon ») et une valeur de probabilité que le test soit positif. Les modules d'opération de contrôle comprennent des modules de fermeture de boucle et des modules de fermeture de test, modélisant une instruction délimitant la fin d'un bloc d'instructions à exécuter dans une boucle ou en fonction du résultat d'un test. Les modules d'appel de fonction modélisent l'appel d'une autre fonction de l'application pour exécuter la fonction appelée à son début ou pour retourner à une autre fonction ayant appelé la fonction à laquelle appartient le module d'appel de fonction. Les paramètres d'un module d'appel de fonction comprennent un identificateur de la fonction à appeler ou de la fonction à laquelle il faut retourner. Les modules d'appel de service modélisent l'appel à un service du système d'exploitation. Les paramètres d'un module d'appel de service comprennent un identificateur du service à appeler. Les modules cités et leurs paramètres sont donnés à titre d'exemples non limitatifs. D'autres modules et d'autres paramètres sont envisageables. Le logiciel de modélisation 12 permet de regrouper les modules d'une même fonction dans un bloc de fonction. La bibliothèque 17 comprend avantageusement des blocs de fonction prédéfinis, correspondant à des fonctions classiques ou récurrentes. De préférence, le logiciel de modélisation 12 permet de générer et d'enregistrer des blocs de fonction dans la bibliothèque 17 en vue d'une utilisation ultérieure. La Figure 3 illustre un modèle d'application 16 modélisant une application A comprenant trois fonctions, chaque fonction étant modélisée par un bloc de fonction F1, F2, F3 contenant une pluralité de modules. Le premier bloc de fonction F1 comprend successivement un module d'appel de service M11, un module de traitement M12, un module de contrôle M13, un module de traitement M14, un module d'appel de fonction M15 pour appeler la deuxième fonction F2, un module de contrôle M16 et un module d'appel de fonction M17 pour appeler la fonction F3. Le deuxième bloc de fonction F2 comprend successivement un module de traitement M21, un module de traitement M22 et un module d'appel de fonction M23 pour retourner à la fonction F1. Le troisième bloc de fonction F3 comprend un module de contrôle M31, un module de traitement M32, un module d'appel de service M33, un module de contrôle M34 et un module d'appel de fonction M35 pour appeler la fonction F1 en l'exécutant depuis le début. La troisième fonction F3 correspond typiquement à la réalisation d'une boucle. En revenant à la Figure 2, l'étape de génération de séquences de stimuli est mise en oeuvre sur l'ordinateur 10 à l'aide du logiciel 12 qui comprend un générateur de stimuli 18. Le générateur de stimuli 18 est propre à générer des séquences de stimuli 19 à partir du modèle d'application 16 et des paramètres des modules, chaque séquence de stimuli 19 simulant des requêtes générées par l'application et étant destinée à stimuler un modèle de plateforme de calcul 20. Une séquence de stimuli 19 se présente sous la forme d'un fichier numérique exécutable par le modèle de plateforme de calcul 20. Le modèle de plateforme de calcul 20 comprend une partie système d'exploitation, modélisant le système d'exploitation OS de la plateforme de calcul et ses services Si, S2...Sn, et une partie matérielle, modélisant les composant matériels 6 de la plateforme de calcul. Un stimulus est propre à être envoyé en entrée du modèle de plateforme de calcul 20 lors de l'exécution du modèle de plateforme de calcul 20. Le modèle de plateforme de calcul 20 est propre à fournir des traces indicatives du fonctionnement du modèle de plateforme de calcul 20 (consommation énergétique, temps de calcul, disponibilité) pour vérifier que la plateforme de calcul modélisée serait susceptible de permettre une exécution de l'application dans des conditions satisfaisantes. Le générateur de stimuli 18 est propre à générer, pour chaque module d'appel de service, des stimuli correspondant à l'appel d'un service du modèle de plateforme de calcul 20. Le générateur de stimuli 18 est propre à générer des stimuli à partir d'un module de traitement. Pour ce faire, une règle associée à chaque module de traitement est exécutée par le générateur de stimuli pour générer des stimuli. Un exemple d'instruction d'un code codant un calcul, de module de calcul associé et de stimulus généré à partir de ce module de calcul est donné ci-dessous : - code : a = b + c (où a,b,c variables entières) - paramètres descriptifs du module de calcul : type de calcul : arithmétique nombre de variables : 3 variables type de variables : entier, entier, entier - stimuli : utilisation du microprocesseur lecture d'une mémoire utilisation du microprocesseur écriture en mémoire L'opération de calcul est une somme de deux variables entières donnant un résultat entier. Les paramètres du module de calcul associé comprennent le type de calcul (arithmétique), nombre de variables (3) et le type de variable (entières). Les stimuli sont des requêtes informatiques destinées au modèle de plateforme de calcul 20 et nécessaires à la réalisation d'un calcul selon les paramètres du module de calcul, à savoir une utilisation du microprocesseur et lecture de la mémoire pour lire les variables d'entrée (variables b et c), une utilisation du microprocesseur pour effectuer le calcul (somme des variables b et c) et une écriture dans la mémoire pour écrire le résultat du calcul (variable a). Les stimuli sont élaborés par le générateur de stimuli 18 uniquement à partir du module de calcul et de la règle associée, sans connaître le code. En particulier, le module de calcul n'indique pas le nom des variables, ni le type de calcul arithmétique effectué (addition, soustraction, multiplication...). Le module de calcul est anonyme vis-à-vis du code. Le module de calcul ne permet pas de déterminer la portion de code applicatif auquel il correspond. Le générateur de stimuli 18 est propre à lire les modules selon l'ordre d'exécution définit par les modules de contrôle et les modules d'appel de fonction du modèle d'application 16, de telle manière à générer des séquences de stimuli modélisant l'exécution de l'application. Le générateur de stimuli 18 est propre à générer des stimuli pour la vérification d'un test de contrôle (test alternatif, test d'ouverture de boucle, test de fermeture de boucle...). Selon un premier exemple illustré sur la Figure 4, une modèle F4 d'une fonction comprenant une boucle répétée N fois (N est en nombre entier égal ou supérieur à 2) comprend un module d'ouverture de boucle M41 et un module de fermeture de boucle M42 encadrant un module d'appel de service M43 et un module de calcul M44. Le générateur de stimuli 18 génère à partir du modèle de la fonction F4 une séquence de stimuli comprenant la répétition N fois de stimuli de vérification du test d'ouverture de boucle, de stimuli d'appel de service, de stimuli de calcul et de stimuli de fermeture de boucle. Selon un deuxième exemple illustré sur la Figure 5, un modèle F5 d'une fonction comprenant un test alternatif « si sinon » comprend successivement un module de test « si » M51, un module d'appel de service M52, un module de traitement M53, un module de test « sinon » M54, un module de traitement M55 et un module de fin de test M56. Le module de test « si » contient par exemple comme paramètre une probabilité que le test « si» soit positif, et le module de test « sinon » contient comme paramètre une probabilité complémentaire de celle du module de test « si ». Ce paramètre est fixé par le fournisseur d'application qui peut estimer statistiquement la probabilité que le test soit positif ou négatif. Pour générer des stimuli, le générateur de stimuli 18 effectue par exemple un tirage au sort, et, en fonction du résultat du tirage au sort, génère une séquence de stimuli correspondant aux modules M53 et M54 ou une séquence de stimuli correspondant au module M56. Dans l'exemple illustré, les probabilités des modules de test M51 et M52 sont par exemple respectivement de 80% et 20% Le générateur de stimuli 18 tire au sort un nombre entre 0 et 100. Si ce nombre est compris entre 0 et 80, il génère une séquence de stimuli correspondant au module d'appel de service M52 et au module de traitement M53. Si le nombre est compris entre 80 et 100, il passe au module de test « sinon » M54 qui indique la fin des modules associés au module de test « si » et génère une séquence de stimuli correspondant au module de traitement M55 et s'arrête au module de fin de test M56. Les modèles des Figures 4 et 5 et les générations de stimuli correspondantes sont donnés uniquement à titre d'exemple non limitatif. Les modèles des Figures 4 et 5 sont simples pour des raisons de facilité de compréhension. En pratique, une application est modélisée par un ensemble de fonctions, avec des appels entre les fonctions, chaque fonction pouvant contenir des tests conditionnels et des boucles imbriqués les uns dans les autres. En outre, une plateforme de calcul peut être prévue pour l'exécution de plusieurs applications, éventuellement avec une partition temporelle des applications. Le générateur de stimuli est propre à générer des séquences de stimuli pour chaque application. Le modèle de plateforme de calcul comprend un ordonnanceur prévu pour venir récupérer les séquences de stimuli correspondant à chaque application en fonction de la partition temporelle, comme cela est le cas pour une plateforme de calcul. Le procédé selon l'invention permet de générer un modèle d'application comprenant des modules paramétrable possédant des paramètres descriptifs qui permettent de décrire l'enchaînement des opérations, des appels de fonction et de service, et les caractéristiques de ces opérations et ces appels (type des données, nature des appels, etc.). La connaissance de ces paramètres descriptifs permet de générer des séquences de stimuli représentatives de celles que fournirait l'application au cours de son exécution, ce qui permet de réaliser des simulations plus fiables sur le modèle de plateforme de calcul. Il en résulte que la conception et le dimensionnement de la plateforme de calcul sont plus rapides et plus précis. Le modèle d'application peut être généré sans connaître l'application dans sa version définitive. Le modèle d'application s'adapte rapidement à des modifications de l'application, via le remplacement d'un ou plusieurs modules et/ou via la modification du paramétrage d'un ou plusieurs modules. De préférence, le modèle d'application est généré par le fournisseur d'application et utilisé par le fournisseur de plateforme de calcul pour exécuter un modèle de plateforme de calcul afin de dimensionner une plateforme de calcul pour l'exécution de l'application. Le modèle d'application et les modules ne reprennent aucun nom de variable ou de fonction (par exemple des fonctions classiques intégrées à l'application) afin de préserver la confidentialité du code. La connaissance du modèle d'application ne permet pas de remonter au code. REVENDICATIONS1.- Procédé assisté par ordinateur de simulation d'une application informatique comprenant des instructions, le procédé de simulation comprenant les étapes de : - établir un modèle d'application (16) numérique modélisant l'application, le modèle d'application (16) comprenant au moins un module paramétrable modélisant des instructions, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - générer une séquence de stimuli (19) à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul. 2.- Procédé selon la revendication 1, dans lequel le modèle d'application comprend au moins un module d'appel de service (M11) modélisant des instructions d'appel d'un service d'un système d'exploitation d'une plateforme de calcul. 3.- Procédé selon la revendication 1 ou 2, dans lequel le modèle d'application comprend au moins un module de traitement (M12) modélisant des instructions de traitement de données. 4.- Procédé selon la revendication 3, dans lequel un module de traitement comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de traitement, le nombre de variable(s), le type de variable(s), le nombre d'immédiat(s), le type d'immédiat(s). 5.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le modèle d'application comprend au moins un module de contrôle (M41, M44 ; M51, M53, M56) modélisant une structure de contrôle de l'application. 6.- Procédé selon la revendication 5, dans lequel au moins un module de contrôle comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de structure de contrôle, une probabilité de test positif et un nombre d'itérations d'une boucle. 7.- Procédé selon la revendication 5 ou 6, dans lequel la séquence de stimuli (19) est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de contrôle. 8.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le modèle comprend au moins un module d'appel de fonction (M15, M23, M35) simulant l'appel d'une fonction de l'application définie par un ensemble d'instructions de l'application. 9.- Procédé selon la revendication 8, dans lequel la séquence de stimuli est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de d'appel de fonction. 10.- Procédé selon l'une quelconque des revendications précédentes, comprenant l'application de la séquence de stimuli en entrée d'un modèle numérique de plateforme de calcul et le relevé des traces du fonctionnement du modèle de plateforme de calcul. 11.- Produit programme d'ordinateur pour la simulation d'une application informatique comprenant des instructions, le produit programme d'ordinateur étant exécutable sur un ordinateur et comprenant : - une interface (14) permettant d'établir un modèle d'application (16) modélisant l'application, le modèle d'application (16) comprenant au moins un module paramétrable modélisant des instructions de l'application, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - un générateur (18) pour lire le modèle d'application et générer une séquence de stimuli (19) à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul.