Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung...

22
Thema 7 Einstieg in die Semesterarbeit SE Vertiefung Beuth-Hochschule Berlin

Transcript of Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung...

Page 1: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Thema 7 Einstieg in die Semesterarbeit

SE – Vertiefung Beuth-Hochschule Berlin

Page 2: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Agenda

1. Beschränkung der Aufgabe

2. Vorgehensweise bei der Metamodell-Erstellung

3. Anforderungen und Bewertungsgrundlage

4. Diskussion Profile

5. Diskussion DSL

6. Weiteres Vorgehen

Hinweis auf weiteres Material in Moodle!

(Beispielprojekte zu DSL und Profilen)

(c) schmiedecke 11 SE3-9-Semesterarbeit 2

Page 3: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Beschränkung der Aufgabe

Wir haben uns in diesem Semester nicht mit M2M-Trasnformation beschäftigt,

sondern erstellen das PSM händisch mithilfe eines eigenen Metamodells

Definitieren Sie die Metasprache: Erstellen Sie eine PSM-DSL oder ein

oder mehrere Profile zur Auszeichnung des PSM in der UML.

Schreiben Sie einen M2T-Generator zur Umsetzung auf die Zielplattform

Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung

Ihrer Metasprache

Generieren Sie die Anwendung und ergänzen Sie sie von Hand.

3

PIM PSM ISM

M2M M2T

Fachliches Modell Entwurfsmodell Code

Page 4: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Mögliche Themen

Android-App-Generierung

Anwendung und Ausprogrammierung für verschiedene

Anwendungen, z.B.

– Tracking

– Mensa

– Shared Notes

– Taschenrechner, Umrechner

Standard-Blogseite

SOA-Anwendung

Webservice

Responsive Design

(c) schmiedecke 11 SE3-9-Semesterarbeit 4

Page 5: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Vorgehensweise allgemein:

Denken Sie daran:

Metamodell und Generator müssen für Ihr Beispiel funktionieren –

verallgemeinern können Sie beides später noch...

1. Erst die Beispielanwendung prototypisch in UML skizzieren und

implementieren

dann iterativ daraus M2, M1 und den Generator entwickeln:

2. Modellierungsanforderungen ermitteln und in eine M2-Sprache bringen

3. M1-Modell erstellen und händisch daraus Code generieren

4. Generator schreiben.

(c) schmiedecke 11 SE3-9-Semesterarbeit 5

Page 6: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Vorgehen bei der DSL-Erstellung

1. Modell- und Zielskizze (M1 und Code):

– Kleines Zielmodell in UML modellieren ("Modellskizze")

– Händisch umsetzen ("Zielskizze")

2. DSL schrittweise entwickeln:

– Elemente des Zielmodells identifizieren und typisieren (farbig markieren)

– Ergebnis im Zielsystem identifizieren

– Iterativ vorgehen: Grundlegende DSL bauen erstellen und Modellierung und

Transformation damit testen. Schrittweise ausbauen

Ggf. Probleme posten und nach Workarounds suchen.

3. Fertige DSL auf Ihre Ausdrucksstärke hin evaluieren

– Verschiedene M1-Modelle modellieren, Ausdrucksstärke bewerten,

– Umfang des generierbaren Codes bewerten.

4. Generator schrittweise bauen und testen

5. "Großes" Zielmodell erstellen, generieren, händisch vervollständigen

(c) schmiedecke 11 SE3-9-Semesterarbeit 6

Page 7: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Vorgehen bei der Profilerstellung

1. Modell- und Zielskizze PIM:

– Kleines Zielmodell in UML modellieren ("Modellskizze")

– Händisch umsetzen ("Zielskizze")

2. PSM vorbereiten:

– Entscheiden, um welche Infos das PIM angereichert werden soll

– Und wie sich das im Zielsystem niederschlagen soll

– Iterativ vorgehen: Kleine Testprofile bauen und mit kleinen MTL-Modulen

