06.11.2013 Aufrufe

Folien (4up) - Benjamin Braatz

Folien (4up) - Benjamin Braatz

Folien (4up) - Benjamin Braatz

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Semantische Konsistenz Objekt-Orientierter<br />

Viewpoint-Spezifikationen<br />

Gunnar Schröter, <strong>Benjamin</strong> <strong>Braatz</strong>, Markus Klein<br />

Projekt IOSIP<br />

Kolloquium des DFG-SPP “Software-Spezifikation”<br />

Stuttgart, 20. November 2003<br />

Konsistenz von OO Viewpoints<br />

Überblick<br />

Rückblick und Motivation (Phasen 1 und 2; G. Schröter)<br />

– Viewpoint-Spezifikationen<br />

– semantische Integration<br />

– Integrationsmodell<br />

– bisherige Ergebnisse<br />

integrierte objektorientierte Spezifikationstechnik (Phase 3; B. <strong>Braatz</strong>)<br />

Überblick<br />

– Semantische Modelle – Objekt-Orientierte Transformations-Systeme (OOTS)<br />

– Perspektiven – Eigenschaften von OOTS<br />

– Konsistenz-Prüfung – Konstruktion kanonischer Modelle<br />

Entwicklungs-Relationen (z.B. Verfeinerung, Bisimulation, Reduktion, ...) für<br />

Viewpoint-Spezifikationen (G. Schröter)<br />

DFG-SPP-Kolloquium, 20.11.2003 1<br />

Konsistenz von OO Viewpoints<br />

Motivation für Viewpoint-Spezifikationen<br />

Viewpoint-Spezifikationen<br />

Konsistenz von OO Viewpoints<br />

Viewpoint-Spezifikationen<br />

Viewpoint-Spezifikationen<br />

reale technische Systeme sind aus einer<br />

Vielzahl unterschiedlicher Perspektiven betrachtbar<br />

(Struktur, Zeitabhängigkeiten, Kommunikation, ...)<br />

– in der Gesamtheit schwer in einerTechnik beschreibbar<br />

– einzelne Perspektiven sind (jeweils) durch einzelne (UML-)Techniken adäquat<br />

beschreibbar ( Viewpoint-Spezifikationen)<br />

System-Spezifikation besteht aus einer Menge von Viewpoint-Spezifikationen,<br />

die unterschiedliche Perspektiven auf ein System beschreiben<br />

Spec 1<br />

Spec 2<br />

Spec 3<br />

V<br />

2<br />

(M)<br />

Systemspezifikation:<br />

Menge heterogener (partieller) Viewpoint-Spezifikationen,<br />

interpretiert als eine Spezifikation eines Systems<br />

V<br />

1<br />

(M)<br />

M<br />

V<br />

3<br />

(M)<br />

M<br />

DFG-SPP-Kolloquium, 20.11.2003 2<br />

DFG-SPP-Kolloquium, 20.11.2003 5


Konsistenz von OO Viewpoints<br />

Viewpoint-Spezifikationen<br />

Konsistenz von OO Viewpoints<br />

Transformations-Systeme<br />

Integration Viewpoint-Spezifikationen<br />

Motivation für Transformations-Systeme<br />

Spec 1<br />

Spec 2<br />

Spec 3<br />

Mod(Spec 2)<br />

?<br />

M<br />

gesucht ist ein formaler semantischer Bereich:<br />

– unterschiedlichste Aspekte von ingenieurwissenschaftlichen Anwendungsgebieten<br />

adäquat modellierbar<br />

– technisch handhabbar<br />

Mod(Spec 1)<br />

Mod(Spec ) 3<br />

Transformations Systeme (TS) (entwickelt in Phase 1 + 2; MGR01)<br />

Mod(SysSpec)<br />

SysSpec ist konsistent<br />

DFG-SPP-Kolloquium, 20.11.2003 11<br />

DFG-SPP-Kolloquium, 20.11.2003 12<br />

Konsistenz von OO Viewpoints<br />

Transformations-Systeme<br />

Konsistenz von OO Viewpoints<br />

Transformations-Systeme<br />

Transformations-Systeme<br />

Transformations-Systeme<br />

CG:<br />

m<br />

D DSig<br />

:<br />

D1<br />

ac1<br />

D2<br />

