FR3039908A1 - Systeme et procede pour technologie a base de modeles et processus pour la mise au point d'un logiciel essentiel pour la surete - Google Patents

Systeme et procede pour technologie a base de modeles et processus pour la mise au point d'un logiciel essentiel pour la surete Download PDF

Info

Publication number
FR3039908A1
FR3039908A1 FR1657522A FR1657522A FR3039908A1 FR 3039908 A1 FR3039908 A1 FR 3039908A1 FR 1657522 A FR1657522 A FR 1657522A FR 1657522 A FR1657522 A FR 1657522A FR 3039908 A1 FR3039908 A1 FR 3039908A1
Authority
FR
France
Prior art keywords
software
model
requirements
test cases
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1657522A
Other languages
English (en)
Other versions
FR3039908B1 (fr
Inventor
Timothy Lee Johnson
Andrew Walter Crapo
Michael Richard Durling
Alexander Walsch
Kit Yan Siu
Luca Parolini
Panagiotis Manolios
Meng Li
Han Yu
Scott Alan Stacey
Gregory Reed Sykes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of FR3039908A1 publication Critical patent/FR3039908A1/fr
Application granted granted Critical
Publication of FR3039908B1 publication Critical patent/FR3039908B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Un procédé pour la conception, à partir de modèles, d'un logiciel essentiel pour la sûreté, est présenté. Le procédé comporte la réception (132) d'exigences de logiciel en langage naturel, l'élaboration (133) d'un modèle de spécifications en mettant en œuvre une modélisation sémantique (150) ou une modélisation graphique (152), l'application d'une analyse formelle d'exigences au modèle de spécifications, la création automatisée de cas de tests de robustesse et reposant sur des exigences et de procédures à partir du modèle de spécifications, l'application de cas de tests au modèle de conception, la création automatisée d'un code source à l'aide du modèle de conception, la vérification du code source à l'aide de cas de tests et d'une technologie d'analyse statique; et la compilation d'un code objet exécutable à partir du code source vérifié ; un résultat de l'analyse des modèles de spécification ou de conception de logiciel n'est pas satisfaisant, l'ajustement du modèle de spécification ou de conception de logiciel afin de corriger toute incohérence, et la répétition de l'application de l'analyse et des cas de tests. Un système pour mettre en œuvre la conception à base de modèles et un support non transitoire exploitable par ordinateur sont présentés.

Description

Système et procédé pour technologie à base de modèles et processus pour la mise au point d’un logiciel essentiel pour la sûreté
La généralisation des équipements commandés par des microprocesseurs a abouti à des dispositifs dotés de toujours plus de capacités, mais donne un rôle plus crucial à la fiabilité du logiciel qui commande ces systèmes embarqués. De nombreux équipements potentiellement dangereux sont commandés par un logiciel embarqué (p.ex. des automobiles, des trains, des aéronefs, des raffineries de pétrole, des installations de traitement chimique, des centrales nucléaires, des dispositifs médicaux, etc.). Les solutions classiques pour vérifier qu'un code d'application opérationnelle convient pour ces dispositifs et systèmes sont délicates et manquent d'efficacité.
La mise au point de systèmes logiciels essentiels pour la sûreté répond à l'augmentation des dimensions et à la complexité de ces systèmes et s'inscrit dans la nécessité de préserver des fonctionnements essentiels pour la sûreté. Il existe toutes sortes de procédés, d'outils et d'environnements d'ingénierie logicielle pour élaborer des systèmes complexes, critiques. Par exemple, un procédé consiste à appliquer des techniques d'ingénierie dirigées par les modèles pour mettre au point des systèmes essentiels pour la sûreté.
Les solutions selon la technique antérieure peuvent comporter l'emploi d'outils d'environnement de développement intégré (EDI) pour effectuer une modélisation de spécifications de logiciels, une validation/vérification et une création et exécution de cas de tests. Ordinairement, ces outils utilisent des procédés rigoureux pour automatiser ou semi-automatiser une partie des étapes de conception détaillées tout en réduisant les besoins de saisie de données pour gagner du temps avec les étapes restantes. L'invention sera mieux comprise à l'étude détaillée de quelques modes de réalisation pris à titre d'exemples non limitatifs et illustrés par les dessins annexés sur lesquels : -la Figure 1 représente un système pour conception, à base de modèles, d'un logiciel essentiel pour la sûreté selon des formes de réalisation ; -la Figure 2 représente un organigramme d'un processus pour conception, à base de modèles, d'un logiciel essentiel pour la sûreté selon des formes de réalisation ; et -la Figure 3 représente un organigramme pour un processus de mise au point à base de modèles selon des formes de réalisation.
Selon des formes de réalisation de l'invention, des systèmes et des procédés présentent un processus de conception automatisé à base de modèles pour la mise au point et la création de tests d'un logiciel essentiel pour la sûreté. La mise en œuvre des systèmes et des procédés emploie une ontologie spécifique du domaine et des procédés de vérification formels pour améliorer et étendre des exigences de haut niveau. Ces systèmes et procédés utilisent un modèle de spécifications vérifiable (d'où l'expression “à base de modèles”) comme base pour la création automatisée de tests reposant sur les exigences avant l'écriture du logiciel. Selon des formes de réalisation, les tests reposant sur les exigences sont créés à partir du modèle de spécifications. Un modèle de conception sert à mettre au point le logiciel. La rigueur et l'automatisation de ces étapes ont pour effets une amélioration de la conception du logiciel et une réduction du travail de test, un gain de temps et des économies sur les coûts pour un concepteur de logiciels essentiels pour la sûreté.
En incluant des procédés formels et des modèles logiques dans les processus de mise en œuvre, on peut repérer des erreurs dans les exigences des spécifications et vérifier la cohérence et l'exhaustivité des exigences. Au moment où des erreurs dans les spécifications sont détectées, on peut y remédier, d'une manière itérative si nécessaire, jusqu'à ce qu'elles soient complètes d'un point de vue logique et cohérentes lors de la répétition du test. Les ontologies, les réseaux sémantiques et l'analyse de couverture apportent tous des informations explicites pour étendre des exigences qui sont incomplètes.
La mise en œuvre des systèmes et des procédés peut inclure des “situations de sûreté” dans les exigences et les étapes de vérification correspondantes (p.ex. la conception à base de modèles). Des relations temporelles complexes (p.ex. des exigences de concurrence et/ou des capacités) peuvent elles aussi être représentées.
Une fois que les exigences des spécifications d'un logiciel sont complètes et cohérentes, des modèles de conception et des tests ultérieurs de vérification/validation peuvent être créés pour tester le code source. Le code source peut être perçu comme une représentation plus détaillée de la conception spécifiée, ce qui donne un code objet et/ou exécutable qui met en œuvre les mêmes exigences de conception.
La mise en œuvre des systèmes et des procédés a pour effet une réduction des erreurs détectées pendant les opérations de vérification/validation. La mise en œuvre des systèmes et des procédés automatise ces processus, ce qui aboutit à un processus de conception/vérification/validation plus rigoureux permettant de réduire les coûts de main-d'œuvre et de temps de mise au point associés en assurant une plus grande précision dans le respect des exigences de conception et une plus grande vitesse lors des corrections et des tests en comparaison de la création manuelle classique de codes assistée par des outils.
La mise en œuvre des systèmes et des procédés à base de modèles substitue des formulations logiques formelles, mathématiquement rigoureuses définissant des exigences de fonctionnement, de conception et de création de tests, à des formulations à base de langage naturel, ce qui offre une occasion, au début du processus de conception, d'améliorer la qualité, la rigueur, la cohérence et la portée des exigences.
La Figure 1 représente un système 100 pour la mise au point d'un logiciel informatique essentiel pour la sûreté selon une forme de réalisation. Le système 100 peut comporter un ordinateur (soit un ordinateur unique 110 fonctionnant localement, soit plusieurs ordinateurs 112, 114, 11N en lien les uns avec les autres via un réseau de communications électroniques 120 (p.ex. l'Internet), une base de données associée 130 qui peut contenir des particularités du logiciel essentiel pour la sûreté - p.ex. des exigences du système affectées au logiciel (SRATS) 132, un modèle de spécifications de logiciel 133, un modèle de conception 134, un code source créé automatiquement 136, un code objet exécutable 138. Le système 100 peut aussi comporter une base de données 140 pouvant contenir des réseaux sémantiques 142, des ontologies 144, des cas de tests 146 reposant sur des exigences et des cas de tests de couverture 148 de modèles créés automatiquement. Bien que la base de données 130 et la base de données 140 soient représentées sous la forme de deux bases de données, dans certaines mises en œuvre une seule base de données peut contenir toutes les informations stockées ; dans d'autres mises en œuvre, le système 100 peut comporter plus de deux bases de données.
Selon une mise en œuvre, l'ordinateur unique 110 peut comprendre des unités de structure conçues pour effectuer des actions qui mettent en œuvre la conception de logiciel à base de modèles essentiel pour la sûreté. Ces unités peuvent comprendre une unité de modélisation sémantique 150, une unité de modélisation graphique 152, une unité de démonstration automatisée de théorème (ATP) 154, une unité de création de cas de tests et de procédures (ATCPG) 156 et une unité de création automatisée de code 158. Dans d'autres mises en œuvre, ces unités peuvent être réparties entre les différents ordinateurs en lien les uns avec les autres via le réseau de communications électroniques.
La Figure 2 représente un organigramme du processus 200 de conception de logiciel à base de modèles essentiel pour la sûreté selon des formes de réalisation. Le processus 200 analyse des SRATS en langage naturel, élabore un modèle de spécifications qui, après vérification et acceptation, constitue la base pour un modèle de conception. L'expression “modèle de conception” (au sens de la présente description) désigne un modèle conceptuel tel qu'un modèle objet ou un modèle en langage de modélisation unifié (UML). Un modèle de conception peut décrire les entités et les transformations fonctionnelles à réaliser par le logiciel d'application. A partir du modèle de conception, un premier code source peut être créé automatiquement par le processus 200, puis un code objet exécutable (EOC) peut également être créé. Le processus 200 peut vérifier la conception, le code source et l'EOC. L'EOC résultant de ce processus reposant sur des exigences peut ensuite être soumis à des procédés de test reposant sur l'EOC, lesquels peuvent fournir des informations supplémentaires.
Le modèle de spécifications est saisi, étape 205. La saisie peut comprendre la validation des SRATS des exigences du système en langage naturel fournies au système. L'unité de modélisation sémantique 150 et/ou l'unité de modélisation graphique 152 met/mettent en œuvre des techniques de modélisation sémantique et graphique pour élaborer un modèle de spécifications à partir des SRATS. Le modèle de spécifications est mis en œuvre dans un langage naturel structuré qui comprend un modèle sémantique et peut être consulté ou modifié sous une forme graphique.
Une analyse des exigences formelles sur le modèle de spécifications est effectuée, étape 210. L'unité d'ATP 154 peut analyser le modèle de spécifications et vérifier qu'il est juste et cohérent en mettant en œuvre des techniques de démonstration automatisée de théorèmes. Des cas de tests issus du modèle de spécifications sont créés automatiquement, étape 215, par l'unité d'ATCPG 156. Selon les formes de réalisation, le système peut employer l'ATCPG pour créer automatiquement des cas de tests pour les exigences du modèle de conception lui-même. Dans d'autres mises en œuvre les cas de tests créés automatiquement peuvent être créés automatiquement par le système 100 à l'aide d'un contrôle de modèle ou d'une autre technologie d'analyse formelle. Le processus 200 peut revenir à l'étape 205 pour saisir encore le modèle de spécifications si l'analyse d'exigences et/ou les cas de tests créés automatiquement indique(nt) que le modèle n'est pas aussi robuste que nécessaire (c'est-à-dire que le modèle de spécifications de logiciel est dépourvu de la cohérence, de la justesse et/ou de l'exhaustivité requise(s)).
Après que l'analyse d'exigences a indiqué que les exigences sont complètes et cohérentes, le modèle de spécifications constitue la base pour l'élaboration d'un modèle de conception de logiciel, étape 220. Les cas de tests sont créés à partir du modèle de spécifications et sont appliqués au modèle de conception. Après l'application des cas de tests au modèle de conception, la couverture du modèle est analysée, étape 225, d'après ses performances. Les éventuels défauts et incohérences sont corrigés, puis le modèle de conception peut être vérifié, étape 230, en répétant les scenarii des cas de tests.
Le modèle de conception vérifié sert à l'unité de création automatisée de code 158 à créer automatiquement, étape 235, un code source pour le logiciel essentiel pour la sûreté. Le système 100 vérifie ensuite, étape 240, le code source à l'aide d'une technologie d'analyse statique. Un code objet exécutable est compilé, étape 245, à partir du code source vérifié.
La Figure 3 représente un organigramme pour un processus d'élaboration 300 à base de modèles selon des formes de réalisation. Le système 100 pour la mise au point d'un logiciel informatique essentiel pour la sûreté peut comporter des applications 315, 320, 335, 340, 350, 360, 370 à mise en œuvre informatique qui reçoivent des informations de conception issues de stades 305, 310, 325, 330, 350, 355, 365 du processus d'élaboration 300 à base de modèles. Dans certaines mises en œuvre, les informations de conception reçues peuvent être complétées par des ordres et des instructions supplémentaires émanant d'utilisateurs humains du système 100. A partir des informations de conception reçues, traitées par les applications à mise en œuvre informatique du système 100, le processus 300 peut produire de nouveaux résultats - par exemple : confirmation d'exhaustivité, modèles de conception, nouveaux tests du logiciel et/ou messages identifiant des défauts qui précisent un inconvénient ou un manque d'exhaustivité des données de conception pour un stade particulier du processus de conception.
Si un message d'identification de défaut est produit, le processus 300 revient alors aux données de l'étape précédente (indiqué par une flèche bidirectionnelle reliant diverses étapes au sein du processus 300). Le défaut peut être corrigé par un utilisateur humain suivant une recommandation fournie par le processus 300 à mise en œuvre informatique.
Les données initiales de SRATS fournies au processus 300, étape 305, comprennent des documents en langage naturel. Le système 100 pour la mise au point d'un logiciel informatique essentiel pour la sûreté crée automatiquement le logiciel et crée automatiquement des cas de tests, ainsi que d'autres informations diagnostiques ou documents produits à des stades antérieurs. Ce logiciel, les cas de tests, les autres informations diagnostiques ou documents reposent sur les SRATS fournies. Le processus 300 mis en œuvre par le système 100 améliore la conception du logiciel essentiel pour la sûreté avec une diminution des interactions manuelles dans le processus de conception. Pour réaliser la mise au point automatisée, selon des formes de réalisation, le processus 300 comporte une validation d'applications à mise en œuvre informatique d'après un modèle client (étape 315), une analyse formelle des exigences (étape 320), une vérification formelle de la conception (étape 335), une analyse de la couverture du modèle (étape 340), une vérification du modèle de conception reposant sur des tests (étape 350), une vérification formelle du code (étape 360), une vérification d'EOC reposant sur des tests (étape 370).
Le processus 300 commence par la réception, étape 305, des documents SRATS en langage naturel à format textuel, dérivés d'exigences de niveau supérieur du système qui incluent les moyens matériels et logiciels. A partir des SRATS, un Modèle de Spécifications est élaboré, étape 310, à l'aide d'une combinaison de technologies de modélisation sémantique et de modélisation graphique. Selon des formes de réalisation, le système 100 mettant en œuvre le processus 300 a éliminé la nécessité de prendre comme texte des Exigences de Haut Niveau (HLR). Selon des formes de réalisation, les HLR classiques sont remplacées par un Modèle de Spécifications exploitable par des humains et des machines.
Le Modèle de Spécifications est validé, étape 315. La validation peut se faire à l'aide de représentations analytiques (p.ex. des ontologies et des réseaux sémantiques) des exigences présentées à un utilisateur. La justesse et la cohérence du Modèle de Spécifications font l'objet d’une analyse et d'une vérification formelles à l'aide d'applications d'ATP, étape 320. Cette étape peut identifier des erreurs dans les exigences au début du processus et réduire fortement les remaniements en fin de cycle.
Il existe une boucle de rétroaction entre l'analyse d'exigences 320 et la saisie de modèle de spécifications 310. Cette boucle de rétroaction réagit en temps réel pour alerter un technicien en cas d'erreur.
Après validation et analyse formelle des exigences, le Modèle de Spécifications devient une entrée pour créer, étape 330, un Modèle de conception. Le Modèle de Conception subit une vérification formelle à l'aide d'un contrôle de modèle, étape 335. Le Modèle de Spécifications sert également d'entrée dans le Processus de Création Automatisée de Cas de Tests Reposant sur les Exigences, étape 325. Des cas de tests et des procédures sont créés automatiquement (p.ex. à l'aide d'une technologie de contrôle de modèles). Les cas de tests sont ensuite appliqués, étape 350, au
Modèle de conception et une analyse établit s'ils sont bien fonctionnels.
Il existe une autre boucle de rétroaction entre la fonction 325 de création de cas de tests reposant sur les exigences et le modèle de spécifications 310 pour indiquer une mesure de complexité de vérification qui est proportionnelle au nombre de cas de tests nécessaires pour vérifier le modèle de spécifications. Le technicien procédant à la saisie des exigences peut se servir de cette information pour simplifier le modèle de spécifications afin de réduire le coût/la complexité de la vérification. Selon des mises en œuvre, l'outil de saisie d'exigences peut aussi présenter des suggestions d'options pour saisir les mêmes informations dans une grammaire qui serait plus facile à vérifier (moins de cas de tests).
Si des erreurs sont détectées, le modèle de conception est corrigé. Des défauts et des incohérences peuvent être détectés dans des circonstances où une suite d'étapes sont exécutées, ou si l'ordre d'étapes parallèles n'est pas prévisible : dans ces circonstances, des corrections peut être apportées au modèle de conception en reprenant les suites en sens inverse ou en effectuant une mise en ordre chronologique d'étapes par ailleurs non ordonnées. Ensuite, les cas de tests sont appliqués au Modèle de Conception et font l'objet d'une analyse de couverture du modèle (étape 340). Cette étape peut identifier des lacunes de couverture d'après (a) des erreurs dans les cas de tests reposant sur les exigences, le modèle de spécifications et/ou le modèle de conception (p.ex. une fonctionnalité involontaire, un code mort, etc.) ; ou (b) des exigences dérivées. Dans le cas d'exigences dérivées, des cas de tests sont automatiquement créés, étape 345, pour satisfaire la couverture du modèle.
Un outil de création automatisée de tests peut être utilisé pour aider un technicien à identifier un code inaccessible et pour identifier un vecteur de test qui exécutera la section spécifique du modèle. Un outil qualifié pour la création automatisée de codes est utilisé pour créer, étape 355, un code source à partir du modèle de conception. Le code source subit une analyse formelle, étape 360, à l'aide d'une technologie d'analyse statique. Le code source est compilé, étape 365, pour être transformé en EOC. La vérification de l'EOC reposant sur des tests est effectuée, étape 370, en réappliquant dans le processus la suite de tests élaborée antérieurement. Au terme de la vérification, l'EOC compilé peut alors subir des essais classiques d'unité, de sous-système et de système.
Les systèmes et procédés selon les formes de réalisation appliquent des techniques rigoureuses de modélisation mathématique et logique au problème de vérification de cohérence, de justesse et/ou d'exhaustivité d'exigences de logiciels avant la création d'un code. Selon des mises en œuvre, une collection d'outils peut couvrir tous les stades de conception préliminaire, d'analyse et de création d'un logiciel. La vérification préalable rend possibles le recours à la création automatisée de codes et l'utilisation de la rétroaction dans le processus de conception. La mise en œuvre des processus et des systèmes peut détecter des erreurs pendant les opérations de conception et d'études préliminaires. La correction de ces erreurs détectées peut étendre, améliorer, corriger et/ou compléter les informations de conception avant la création d'un code.
Selon certaines formes de réalisation, une application de programme informatique stockée dans une mémoire rémanente ou sur un support exploitable par ordinateur (p.ex. une mémoire à registres, une mémoire cache de processeur, une mémoire vive, une mémoire morte, un disque compact à mémoire à lecture seule, un disque dur, une mémoire flash, des supports magnétiques, etc.) peut comprendre un code ou des instructions exécutables qui, lorsqu'elles sont exécutées, peuvent demander à un contrôleur ou un processeur, ou amener un contrôleur ou un processeur, de/à exécuter des procédés présentés ici, tels qu'un procédé décrit plus haut pour la conception, d'après des modèles, d'un logiciel essentiel pour la sûreté.
Le support exploitable par ordinateur peut consister en supports de stockage non transitoire exploitables par ordinateur comprenant la totalité des formes et types de mémoire et tous les supports exploitables par ordinateur, à l'exception d'un signal transitoire à propagation. Dans une mise en œuvre, la mémoire rémanente ou le support non transitoire exploitable par ordinateur peut être une mémoire externe.
Liste des repères
NUMERO DESIGNATION 100 Système d'élaboration de logiciel informatique essentiel pour la sûreté 110 Ordinateur 112 Ordinateur 114 Ordinateur 11N Ordinateur 120 Réseau de communications électroniques 130 Base de données 132 Exigences du système affectées au logiciel 133 Modèle de spécifications du logiciel 134 Modèle de conception 136 Code source créé automatiquement 138 Code objet exécutable 140 Base de données 142 Réseaux sémantiques 144 Ontologies 146 Cas de tests reposant sur des exigences 148 Cas de tests de couverture du modèle créés automatiquement 150 Unité de modélisation sémantique 152 Unité de modélisation graphique 154 Unité de démonstration automatisée de théorèmes 156 Unité de création automatisée de cas de tests et de procédures 158 Unité de création automatisée de codes

