• Keine Ergebnisse gefunden

Formale Modellierung Vorlesung 13 vom 01.07.13: Rückblick und Ausblick

N/A
N/A
Protected

Academic year: 2022

Aktie "Formale Modellierung Vorlesung 13 vom 01.07.13: Rückblick und Ausblick"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Formale Modellierung

Vorlesung 13 vom 01.07.13: Rückblick und Ausblick

Serge Autexier & Christoph Lüth

Universität Bremen

Sommersemester 2013

(2)

Fahrplan

I Teil I: Formale Logik

I Teil II: Spezifikation und Verifikation

I Teil III: Schluß

I Rückblich & Ausblick

(3)

Das Tagesmenü

I Zur Abrundung: JML

I Rückblick

I Ausblick

(4)

JML

(5)

Java Modeling Language (JML)

I Zentral:funktionale Korrektheit

I “Design by contract”

I Spezifikation nahe am Code (Annotationen)

I Vor/Nachbedingungen, Invarianten

I Werkzeuge: ESC/Java2, Mobius

(6)

JML: Erstes Beispiel

public abstract class LinearSearch {

//@ requires j >= 0;

public abstract /*@ pure @*/ boolean f(int j);

//@ ensures 0 <= \result;

//@ ensures (\exists int j; 0 <= j && j <= \result; f(j));

public abstract /*@ pure @*/ int limit();

/*@ public normal_behavior

@ requires (\exists int i; 0 <= i && i <= limit(); f(i));

@ assignable \nothing;

@ ensures f(\result) &&

@ (\forall int i; 0<= i && i < \result; ! f(i));

@*/

public int find() }

(7)

JML: Wichtigste Schlüsselworte

I Für Klassen und Interfaces:

I invariant

I spec_public

I nullable

I Für Methoden und Konstruktoren:

I requires

I ensures

I assignable

I pure

I Im Code:

I assert

I invariant,assignable

(8)

JML: Längeres Beispiel

(9)

Zusammenfassung JML

I Modellierung derDaten durch Java

I ZusätzlicheAnnotation der Programme mit Korrektheitsbedingungen

I Dadurchleichtgewichtig— erleichtert Einführung

I Benefits:

I Generierung von Testfällen

I Statische Analyse (“erweiterte Typprüfung”)

I Korrektheitsbeweis (automatisch oder interaktiv)

I Nachteile:

I Umständliche Modellierung — keinAbstraktionsgewinn

(10)

Rückblick

(11)

Logiken und Spezifikationsformalismen

Datenmodellierung Programmbegriff Isabelle/HOL induktive Datentypen totale rekursive Funktionen

Z (induktive) Mengen Vor/Nachzustand1

UML Klassendiagramme OCL

JML Java Vor/Nachzustand,

Invarianten

1Invarianten durchΞ

(12)

Unsere Reise durch die Logik

Entscheidbar? Vollständig?

Werkzeuge (Beweiser) Aussagenlogik J J SAT-Solver

Presburger J J SMT-Solver: Z3, CVC Peano-Ar. N J

FOL N J ATPs: SPASS, Vampire FOL + Induktion N N KIV, KeY, Inka

HOL N N ITPs: Isabelle, Coq, HOL, PVS

(13)

Ausblick

(14)

Wohin von hier?

I Verifikationvon Hardware und Software

I Formalisierungvon Hardware oder Software (Programmiersprache)

I Nachweisder Eigenschaften wirdBeweis

I Weitere Ausdrucksmächtigkeit:

I Nebenläufigkeit: Prozesskalküle (CSP), Modallogik

I Zeitliche Aspekte (Temporallogik)

(15)

Prozesskalküle (Prozessalgebren)

I Modellierungnebenläufige Systeme

I Werkzeugunterstützung:Modelchecker FDR

I Beispiel (CSP): einFlugbuchungssystem SERVER = queryresultSERVER

booking →(ok →SERVER ufailSERVER) cancelokSERVER

CLIENT =queryresult → (booking → okCLIENT uCLIENT)

SYSTEM=CLIENTkSERVER

(16)

Prozesskalküle (Prozessalgebren)

I Modellierungnebenläufige Systeme

I Werkzeugunterstützung:Modelchecker FDR

I Beispiel (CSP): einFlugbuchungssystem SERVER = queryresultSERVER