ac3<br />

D4<br />

ac4<br />

ein TS enthält:<br />

– einen Transitionsgraphen , genannt Control Graph,<br />

– einen Transitionsgraphen , genannt Data Space (induziert über einer Data<br />

Space Signature ),<br />

– einen Transitions-Graph-Morphismus , genannt Labeling-<br />

Morphismus<br />

allg. Kompositionsoperationen<br />

ac2<br />

allg. Entwicklungsrelationen<br />

D3<br />

DFG-SPP-Kolloquium, 20.11.2003 17<br />

DFG-SPP-Kolloquium, 20.11.2003 23


Konsistenz von OO Viewpoints<br />

Transformations-Systeme<br />

Aspektmodellierung mit Transformations-Systemen<br />

Konsistenz von OO Viewpoints<br />

Weiterentwicklungen in der 3. Projekt-Phase<br />

Objekt-Orientierte Transformations-Systeme<br />

Mit TS adäquat modellierbar:<br />

Semantiken und Kompositionsoperatoren von<br />

– CCS, CSP<br />

– Petrinetze<br />

– Unity<br />

– Statecharts<br />

– Classdiagrams<br />

– MSC’s<br />

Entwicklungsrelationen<br />

– Data-Refinement<br />

– LOTOS-Entwicklungsrelationen (Trace-Equivalence, -Refinement, Extension,<br />

Reduction, Testequivalence, starke und schwache Bisimulation)<br />

– Reynold’s Methode zur Programmverfeinerung<br />

Modellierung von objekt-orientierten Software-Systemen<br />

Definition von Perspektiven<br />

Spezifikation von Perspektiven mit UML-Techniken<br />

Algorithmischer/konstruktiver Konsistenz-Check<br />

Def. von Entwicklungsrelationen für einen formalen Top-Down-Entwurf<br />

Syntaktische (UML-)Regeln für diese Entwicklungsrelationen<br />

Entwicklung eines Komponentenkonzept<br />

DFG-SPP-Kolloquium, 20.11.2003 24<br />

DFG-SPP-Kolloquium, 20.11.2003 25<br />

Konsistenz von OO Viewpoints<br />

Objekt-Orientierte Transformations-Systeme<br />

Objekt-Orientierte Transformations-Systeme<br />

Konsistenz von OO Viewpoints<br />

Struktureller Viewpoint<br />

Objekt-Orientierte Transformations-Systeme<br />

Perspektive: Struktur der Datenzustände und Aktionen im OOTS<br />

Objekt-Orientierte Tranformations-Systeme (OOTS) sind eine Spezialisierung der<br />

Transformations-Systeme zur Modellierung objekt-orientierter Software-Systeme<br />

Kontroll-Graph-Ebene (wie TS)<br />

Spezialisierung der Daten-Raum-Ebene<br />

– Objekt-Konfigurationen als Datenzustände<br />

– Ereignisse (Methoden-Aufrufe, Methoden-Beendungen, Attribut-Veränderungen)<br />

als Aktionen<br />

object sorts: List, ListElem<br />

attributes: first: List ListElem<br />

current: List ListElem<br />

next: ListElem ListElem<br />

content: ListElem Int<br />

actions: createList call : List<br />

createList ret : List<br />

Spezifikations-Technik: Klassen-Diagramm<br />

List<br />

-current: ListElem<br />

+ createList(): List<br />

+insert(Int)<br />

+start(): Int<br />

+step(): Int<br />

insert call : List Int<br />

insert ret : List<br />

start call : List<br />

start ret : List Int<br />

ass first : List ListElem<br />

ass current : List ListElem<br />

. . .<br />

first<br />

ListElem<br />

0..1 next<br />

-content: Int<br />

0..1<br />

+ createListElem(Int): ListElem<br />

+getContent(): Int<br />

+setNext(ListElem)<br />

+getNext(): ListElem<br />

+existsNext(): Bool<br />

DFG-SPP-Kolloquium, 20.11.2003 26<br />

DFG-SPP-Kolloquium, 20.11.2003 27


Konsistenz von OO Viewpoints<br />

Statischer Viewpoint<br />

Objekt-Orientierte Transformations-Systeme<br />

Konsistenz von OO Viewpoints<br />

Objekt-Orientierte Transformations-Systeme<br />

