• 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 12 vom 24.06.13: Formale Modellierung mit UML und OCL

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

Rev. 2223 1 [19]

Fahrplan

I Teil I: Formale Logik

I Teil II: Spezifikation und Verifikation

IModellierung von Programmen

IDie Z-Notation

IFormale Modellierung mit der UML und OCL

I Teil III: Schluß

2 [19]

Das Tagesmenü

Datenmodellierung Programmbegriff Isabelle/HOL induktive Datentypen totale rekursive Funktionen

Z (induktive) Mengen Vor/Nachzustand

UML ? ?

I FormaleModellierung mit der UML

I . . . mit der OCL: Object Constraint Language

3 [19]

UML als formale Spezifikationssprache

Diagrammtyp Modellierte Aspekte Formal

Klassendiagramm Statische Systemstruktur Ja

Paketdiagramm Pakete, Namensräume Nein

Objektdiagramm Zustand von Objekten (Ja)

Kompositionsstrukturdiagramm Kollaborationen Nein Komponentendiagramm Dynamische Systemstruktur (Nein) Verteilungsdiagramm Implementierungsaspekte Nein

Use-Case-Diagramm Ablauf en gros Nein

Aktivitätsdiagramm Ablauf en detail Nein

Zustandsdiagramm Zustandsübergänge Ja

Sequenzdiagramm Kommunikation Ja

Kommunikationsdiagramm Struktur der Kommunikation (Ja)

Zeitverlaufsdiagramm Echtzeitaspekte (Ja)

4 [19]

Diagramme in UML 2.3

Quelle: Wikipedia

5 [19]

Semantik der UML: Metamodellierung

Quelle: Wikipedia 6 [19]

OCL

I Object Constraint Langauge

I MathematischpräziseSprache für UML

I OO meets Z

I Entwickelt in den 90ern

I FormaleConstraintsan UML-Diagrammen

7 [19]

OCL Basics

I GetypteSprache

I Dreiwertige Logik

I Ausdrücke immer imKontext:

IInvariantenan Klassen, Interfaces, Typen

IVor/Nachbedingungenan Operationen oder Methoden

8 [19]

(2)

OCL Syntax

I Invarianten:

context class inv: expr I Vor/Nachbedingungen:

context Type :: op(arg1 : Type) : ReturnType pre: expr

post: expr

I exprist ein OCL-Ausdruck vom TypBoolean

9 [19]

Undefiniertheit in OCL

I Undefiniertheitpropagiert(alle Operationenstrikt) →OCL-Std.

§7.5.11 I Ausnahmen:

IBoolsche Operatoren (and,orbeidseitignicht-strikt)

IFallunterscheidung

ITest auf Definiertheit:oclIsUndefinedmit oclIsUndefined(e)=

true e=⊥ false otherwise I Resultierende Logik:dreiwertig

10 [19]

Dreiwertige Logik

I Wahrheitstabelle (starke Kleene-Logik,K3):

¬

⊥ ⊥ 0 1 1 0

∧ ⊥ 0 1

⊥ ⊥ 0 ⊥

0 0 0 0

1 ⊥ 0 1

∨ ⊥ 0 1

⊥ ⊥ ⊥ 1

0 ⊥ 0 1

1 1 1 1

−→ ⊥ 0 1

⊥ ⊥ ⊥ 1

0 1 1 1

1 ⊥ 0 1

←→ ⊥ 0 1

⊥ ⊥ ⊥ ⊥

0 ⊥ 1 0

1 ⊥ 0 1

I Fun Fact:K3hatkeine Tautologien.

I Alternative:schwache Kleene-Logik(alle Operatoren strikt)

11 [19]

OCL Typen

I Basistypen:

IBoolean,Integer,Real,String

IOclAny,OclType,OclVoid

I Collection types:Set,OrderedSet,Bag,Sequences

I Modelltypen

12 [19]