testen. Ggf. Probleme posten und nach Workarounds suchen.

3. Profil(e) erstellen und definieren

– Analysierbarkeit testen.

4. Modellskizze händisch in ein PSM überführen

– Mit Stereotypen und Tagged Values versehen

– Modellierungswert beurteilen, ggf. Profile überarbeiten

5. Generator schrittweise bauen und testen

6. "Großes" Zielmodell erstellen, generieren, händisch vervollständigen

(c) schmiedecke 11 SE3-9-Semesterarbeit 7

Page 8: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Rollen im MDSD-Prozess nach J.Bettin

(c) schmiedecke 11 SE3-9-Semesterarbeit 8

uc Rollen im MDSD lt. Bet...

Kunde

Domänenanalytiker

Domänenexperte

Domänenarchitekt

Sprachdesigner

Prototyp-Entwickler

Referenz-Implementierer

Plattform-Entwickler

Transformations-Enwickler

Page 9: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Anforderungen und Bewertungsgrundlage:

Praxis

Struktur des Metamodells

Zahl und Umfang der im Metamodell behandelten Aspekte, z.B.

– Architektur

– GUIs/Views

– Datenhaltung / Synchronisation

– Nutzung von Services / Geräten

– Geräteabhängige Eigenschaften

– …

Kriterium: für die Generierung nützliche Zusatzinformation

Struktur, Umfang und Korrektheit des Generators

– Kaskadierung möglich!

Korrektheit, Struktur und Vollständigkeit des generierten Codes

Zielmodell – Umfang, Aussagefähigkeit , ggf. Relevanz (c) schmiedecke 11 SE3-9-Semesterarbeit 9

Page 10: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Anforderungen und Bewertungsgrundlage:

Text

Das "punktet":

Diskussion des Metamodell-Entwurfs

Diskussion der Generatorstruktur

Zielvorgabe für die Softwarestruktur

Darlegung der praktischen Umsetzung, incl. Workarounds

Natürlich müssen Sie auch noch schreiben:

Einleitung

Theoretische Grundlagen:

– MDA, Eclipse Tools, Zielplattform

Konzeption und Entwurf des Generierungsprozesses

Fazit

(c) schmiedecke 11 SE3-9-Semesterarbeit 10

Page 11: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Diskussion des Metamodell-Entwurfs

DSL:

– Welche Information als eigenes Modellelement

– welche als Attribut eines Modellelements?

– Wer nutzt das Metamodell, welche Kenntnisse vorausgesetzt?

– Wie nützlich wäre eine andere grafischen Repräsentation –

welche?

Profile:

– Profil klar benennbar (fachlicher Zusammenhang)?

gut strukturiert?

– warum welches M2-Element erweitert?

– welche Profil-Assoziationen und –Attribute ("tagged values"),

welche Klassen-Assoziationen und –Attribute?

(c) schmiedecke 11 SE3-9-Semesterarbeit 11

Page 12: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Exkurs: Was ist ein gutes Profil?

Profile verbessern / schärfen die

Ausdrucksmöglichkeiten der UML

Es entstehen neue Modellelemente mit anderer oder

zusätzlicher Bedeutung

Zweck:

Zusätzliche Information, ggf. auf anderer Ebene

Ein- und ausblendbar

Nicht in allen Details direkt sichtbar

Von Werkzeugen nutzbar.

(c) schmiedecke 11 SE3-9-Semesterarbeit 12

Page 13: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Stereotypen –

neue oder veränderte Modellelemente

(c) schmiedecke 11 SE3-9-Semesterarbeit 13

class Requirements Mo...

«view»

Startpage

«view»

PersonalizedStartpage

«entity»

Account

«Factory»

AccountFactory

«link»

nicht Klasse im Java-Sinn

nicht Assoziation im Java-Sinn

Klasse im Java-Sinn mit zusätzlichen Features