Methoden-Effekt-Viewpoint<br />

Perspektive: Statischer Anteil des OOTS<br />

Perspektive: Datenzustands-Effekte von Methoden im OOTS<br />

data sorts: Int SP Int =<br />

data opns: zero: Int zero SP = 0<br />

succ: Int Int succ SP (i) = i+1<br />

pred: Int Int pred SP (i) = i-1<br />

add: Int Int Int add SP (i,j) = i+j<br />

Spezifikations-Technik: Algebraische Spezifikation<br />

<br />

Int<br />

+zero(): Int<br />

+succ(Int): Int<br />

+pred(Int): Int<br />

+add(Int,Int): Int<br />

succ(pred(i))=i<br />

pred(succ(i))=i<br />

add(i,zero)=i<br />

add(i,succ(j))=succ(add(i,j))<br />

add(i,pred(j))=pred(add(i,j))<br />

ll:List<br />

ll:List<br />

ll:List<br />

first<br />

first<br />

le1:ListElem<br />

content=23<br />

le1:ListElem<br />

content=23<br />

ll.insert(42)<br />

ll.insert(42)<br />

ll.insert(23)<br />

ll:List<br />

ll:List<br />

ll:List<br />

first<br />

first<br />

first<br />

Spezifikations-Technik: OCL-Constraint an Methode<br />

le2:ListElem<br />

content=42<br />

le1:ListElem<br />

content=42<br />

le2:ListElem<br />

content=23<br />

context List::insert(i: Int)<br />

post: first.next = first@pre<br />

first.content = i<br />

next<br />

next<br />

le1:ListElem<br />

content=23<br />

le1:ListElem<br />

content=23<br />

DFG-SPP-Kolloquium, 20.11.2003 28<br />

DFG-SPP-Kolloquium, 20.11.2003 29<br />

Konsistenz von OO Viewpoints<br />

Objekt-Orientierte Transformations-Systeme<br />

Methoden-Struktur-Viewpoint<br />

Perspektive: Strukturierung von Methoden im OOTS<br />

Konsistenz von OO Viewpoints<br />

Kontrollfluss-Viewpoint<br />

Perspektive: Aufrufbarkeit von Methoden im OOTS<br />

getContent call(le)<br />

Objekt-Orientierte Transformations-Systeme<br />

getContent ret(le,i3)<br />

ll:List<br />

first<br />

(ll) start call<br />

le1:ListElem<br />

content=23<br />

(le1)<br />

ass current<br />

getContent call(le1) getContent ret (le1,23)<br />

ll:List<br />

first<br />

current<br />

le1:ListElem<br />

content=23<br />

Spezifikations-Technik: Methoden-Beschreibung in einer Action Language<br />

method List::start():Int<br />

current := first<br />

return current.getContent()<br />

start ret (ll,23)<br />

in<br />

createListElem call(le,i1)<br />

getContent call (le)<br />

createListElem ret(le)<br />

existsNext ret (le,b1)<br />

getContent ret (le,i2)<br />

setNext call (le,le1)<br />

existsNext call (le)<br />

setNext ret (le)<br />

existsNext ret (le,b2)<br />

Spezifikations-Technik: Statechart-Diagramm für Klasse<br />

getContent,existsNext<br />

getContent,setNext,getNext,existsNext<br />

setNext call (le,le2)<br />

getNext ret (le,le3)<br />

(le)<br />

existsNext call<br />

setNext ret (le)<br />

getNext call (le)<br />

createListElem<br />

next unset<br />

setNext<br />

next set<br />

DFG-SPP-Kolloquium, 20.11.2003 30<br />

DFG-SPP-Kolloquium, 20.11.2003 31


Konsistenz von OO Viewpoints<br />

Kontrollfluss-Viewpoint<br />

Objekt-Orientierte Transformations-Systeme<br />

Konsistenz von OO Viewpoints<br />

Konsistenz-Prüfung<br />

Konsistenz-Prüfung<br />

Wenn kein Kontrollfluss spezifiziert ist, ist implizit jede Methode immer aufrufbar.<br />

Spec 1<br />

Spec 2<br />

Spec 3<br />

in<br />

insert call (ll,i1)<br />

insert ret (ll)<br />

start call (ll)<br />