Claims (9)

  1. REVENDICATIONS
    1. Procédé pour la conception, à partir de modèles, d'un logiciel essentiel pour la sûreté, le procédé comportant : la réception (132) d'exigences de logiciel en langage naturel ; l'élaboration (133) d'un modèle de spécifications de logiciel dans un langage naturel structuré en mettant en œuvre une modélisation sémantique (150) et/ou une modélisation graphique (152) des exigences de logiciel en langage naturel ; l'application d'une analyse formelle d'exigences au modèle de spécifications de logiciel ; l'élaboration d'un modèle de conception de logiciel reposant sur le modèle de spécifications ; l'application, au modèle de conception de logiciel, de cas de tests de robustesse et reposant sur les exigences créées automatiquement ; la réalisation d'une analyse formelle du modèle de conception de logiciel ; la création automatisée (136) d'un code source à l'aide du modèle de conception de logiciel ; la vérification de la couverture et du comportement du code source par l'application de cas de tests créés automatiquement (148) et d'une technologie d'analyse statique ; la compilation d'un code objet exécutable à partir du code source vérifié ; et la vérification de la couverture et du comportement du code objet exécutable par l'application des cas de tests créés automatiquement.
  2. 2. Procédé selon la revendication 1, comportant une unité de création automatisée de cas de tests et de procédures créant automatiquement les cas de tests à partir du modèle de spécifications de logiciel.
  3. 3. Procédé selon la revendication 1, comportant une unité de démonstration automatisée de théorèmes mettant en œuvre des techniques de démonstration automatisée de théorèmes pour analyser et vérifier une cohérence et/ou une justesse et/ou une exhaustivité du modèle de spécification de logiciel.
  4. 4. Procédé selon la revendication 1, comportant, si un résultat de l'analyse du modèle de spécifications de logiciel n'est pas satisfaisant, l'ajustement du modèle de spécifications de logiciel afin de corriger toute incohérence avec les exigences de logiciel en langage naturel.
  5. 5. Procédé selon la revendication 4, comportant l'application de l'analyse d'exigences au module de spécifications de logiciel ajusté.
  6. 6. Procédé selon la revendication 1, comportant une unité de création automatisée de cas de tests de robustesse et reposant sur des exigences, et de procédures créant automatiquement les cas de tests appliqués au modèle de conception de logiciel.
  7. 7. Procédé selon la revendication 1, comportant l'utilisation d'une technologie de contrôle de modèle afin de créer les cas de tests de robustesse et reposant sur des exigences appliqués au modèle de conception de logiciel.
  8. 8. Procédé selon la revendication 1, comportant, si un résultat de l'analyse du modèle de conception de logiciel n'est pas satisfaisant, l'ajustement du modèle de conception de logiciel afin de corriger toute incohérence avec le modèle de spécifications de logiciel.
  9. 9. Procédé selon la revendication 8, comportant l'application des cas de tests au modèle de conception de logiciel ajusté.
