52 research outputs found

    Petrinet-based Validation of Railway Signalling and Safety Systems

    Get PDF
    Die Entwicklung der Informatik und der Automatisierung ist (und war schon immer) Quelle stets neuer und effizienterer Lösungen, aber auch neuer Komplexität; sie macht eine dauerhafte, wirtschaftliche Gestaltung und Überprüfung der Sicherheit der Anlagen und der Verkehrssysteme nur noch schwieriger. Die Echtzeitinformatik ist heutzutage in die Systeme integriert, die das Leben von Menschen verwalten. Es stellt sich heraus, dass die derzeitigen Methoden und Normen nicht immer den Anforderungen nach Verfügbarkeit und nach Sicherheit entsprechen. Es sind so systematische Fehler der Software zu befürchten. Die vorliegende Arbeit besteht darin, eine Konzeptions- und Überprüfungsmethode zu definieren und zu instrumentalisieren. Sie zeigt, dass es möglich ist, formale Überprüfungsmethoden auf industrielle Steuerungen anzuwenden. Die Eisenbahnsteuerungen werden besonders behandelt. Die vorgeschlagene Methode beruht auf mehreren Konzeptionsideen: - so weit wie möglich das berufliche Umfeld berücksichtigen, die Sicherheitseigenschaften und die Funktionsanforderungen identifizieren - die Funktionssoftware und die Grundsoftware (Verwaltung des physikalischen Materials und Interpretation der fachspezifischen Aufgaben) unterscheiden - die Funktionen in Form von Automaten in AEFD-Sprache schreiben. Diese Sprache erlaubt eine Formulierung von Petrinetzen und eine deterministische Interpretation. Unter diesen Bedingungen ist es möglich, eine formelle Überprüfung einer Eisenbahnsteuerung, z.B. eines Stellwerks, zu verwirklichen. Die Hauptidee besteht in der Entwicklung eines industriellen Sicherheitsautomaten, der sich wie eine abstrakte Maschine verhält, damit dieser später formal validiert werden kann. Das Hilfsprogramm für die Formulierung der funktionellen Graphen ist für Fachleute bestimmt, die nicht über besondere Informatikkenntnisse verfügen. Die Petrinetze sind eine Konzeptualisierungssprache. Diese Netze, die in der AEFD Sprache formuliert sind, werden als interpretierbare Spezifikationen benützt. Die Sicherheitseigenschaften und die Anforderungen sind auch auf dieselbe Art formuliert. Die vorgeschlagene Methode erlaubt es unter diesen Bedingungen, einen formalen Beweis der Funktionen des Systems durchzuführen.The development of computer science and that of the automatisation were and are still source new more and more efficient resolutions, but are also sources of new complicacy returning even more difficult lasting and economic comprehension, valuation, safety of functioning of equipment and systems of transport. The real time computer science is now present in systems managing human lives. It appears now that methods and actual norms do not always allow to answer wait in availability and in security. So systematic errors of software are to fear. The work consisted in defining and instrumenting a new method of comprehension and validation. The work shows that it is possible to apply a method of formal validation to industrial automatisms. The case of rail automatisms is more particularly treated. The proposed method rests on several actions of comprehension: - hold the biggest count of context job, to identify the ownership of security and the postulates of functioning; - differentiate functional software and basic software (management of the equipment and interpretation of functional functions); - specify functions in form of automat written in language AEFD. This language allows a writing of Petri nets and a determinist and interpretable way. In these conditions it is possible to accomplish a formal validation of a rail automatism, a interlocking system or level crossing system for instance. The main idea consists in developing an industrial safety automatism which acts as an abstracted machine (a real time interpreted competitive automat with constraint) to allow a subsequent formal validation. The writing of functional graphs contacts persons having a signalling competence without any special knowledge in computer science. Petri nets are a language of conceptualization. We used these networks, written in the AEFD language, as language of deterministic and interpretable specifications. The safety properties and the functioning postulates are written in the same way. The proposed method allows in these conditions to accomplish a formal proof of the signalling functionalities realized by the computerized system

    Qualitätssicherung von Modelltransformationen - Über das dynamische Testen programmierter Graphersetzungssysteme

    Get PDF
    Modelle und Metamodelle repräsentieren Kernkonzepte der modellgetriebenen Softwareentwicklung (MDSD). Programme, die Modelle (unter Bezugnahme auf ihre Metamodelle) manipulieren oder ineinander überführen, werden als Modelltransformationen (MTs) bezeichnet und bilden ein weiteres Kernkonzept. Für dieses klar umrissene Aufgabenfeld wurden und werden speziell angepasste, domänenspezifische Transformationssprachen entwickelt und eingesetzt. Aufgrund der Bedeutung von MTs für das MDSD-Paradigma ist deren Korrektheit essentiell und eine gründliche Qualitätssicherung somit angeraten. Entsprechende Ansätze sind allerdings rar. In der Praxis erweisen sich die vornehmlich erforschten formalen Verifikationsansätze häufig als ungeeignet, da sie oft zu komplex oder zu teuer sind. Des Weiteren skalieren sie schlecht in Abhängigkeit zur Größe der betrachteten MT oder sind auf Abstraktionen bezogen auf die Details konkreter Implementierungen angewiesen. Demgegenüber haben testende Verfahren diese Nachteile nicht. Allerdings lassen sich etablierte Testverfahren für traditionelle Programmiersprachen aufgrund der Andersartigkeit der MT-Sprachen nicht oder nur sehr eingeschränkt wiederverwenden. Zudem sind angepasste Testverfahren grundsätzlich wünschenswert, da sie typische Eigenschaften von MTs berücksichtigen können. Zurzeit existieren hierzu überwiegend funktionsbasierte (Black-Box-)Verfahren. Das Ziel dieser Arbeit besteht in der Entwicklung eines strukturbasierten (White-Box-)Testansatzes für eine spezielle Klasse von Modelltransformationen, den sog. programmierten Graphtransformationen. Dafür ist anhand einer konkreten Vertreterin dieser Sprachen ein strukturelles Überdeckungskonzept zu entwickeln, um so den Testaufwand begrenzen oder die Güte der Tests bewerten zu können. Auch müssen Aspekte der Anwendbarkeit sowie der Leistungsfähigkeit der resultierenden Kriterien untersucht werden. Hierzu wird ein auf Graphmustern aufbauendes Testüberdeckungskriterium in der Theorie entwickelt und im Kontext des eMoflon-Werkzeugs für die dort genutzte Story- Driven-Modeling-Sprache (SDM) praktisch umgesetzt. Als Basis für eine Wiederverwendung des etablierten Ansatzes der Mutationsanalyse zur Leistungsabschätzung des Kriteriums hinsichtlich der Fähigkeiten zur Fehlererkennung werden Mutationen zur synthetischen Einbringung von Fehlern identifiziert und in Form eines Mutationstestrahmenwerks realisiert. Letzteres ermöglicht es, Zusammenhänge zwischen dem Überdeckungskonzept und der Mutationsadäquatheit zu untersuchen. Im Rahmen einer umfangreichen Evaluation wird anhand zweier nichttrivialer Modelltransformationen die Anwendbarkeit und die Leistungsfähigkeit des Ansatzes in der Praxis untersucht und eine Abgrenzung gegenüber einer quellcodebasierten Testüberdeckung durchgeführt. Es zeigt sich, dass das entwickelte Überdeckungskonzept praktisch umsetzbar ist und zu einer brauchbaren Überdeckungsmetrik führt. Die Visualisierbarkeit einzelner Überdeckungsanforderungen ist der grafischen Programmierung bei Graphtransformationen besonders nahe, so dass u. a. die Konstruktion sinnvoller Tests erleichtert wird. Die Mutationsanalyse stützt die These, dass die im Hinblick auf Steigerungen der Überdeckungsmaße optimierten Testmengen mehr Fehler erkennen als vor der Optimierung. Vergleiche mit quellcodebasierten Überdeckungskriterien weisen auf die Existenz entsprechender Korrelationen hin. Die Experimente belegen, dass die vorgestellte Überdeckung klassischen, codebasierten Kriterien vielfach überlegen ist und sich so insbesondere auch für das Testen von durch einen Interpreter ausgeführte Transformationen anbietet

    Generierung von effizienten Security-/Safety-Monitoren aus modellbasierten Beschreibungen

    Get PDF
    Computer werden heute zunehmend durch kleine Recheneinheiten mit Sensoren zur Erfassung der Außenwelt ergänzt. Diese Recheneinheiten kommunizieren untereinander und mit externen Einheiten, um Informationen weiterzugeben und sich untereinander abzustimmen. Hierdurch findet auch eine Öffnung von sicherheitskritischen eingebetteten Systemen nach außen statt. Die Systeme können nun entweder direkt oder indirekt über zusätzliche Einheiten angegriffen werden. Des Weiteren ist die auf eingebetteten Systemen eingesetzte Software durch beschränkte Ressourcen auf das Nötigste reduziert und bietet keine komplexen Sicherheitsmechanismen. Maßnahmen wie Testen von Software kann deren Fehlerfreiheit nicht sicherstellen. In realen Systemen ist zudem davon auszugehen, dass nicht bekannte Fehler existieren, die u.a. auch von Angreifern ausgenutzt werden können. Die Laufzeitüberwachung solcher Systeme hat sich als geeignet erwiesen, um auch unbekannte Angriffe und Fehler zu erkennen. Zur Spezifikation solcher Laufzeitmonitore über Beschreibungen (Signaturen) von erlaubtem und verbotenem Verhalten haben sich viele verschiedene Spezifikationssprachen herausgebildet. Diese basieren auf verschiedensten Modellierungskonzepten. Zur Generierung von Monitoren aus diesen Spezifikationen in Software und Hardware müssen für die unterschiedlichen Sprachen verschiedenste Codegeneratoren erstellt werden. Des Weiteren besitzen einige der gewöhnlich verwendeten einfach zu verstehenden Spezifikationssprachen keine formalisierte Syntax und Semantik. In dieser Arbeit wird zusammen mit [Pat14] der Model-based Security/Safety Monitor (MBSecMon)-Entwicklungsprozess vorgestellt. Dieser umfasst parallel zu dem eigentlichen Softwareentwicklungsprozess des zu überwachenden Systems die Spezifikation, die Generierung und die Einbindung von Laufzeitmonitoren. Ziel dieser Arbeit ist die Definition einer formal definierten Zwischensprache zur Repräsentation stark verschränkter nebenläufiger Kommunikationen. Zu ihrer Entwicklung werden Anforderungen basierend auf existierenden Arbeiten aufgestellt. Auf Grundlage dieser Anforderungen wird die Zwischensprache Monitor-Petrinetze (MPN) entworfen und formal definiert. Diese Zwischensprache unterstützt die Repräsentation von Signaturen, die in verschiedensten Spezifikationssprachen modelliert sind, und die Generierung von effizienten Laufzeitmonitoren für unterschiedliche Zielplattformen. Die MPNs sind ein auf Petrinetzen basierender Formalismus, der um Konzepte der Laufzeitüberwachung erweitert wurde. Es wird gezeigt, dass die MPN-Sprache alle ermittelten Anforderungen an eine solche Zwischensprache, bis auf ein Hierarchisierungskonzept für Ereignisse, das in dieser Arbeit nicht behandelt wird, erfüllt. Die MPN-Sprache wird in einem prototypischen Werkzeug zur Monitorgenerierung eingesetzt. Dieses unterstützt die MBSecMon-Spezifikationssprache [Pat14] als Eingabesprache und verwendet die MPN-Sprache als Zwischenrepräsentation zur Monitorgenerierung für verschiedenste Plattformen und Zielsprachen. Die generierten Monitore werden auf ihr Laufzeitverhalten und ihren Speicherverbrauch evaluiert. Es hat sich gezeigt, dass sich die MPN-Sprache trotz ihrer hohen Ausdrucksstärke zur einfachen Generierung effizienter Laufzeitmonitore für verschiedenste Plattformen und Zielsprachen eignet

    Entwurfsbegleitende Leistungsanalyse für SDL-basiertes Design multimedialer Internet-Transportsysteme

    Get PDF
    Neben der funktionalen Korrektheit von komplexen Kommunikationssystemen spielt eine ausreichende Performance dieser Systeme eine immer wichtigere Rolle. Dabei ist es notwendig, Performance-Aspekte bereits in frühen Entwurfsphasen und nicht erst nach der Implementierung der Systeme zu berücksichtigen. Die vorliegende Arbeit präsentiert eine Methodik zur entwurfsbegleitenden, modellgestützten Leistungsanalyse von Kommunikationsprotokollen, die mit Hilfe der Sprache SDL formal spezifiziert wurden. Die vorgestellte Methodik verwendet dazu Beschreibungsmechanismen, Verfahren und Werkzeuge, die bereits im Entwurfsprozeß dieser Systeme verwendet werden. Für die wichtigsten Implementierungsansätze von Kommunikationsprotokollen werden Performance-Bausteine vorgestellt und deren Verwendung erläutert. Die Tragfähigkeit der entwickelten Methodik wird durch eine große Fallstudie im Kontext von Reservierungsprotokollen zur Unterstützung von Multimedia-Anwendungen im Internet demonstriert. Dabei werden nicht nur die informellen Angaben der vorhandenen RFCs in formale SDL-Beschreibungen umgesetzt, sondern auch als existent vorausgesetzte Ressource-Management-Funktionen entwickelt und analysiert. Die vorliegende Arbeit schließt so die bisher bestehende Lücke im SDL-basierten Entwurfsprozeß verteilter reaktiver Systeme und ermöglicht die modellgestützte Betrachtung von Performance-Aspekten in den frühen Phasen des Entwurfsprozesses
    corecore