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

Preview:

Citation preview

Thema 7 Einstieg in die Semesterarbeit

SE – Vertiefung Beuth-Hochschule Berlin

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

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

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

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

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

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

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

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

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

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

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

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

(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

Metamodell-Assoziationen

(zwischen Stereotypen)

Aus dem Tagged-Values-Beispiel von R. Petrasch

(c) schmiedecke 11 SE3-9-Semesterarbeit 15

Assoziationsfreies M1-Modell

Assoziationen sind TaggedValues der Stereotypen!

(c) schmiedecke 11 SE3-9-Semesterarbeit 16

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

Stereotypisierte M1-Assoziation

(c) schmiedecke 11 SE3-9-Semesterarbeit 18

<<control>>

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

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

Ende der Theorie

vielen Dank fürs Durchhalten!

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

Recommended