305 research outputs found

    Model-Checking symbolique pour la vérification de systèmes et son application aux tables de décision et aux systèmes d'éditions collaboratives distribuées

    Get PDF
    Résumé Dans le cycle de vie de tout système logiciel, une phase cruciale de formalisation et de validation au moyen de vérification et/ou de test induit une identification d'erreurs probables infiltrées durant sa conception. Cette détection d'erreurs et leur correction sont avantageuses dans les premières phases de développement du système afin d'éviter tout retour aux travaux ardus d'analyse de spécifications et de modélisation du système précédant sa réalisation. Par conséquent, cette étape mise en oeuvre à travers des méthodes et des outils formels dans les phases amont de la conception contribue à augmenter la confiance des concepteurs et utilisateurs vis-à-vis de la fonctionnalité du système. L'objectif de cette maîtrise s'insère dans le cadre d'une recherche qui vise à exploiter une technique formelle spécifique d'analyse de programmes et de spécifications: l'exécution symbolique combinée au model-checking. Cette technique représente une approche émergente à laquelle les chercheurs ont porté une attention particulière ces dernières années. D'une part, l'exécution symbolique permet d'explorer les chemins d'exécution possibles d'un programme modélisant un système avec des variables d'entrée non initialisées, en d'autres termes en manipulant des variables abstraites ou "symboliques". Ces chemins caractérisent ainsi le comportement du programme de manière abstraite. D'autre part, le model-checking permet d'explorer systématiquement ces différents chemins d'exécution à l'aide d'une énumération exhaustive des états accessibles afin de générer ultérieurement des contreexemples en cas de violation de propriétés du système. De ce fait, l'exécution symbolique combinée au model-checking englobe les points forts de ces deux techniques octroyant aux concepteurs du système une compréhension accrue des situations d'erreur dans les contre-exemples ainsi générés.----------Abstract Verification is one crucial activity in any software life cycle. Its major role is to ensure an identification of potential design and implementation flaws integrated in the software system during its development process. Such an identification leads to eventual corrections in the early steps of the development cycle, thus avoiding tedious work otherwise required in the system requirements' reanalysis as well as in its remodelling preceding its deployment. As a consequence, the verification step is rigorously put into practice through formal methods and tools. Given such a formalisation contributes to give another level of insurance to both the system's designers and users. This thesis is related to a research which aims at applying one specific formal method in program and requirements analysis: symbolic execution intertwined with model checking. This technique has known a major development in the past few years, thus raising interest among researchers in the field. On one hand, symbolic execution explores all possible execution paths of a program modelling a system using uninitialised input variables. As its name implies, this specific execution deals with abstract or "symbolic" variables. Hence, those visited paths characterise the abstract program behaviour. On another hand, model checking ensures a systematic exploration of those different execution paths through an exhaustive visit of all reachable states. This approach is necessary for subsequent generation of counterexamples in case of property violations within the system. Therefore, symbolic execution along with model checking is a resulting approach enforced with advantages of both techniques. This yields a higher degree of interpreting the retrieved flaws provided through generated counterexamples, for even the most sophisticated systems

    Preuve de propriétés dynamiques en B

    Get PDF
    Résumé: Les propriétés que l'on souhaite exprimer sur les applications système d'information ne peuvent se restreindre aux propriétés statiques, dites propriétés d'invariance, qui portent sur des états du système pris au même moment. En effet, certaines propriétés, dites propriétés dynamiques, peuvent faire référence à l'état passé ou futur du système. Les travaux existants sur la vérification de telles propriétés utilisent généralement le model checking dont l'efficacité pour le domaine des systèmes d'information est plutôt réduite à cause de l'explosion combinatoire de l'espace des états. Aussi, les techniques, fondées sur la preuve, requièrent des connaissances assez avancées en termes de raisonnement mathématique et sont donc difficiles à mettre en œuvre d'autant plus que ces dernières ne sont pas outillées. Pour pallier ces limites, nous proposons dans cette thèse des méthodes de vérification de propriétés dynamiques basées sur la preuve en utilisant la méthode formelle B. Nous nous intéressons principalement aux propriétés d'atteignabilité et de précédence pour lesquelles nous avons défini des méthodes de génération d'obligations de preuve permettant de les prouver. Une propriété d'atteignabilité permet d'exprimer qu'il existe au moins une exécution du système qui permet d'atteindre un état cible à partir d'un état initial donné. Par contre, la propriété de précédence permet de s'assurer qu'un état donné du système est toujours précédé par un autre état. Afin de rendre ces différentes approches opérationnelles, nous avons développé un outil support qui permet de décharger l'utilisateur de la tâche de génération d'obligations de preuve qui peut être longue et fastidieuse.||Abstract: The properties that we would like to express on data-intensive applications cannot be limited to static properties, called invariance properties , that depend on states taken at the same time. Indeed, some properties, called dynamic properties, may refer to the past or the future states of the system. Existing work on the verification of such properties typically use model checking whose effectiveness for data-intensive applications is rather limited due to the combinatorial explosion of the state space. In addition, the techniques, based on the proof, require fairly advanced knowledge and mathematical reasoning especially that they are not always supported by tools. To overcome these limitations, we propose in this thesis proof-based verification approaches that use the B formal method. We are mainly interested in reachability and precedence properties for which we defined formal rules to generate proof obligations that permit to discharge them. A reachability property expresses that there is at least one execution scenario that permits to reach a target state from a given initial state while a precedence property ensures that a given system state is always preceded by another state. To make these different approaches workable, we have developed a support tool that permits to discharge the users from tedious and error-prone tasks

    Modélisation en UML/OCL des langages de programmation et de leurs propriétés et processus IDM

    Get PDF
    Cette étude est axée sur l'activité de génération de composants logiciels se situant en phase terminale des processus de développement de logiciels dirigés par les modèles. Dans une première partie, nous présentons les travaux de recherche déjà existants sur les modèles et les transformations de modèles, ainsi que sur la modélisation en UML/OCL des langages de programmation limitée, la plupart du temps, aux aspects syntaxiques. Dans une deuxième partie, nous montrons comment nous modélisons en UML/OCL, les propriétés comportementales et axiomatiques des langages de programmation de style impératif. La modélisation des propriétés comportementales et axiomatiques d'un langage, en UML/OCL enrichi d'un langage d'actions, nous amène à montrer comment on peut, à l'aide de triplets de Hoare, vérifier que des segments de modèles de programmes sont corrects. Les assertions déduites des triplets de Hoare par application des propriétés axiomatiques du langage sont transmises à un Atelier B en vue d'étudier leurs éventuelles validités. Dans une troisième partie, nous montrons comment on peut injecter au niveau du Méta-Modèle UML des propriétés comportementales et axiomatiques spécifiques à un domaine d'applications particulier. Nous nous sommes limités au fragment du Méta-Modèle UML définissant les diagrammes d'activité se situant donc en amont des modèles de codes, avant la génération proprement dite des codes. La cohérence entre les modèles et les codes peut se vérifier à l'aide de propriétés comportementales et axiomatiques en comparant les modèles issues des exigences et les modèles des codes. Ces travaux de recherche ont été financés dans le cadre de l'ANR.Our work focuses on the software component generation phase that takes place at the last phase of a model driven development process. Our work is related to either the modelware or the grammarware because the model driven process can be considered as a successive of model transformations whereas the code generation is a specific transformation from the model to a language grammar. In the first part, we resume some relative works in the domain of the models and of the models transformation; we also present the language modeling in UML which is generally restricted by the syntax modeling. In the second part, we show how we model in UML/OCL the behavioral and axiomatic properties of imperative programming languages. The modeling of the behavioral properties helps to execute the code models if we dispose a right execution environment. In the other hand, the modeling of the axiomatic properties helps to demonstrate the correctness of the code model. In fact, the assertions obtained from the modeling of the axiomatic properties of the language will be transferred to a B atelier in order to have further validation. In the third part, we show how we inject into the UML metamodel the considered domain behavioral and axiomatic properties. We focus on the activity diagram metamodel of the UML which defines the behavior part of a UML model. The coherence between the models and the codes can be then verified in comparing the behavioral and axiomatic properties of the models issued from the requirements and that of the codes. Our work is financed by the ANR research projects

    Preuve de propriétés dynamiques en B

    Get PDF
    Les propriétés que l on souhaite exprimer sur les applications système d information ne peuvent se restreindre aux propriétés statiques, dites propriétés d invariance, qui portent sur des états du système pris au même moment. En effet, certaines propriétés, dites propriétés dynamiques, peuvent faire référence à l état passé ou futur du système. Les travaux existants sur la vérification de telles propriétés utilisent généralement le model checking dont l efficacité pour le domaine des systèmes d information est plutôt réduite à cause de l explosion combinatoire de l espace des états. Aussi, les techniques, fondées sur la preuve, requièrent des connaissances assez avancées en termes de raisonnement mathématique et sont donc difficiles à mettre en œuvre d autant plus que ces dernières ne sont pas outillées. Pour palier ces limites, nous proposons dans cette thèse des méthodes de vérification de propriétés dynamiques basées sur la preuve en utilisant la méthode formelle B. Nous nous intéressons principalement aux propriétés d atteignabilité et de précédence pour lesquelles nous avons défini des méthodes de génération d obligations de preuve permettant de les prouver. Une propriété d atteignabilité permet d exprimer qu il existe au moins une exécution du système qui permet d atteindre un état cible à partir d un état initial donné. Par contre, la propriété de précédence permet de s assurer qu un état donné du système est toujours précédé par un autre état. Afin de rendre ces différentes approches opérationnelles, nous avons développé un outil support qui permet de décharger l utilisateur de la tâche de génération d obligations de preuve qui peut être longue et fastidieuseThe properties that we would like to express on data-intensive applications cannot be limited to static properties, called invariance properties, which depend on states taken at the same time. Indeed, some properties, called dynamic properties, may refer to the past or the future states of the system. Existing work on the verification of such properties typically use model checking whose effectiveness for data-intensive applications is rather limited due to the combinatorial explosion of the state space. In addition, the techniques, based on the proof, require fairly advanced knowledge and mathematical reasoning especially that they are not always supported by tools. To overcome these limitations, we propose in this thesis proof-based verification approaches that use the B formal method. We are mainly interested in reachability and precedence properties for which we defined formal rules to generate proof obligations that permit to discharge them. A reachability property expresses that there is at least one execution scenario that permits to reach a target state from a given initial state while a precedence property ensures that a given system state is always preceded by another state. To make these different approaches workable, we have developed a support tool that permits to discharge the users from tedious and error-prone tasksEVRY-INT (912282302) / SudocSudocFranceF

    Extraction de code fonctionnel certifié à partir de spécifications inductives.

    Get PDF
    Les outils d aide à la preuve basés sur la théorie des types permettent à l utilisateur d adopter soit un style fonctionnel, soit un style relationnel (c est-à-dire en utilisant des types inductifs). Chacun des deux styles a des avantages et des inconvénients. Le style relationnel peut être préféré parce qu il permet à l utilisateur de décrire seulement ce qui est vrai, de s abstraire temporairement de la question de la terminaison, et de s en tenir à une description utilisant des règles. Cependant, une spécification relationnelle n est pas exécutable.Nous proposons un cadre général pour transformer une spécification inductive en une spécification fonctionnelle, en extrayant à partir de la première une fonction et en produisant éventuellement la preuve de correction de la fonction extraite par rapport à sa spécification inductive. De plus, à partir de modes définis par l utilisateur, qui permettent de considérer les arguments de la relation comme des entrées ou des sorties (de fonction), nous pouvons extraire plusieurs comportements calculatoires à partir d un seul type inductif.Nous fournissons également deux implantations de notre approche, l une dans l outil d aide à la preuve Coq et l autre dans l environnement Focalize. Les deux sont actuellement distribuées avec leurs outils respectifs.Proof assistants based on type theory allow the user to adopt either a functional style, or a relational style (e.g., by using inductive types). Both styles have advantages and drawbacks. Relational style may be preferred because it allows the user to describe only what is true, discard momentarily the termination question, and stick to a rule-based description. However, a relational specification is usually not executable.We propose a general framework to turn an inductive specification into a functional one, by extracting a function from the former and eventually produce the proof of soundness of the extracted function w.r.t. its inductive specification. In addition, using user-defined modes which label inputs and outputs, we are able to extract several computational contents from a single inductive type.We also provide two implementations of our approach, one in the Coq proof assistant and the other in the Focalize environnement. Both are currently distributed with the respective tools.PARIS-CNAM (751032301) / SudocSudocFranceF

    Génération automatique de modèles d'application Temps-Réel

    Get PDF
    Stage de DEA. Rapport de stage.Le but du projet est de mettre en place une méthodologie et des outils permettant de valider les propriétés temporelles d'applications distribuées complexes (hétérogénéité des matériels supports, approche événementielle ) spécifiées dans un langage de description d'architecture (ici Ardeco propre au consortium Covadis [Thomas97] ). Ce langage permet de décrire une architecture fonctionnelle sous forme d'une architecture de composants. l'architecture fonctionnelle permet de décrire les différentes fonctions des composants et leurs interactions logiques. l'architecture matérielle constitue l'informatique support (calculateurs et systèmes exécutifs, réseaux et protocoles, topologie de connexion). l'architecture opérationnelle est le résultat de la projection d'une architecture fonctionnelle sur une architecture matérielle. Nous sommes partis des travaux initiés au sein du consortium COVADIS et les avons étendus par des propositions de mécanismes supplémentaires.Il a fallu également définir les mécanismes de projection de l'architecture fonctionnelle sur l'architecture matérielle, puis proposer les modèles de l'architecture matérielle (ordonnanceurs locaux, protocoles de communication) et les interactions de ces modèles avec ceux de l'architecture fonctionnelle

    Spécification formelle de systèmes temps réel répartis par une approche flots de données à contraintes temporelles

    Get PDF
    Une définition des systèmes temps réel est que leur correction dépend de la correction fonctionnelle mais aussi du temps d'exécution des différentes opérations. Les propriétés temps réels sont alors exprimées comme des contraintes temporelles sur les opérations du système. Nous proposons dans cette thèse un autre point de vue où la correction est définie relativement à la validité temporelle des valeurs prises par les variables du système et aux flots de données qui parcourent le système. Pour définir ces conditions de validité, nous nous intéressons au rythme de mise à jour des variables mais aussi aux liens entre les valeurs des différentes variables du système. Une relation dite d'observation est utilisée pour modéliser les communications et les calculs du système qui définissent les liens entre les variables. Un ensemble de relations d'observation modélise l'architecture et les flots de données du système en décrivant les chemins de propagation des valeurs dans le système. Les propriétés temps réels sont alors exprimées comme des contraintes sur ces chemins de propagation permettant d'assurer la validité temporelle des valeurs prises par les variables. La validité temporelle d'une valeur est définie selon la validité temporelle des valeurs des autres variables dont elle dépend et selon le décalage temporel logique ou événementiel introduit par les communications ou les calculs le long des chemins de propagation. Afin de prouver la satisfiabilité d'une spécification définie par une telle architecture et de telles propriétés, nous construisons un système de transitions à état fini bisimilaire à la spécification. L'existence de ce système fini est justifiée par des bornes sur le décalage temporel entre les variables du système. Il est alors possible d'explorer les exécutions définies par ce système de transitions afin de prouver l'existence d'exécutions infinies satisfaisant la spécification. ABSTRACT : Real time systems are usually defined as systems where the total correctness of an operation depends not only on its logical correctness, but also on the execution time. Under this definition, time constraints are defined according to system operations. Another definition of real time systems is centered on data where the correctness of a system depends on the timed correctness of its data and of the data flows across the system. i.e. we expect the values taken by the variable to be regularly renewed and to be consistent with the environment and the other variables. I propose a modeling framework based on this later definition. This approach allows users to focus on specifying time constraints attached to data and to postpone task and communication scheduling matters. The timed requirements are not expressed as constraints on the implantation mechanism, but on the relations binding the system’s variables. These relations between data are expressed in terms of a so called observation relation which abstracts the relation between the values that are taken by some variables, the set of sources and the image. This relation abstracts the communication as well as the computational operations and a set of observation relations models the system architecture and the data flows by defining the paths along which values of sources are propagated to build the values of an image. The real time properties are expressed as constraints on the propagation paths and state the temporal validity of the values. This temporal validity is defined by the time shift between the source and the image, and specifies the propagation of timely sound values along the path to build temporally correct values of the system outputs. At this level of abstraction, the designer gives a specification of the system based on timed properties about the timeline of data such as their freshness, stability, latency etc. In order to prove the feasibility of an observation-based model, a finite state transition system bi-similar with the specification is built. The existence of a finite bi-similar system is deduced from the bounded time shift between the variables. The existence of an infinite execution in this system proves the feasibility of the specification

    Réalisabilité et paramétricité dans les systèmes de types purs

    Get PDF
    Cette thèse porte sur l adaptation de la réalisabilité et la paramétricité au cas des types dépendants dans le cadre des Systèmes de Types Purs. Nous décrivons une méthode systématique pour construire une logique à partir d un langage de programmation, tous deux décrits comme des systèmes de types purs. Cette logique fournit des formules pour exprimer des propriétés des programmes et elle offre un cadre formel adéquat pour développer une théorie de la réalisabilité au sein de laquelle les réalisateurs des formules sont exactement les programmes du langage de départ. Notre cadre permet alors de considérer les théorèmes de représentation pour le système T de Gödel et le système F de Girard comme deux instances d'un théorème plus général.Puis, nous expliquons comment les relations logiques de la théorie de la paramétricité peuvent s'exprimer en terme de réalisabilité, ce qui montre que la logique engendrée fournit un cadre adéquat pour développer une théorie de la paramétricité du langage de départ. Pour finir, nous montrons comment cette théorie de la paramétricité peut-être adaptée au système sous-jacent à l'assistant de preuve Coq et nous donnons un exemple d'application original de la paramétricité à la formalisation des mathématiques.This thesis focuses on the adaptation of realizability and parametricity to dependent types in the framework of Pure Type Systems. We describe a systematic method to build a logic from a programming language, both described as pure type systems. This logic provides formulas to express properties of programs and offers a formal framework that allows us to develop a theory of realizability in which realizers of formulas are exactly programs of the starting programming language. In our framework, the standard representation theorems of Gödel's system T and Girard's system F may be seen as two instances of a more general theorem. Then, we explain how the so-called logical relations of parametricity theory may be expressed in terms of realizability, which shows that the generated logic provides an adequate framework for developping a general theory of parametricity. Finally, we show how this parametricity theory can be adapted to the underlying type system of the proof assistant Coq and we give an original example of application of parametricity theory to the formalization of mathematics.LYON-ENS Sciences (693872304) / SudocSudocFranceF

    Formalisation des Processus de l'Ingénierie Système : Proposition d'une méthode d'adaptation des processus génériques à différents contextes d'application

    Get PDF
    In this thesis, we are interested in the problem of multiple processes needed for the realization of an engineering project.Retained approach is founded on the idea that it exists a generic solution to problems of engineering. Our proposition is to formalize this solution for allow its adaptation at specific behaviors and projects by model transformations. We use concepts issued from MDE and apply them in the context of system engineering. Steps of our approach are:•• the formalization, in a SPEM/UML model, of a generic process starting from a system engineering standard (EIA-632),• its specializing to adapt it at a project behavior,• its enrichment to prepare exploitation and conduct.Processes formalization is the base of a new approach of system engineering application. This approach gives a global and local coherency in the organization and during the stages of the projects. By using consistency rules arising from international standards, it ensures a consistent global comportment of the project. By allowing actors of the project to adapt their practices, it allows them to work optimally with the assurance that specific processes used are well inserted in the project.The proposed approach gives an answer to the problematic of concrete application of system engineering processes arise from the industry and, more generally, to the constant improvement of methods and products.Dans cette thèse, nous nous intéressons au problème de l'interaction des processus multiples nécessaires à la réalisation d'un projet d'ingénierie.L'approche retenue repose sur l'idée qu'il existe une solution générique aux problèmes d'ingénierie. Notre proposition est de formaliser cette solution pour permettre de l'adapter ensuite à des domaines d'activités et à des projets précis par des opérations de transformation de modèles. Pour cela, nous nous reposons sur les concepts de l'IDM et les appliquons dans le cadre de l'ingénierie système. Les étapes de notre proposition sont :• la formalisation d'un processus générique à partir d'un standard de l'ingénierie système (EIA-632) sous la forme d'un modèle SPEM/UML,• sa spécialisation pour l'adapter au contexte d'application d'un projet,• son enrichissement pour en préparer l'exploitation et la conduite. La formalisation des processus est la base d'une démarche nouvelle d'application de l'ingénierie système.Cette démarche assure une cohérence globale et locale dans l'organisation et le déroulement des projets. En se reposant sur des règles de bonnes pratiques issues des standards internationaux elle s'assure d'un comportement global cohérent du projet. En laissant les acteurs du projet libres d'adapter leurs pratiques à leur environnement de travail elle permet à chacun de travailler de manière optimale avec l'assurance que les processus spécifiques qu'il emploie s'insèrent au mieux dans le projet.La démarche que nous proposons répond à la problématique d'application concrète des processus d'ingénierie système posée par l'industrie et, plus généralement, à celle de l'amélioration continue des méthodes et des produits

    Un cadriciel pour une surveillance adaptative de réseaux et systèmes complexes

    Get PDF
    L'objectif des travaux présentés dans ce mémoire est de proposer une solution logicielle (cadriciel) apte à supporter l'automatisation de l'adaptation d'une activité de surveillance. Une telle adaptation résulte en une modification de la manière de surveiller. Ainsi, il est nécessaire de définir un plan de contrôle visant à gérer l'ensemble des mécanismes sous-jacents utilisés pour surveiller effectivement le système géré. Afin d'apporter une réponse logicielle la plus générique, modulaire et réutilisable possible, nous avons identifié trois capacités à partir desquelles a été architecturé le cadriciel proposé : la configurabilité : la capacité d'initialiser et de modifier dynamiquement et sans interruption la portée et les valeurs des paramètres gouvernant le comportement des mécanismes de surveillance (par exemple polling ou event reporting), l'adaptabilité : la capacité de modifier dynamiquement et sans interruption le comportement d'une activité de surveillance, donc d'exécuter l'adaptation de la surveillance, la gouvernabilité : la capacité de détecter un besoin d'adaptation et de déclencher cette adaptation des mécanismes de surveillance. Chacune de ces couches du cadriciel a été conceptualisée, puis implémentée, testée et évaluée. Notre approche, ses modèles et leur formalisation sont indépendants de tout environnement technologique.The objective of the work reported in this thesis is to propose a software framework able to support the automation of a monitoring activity adaptation. Such an adaptation results in a modification of the way to monitor. Consequently, it is required to define a control plane able to manage the set of the underlying monitoring mechanisms. With the concern to propose a solution both the most generic, modular and reusable as possible, we have identified three properties from which has been designed the architecture of the proposed framework : configurability is the ability to initiate and then to modify at runtime without disruption both the scope and the parameters that govern the behavior of the monitoring mechanisms (for example polling or event reporting), adaptability is the ability to dynamically modify the behavior of a complete monitoring activity, thus allowing the achievement of an adaptation, governability is the ability to detect an adaptation requirement and to trigger the enforcement of the monitoring activity adaptation. Each of these three layers of the framework has been designed, implemented, tested and evaluated. Our approach, its models and their formalization are independent of any technological environment
    • …
    corecore