28
Nutzungsszenarien introspektiver Modelle Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Embed Size (px)

Citation preview

Page 1: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Nutzungsszenarien introspektiver Modelle

Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik

Julian Sommerfeldt

Page 2: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Agenda

Begriffsklärungen & Motivation

Datenmodellvisualisierung

Round Trip Engineering

26.07.2010

Page 3: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Agenda

Begriffsklärungen & Motivation

Datenmodellvisualisierung

Round Trip Engineering

26.07.2010

Page 4: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt26.07.2010

Modell

Beschreibt und abstrahiert die RealitätKonzentriert sich auf das Wesentliche

Introspektion

lat. introspicere: „hineinschauen“

Implementierungsartefakte

Programmcode

Modell

Introspektion

Implementierungsartefakte

Page 5: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Motivation

Modell ?

26.07.2010

Wie lassen sich die gewonnen Modelle nutzen?

Welche Stakeholder haben wann an welcher Verarbeitung der Informationen Interesse?

Page 6: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Motivation

Modell•Datenmodell

•Interaktionsmodell

•Berechtigungsmodell

?

26.07.2010

Wie lassen sich die gewonnen Modelle nutzen?

Welche Stakeholder haben wann an welcher Verarbeitung der Informationen Interesse?

Page 7: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Agenda

Begriffsklärungen & Motivation

Datenmodellvisualisierung

Round Trip Engineering

26.07.2010

Page 8: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Das Tricia Datenmodell ist komplex

26.07.2010

Page 9: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Beispiel für ein Datenmodell

26.07.2010

name: StringurlName: UrlName

Wiki

name: StringurlName: UrlNamecontent: RichString

WikiPage

wikiIfHome home

wiki pages

*

0..1 1

Page 10: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Das Tricia Metamodell

26.07.2010

name : String

Asset name : StringisPersistent : booleanlabel : I18nStringlongHelp : I18nStringshortHelp : I18nString

Feature

**

*

isCascadeOnDelete : boolean

Role1

oppositeRole

extends

*

0..1

«datatype»

I18nString language : Stringname : String

Translation*

name : StringerrorMessage : I18nString [0..*]

Validator

ONE, MANY

«enum»

Multiplicity

RichStringProperty

isIndexed : booleanmaxLength : int

StringProperty

UrlNameProperty

Property

name : String

ChangeListener

oppositeMultiplicity : Multiplicity[1]

Unidirectional

1

Directionality

Bidirectional

Base property types

(e.g. IntProperty,

DateProperty)

Built-in property

types

...Property

Mixin* *

requires

**

OptionalMixin

label : I18nString

Entity

MandatoryMixin

to

*

1

OneRole ManyRole

Page 11: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt26.07.2010

Komplexe Strukturen

Längere Einarbeitung

nötig

Fortlaufende Änderungen

Bedarf nach übersichtlicher, konsistenter

und informativer Darstellung

Datenmodellvisualisierung

Page 12: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Funktionale AnforderungenDie Darstellung der unterschiedlichen

Relationen ist vor allem in technischer Hinsicht eine Herausforderung.

26.07.2010

Wiki WikiPagewikiIfHome home

1 1

Group Personnotified

* *

Group Membershipgroup membership

1 *

Principal

Person Group

Page 13: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Funktionale Anforderungen

Anpassbarer Detaillierungsgrad

ExportfunktionenDiagramme werden auch außerhalb des

Programms genutzt. Als Bild abspeichern.

Gewisse Assets werden immer wieder abgefragt. Diese mit Positionsangaben speichern und später

neu laden.26.07.2010

Page 14: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Technische RealisierungsalternativenWeb vs. Desktop

VerfügbarkeitInstallation RealisierungIntrospective Modeling Framework

Entscheidung für Desktopapplikation (Eclipse)

Graphical Editing Framework vs. Netbeans Visual LibraryHandhabungIntegration

26.07.2010

Page 15: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - Überblick

26.07.2010

Graphische Sicht

Introspektion

«artefact»

Code

Model

VisualModel

Element Widget1

avisualisierena

Transformation

Page 16: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - DataModel

26.07.2010

Clazz Relation«abstract»

Pin«abstract»

Role

Mixin Property SourceRole TargetRole

VisualModel

visualize(): void

«abstract»

Element

* *

* *

Widget1

sour

ce

targ

et

11

Page 17: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Agenda

Begriffsklärungen & Motivation

Datenmodellvisualisierung

Round Trip Engineering

26.07.2010

Page 18: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Round Trip Engineering

26.07.2010

Sicht

Modell

«artefact»

Code

Introspektion

visualisieren

Fo

rwa

rd E

ng

ine

eri

ng

Re

verse

En

gin

ee

ring

Unter Verwendung des Metamodells und Metametamodells

Unter Verwendung des Metamodells und Metametamodellsgeneriert

Page 19: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

ProblemstellungenMetamodell-Kompatibilität ist notwendig,

um weiterhin Introspektion zu ermöglichen.

Synchronität zwischen dem Code, der Sicht und dem Modell, das bearbeitet wurde.

Codegenerierung Sichten sind Abstraktionen vom Code

Nicht der gesamte Code ist introspektiv Code kann nicht komplett neu generiert werden

Feingranulare Änderungen sind notwendig 26.07.2010

Page 20: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Nicht der gesamte Code ist introspektiv

26.07.2010

public final StringProperty name = new StringProperty() {

final ChangeListener updateUrlName = new InstantChangeListener() {

@Override public void change(Diff diff) {

UrlNameProperty.updateUrlName(urlNameQuery(), urlName, get());

} };}

Page 21: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

EntwurfMockups der Dialoge zur Bearbeitung der

Modelle.

26.07.2010

Page 22: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - Übersicht

26.07.2010

RefactoringDialog

Introspektion

auslesen

Model

AbstractSyntaxTree

RefactoringModel

Transformation

«artefact»

Code

Page 23: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - AST

26.07.2010

Page 24: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - RefactoringModel

26.07.2010

RefactoringModel

ASTNode1

Mixin

**

«abstract»

Feature

Property

Role

Method

ChangeListener

Validator

*

*

*

«abstract»

Element

Page 25: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Implementierung - RefactoringEclipse benutzt für Refactoring-Aufgaben das

LTK Refactoring Framework.

Das Framework bietet Schnittstellen und integrierte Funktionen an:PreviewIntegration in die Eclipse-HistoryLeicht zu erstellende Dialoge

26.07.2010

Page 26: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Refactoring - Ablauf

26.07.2010

checkInitialConditions()

RefactoringDialogfüllen

checkFinalConditions()

bearbeiten „Preview“ „OK“

createChange()

PerformChanges

„Cancel“

DiscardChanges

checkInitialConditions(IProgressMonitor): RefactoringStatuscheckFinalConditions(IProgressMonitor): RefactoringStatuscreateChange(IProgressMonitor): Change

«abstract»

org.eclipse.ltk.core.refactoring.Refactoring«abstract»

RefactoringWizardcreateControl(Composite): void

«abstract»

UserInputWizardPage*

Page 27: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt26.07.2010

Round Trip Engineering

Datenmodell-visualisierung

Javadoc Import

Ergebnisüberblick

Page 28: Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik Julian Sommerfeldt

Julian Sommerfeldt

Vielen Dank für die Aufmerksamkeit!Fragen?

10.05.2010