FR1657522A 2015-08-05 2016-08-03 Systeme et procede pour technologie a base de modeles et processus pour la mise au point d'un logiciel essentiel pour la surete Active FR3039908B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/819,167 US10346140B2 (en) 2015-08-05 2015-08-05 System and method for model based technology and process for safety-critical software development

Publications (2)

Publication Number Publication Date
FR3039908A1 true FR3039908A1 (fr) 2017-02-10
FR3039908B1 FR3039908B1 (fr) 2022-12-23

Family

ID=56936596

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1657522A Active FR3039908B1 (fr) 2015-08-05 2016-08-03 Systeme et procede pour technologie a base de modeles et processus pour la mise au point d'un logiciel essentiel pour la surete

Country Status (7)

Country Link
US (1) US10346140B2 (fr)
JP (1) JP6621204B2 (fr)
CN (1) CN106528100B (fr)
BR (1) BR102016018127A2 (fr)
CA (1) CA2937677A1 (fr)
FR (1) FR3039908B1 (fr)
GB (1) GB2542687A (fr)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346140B2 (en) * 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development
US9804954B2 (en) * 2016-01-07 2017-10-31 International Business Machines Corporation Automatic cognitive adaptation of development assets according to requirement changes
US9792204B2 (en) * 2016-02-02 2017-10-17 General Electric Company System and method for coverage-based automated test case augmentation for design models
US11126427B2 (en) * 2016-02-17 2021-09-21 Silverthread, Inc. Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
US20180165180A1 (en) * 2016-12-14 2018-06-14 Bank Of America Corporation Batch File Creation Service
JP6516923B2 (ja) * 2017-01-23 2019-05-22 三菱電機株式会社 ホワイトリスト生成器、ホワイトリスト評価器およびホワイトリスト生成・評価器、並びにホワイトリスト生成方法、ホワイトリスト評価方法およびホワイトリスト生成・評価方法
CN107016085A (zh) * 2017-03-31 2017-08-04 海通安恒科技有限公司 一种计算机化系统验证管理系统
CN107451058B (zh) * 2017-07-31 2023-05-30 北京云测信息技术有限公司 一种软件开发方法和装置
EP3493051A1 (fr) * 2017-11-30 2019-06-05 The MathWorks, Inc. Système et procédés permettant d'évaluer la conformité du code de mise en uvre avec une spécification d'architecture logicielle
DE102018003142A1 (de) 2017-12-13 2019-06-13 The Mathworks, Inc. Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
JP6962867B2 (ja) * 2018-06-04 2021-11-05 矢崎総業株式会社 脆弱性評価装置
US10585779B2 (en) 2018-07-30 2020-03-10 General Electric Company Systems and methods of requirements chaining and applications thereof
US10691584B2 (en) * 2018-09-28 2020-06-23 Sap Se Behavior driven development integration with test tool
EP3637249A1 (fr) * 2018-10-12 2020-04-15 Tata Consultancy Services Limited Systèmes et procédés de validation de modèles spécifiques à un domaine
CN109542452A (zh) * 2018-11-19 2019-03-29 万惠投资管理有限公司 一种基于ai语义分析的运维管理方法及系统
JP6765554B2 (ja) 2018-12-12 2020-10-07 三菱電機株式会社 ソフトウェア試験装置、ソフトウェア試験方法、および、ソフトウェア試験プログラム
FR3091106B1 (fr) * 2018-12-20 2021-02-12 Commissariat Energie Atomique Système de supervision formelle de communications
CN109933309B (zh) * 2019-03-06 2024-07-16 上海工业控制安全创新科技有限公司 机器学习算法应用于汽车软件开发功能安全的流程方法
CN113519018B (zh) * 2019-03-12 2023-01-03 三菱电机株式会社 移动体控制装置和移动体控制方法
CN110032365A (zh) * 2019-04-19 2019-07-19 广东小天才科技有限公司 一种Sketch图形文件的代码查找方法、装置及终端设备
CN112180890B (zh) * 2019-07-05 2022-01-07 北京新能源汽车股份有限公司 一种测试用例的生成方法、装置及设备
CN110445690A (zh) * 2019-08-16 2019-11-12 北京智芯微电子科技有限公司 电力无线公网通信单元互换性测试软件的设计方法
CN110457031A (zh) * 2019-08-21 2019-11-15 赛尔网络有限公司 一种软件开发方法、装置、设备及介质
CN111274133B (zh) * 2020-01-17 2023-07-25 Oppo广东移动通信有限公司 一种静态扫描方法、装置及计算机可读存储介质
CN111858298B (zh) * 2020-05-29 2022-08-30 卡斯柯信号有限公司 一种基于3v模型的软件测试方法
US11200069B1 (en) 2020-08-21 2021-12-14 Honeywell International Inc. Systems and methods for generating a software application
CN112068805B (zh) * 2020-09-02 2024-05-03 中国航空无线电电子研究所 一种需求开发方法
CN112015658A (zh) * 2020-09-02 2020-12-01 卡斯柯信号(北京)有限公司 一种用于软件集成测试用例的生成方法及装置
EP3989073A1 (fr) * 2020-10-20 2022-04-27 Rosemount Aerospace Inc. Génération de vecteurs de test automatisés
BE1028501B1 (nl) * 2020-11-05 2022-02-11 Ivex Een methode en een systeem voor het automatisch genereren van een geïntegreerde broncode voor de elektronische regeleenheid van een AD/ADAS-wegvoertuig
CN112416337B (zh) * 2020-11-11 2023-05-02 北京京航计算通讯研究所 一种面向航天嵌入式系统的软件架构开发系统
EP4016364A1 (fr) * 2020-12-16 2022-06-22 The Boeing Company Dispositif informatique et procédé de développement d'un modèle de système à l'aide d'un module d'évaluation de simulation
CN112966489A (zh) * 2021-03-24 2021-06-15 中国民用航空上海航空器适航审定中心 非原子性缺陷的检测方法、电子设备及存储介质
CN113204330B (zh) * 2021-06-01 2024-03-26 李麟 一种基于人工智能的程序开发设计方法及系统
US11507352B1 (en) 2021-06-15 2022-11-22 International Business Machines Corporation Reducing semantic errors in code generated by machine learning models
CN113791776B (zh) * 2021-08-03 2023-05-26 中国电子科技集团公司第三十研究所 可双向转换的并发性验证方法、系统、设备及存储介质
CN114137873A (zh) * 2021-11-23 2022-03-04 中船动力研究院有限公司 发动机的程序开发方法及装置、发动机的控制系统
US11797317B1 (en) * 2021-12-10 2023-10-24 Amazon Technologies, Inc. Transitioning legacy software to be provably correct

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739671B1 (en) * 2003-12-22 2010-06-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systems, methods and apparatus for implementation of formal specifications derived from informal requirements
EP2369528A1 (fr) * 2010-03-23 2011-09-28 Siemens Aktiengesellschaft Appareil de traitement d'informations, procédé et protocole pour la génération de modèles de spécification d'exigences formelles

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681383B1 (en) 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US7131000B2 (en) * 2001-01-18 2006-10-31 Bradee Robert L Computer security system
GB0113946D0 (en) 2001-06-08 2001-11-14 Secr Defence Automatic Development of Software Codes
US20050020945A1 (en) * 2002-07-02 2005-01-27 Tosaya Carol A. Acoustically-aided cerebrospinal-fluid manipulation for neurodegenerative disease therapy
US7480893B2 (en) 2002-10-04 2009-01-20 Siemens Corporate Research, Inc. Rule-based system and method for checking compliance of architectural analysis and design models
US7228524B2 (en) 2002-12-20 2007-06-05 The Boeing Company Method and system for analysis of software requirements
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
US7685576B2 (en) 2004-01-26 2010-03-23 Siemens Corporation System and method for model based system testing of interactive applications
US7392509B2 (en) * 2004-04-13 2008-06-24 University Of Maryland Method for domain specific test design automation
GB0410047D0 (en) * 2004-05-05 2004-06-09 Silverdata Ltd An analytical software design system
US7865339B2 (en) 2004-07-12 2011-01-04 Sri International Formal methods for test case generation
EP1622022A1 (fr) 2004-07-22 2006-02-01 Siemens Aktiengesellschaft Création automatique de jeux de tests
JP2007122135A (ja) 2005-10-25 2007-05-17 Hitachi Ltd 開発支援装置、開発支援方法、および、開発支援プログラム
EP1832975A1 (fr) 2006-03-09 2007-09-12 Alcatel Lucent Génération automatique de programme source
US7523425B2 (en) 2006-04-21 2009-04-21 Alcatel-Lucent Usa Inc. Test case generation algorithm for a model checker
US8176470B2 (en) 2006-10-13 2012-05-08 International Business Machines Corporation Collaborative derivation of an interface and partial implementation of programming code
US20090089618A1 (en) 2007-10-01 2009-04-02 Fujitsu Limited System and Method for Providing Automatic Test Generation for Web Applications
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
JP2009294846A (ja) 2008-06-04 2009-12-17 Denso Corp テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法
US8359576B2 (en) 2008-11-14 2013-01-22 Fujitsu Limited Using symbolic execution to check global temporal requirements in an application
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
US20110125302A1 (en) 2009-10-23 2011-05-26 Gm Global Technology Operations, Inc. Method and system for formal safety verification of manufacturing automation systems
US20120143570A1 (en) 2010-12-03 2012-06-07 University Of Maryland Method and system for ontology-enabled traceability in design and management applications
CN102136047A (zh) * 2011-02-25 2011-07-27 天津大学 一种基于形式化及统一软件模型的软件可信工程方法
US20120246612A1 (en) * 2011-03-23 2012-09-27 Siemens Corporation System and method for verification and validation of redundancy software in plc systems
JP2013058068A (ja) * 2011-09-08 2013-03-28 Panasonic Corp プラットフォームのプログラムおよびそれを搭載した端末装置
KR101408870B1 (ko) 2012-11-06 2014-06-17 대구교육대학교산학협력단 Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법
WO2014087427A1 (fr) 2012-12-05 2014-06-12 Tata Consultancy Services Limited Procédé et système de conception et modélisation par ordinateur
WO2014115189A1 (fr) 2013-01-28 2014-07-31 Nec Corporation Procédé et système de transformation de scripts de spécification en code de programme
JP2015005189A (ja) 2013-06-21 2015-01-08 株式会社オートネットワーク技術研究所 Ecu評価装置、コンピュータプログラム及びecu評価方法
WO2015040735A1 (fr) 2013-09-20 2015-03-26 株式会社日立製作所 Dispositif d'aide à la validation formelle pour spécifications de logiciel et procédé associé
CN103530228B (zh) * 2013-09-27 2016-09-28 西安电子科技大学 一种基于模型的软件测试方法
CN103678636A (zh) * 2013-12-19 2014-03-26 中山大学深圳研究院 一种构件软件系统可靠性的提高系统及方法
CN103955427B (zh) * 2014-04-29 2016-08-24 探月与航天工程中心 一种安全攸关系统的软件安全性保证的实现方法
CN104182591A (zh) * 2014-09-02 2014-12-03 浪潮(北京)电子信息产业有限公司 一种软件测试需求建模方法
CN104461882B (zh) * 2014-11-29 2017-05-17 中国航空工业集团公司第六三一研究所 一种符合do‑178b/c a级软件的模型验证方法
US10108536B2 (en) * 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US9747079B2 (en) * 2014-12-15 2017-08-29 General Electric Company Method and system of software specification modeling
US10346140B2 (en) * 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739671B1 (en) * 2003-12-22 2010-06-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systems, methods and apparatus for implementation of formal specifications derived from informal requirements
EP2369528A1 (fr) * 2010-03-23 2011-09-28 Siemens Aktiengesellschaft Appareil de traitement d'informations, procédé et protocole pour la génération de modèles de spécification d'exigences formelles

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AJITHA RAJAN ET AL: "Model Validation using Automatically Generated Requirements-Based Tests", HIGH ASSURANCE SYSTEMS ENGINEERING SYMPOSIUM, 2007. HASE '07. 10TH IEEE, IEEE, PISCATAWAY, NJ, USA, 14 November 2007 (2007-11-14), pages 95 - 104, XP031191530, ISBN: 978-0-7695-3043-7 *
JUNBEOM YOO ET AL: "Formal Modeling and Verification of Safety-Critical Software", IEEE SOFTWARE, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, US, vol. 26, no. 3, May 2009 (2009-05-01), pages 42 - 49, XP011255527, ISSN: 0740-7459 *

