21 research outputs found

    Premières leçons sur la spécification d'un train d'atterrissage en B événementiel

    Get PDF
    National audienceCe papier présente les leçons préliminaires obtenues en traitant en B Événementiel l'étude de cas proposée par la conférence ABZ 2014. Le problème consiste à modéliser le logiciel de contrôle du train d'atterrissage d'un avion. L'utilisation de B Évémentiel sur cette étude pose des questions intéressantes quant à la nature des invariants, quant au moment de leur introduction, ainsi que quant à l'expression et la vérification des propriétés fonctionnelles. Le raffine- ment est organisé en niveaux d'observation structurés par la description du maté- riel. Le système est vu comme un automate assez simple piloté par des capteurs externes. La description d'un tel système en B Événementiel est simple mais sa validation est beaucoup plus difficile. Cette étape utilise JeB, un simulateur de B Événementiel en JavaScript. L'émulation des capteurs est un point crucial

    Environnement Multi-agent pour la Multi-modélisation et Simulation des Systèmes Complexes

    Get PDF
    This thesis is focused on the study of complex systems through a modeling and simulation (M&S) process. Most questions about such systems requiere to take simultaneously account of several points of view. Phenomena evolving at different (temporal and spatial) scales and at different levels of resolution (from micro to macro) have to be considered. Moreover, several expert skills belonging to different scientific fields are needed. The challenges are then to reconcile these heterogeneous points of view, and to integrate each domain tools (formalisms and simulation software) within the rigorous framework of the M&S process. In order to solve these issues, we mobilise notions from multi-level modeling, hybrid modeling, parallel simulation and software engineering. Regarding these fields, we study the complementarity of the AA4MM approach and the DEVS formalism into the scope of the model-driven engineering (MDE) approach. Our contribution is twofold. We propose the operational specifications of the MECSYCO co-simulation middleware enabling the parallel simulation of complex systems models in a rigorous and decentralized way. We also define an MDE approach enabling the non-ambiguous description of complex systems models and their automatic implementation in MECSYCO. We show the properties of our approach with several proofs of concept.Ce travail de thèse porte sur l'étude des systèmes complexes par une démarche de modélisation et simulation (M&S). La plupart des questionnements sur ces systèmes nécessitent de prendre en compte plusieurs points de vue simultanément. Il faut alors considérer des phénomènes évoluant à des échelles (temporelles et spatiales) et des niveaux de résolutions (de microscopique à macroscopique) différents. De plus, l'expertise nécessaire pour décrire le système vient en général de plusieurs domaines scientifiques. Les défis sont alors de concilier ces points de vues hétérogènes, et d'intégrer l'existant de chaque domaine (formalismes et logiciels de simulation) tout en restant dans le cadre rigoureux de la démarche de M&S. Pour répondre à ces défis, nous mobilisons à la fois des notions de modélisation multi-niveau (intégration de représentations micro/macro), de modélisation hybride (intégration de formalismes discrets/continus), de simulation parallèle, et d'ingénierie logicielle (interopérabilité logiciel, et ingénierie dirigée par les modèles). Nous nous inscrivons dans la continuité des travaux de M&S existants autour de l'approche AA4MM et du formalisme DEVS. Nous étudions en effet dans cette thèse en quoi ces approches sont complémentaires et permettent, une fois combinées dans une démarche d'Ingénierie Dirigée par les Modèles (IDM), de répondre aux défis de la M&S des systèmes complexes. Notre contribution est double. Nous proposons d'une part les spécifications opérationnelles de l'intergiciel de co-simulation MECSYCO permettant de simuler en parallèle un modèle de manière rigoureuse et complètement décentralisée. D'autre part, nous proposons une approche d'IDM permettant de décrire de manière non-ambiguë des modèles, puis de systématiser leur implémentation dans MECSYCO. Nous évaluons les propriétés de notre approche à travers plusieurs preuves de concept portant sur la M&S du trafic autoroutier et sur la résolution numérique d'un système d'équations différentielles

    Vérification formelle des systèmes multi-agents auto-adaptatifs

    Get PDF
    A major challenge for the development of self-organizing MAS is to guarantee the convergence of the system to the overall function expected by an external observer and to ensure that agents are able to adapt to changes. In the literature, several works were based on simulation and model-checking to study self-organizing MAS. The simulation allows designers to experiment various settings and create some heuristics to facilitate the system design. Model checking provides support to discover deadlocks and properties violations. However, to cope with the complexity of self-organizing MAS, the designer also needs techniques that support not only verification, but also the development process itself. Moreover, such techniques should support disciplined development and facilitate reasoning about various aspects of the system behavior at different levels of abstraction. In this thesis, three essential contributions were made in the field of formal development and verification of self-organizing MAS: a formalization with the Event-B language of self-organizing MAS key concepts into three levels of abstraction, an experimentation of a top-down refinement strategy for the development of self-organizing MAS and the definition of a bottom-up refinement process based on refinement patterns.Un des défis majeurs pour le développement des Systèmes Multi-Agents (SMA) auto-organisateurs est de garantir la convergence du système vers la fonction globale attendue par un observateur externe et de garantir que les agents sont capables de s'adapter face aux perturbations. Dans la littérature, plusieurs travaux se sont basés sur la simulation et le model-checking pour analyser les SMA auto-organisateurs. La simulation permet aux concepteurs d'expérimenter plusieurs paramètres et de créer certaines heuristiques pour faciliter la conception du système. Le model-checking fournit un support pour découvrir les blocages et les violations de propriétés. Cependant, pour faire face à la complexité de la conception des SMA auto-organisateurs, le concepteur a également besoin de techniques qui prennent en charge non seulement la vérification, mais aussi le processus de développement lui-même. En outre, ces techniques doivent permettre un développement méthodique et faciliter le raisonnement sur divers aspects du comportement du système à différents niveaux d'abstraction. Dans cette thèse, trois contributions essentielles ont été apportées dans le cadre du développement et la vérification formelle des SMA auto-organisateurs: une formalisation à l'aide du langage B-événementiel des concepts clés de ces systèmes en trois niveaux d'abstraction (micro, méso et macro), une expérimentation d'une stratégie de raffinement descendante pour le développement des SMA auto-organisateurs et la proposition d'un processus de raffinement ascendant basé sur des patrons de raffinement

    Politiques d'adaptation pour la reconfiguration du composant de localisation

    Get PDF
    International audienceLes approches à base de composants sont intensivement étudiées dans le cadre des systèmes complexes. Ces approches visent à concevoir des systèmes et des applications par assemblage de composants préfabriqués, réutilisables et faciles à maintenir. Afin de répondre à des besoins spécifiques, une des approches est l'utilisation de politiques d'adaptation permettant de reconfigurer dynamiquement le modèle à composants par rapport au contexte de son environnement. Le travail présenté dans cet article repose sur un cadre formel permettant de décrire des politiques d'adaptation appliquées à un composant de localisation. Ce composant, que nous spécifions en Fractal, permet de fournir une position optimale, obtenue à partir de plusieurs positions fournies par plusieurs systèmes de localisation (GPS, Wifi). Nous définissons deux politiques d'adaptation pour ce composant et simulons son fonctionnement sur une extension de Fractal. Suite aux expérimentations, nous proposons une extension des politiques d'adaptation pour prendre en compte de nouveaux aspects non fonctionnels

    Construction incrémentale de spécifications de systèmes critiques intégrant des procédures de vérification

    Get PDF
    Cette thèse porte sur l'aide à la construction de machines d'états UML de systèmes réactifs. Elle vise à définir un cadre théorique et pragmatique pour mettre en œuvre une approche incrémentale caractérisée par une succession de phases de construction, évaluation et correction de modèles. Ce cadre offre des moyens de vérifier si un nouveau modèle est conforme à ceux définis durant les étapes précédentes sans avoir à demander une description explicite des propriétés à vérifier. Afin de pouvoir analyser les machines d'états, nous leur associons une sémantique LTS ce qui nous a conduit à définir une procédure de transformation automatique de machines d'états en LTS. Dans un premier temps, nous avons défini et implanté des techniques de vérification de relations de conformité de LTS (red, ext, conf, et confrestr). Dans un second temps, nous nous sommes intéressés à la définition d'un cadre de construction incrémentale dans lequel plusieurs stratégies de développement peuvent être mises en œuvre en s'assurant que le modèle final élaboré sera une implantation conforme à la spécification initiale. Ces stratégies reposent sur des combinaisons de raffinements qui peuvent être de deux types : le raffinement vertical pour éliminer l'indéterminisme et ajouter des détails ; le raffinement horizontal pour ajouter de nouvelles fonctionnalités sans ajouter d'indéterminisme. Enfin, nous transposons la problématique de construction incrémentale d'une machine d'états à la construction d'architectures dont les composants sont des machines d'états. Des conditions sont définies pour assurer la conformité entre des architectures dans le cas de la substitution de composants.This thesis focuses on supporting construction of UML state machines of reactive systems. It aims at developing a theoretic and pragmatic framework to implement an incremental approach characterized by a succession of construction, evaluation and correction of models. This framework provides the means to verify whether a new model is consistent with those defined in the previous steps without requiring an explicit description of the properties to be verified. To analyze the state machines, we associated with them a LTS semantics which led us to define a procedure for automatic transformation of state machines in LTS. Initially, we have defined and implemented verification technique of conformance relations on LTS (red, ext, conf and confrestr). In a second step, we have defined a framework for incremental construction in which several development strategies can be implemented ensuring that the final developed model will be an implementation consistent with the initial specification. These strategies are based on combination of refinements that may be of two types: vertical refinement to eliminate nondeterminism and add details, and the horizontal refinement to add new features without adding nondeterminism. Finally, we transpose the problem of incremental construction of state machines to the construction of architectures whose components are state machines. Conditions are defined to ensure conformance between architectures in the case of substitution of components

    Étude de la gestion de l’autonomie en énergie d’objets communicants sans fil

    Get PDF
    Energy consumption and autonomy are crucial issues when designing wireless sensor networks (WSN). To study these problematics, our approach is based on simulation models and techniques that allow analyzing the system rapidly and accurately in different configurations. To do so, a behavioral modeling approach is used to model the receiver, the transmitter as well as the wireless communication channel. In order to reduce the simulation time while keeping an acceptable accuracy, our method considers a communication link level. Our models have been validated by comparing our simulation results with experiments performed in the field using WSN prototypes. In order to simulate the energy harvesting system, the battery as well as the power manager with efficiency, high level models have been developed. Those models are based on the electric charge balance between the energy harvesting system, the battery and the mote. Using these models, two innovative techniques of power management are proposed. According to both the amount of harvested energy and the state of charge of the battery, the power manager adapts the performance, thus the consumed energy, to ensure when it is possible the energy neutral operation (ENO) of a mote. A comparison with a state-of-the-art power management policy shows a 50% improvement of the throughput when our power managers are used. This PhD also addresses a global energy management technique. Our approach takes into account the harvested energy as well the communication channel to simultaneously handle the wake-up period and the transmitting power of the mote. A new transmission power technique, called PTPC (Predictive-Transmission-Power-Control), is proposed for that purpose. Simulation results show that for a 0.5 m/s speed, the throughput of the node using PTPC is around 5 times higher compared to a state-of-the-art transmission power technique approach.La consommation d’énergie et l’autonomie sont des problématiques majeures dans les réseaux de capteurs sans fil. Afin d’étudier ces problématiques, nous nous sommes appuyés sur un ensemble de modèles et de techniques de simulation qui permet d’analyser le système dans différentes configurations, rapidement et avec précision. Nous avons utilisé une approche de modélisation comportementale pour modéliser le récepteur, le transmetteur et le canal de communication sans fil et on se place au niveau liaison de communication, ce qui nous permet d'avoir un temps de simulation réduit et une précision satisfaisante. Nous avons comparé les résultats de simulation à des résultats expérimentaux collectés lors de tests sur le terrain et ceci nous a permis de vérifier la validité de nos modèles. Pour pouvoir simuler de façon efficace le système de récupération d’énergie, la batterie et le power manager, des modèles de haut niveau ont été développés. Ces modèles sont basés sur l’équilibre de charge électrique entre le système de récupération d’énergie, la batterie et le nœud. Sur la base de ces modèles, nous avons proposé deux techniques innovantes de power management. En fonction de la quantité d’énergie récupérée et l’état de charge de la batterie, le power manager change la performance et donc la consommation du nœud, pour assurer, quand cela est possible, l’équilibre énergétique. La comparaison avec une technique de power management présentée dans la littérature montre que nos power managers permettent une amélioration du débit de près de 50%. Les travaux concernent également une technique globale de gestion de la consommation d’énergie. Notre approche prend en compte la récupération d’énergie et le canal de communication et gère simultanément la période de réveil du nœud et la puissance d’émission. Nous avons proposé une technique de gestion de la puissance d’émission appelée PTPC (Predictive-Transmission-Power-Control). Les résultats de simulation montrent que pour une vitesse de 0.5 m/s le débit fourni par PTPC est environ 5 fois supérieur par rapport à une technique de contrôle de la puissance d’émission présentée dans la littérature

    Un processus formel d'intégration de politiques de contrôle d'accès dans les systèmes d'information

    Get PDF
    Security is a key aspect in information systems (IS) development. One cannot build a bank IS without security in mind. In medical IS, security is one of the most important features of the software. Access control is one of many security aspects of an IS. It defines permitted or forbidden execution of system's actions by an user. Between the conception of an access control policy and its effective deployment on an IS, several steps can introduce unacceptable errors. Using formal methods may be an answer to reduce errors during the modeling of access control policies. Using the process algebra EB[superscript 3], one can formally model IS. Its extension, EB[superscript 3]SEC, was created in order to model access control policies. The ASTD notation combines Harel's Statecharts and EB[superscript 3] operators into a graphical and formal notation that can be used in order to model IS. However, both methods lack tools allowing a designer to prove or verify security properties in order to validate an access control policy. Furthermore, the implementation of an access control policy must correspond to its abstract specification. This thesis defines translation rules from EB[superscript 3] to ASTD, from ASTD to Event-B and from ASTD to B. It also introduces a formal architecture expressed using the B notation in order to enforce a policy over an IS. This modeling of access control policies in B can be used in order to prove properties, thanks to the B prover, but also to verify properties using ProB, a model checker for B. Finally, a refinement strategy for the access control policy into an implementation is proposed. B refinements are proved, this ensures that the implementation corresponds to the initial model of the access control policy

    Gestion autonomique d'applications dynamiques sûres et résilientes

    Get PDF
    Service-Oriented architectures (SOA) are considered the most advanced way to develop and integrate modular and flexible applications.There are many SOA platforms available for software developers and architects; the most evolved of them being SCA and OSGi.An application based on one of these platforms can be assembled with only the components required for the execution of its tasks, which helps decreasing its resource consumption and increasing its maintainability.Furthermore, those platforms allow adding plug-ins at runtime, even if they were not known during the early stages of the development of the application.Thus, they allow updating, extending and adapting the features of the base product or of the technical services required for its execution, continuously and without outage.Those capabilities are applied in the DevOps paradigm and, more generally, to implement the continuous deployment of artifacts.However, the extensibility provided by those platforms can decrease the overall reliability of the system: a strong tendency in software development is the assembly of third-parties components.Such components may be of unknown or even questionable quality.In case of error, deterioration of performance, ... it is difficult to identify the implicated components or combinations of components.It becomes essential for the software producer to determine the responsibility of the various components involved in a malfunction.This thesis aims to provide a platform, Cohorte, to design and implement scalable software products, resilient to malfunctions of unqualified extensions.The components of such products may be developed in various programming languages and be deployed continuously (adding, updating and withdrawal) and without interruption of service.Our proposal adopts the principle of isolating the components considered unstable or insecure.The choice of the components to be isolated may be decided by the development team and the operational team, from their expertise, or determined from a combination of indicators.The latters evolve over time to reflect the reliability of components.For example, components can be considered reliable after a quarantine period; an update may result in deterioration of stability, ...Therefore, it is essential to question the initial choices in isolating components to limit, in the first case, the scope of communications between components and, in the second case, to maintain the reliability of the critical core of the product.Les architectures orientées services (SOA) sont considérées comme le moyen le plus avancé pour réaliser et intégrer rapidement des applications modulaires et flexibles.Dans ce domaine, les plates-formes SOA à disposition des développeurs et des architectes de produits logiciels sont multiples; les deux plus évoluées d'entre elles étant SCA et OSGi.Une application s'appuyant sur l'une de ces plates-formes peut ainsi être assemblée avec le minimum de composants nécessaires à la réalisation de ses tâches, afin de réduire sa consommation de ressources et d'augmenter sa maintenabilité.De plus, ces plates-formes autorisent l'ajout de composants greffons qui n'étaient pas connus lors des phases initiales de la réalisation du produit.Elles permettent ainsi de mettre à jour, d'étendre et d'adapter continuellement les fonctionnalités du produit de base ou des services techniques nécessaires à sa mise en production, sans interruption de service.Ces capacités sont notamment utilisées dans le cadre du paradigme DevOps et, plus généralement, pour mettre en œuvre le déploiement continu d'artefacts.Cependant, l'extensibilité offerte par ces plates-formes peut diminuer la fiabilité globale du système: une tendance forte pour développer un produit est l'assemblage de composants provenant de tierces-parties. De tels composants peuvent être d'une qualité inconnue voire douteuse.En cas d'erreur, de détérioration des performances, etc., il est difficile de diagnostiquer les composants ou combinaisons de composants incriminés.Il devient indispensable pour le producteur d'un logiciel de déterminer la responsabilité des différents composants impliqués dans un dysfonctionnement.Cette thèse a pour objectif de fournir une plate-forme, Cohorte, permettant de concevoir et d'exécuter des produits logiciels extensibles et résilients aux dysfonctionnements d'extensions non qualifiées.Les composants de tels produits pourront être développés dans différents langages de programmation et être déployés (ajout, mise à jour et retrait) en continu et sans interruption de service.Notre proposition adopte pour principe d'isoler les composants considérés comme instables ou peu sûrs.Le choix des composants à isoler peut être décidé par l'équipe de développement et l'équipe opérationnelle, à partir de leur expertise, ou bien déterminé à partir d'une combinaison d'indicateurs.Ces derniers évoluent au cours du temps pour refléter la fiabilité des composants.Par exemple, des composants peuvent être considérés fiables après une période de quarantaine; une mise à jour peut entraîner la dégradation de leur stabilité, etc..Par conséquent, il est indispensable de remettre en cause les choix initiaux dans l'isolation des composants afin, dans le premier cas, de limiter le coup des communications entre composants et, dans le deuxième cas, de maintenir le niveau de fiabilité du noyau critique du produit
    corecore