Mod(Spec 2)<br />

createList call(ll)<br />

createList ret (ll)<br />

step ret (ll,i3)<br />

start ret (ll,i2)<br />

step call (ll)<br />

Mod(Spec 1)<br />

Mod(Spec ) 3<br />

M<br />

insert,start,step<br />

createList<br />

created<br />

Mod(SysSpec)<br />

Perspektiven-Modelle für die einzelnen Viewpoint-Spezifikationen<br />

Konstruktion eines (kanonischen) System-Modells für die System-Spezifikation<br />

Konsistenz, wenn dieses Modell existiert<br />

Inkonsistenz, wenn es nicht existiert<br />

DFG-SPP-Kolloquium, 20.11.2003 32<br />

DFG-SPP-Kolloquium, 20.11.2003 36<br />

Konsistenz von OO Viewpoints<br />

Konsistenz-Prüfung zwischen den Perspektiven<br />

Konsistenz-Prüfung<br />

Konsistenz von OO Viewpoints<br />

Beheben der Inkonsistenz<br />

Konsistenz-Prüfung<br />

Behebung durch neue Kontrollfluss-Spezifikation<br />

in<br />

cL c (l)<br />

cL r (l)<br />

sta c (l)<br />

sta r (l,i1)<br />

in<br />

insert call (ll,i2)<br />

insert ret (ll)<br />

insert call (ll,i4)<br />

insert ret (ll)<br />

start call (ll)<br />

createList call (ll)<br />

createList ret(ll)<br />

insert call(ll,i1)<br />

insert ret(ll)<br />

start call(ll)<br />

start ret(ll,i3)<br />

step ret (ll,i6)<br />

start ret (ll,i5)<br />

step call (ll)<br />

in<br />

insert<br />

insert,start,step<br />

createList<br />

empty<br />

insert<br />

current unset<br />

start<br />

current set<br />

cL r (l) i c (l,42)<br />

cLE r (e1)<br />

i r (l)<br />

cL c (l)<br />

cLE (e1,42)<br />

l c<br />

l e1:<br />

a cont (e1,42)<br />

a l e1:42 first (l,e1)<br />

l<br />

e1:42<br />

DFG-SPP-Kolloquium, 20.11.2003 40<br />

DFG-SPP-Kolloquium, 20.11.2003 41


Konsistenz von OO Viewpoints<br />

Konsistenz-Prüfung zwischen den Perspektiven<br />

Konsistenz-Prüfung<br />

Konsistenz von OO Viewpoints<br />

Entwicklungs-Relationen<br />

Konzept von Entwicklungs-Relationen für Systemspezifikationen<br />

in<br />

cL c (l)<br />

cL r (l)<br />

i c (l,i1)<br />

i r (l)<br />

Spec 1<br />

Spec2<br />

R<br />

2<br />

R 1<br />

V (M)<br />

2<br />

Spec 3<br />

R<br />

3<br />

V<br />

1<br />

(M)<br />

V<br />

1<br />

(E)<br />

M<br />

V<br />

3<br />

(M)<br />

M<br />

in<br />

Spec 1<br />

‘ Spec‘<br />

2<br />

V<br />

2<br />

(E)<br />

E<br />

V<br />

3<br />

(E)<br />

Spec‘<br />

3<br />

V (N)<br />

2<br />

cL r (l) i c (l,42)<br />

cLE r (e1)<br />

i r (l)<br />

cL c (l)<br />

cLE (e1,42)<br />

l c<br />

l e1:<br />

a cont (e1,42)<br />

a l e1:42 first (l,e1)<br />

l<br />

e1:42<br />

V<br />

1<br />

(N)<br />

N<br />

V<br />

3<br />

(N)<br />

DFG-SPP-Kolloquium, 20.11.2003 43<br />

DFG-SPP-Kolloquium, 20.11.2003 48<br />

Konsistenz von OO Viewpoints<br />

Entwicklungs-Relationen für OOTS<br />

Entwicklungs-Relationen<br />

Konsistenz von OO Viewpoints<br />

Konsistenz von Entwicklungsschritten<br />

Entwicklungs-Relationen<br />

Identifizierung/Definition der notwendigen Entwicklungsrelationen ( ODEMA)<br />

Spec 1<br />

Spec2<br />