Also Published As

Publication number Publication date
US20170039039A1 (en) 2017-02-09
JP6621204B2 (ja) 2019-12-18
BR102016018127A2 (pt) 2017-06-06
GB201613356D0 (en) 2016-09-14
FR3039908B1 (fr) 2022-12-23
CA2937677A1 (fr) 2017-02-05
JP2017033562A (ja) 2017-02-09
GB2542687A (en) 2017-03-29
US10346140B2 (en) 2019-07-09
CN106528100A (zh) 2017-03-22
CN106528100B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
FR3039908A1 (fr) Systeme et procede pour technologie a base de modeles et processus pour la mise au point d'un logiciel essentiel pour la surete
US10642721B2 (en) Generation of automated testing scripts by converting manual test cases
US8819642B2 (en) Method and system for generating and processing black box test cases
US9244510B1 (en) Bug report checks in a modeling system
FR3044126A1 (fr) Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique
US20150212927A1 (en) Application Testing Automation
US20140331209A1 (en) Program Testing Service
US20130305212A1 (en) Dry-run design time environment
JP2010231782A (ja) 機能自動化のための方法およびシステム
CN108804305A (zh) 一种自动化测试的方法及装置
US9940215B2 (en) Automatic correlation accelerator
CN111176979A (zh) 一种图数据库的测试用例生成方法和装置
US20190129832A1 (en) System and method for test data generation for use in model based testing using source code test annotations and constraint solving
Allani et al. Verification of BPMN 2.0 process models: an event log-based approach
JP2009087352A (ja) ソフトウェアアプリケーションにおける欠陥検出のための設定可能なウェブサービスシステム及び方法
de Cleva Farto et al. Reuse of model-based tests in mobile apps
CN117112594A (zh) 权益系统达标作业检查方法、装置、设备及存储介质
Jiménez et al. A quality framework for evaluating grammatical structure of user stories to improve external quality
CN112232031B (zh) 电力物联网边缘数据模型校验方法、装置及存储介质
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support
Cammaerts et al. Assessing the value of incomplete deadlock verification in Model-Driven Engineering
CN111522737B (zh) 一种前端界面的自动化测试校验方法、装置及存储介质
Kocbek et al. Beta Testing of a Mobile Application: A Case Study.
CN110716855B (zh) 处理器指令集测试方法及装置
Johnsen Quality Assurance for Dependable Embedded Systems

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9