• Keine Ergebnisse gefunden

Formale Modellierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Formale Modellierung"

Copied!
3
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

Rev. 2226 1 [19]

Fahrplan

I Teil I: Formale Logik

I Teil II: Spezifikation und Verifikation

I Teil III: Schluß

IRückblich & Ausblick

2 [19]

Das Tagesmenü

I Zur Abrundung: JML

I Rückblick

I Ausblick

3 [19]

JML

4 [19]

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

5 [19]

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() }

6 [19]

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

7 [19]

JML: Längeres Beispiel

8 [19]

(2)

Zusammenfassung JML

I Modellierung derDatendurch Java

I ZusätzlicheAnnotationder Programme mitKorrektheitsbedingungen 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

9 [19]

Rückblick

10 [19]

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Ξ

11 [19]

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

12 [19]

Ausblick

13 [19]

Wohin von hier?

I Verifikationvon Hardware und Software

IFormalisierungvon Hardware oder Software (Programmiersprache)

INachweisder Eigenschaften wirdBeweis I Weitere Ausdrucksmächtigkeit:

INebenläufigkeit: Prozesskalküle (CSP), Modallogik

IZeitliche Aspekte (Temporallogik)

14 [19]

Prozesskalküle (Prozessalgebren)

I ModellierungnebenläufigeSysteme I Werkzeugunterstützung:ModelcheckerFDR I Beispiel (CSP): einFlugbuchungssystem

SERVER= queryresultSERVER

booking→(ok→SERVERufailSERVER) cancelokSERVER

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

SYSTEM=CLIENTkSERVER

Problem:Deadlock

15 [19]

Temporale Logiken

I System wird beschrieben alsFSM

IGgf. mit Übergangszeiten

IGraphische 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

16 [19]

(3)

Fazit

17 [19]

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

IVon 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

18 [19]

Zusammenfassung

Formale Modellierung

Beschreibung der Welt durch Mittel dermathematischen Logik I Beispiele: HOL, die Z Notation, UML/OCL, JML

I Vorteile:

I Spezifikationeneindeutig formuliert

I NachweisvonEigenschaftenmöglich

I FormaleVerifikationmöglich

19 [19]

Referenzen

ÄHNLICHE DOKUMENTE

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

Welche der Stilregeln für UML-Klassendiagramme (Abschnitt 1.1.20 der Materialsammlung und dort zitierte URLs)?. werden in den

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

OclHelper-Methoden erleichtern in Abschnitt 2.12 der Materialsammlung die Gültigkeitsüber- prüfung eines Tages/Monats/Jahres-Tripels auf Repräsentation eines gültigen Datums?. Wo

„A UML model with basic primitive types“ an und wechseln Sie vor Bearbeitung des Klassen- diagramms zur Papyrus-Perspektive!. Welche Abweichungen in der graphischen Darstellung