R<br />

2<br />

R 1<br />

V (M)<br />

2<br />

Spec 3<br />

R<br />

3<br />

Zerlegung in Entwicklungsrelationen<br />

auf den Perspektiven<br />

syntaktische Repräsentation von<br />

– korrekte und<br />

– vollständige<br />

Regelmengen<br />

durch<br />

Spec 1<br />

‘<br />

V<br />

1<br />

(M)<br />

Spec‘<br />

2<br />

M<br />

E<br />

V<br />

3<br />

(M)<br />

Spec 3<br />

‘<br />

M<br />

Entwicklung von Konsistenzkriterien für Entwicklungschritte<br />

M( Spec‘<br />

2)<br />

M( Spec 1<br />

‘)<br />

?<br />

M( Spec 3<br />

‘)<br />

DFG-SPP-Kolloquium, 20.11.2003 49<br />

DFG-SPP-Kolloquium, 20.11.2003 54


Konsistenz von OO Viewpoints<br />

Verfeinerung von Methoden<br />

Methodenverfeinerung<br />

Konsistenz von OO Viewpoints<br />

Beispiel für Methodenverfeinerung<br />

Methodenverfeinerung<br />

eine (abstrakte) Methode wird<br />

– mittel Kompositionsoperatioren (sequentiell, alternativ, Fixpunkt)<br />

– über anderen (konkreteren) Methoden<br />

strukturiert (implementiert)<br />

move<br />

body<br />

(p,7,16)<br />

move<br />

call<br />

(p,7,16) x(p) = 42<br />

x(p) = 49<br />

y(p) = 13<br />

y(p) = 29<br />

move ret(p)<br />

DFG-SPP-Kolloquium, 20.11.2003 55<br />

DFG-SPP-Kolloquium, 20.11.2003 56<br />

Konsistenz von OO Viewpoints<br />

Beispiel für Methodenverfeinerung<br />

Methodenverfeinerung<br />

Konsistenz von OO Viewpoints<br />

Zerlegung der Methodenverfeinerung<br />

Methodenverfeinerung<br />

Methodenverfeinerung hat Effekte auf:<br />

ass x(p,7)<br />

ass<br />

move<br />

call<br />

(p,7,16) x(p) = 42 x(p) = 49<br />

y(p,16)<br />

x(p) = 49<br />

y(p) = 13 y(p) = 13 y(p) = 29<br />

move ret(p)<br />

– Abstrakte Methoden-Perspektive<br />

Reduktion des Nichtdeterminismus<br />

Verstärkung der Postcondition<br />

Domänenerweiterungen<br />

Abschwächung der Precondition<br />

– Konkrete Methoden-Perspektive<br />

Strukturierung des Methodenbody<br />

Konkretisierung des Methodenablaufs<br />

sonst keine Effekte (<br />

Diagonalrelationen)<br />

Inkonsistenzen möglich<br />

algorithmisch entscheidbare Konsistenzkriterien notwendig<br />

DFG-SPP-Kolloquium, 20.11.2003 57<br />

DFG-SPP-Kolloquium, 20.11.2003 58


Konsistenz von OO Viewpoints<br />

Zusammenfassung<br />

Methodenverfeinerung<br />

Konsistenz von OO Viewpoints<br />

Ausblick<br />

Methodenverfeinerung<br />

Entwicklung des TS-Framework<br />

Validierung der Nutzbarkeit anhand der Modellierung von verschiedensten formalen<br />

– semantischen Bereichen,<br />

– Kompositionsoperatoren,<br />

– Enwicklungsrelationen<br />

TS-Semantik insb. für:<br />

– Classdiagrams<br />

– Statecharts<br />

Enwicklung von OOTS<br />

Entwicklung einer formalen, heterogenen Spezifikationsmethode für objektorientierten<br />

Softwareentwurf mit<br />

adäquater Spezifikation der Viewpoints durch UML-Techniken<br />

erweiterbar/offen für die Integration weiterer Aspekte<br />

formalen und algorithmisch entscheidbaren Konsistenzkriterien<br />

kompositionaler Semantik<br />

formalen Entwicklungsrelationen<br />

DFG-SPP-Kolloquium, 20.11.2003 59<br />

DFG-SPP-Kolloquium, 20.11.2003 60

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!