Download Free Methodes Pour La Verification Formelle De Systemes Materiels Et Logiciels A Architecture Reguliere Book in PDF and EPUB Free Download. You can read online Methodes Pour La Verification Formelle De Systemes Materiels Et Logiciels A Architecture Reguliere and write the review.

Le cadre de cette thèse est l'utilisation des méthodes formelles pour la spécification et la validation de systèmes matériels et logiciels. Nos travaux se sont concentrés sur la validation formelle de systèmes à architecture régulière et paramétrable, circuits combinatoires itératifs d'une part, et applications distribuées s'exécutant sur des réseaux d'interconnexion symétriques d'autre part. La première partie de cette thèse est consacrée à la vérification formelle automatique de circuits à structure répétitive régulière. Un modèle de fonctions récursives est utilisé, le processus de preuve mettant en jeu des techniques inductives permet un raisonnement générique sur la taille du circuit. Le résultat présenté ici est une heuristique de généralisation de théorèmes inductifs spécialisée pour les modèles fonctionnels considérés. Cette méthode permet de produire les théorèmes généralisés ainsi que certains lemmes intermédiaires et d'automatiser ainsi le processus de vérification. La seconde partie propose une méthode de modélisation et de validation de programmes distribués sur les réseaux d'interconnexion symétriques. Les preuves sont ici paramétrées sur l'ordre du réseau (nombre de processeurs). Le modèle formel choisi pour la représentation des réseaux dans l'environnement de démonstration automatique est basé sur le concept de graphe de Cayley. Notre méthode prend en compte les opérations de communications collectives (diffusion, distribution, réduction) utilisées par les applications distribuées. La modélisation et la méthode de preuve développées permettent entre autres de s'abstraire du problème des communications point à point, et de raisonner au niveau du processeur. De plus, elle permet d'obtenir automatiquement les invariants nécessaires au preuves.
Avec l'évolution des technologies, la complexité des systèmes informatiques ne cesse de s'accroître. Parmi ces systèmes, on retrouve les logiciels critiques qui doivent offrir une garantie de sûreté de fonctionnement qui s'avère crucial et pour lesquels un dysfonctionnement peut avoir des conséquences graves. Les méthodes formelles fournissent des outils permettant de garantir mathématiquement l'absence de certaines erreurs. Ces méthodes sont indispensables pour assurer les plus hauts niveaux de sûreté. Mais l'application de ces méthodes sur un code système bas niveau se heurte à des difficultés d'ordre pratique et théorique. Les principales difficultés concernent la prise en compte des aspects bas niveau, comme les pointeurs et les interactions avec le matériel spécifique. De plus, le fait que ces systèmes soient concurrents conduit à une augmentation exponentielle du nombre de comportements possibles, ce qui rend plus difficile leur vérification. Dans cette thèse, nous proposons une méthodologie pour la spécification et la vérification par model-checking de ce type de systèmes, en particulier, ceux implémentés en C. Cette méthodologie est basée sur la traduction de la sémantique de C en TLA+, un langage de spécification formel adapté à la modélisation de systèmes concurrents. Nous avons proposé un modèle de mémoire et d'exécution d'un programme C séquentiel en TLA+. En se basant sur ce modèle, nous avons proposé un ensemble de règles de traduction d'un code C en TLA+ que nous avons implémenté dans un outil, appelé C2TLA+. Nous avons montré comment ce modèle peut s'étendre pour modéliser les programmes C concurrents et gérer la synchronisation entre plusieurs processus ainsi que leur ordonnancement. Pour réduire la complexité du model-checking, nous avons proposé une technique permettant de réduire significativement la complexité de la vérification. Cette réduction consiste pour un code C à agglomérer une suite d'instructions lors de la génération du code TLA+, sous réserve d'un ensemble de conditions.Nous avons appliqué la méthodologie proposée dans cette thèse sur un cas d'étude réel issu de l'implémentation d'un micronoyau industriel,sur lequel nous avons vérifié un ensemble de propriétés fonctionnelles. L'application de la réduction a permis de réduire considérablement le temps de la vérification, ce qui la rend utilisable en pratique.Les résultats ont permis d'étudier le comportement du système, de vérifier certaines propriétés et de trouver des bugs indétectables par des simples tests.
Cette thèse traite de la vérification formelle par model checking de systèmes intégrés sur puce. Nous proposons d'abord une méthode de conception incrémentale pour la vérification d'un composant matériel. Cette méthode est un cadre de conception par ajouts successifs de nouveaux comportements. Nous avons montré que cette méthode assure la non-régression d'un composant tout au long de sa conception. D'autre part, cette méthode permet aussi de faire évoluer la spécification d'un composant en prenant en compte les différentes fonctionnalités ajoutées au cours de la conception. Nous avons ensuite particularisé cette approche pour la conception et la vérification d'architectures pipelines. Cette méthode a été utilisée avec succès pour laconception de convertisseurs de protocole. La vérification par model-checking d'un système intégré sur puce se confronte au problème d'explosion combinatoire. Les techniques d'abstractions sont des méthodes efficaces pour alléger ce problème. Nous exposons un algorithme d'abstraction basé sur la spécification de chaque composant. Cet algorithme construit une structure de Kripke représentant un sous-ensemble des formules CTL tirées de la spécification. Cette construction se place dans un contexte de raffinement d'abstraction guidé par l'étude du contre-exemple produit par le model checker. Les premières expérimentations que nous avons réalisées montrent un gain considérable en temps de vérification et un accroissement conséquent de la taille du système vérifié. Ces résultats nous confortent sur l'intérêt de cette méthode d'abstraction.
Lors d'un développement logiciel, et plus particulièrement d'un développement d'applications embarquées avioniques, les activités de vérification représentent un coût élevé. Une des pistes prometteuses pour la réduction de ces coûts est l'utilisation de méthodes formelles. Ces méthodes s'appuient sur des fondements mathématiques et permettent d'effectuer des tâches de vérification à forte valeur ajoutée au cours du développement. Les méthodes formelles sont déjà utilisées dans l'industrie. Cependant, leur difficulté d'appréhension et la nécessité d'expertise pour leur mise en pratique sont un frein à leur utilisation massive. Parallèlement au problème des coûts liés à la vérification logicielle, vient se greffer la complexification des logiciels et du contexte de développement. L'Ingénierie Dirigée par les Modèles (IDM) permet de faire face à ces difficultés en proposant des modèles, ainsi que des activités pour en tirer profit.Le but des travaux présentés dans cette thèse est d'établir un lien entre les méthodes formelles et l'IDM afin de proposer à des utilisateurs non experts une approche de vérification formelle et automatique de programmes susceptible d'améliorer les processus de vérification actuels. Nous proposons de générer automatiquement sur le code source des annotations correspondant aux propriétés comportementales attendues du logiciel, et ce, à partir de son modèle de conception. Ces annotations peuvent ensuite être vérifiées par des outils de preuve déductive, afin de s'assurer que le comportement du code est conforme au modèle. Cette thèse CIFRE s'inscrit dans le cadre industriel d'Atos. Il est donc nécessaire de prendre en compte le contexte technique qui s'y rattache. Ainsi, nous utilisons le standard UML pour la modélisation,le langage C pour l'implémentation et l'outil Frama-C pour la preuve du code. Nous tenons également compte des contraintes du domaine du logiciel avionique dans lequel Atos est impliqué et notamment les contraintes liées à la certification.Les contributions de cette thèse sont la définition d'un sous-ensemble des machines à états UML dédié à la conception comportementale de logiciel avionique et conforme aux pratiques industrielles existantes, la définition d'un patron d'implémentation C, la définition de patrons de génération des propriétés comportementales sur le code à partir du modèle et enfin l'implémentation de l'approche dans un prototype compatible avec l'environnement de travail des utilisateurs potentiels en lien avec Atos. L'approche proposée est finalement évaluée par rapport à l'objectif de départ, par rapport aux attentes de la communauté du génie logiciel et par rapport aux travaux connexes.
A cause de la complexité croissante des systèmes sur puce (SoC), la vérification devient un aspect très important : 70 - 80% du coût de conception est alloué à cette tâche. Plus de 60% des projets de développement d'ASIC doivent être repris à cause des erreurs fonctionnelles, environ 50% des erreurs de conception étant situées au niveau du module. Dans le monde industriel, la vérification est souvent synonyme de simulation - une méthode de vérification naturelle pour les concepteurs, mais qui ne garantit pas l'absence d'erreurs. Une alternative est fournie par la vérification formelle qui prouve mathématiquement qu'un circuit satisfait une spécification. Dans cette thèse, on s'intéresse aux méthodes déductives basées sur la démonstration de théorèmes. La démonstration de théorèmes permet de vérifier formellement des descriptions matérielles de haut niveau et des systèmes réguliers ou très complexes, car la taille de données n'a plus d'importance. Par contre la modélisation de la description matérielle se fait directement en logique, ce qui rend l'accès difficile pour les concepteurs. Notre travail a pour but de faciliter l'introduction des outils de démonstration de théorèmes dans le flot de conception. Nous proposons une méthode automatique de traduction d'un circuit VHDL vers un modèle sémantique basé sur des équations récurrentes par rapport au temps qui peut être l'entrée de tout outil de démonstration de théorèmes et nous définissons une approche de vérification adaptée au modèle. Afin de valider notre proposition, nous avons choisi le démonstrateur ACL2 pour vérifier une bibliothèque de circuits de cryptographie.
This book gives a comprehensive view of the most recent major international research in the field of tolerancing, and is an excellent resource for anyone interested in Computer Aided Tolerating. It is organized into 4 parts. Part 1 focuses on the more general problems of tolerance analysis and synthesis, for tolerancing in mechanical design and manufacturing processes. Part 2 specifically highlights the simulation of assembly with defects, and the influence of tolerances on the quality of the assembly. Part 3 deals with measurement aspects, and quality control throughout the life cycle. Different measurement technologies and methods for estimating uncertainty are considered. In Part 4, different aspects of tolerancing and their interactions are explored, from the definition of functional requirement to measurement processes in a PLM approach.
Deals with the formalization of the design of mixed hardware/software systems. It advocates rigorous system design as a model-based process leading from requirements to correct implementations and presents the current state of the art in system design, discusses its limitations and identifies possible avenues for overcoming them.
A detailed and thorough reference on the discipline and practice of systems engineering The objective of the International Council on Systems Engineering (INCOSE) Systems Engineering Handbook is to describe key process activities performed by systems engineers and other engineering professionals throughout the life cycle of a system. The book covers a wide range of fundamental system concepts that broaden the thinking of the systems engineering practitioner, such as system thinking, system science, life cycle management, specialty engineering, system of systems, and agile and iterative methods. This book also defines the discipline and practice of systems engineering for students and practicing professionals alike, providing an authoritative reference that is acknowledged worldwide. The latest edition of the INCOSE Systems Engineering Handbook: Is consistent with ISO/IEC/IEEE 15288:2015 Systems and software engineering—System life cycle processes and the Guide to the Systems Engineering Body of Knowledge (SEBoK) Has been updated to include the latest concepts of the INCOSE working groups Is the body of knowledge for the INCOSE Certification Process This book is ideal for any engineering professional who has an interest in or needs to apply systems engineering practices. This includes the experienced systems engineer who needs a convenient reference, a product engineer or engineer in another discipline who needs to perform systems engineering, a new systems engineer, or anyone interested in learning more about systems engineering.