Basistypen und Operationen

I Integer(Z) →OCL-Std. §11.5.2

I Real(R) →OCL-Std. §11.5.1

I IntegerSubklasse vonReal

I round,floorvonRealnachInteger

I String(Zeichenketten) →OCL-Std. §11.5.3

I substring,toReal,toInteger,charactersetc.

I Boolean(Wahrheitswerte) →OCL-Std. §11.5.4

I or,xor,and,implies

I Sowie Relationen aufReal,Integer,String

13 [19]

Collection Types

I Set,OrderedSet,Bag,Sequence

I Operationen auf allen Kollektionen: →OCL-Std. §11.7.1

Isize,includes,count,isEmpty,flatten

IKollektionen werden immer flachgeklopft

I Set →OCL-Std. §11.7.2

Iunion,intersection,

I Bag →OCL-Std. §11.7.3

Iunion,intersection,count

I Sequence →OCL-Std. §11.7.4

Ifirst,last,reverse,prepend,append

14 [19]

Collection Types: Iteratoren

I Iteratoren: Funktionen höherer Ordnung

I Alle definiert überiterate →OCL-Std. §7.7.6:

coll-> iterate(elem: Type, acc: Type= expr | expr[elem, acc]) iterate(e: T, acc: T= v)

{ acc= v;

for (Enumeration e= c.elements(); e.hasMoreElements();){

e= e.nextElement();

acc.add(expr[e, acc]); // acc= expr[e, acc]

} return acc;

}

I Iteratoren sind allestrikt

15 [19]

Modelltypen

I Aus Attribute, Operationen, Assoziationen des Modells

I Navigationentlang der Assoziationen

I Für Kardinalität 1 TypT, sonstSet(T)

I Benutzerdefinierte Operationen in Ausdrücken müssen zustandsfrei sein (Stereotyp<<query>>)

16 [19]

(3)

Style Guide

I Komplexe Navigation vermeiden (“Loose coupling”)

I Adäquaten Kontext auswählen

I “Use ofallInstancesis discouraged”

I Invarianten aufspalten

I Hilfsoperationen definieren

17 [19]

MDA + OCL

I MDA: Model-driven architecture I Entwicklung durchModelltransformation

I Rolle der OCL:

IMetasprache

ICodegenerierung

ILaufzeitchecks

I Beispiele für Werkzeuge: MDT/OCL

IMDT/OCL: EMF mit OCL-Unterstützung

18 [19]

Zusammenfassung

I Kritik UML:

I “OO built-in”

I Adäquat für eingebettete Systeme, CPS, . . . ? I OCL erlaubtEinschränkungenauf Modellen I Erlaubtmathematischpräzisere Modellierung I Frage:

I Werkzeugunterstützung?

I Ziel: Beweise, Codegenerierung, . . . ?

19 [19]

Referenzen

ÄHNLICHE DOKUMENTE

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

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

● vom Teilschlüssel direkt abhängige Attribute Löschen der direkt abhängigen Attribute aus der Ausgangstabelle. Erzeugung einer neuer

• Preissolidarität: Gleiches Netzentgelt für gleichartige Kunden einer Netzbetreiberin pro Spannungsebene innerhalb eines Kan- tons. • Möglichkeit der Angleichung grosser

Name: Datum: ja nein Auf dem Bild sind zwei Papageien.. Ein Papagei ist rot, gelb

Kann dein li Daumen deinen li Zeigefinger berühren?. Ist deine re Hand größer als deine

Auf beiden Seiten gibt es nicht unerhebliche und politisch wohlorga- nisierte Gruppierungen, die dem Geg- ner das Recht auf eine eigene staatli- che Existenz absprechen oder

Sicher gibt es auch Fälle, in de- nen eine Methadon-Therapie mit weniger psychotherapeutischer Un- terstützung sinnvoll und erfolgreich sein kann.. Doch legt die Charakteri-