abschlussvortrag bachelorarbeit wirtschaftsinformatik julian sommerfeldt
Post on 06-Apr-2015
108 Views
Preview:
TRANSCRIPT
Nutzungsszenarien introspektiver Modelle
Abschlussvortrag Bachelorarbeit Wirtschaftsinformatik
Julian Sommerfeldt
Julian Sommerfeldt
Agenda
Begriffsklärungen & Motivation
Datenmodellvisualisierung
Round Trip Engineering
26.07.2010
Julian Sommerfeldt
Agenda
Begriffsklärungen & Motivation
Datenmodellvisualisierung
Round Trip Engineering
26.07.2010
Julian Sommerfeldt26.07.2010
Modell
Beschreibt und abstrahiert die RealitätKonzentriert sich auf das Wesentliche
Introspektion
lat. introspicere: „hineinschauen“
Implementierungsartefakte
Programmcode
Modell
Introspektion
Implementierungsartefakte
Julian Sommerfeldt
Motivation
Modell ?
26.07.2010
Wie lassen sich die gewonnen Modelle nutzen?
Welche Stakeholder haben wann an welcher Verarbeitung der Informationen Interesse?
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?
Julian Sommerfeldt
Agenda
Begriffsklärungen & Motivation
Datenmodellvisualisierung
Round Trip Engineering
26.07.2010
Julian Sommerfeldt
Das Tricia Datenmodell ist komplex
26.07.2010
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
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
Julian Sommerfeldt26.07.2010
Komplexe Strukturen
Längere Einarbeitung
nötig
Fortlaufende Änderungen
Bedarf nach übersichtlicher, konsistenter
und informativer Darstellung
Datenmodellvisualisierung
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
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
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
Julian Sommerfeldt
Implementierung - Überblick
26.07.2010
Graphische Sicht
Introspektion
«artefact»
Code
Model
VisualModel
Element Widget1
avisualisierena
Transformation
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
Julian Sommerfeldt
Agenda
Begriffsklärungen & Motivation
Datenmodellvisualisierung
Round Trip Engineering
26.07.2010
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
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
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());
} };}
Julian Sommerfeldt
EntwurfMockups der Dialoge zur Bearbeitung der
Modelle.
26.07.2010
Julian Sommerfeldt
Implementierung - Übersicht
26.07.2010
RefactoringDialog
Introspektion
auslesen
Model
AbstractSyntaxTree
RefactoringModel
Transformation
«artefact»
Code
Julian Sommerfeldt
Implementierung - AST
26.07.2010
Julian Sommerfeldt
Implementierung - RefactoringModel
26.07.2010
RefactoringModel
ASTNode1
Mixin
**
«abstract»
Feature
Property
Role
Method
ChangeListener
Validator
*
*
*
«abstract»
Element
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
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*
Julian Sommerfeldt26.07.2010
Round Trip Engineering
Datenmodell-visualisierung
Javadoc Import
Ergebnisüberblick
Julian Sommerfeldt
Vielen Dank für die Aufmerksamkeit!Fragen?
10.05.2010
top related