7 research outputs found

    Bigraphical Domain-specific Language (BDSL): User Manual

    Get PDF
    This report describes Bigraphical DSL (BDSL), a domain-specific language for reactive systems, rooted in the mathematical spirit of the bigraph theory devised by Robin Milner. BDSL is not only a platform-agnostic programming language but also a development framework for reactive applications, written in the Java programming language, with a focus on stability and interoperability. The report serves as a user manual mainly elaborating on how to write and execute BDSL programs, further covering several features such as how to incorporate program verification. Moreover, the manual procures some best practices on design patterns in form of code listings. The BDSL development framework comes with a ready-to-use interpreter and may be a helpful research tool to experiment with the underlying bigraph theory. The framework is further intended for building reactive applications and systems based on the theory of bigraphical reactive systems.:1 Introduction 1.1 Bigraphical Reactive Systems and Programming . . . . . 1.2 Installation 1.3 How to write and run BDSL programs? 1.4 Further Help 1.5 Remarks 2 General Usage of the BDSL Interpreter Tool 2.1 The CLI Interpreter of BDSL 2.2 Supplying a BDSL Program to the Interpreter 2.3 Externalized Configuration 3 BDSL Program Structure 3.1 Elements of a BDSL program 3.2 Main Block 3.3 Scoping, Namespaces and Imports 3.4 Classes and Variables 3.5 Event Listeners/Callbacks 4 Predefined Methods in BDSL 4.1 Printing to the Console 4.2 Loading Bigraphs 4.3 Synthesizing Random Bigraphs 4.4 Exporting Bigraph Variables 4.5 Executing BRSs 5 Examples 5.1 Basic Mathematical Calculations the Bigraphical Way 5.2 Importing External Libraries 5.3 Pathfinding: Naive Blind Search 5.4 Mutual Exclusion Problem 6 Advanced Topics 6.1 User-defined Functions 6.2 Using the Interpreter Programmatically 6.3 IDE Support 7 Conclusion 7.1 Future Work References Appendix A Configuration File for the BDSL Interpreter B BDSL Sample Programs C Using the BDSL Interpreter Programmaticall

    Combining formal verification environments and model-driven engineering

    Get PDF
    Les méthodes formelles (comme les prouveurs interactifs) sont de plus en plus utilisées dans la vérification de logiciels critiques. Elles peuvent compter sur leurs bases formelles solides ainsi que sur leurs sémantiques précises. Cependant, elles utilisent des notations complexes qui sont souvent difficiles à comprendre. D'un autre côté, l'Ingénierie Dirigée par les Modèles nous propose des langages de descriptions, comme les diagrammes de classes, utilisant des notations intuitives mais qui souffrent d'un manque de bases formelles. Dans cette thèse, nous proposons de faire interagir les deux domaines complémentaires que sont les méthodes formelles et l'ingénierie dirigée par les modèles. Nous proposons une approche permettant de transformer des types de données fonctionnels (utilisés dans les prouveurs interactifs) en diagrammes de classes et vice-versa. Afin d'atteindre ce but, nous utilisons une méthode de transformation dirigée par les modèles.Formal methods (such as interactive provers) are increasingly used in the verification of critical software. This is so because they rely on their strong formal basis and precise semantics. However, they use complex notations that are often difficult to understand. On the contrary, the tools and formalisms provided by Model Driven Engineering offer more attractive syntaxes and use intuitive notations. However, they suffer from a lack of formal foundations. In this thesis, we are interested in combining these two complementary domains that are formal methods and Model Driven Engineering. We propose an approach allowing to translate functional data types (used in interactive provers) into class diagrams and vice versa. To achieve this goal, we use a model-driven transformation method

    Entwicklung einer Spezifikationssprache zur modellbasierten Generierung von Security-/Safety-Monitoren zur Absicherung von (Eingebetteten) Systemen

    Get PDF
    Getrieben durch technische Innovationen gewinnt die Kommunikation zwischen eingebetteten Systemen immer mehr an Bedeutung. So kommunizieren heutzutage nicht nur PCs über lokale Netzwerke oder das Internet, sondern auch mobile Geräte wie Smartphones und Tablets erobern den Markt. Diese bieten aufgrund ihrer geringeren Rechenleistung neue Angriffsflächen, da Sicherungsmaßnahmen der PC-Domäne nicht ohne Anpassung anwendbar sind. Durch die Vernetzung dieser mobilen Geräte mit Fahrzeugen und die Anbindung der Fahrzeuge an externe Dienstleistungen sind selbst eingebettete Systeme im Fahrzeug, die sicherheitskritische Aufgaben erfüllen, nicht mehr vollständig von der Außenwelt abgeschirmt. Bei ihrer Entwicklung wurde jedoch wenig Aufmerksamkeit auf Sicherheitsmechanismen, wie Verschlüsselung und sicheres Komponentendesign, zur Abwehr von Angriffen aus der Außenwelt gelegt. Solche Fahrzeuge sind hierdurch von außen für aktive und passive Angriffe anfällig. Selbst wenn bei einer Neuentwicklung eines eingebetteten Systems großer Wert auf die Absicherung gelegt wird, ist es meist nicht möglich, alle Sicherheitslücken zu eliminieren und jeden möglichen Angriff vorherzusehen. Betrachtet man komplexe heterogene Systeme oder Komponenten und will diese nachträglich absichern, ist dies meistens ökonomisch oder technisch nicht zu realisieren. Resultierend daraus kann bei keinem System davon ausgegangen werden, dass es sicher ist -- sei es durch unbekannte Schwachstellen oder der Verwendung von Legacy-Komponenten. Um Systeme dennoch gegen Angriffe, die vorher unbekannte Fehler und Sicherheitslücken ausnutzen, absichern zu können, hat sich die Überwachung eines Systems während der Laufzeit als geeignet herausgestellt. Eine solche Absicherung wird durch den in dieser Dissertationsschrift und in [Pat14] vorgestellten verständlichen Model Based Security/Safety Monitor-Entwicklungsprozess (MBSecMon-Entwicklungsprozess) erreicht, der sich in bestehende modellbasierte Systementwicklungsprozesse nahtlos eingliedert. Dieser MBSecMon-Entwicklungsprozess generiert aus einer in der Anforderungsphase entstandenen Spezifikation automatisch effiziente Sicherheitsmonitore für hoch nebenläufige Kommunikationen. Diese Arbeit betrachtet zwei Schritte dieses Entwicklungsprozesses. Der erste Teil der Arbeit stellt eine neue auf dem szenariobasierten Design aufbauende graphische, modellbasierte Signaturbeschreibungssprache vor - die MBSecMon-Spezifikationssprache. Diese Sprache vereinigt die Vorteile bestehender Formalismen, indem sie (1) alle wichtigen Konzepte zur Modellierung von verhaltensbeschreibenden Signaturen für hoch nebenläufige Kommunikationsabläufe unterstützt und diese kompakt repräsentieren kann. Sie bezieht (2) bestehende Entwicklungsartefakte des Systementwicklungsprozesses in die Modellierung ein, (3) befindet sich auf einer höheren Abstraktionsebene als üblicherweise zur Spezifikation eingesetzte Sprachen und unterscheidet explizit zwischen Normalverhalten und bekannten Angriffsmustern und -klassen. Durch diese Unterscheidung und durch Nähe der Sprache zur UML wird (4) eine hohe Verständlichkeit der Spezifikation sowohl für den Softwaretechniker als auch für Nicht-Experten erreicht. Den zweiten Teil dieser Arbeit bildet die Abbildung der sehr kompakten in der MBSecMon-Spezifikationssprache verfassten Spezifikationen in die formale Zwischensprache Monitor-Petrinetze [Pat14]. Hierdurch wird zum einen die Semantik der MBSecMon-Spezifikationssprache formalisiert und zum anderen der im MBSecMon-Entwicklungsprozess eingesetzte automatische Übergang in eine für die Generierung effizienter Monitore besser geeignete Repräsentation realisiert

    A Comparison of Rule Inheritance in Model-to-Model Transformation Languages

    No full text
    International audienceAlthough model transformations presumably play a major role in Model-Driven Engineering, reuse mechanisms such as inheritance have received little attention so far. In this paper, we propose a com- parison framework for rule inheritance in declarative model-to-model transformation languages, and provide an in-depth evaluation of three prominent representatives thereof, namely ATL, ETL (declarative subsets thereof), and TGGs. The framework provides criteria for comparison along orthogonal dimensions, covering static aspects, which indicate whether a set of inheriting transformation rules is well-formed at compile-time, and dynamic aspects, which describe how inheriting rules behave at run-time. The application of this framework to dedicated transformation languages shows that, while providing similar syntactical inheritance concepts, they exhibit different dynamic inheritance semantics and offer basic support for checking static inheritance constraints, only
    corecore