Klasse im Java-Sinn mit besonderen Aufgaben

Page 14: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

(einfache) TaggedValues

(c) schmiedecke 11 SE3-9-Semesterarbeit 14

class Requirements Mo...

«stereotype»

Factory

+ JNDIname: String

«stereotype»

Entity

+ IDStrategy: Integer

+ TableName: String

«stereotype»

Label

+ hidable: Boolean

Zusatzinformationen, die stereotyp-spezifisch sind ,

und auf den Verwendungskontext verweisen

Attribute, die im Modell nicht darstellbar sind,

z.B. bei Property- Stereotypen

Page 15: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Metamodell-Assoziationen

(zwischen Stereotypen)

Aus dem Tagged-Values-Beispiel von R. Petrasch

(c) schmiedecke 11 SE3-9-Semesterarbeit 15

Page 16: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Assoziationsfreies M1-Modell

Assoziationen sind TaggedValues der Stereotypen!

(c) schmiedecke 11 SE3-9-Semesterarbeit 16

Page 17: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Kriterien für die Verwendung von

Metamodell-Assoziationen

Insbesondere wenn das PSM durch Profile unterstützt

von Hand erzeugt wird, ist die Lesbarkeit wichtig!

Profile sollen zusätzliche – typischerweise technische –

Aspekte modellierbar machen

Das Herausziehen von Assoziationen (und anderen

Informationen) auf die "unsichtbare" Metaebene ist nur

ausnahmsweise sinnvoll, z.B.

– wenn es sonst eine Doppelung geben müsste

– wenn die Information aus technischen Gründen anders

untergebracht werden muss (Factory statt direkter Assoziation)

In diesen Fällen ist ggf. eine Stereotypisierung der M1-

Information sinnvoll (Darstellung ohne Generatoreffekt)

(c) schmiedecke 11 SE3-9-Semesterarbeit 17

Page 18: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Stereotypisierte M1-Assoziation

(c) schmiedecke 11 SE3-9-Semesterarbeit 18

<<control>>

Page 19: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Und was können wir jetzt machen?

Kreativ sein, natürlich

Themenbeispiele aus den letzten beiden Semestern

Wetter App (DSL + Profil)

Geschützter Mailverkehr (Profil)

To-Do-App (DSL)

BMI-Rechner (Profil)

div. Fitness-Apps (DSL + Profil)

Kostenmanager (DSL)

WG-App (DSL)

Kartenanwendung für Homepages (Profil)

MVC-CRUD-Generator für Symfony

Geo-Reminder

Rezepte-App

Webseitenbaukasten (Profil + DSL)

REST-Persistenz für Apps

Webseitenbaukasten (c) schmiedecke 11 SE3-9-Semesterarbeit 19

Page 20: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Weiteres Vorgehen

Dies war die letzte "reguläre" Vorlesung

Ab jetzt gibt es nur gelegentlich, nach Ankündigung,

Input – s.u.

Die VL-Zeit wird zur Übungszeit (ab 10:00)

Nächster Vortrag am 16.12.

10:00 Vorstellung eines Semesterprojekts

Im Januar:

– M2M-Transformation

– Testprofile

– Modellgetriebenes Vorgehen bei Microtool in Berlin

(c) schmiedecke 11 SE3-9-Semesterarbeit 20

Page 21: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

Ende der Theorie

vielen Dank fürs Durchhalten!

Page 22: Thema 7 Einstieg in die Semesterarbeit · Erstellen Sie das M1-Modell für Ihre Ziel-Anwendung unter Verwendung Ihrer Metasprache Generieren Sie die Anwendung und ergänzen Sie sie

ANHANG:

TAGGED VALUES -ANSÄTZE-

In diesem Bereich hat sich in den letzten Acceleo-Versionen so vel

verändert, dass ich die Folien entfernt habe. Näheres dazu in dne

Übungen.

(c) schmiedecke 11 SE3-9-Semesterarbeit 22