booking →(ok →SERVER ufailSERVER) cancelokSERVER

CLIENT =queryresult → (booking → okCLIENT uCLIENT)

SYSTEM=CLIENTkSERVER

(17)

Prozesskalküle (Prozessalgebren)

I Modellierungnebenläufige Systeme

I Werkzeugunterstützung:Modelchecker FDR

I Beispiel (CSP): einFlugbuchungssystem SERVER= queryresultSERVER

booking →(ok →SERVER ufailSERVER) cancelokSERVER

CLIENT =queryresult → (booking → (ok →CLIENT failCLIENT) uCLIENT)

SYSTEM=CLIENTkSERVER

(18)

Temporale Logiken

I System wird beschrieben alsFSM

I Ggf. mit Übergangszeiten

I Graphische Notation oder DSL (Promela für SPIN)

I Spezifikation als temporallogische Formel:

I “Irgendwann muss ein EventHALT(H) auftreten”:FH

I “Es darf nie einSTOP(S) ohne eineWARNUNG(W) zuvor auftreten”:

G((W −→FS)∨ ¬S)

I Lineare vs. baumartige Zeit (LTL, CTL), TLA

I Werkzeuge: SPIN, UPPAAL

(19)

Fazit

(20)

Dafür und Dagegen

Was spricht für formale Modellierung in der Entwicklung?

I Anforderungen werdeneindeutigformuliert

I Randbedingungenwerden seltener (gar nicht) übersehen

I Fehler werdenfrühergefunden

I Werkzeugunterstützungmöglich

I Von erweitertem Typcheck bis automatischen/interaktiven Beweis

I Normen(IEC 61508:3, CENELEC EN50128, DO 178B)fordern formale Methoden für hohe Sicherheitsstufen (SIL 3, Level B)

Was spricht gegen formale Modelierung?

I HöhererZeitaufwand

I Qualifikationdes Personals

I Verlust anAgilität

(21)

Dafür und Dagegen

Was spricht für formale Modellierung in der Entwicklung?

I Anforderungen werdeneindeutigformuliert

I Randbedingungenwerden seltener (gar nicht) übersehen

I Fehler werdenfrühergefunden

I Werkzeugunterstützungmöglich

I Von erweitertem Typcheck bis automatischen/interaktiven Beweis

I Normen(IEC 61508:3, CENELEC EN50128, DO 178B)fordern formale Methoden für hohe Sicherheitsstufen (SIL 3, Level B) Was spricht gegen formale Modelierung?

I HöhererZeitaufwand

I Qualifikationdes Personals

I Verlust anAgilität

(22)

Zusammenfassung

Formale Modellierung

Beschreibung der Welt durch Mittel der mathematischen Logik

I Beispiele: HOL, die Z Notation, UML/OCL, JML

I Vorteile:

I Spezifikationeneindeutig formuliert

I NachweisvonEigenschaftenmöglich

I FormaleVerifikationmöglich

Referenzen

ÄHNLICHE DOKUMENTE

The make utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. I Abhängigkeiten werden durch

Serge Autexier &amp; Christoph Lüth Universität Bremen Sommersemester

Kompositionsstrukturdiagramm Kollaborationen Nein Komponentendiagramm Dynamische Systemstruktur (Nein) Verteilungsdiagramm Implementierungsaspekte Nein. Use-Case-Diagramm Ablauf en

I Von erweitertem Typcheck bis automatischen/interaktiven Beweis I Normen (IEC 61508:3, CENELEC EN50128, DO 178B) fordern. formale Methoden für hohe Sicherheitsstufen (SIL 3,

Formale Methoden der Softwaretechnik Vorlesung vom 30.05.11: Logik Höherer Stufe.. Till Mossakowski &amp;

Geben Sie das Modell Person/Arbeitsvertrag/Firma (Abbildung 1.10 der Materialsammlung) als UML-Datei ein und testen Sie alle Ihnen notwendig erscheinende selbst konzipierten

Java Vector Obsolete/Optional Data in Java8 and C++11 Lesen Sie die Artikel..

– Nach dem Hinzufügen einer Etage zu einem Haus mittels Haus::addEtage(e : Etage) enthält das Haus mindestens eine Etage.. – Nach dem Hinzufügen einer Etage zu einem Haus