Modellbasierte SW-Entwicklung Flashcards

1
Q

Grundidee der Modell-basierte Entw.

A
  • Modellieren, nicht Programmieren
  • Einfache, kundenorientierte Modelle und Sprachen DSL
  • Aus wenig Modell soll viel Programm generiert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Herausforderungen der Modell-bas. Entw.

A
  • Technik muss bekannt sein
  • Anwendung der Technik in das Vorgehensmodell integrieren
  • Zusammenpassung der generierter und manuell erzeugter Code
  • DSL ändert sich - was passiert mit den Modellen?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Domain-Specific Languages…

A
  • sind Domänen-spezifisch

- damit nicht allgemeinverständlich

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Grundideen (detailliert) in Modell-basierte Entw.

A
  • Erfahrungsengpass -> nicht alles neu programmieren
  • UML-Modellierung weit verbreitet -> Modelle statt Code
  • Integrierte UML-Modelle -> formaler modellieren und generieren
  • Komplizierte Domänen -> nah an der Domäne modellieren
  • Änderungen nötig -> Evolution durch agile Methoden
    (Aus Domänen-spezifisch erweiterten Modellen Code generieren)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wofür werden Modelle in MDSD verwendet?

A
  • Dokumentation
  • Generierung von Code-Teilen
  • Referenz für Verifikation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Netzwerktopologie im Fahrzeug?

A

Linientopologie

Umsetzung im CAN und FlexRay

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Rollen in Model Driven Software Development

A
  • Manager / Entscheider
  • Architekten
  • Anwendungs-Entwickler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Manager (MDSD)

A
  • bessere Planbarkeit durch breite Wiederverwendung
  • Effizientere Vorgehensweise, schnellere Projektabwicklung
  • Lerneffekte beschleunigen und einsetzen (Qualität)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Architekten (MDSD)

A
  • Formal interpretierbare Modelle
  • Gestaltet als SW-Familien, -Produktlinien, -Domänenarch.
  • Umfassende Arch für DSL, Generat und Zielsystem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Anwendungs-Entwickler (MDSD)

A
  • klare, domänen-nahe Modellierung (DSL)
  • einfach bedienbare, angemessene Generierungs-Werkzeuge
  • Klare Schnittstellen für manuell enwickelte Teile
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Metamodell def

A

beschreibt die Elemente des Modells.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Modell def

A

beschreibt die Elemente der zu beschreibenden Domäne oder der ‘wirklichen Welt’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Domain Specific Language def

A

..ist eine formale Sprache, die für ein bestimmtes Problemfeld entworfen und implementiert wird und daher sind sie nicht allgemeinverständlich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wann loht sich der Einsatz von DSLs?

A

Wenn man aus wenig wie möglich Modell viel Programm generieren möchte und aufgrund der Komplexität der Domäne nah an der Domäne modellieren möchte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

UML-Profil def.

A

…erweitern eine Metamodellreferenz (UML) und ermöglichen die Umstellung und Anpassung eines Metamodells an Konstrukte, die spezifisch zu einem Domain, Plattform oder SWentwicklungsmethode sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Bestandteile eines UML-Profils

A
  • Stereotypen
  • Tagged values
  • Constraints
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wofür werden UML-Profils erstellt?

A

für fachliche oder technische Anwendungsdomänen erstellt und zur Anpassung an solche Domäne benutzt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Stereotypen (UML-Profil)

A

…ergänzen die Bedeutung und Darstellung der UML und sind abgeleitet von Elementen des UML-Metamodells. Sie definieren wie eine existierende Metaclass als Teil eines Profils erweitert werden kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Constraints (UML-Profil)

A

…werden benutzt, um Einschränkungen (wie Bedingungen) auszudrücken. Sie sind im Pseudocode oder in der Object Constraint Language OCL erfasst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Tagged Value (UML-Profil)

A

… is a tag value pair that can be used to add properties to model elements in UML. z.B. {tag = Value} = { author=’‘Joe Smith’’, deadline = ‘31.03.2019’ }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

UML-Objektdiagramm vs Feature-Diagramm

A

Feature-Diagramm hat den Vorteil, dass derselbe Sachverhalt mit einer übersichtlicheren Notation dargestellt werden kann.

  • bessere Lesbarkeit des Diagramms
  • der Betrachter kennt die Syntax und die Problemstellung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Wieso Metamodellieren?

A
  1. Metamodell beschr. abstrakte Syntax (für DSL)
  2. Verifizieren von Modellen gegen die Constraints des Metamodells
  3. Transformationen zwsch. Metamodellen (mehrstufig)
  4. Verbindlicher Ausgangspunkt für Codegenerierung
  5. Referent für Werkzeugintegration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Aspekte der Compliance von Tools

A
  • abstr. Syntax: Metaklassen, Strukturen (Beziehungen), Constraints, I/O
  • konkrete Syntax: Falls abs. Syntax compliant, dann auch konkret
  • Diagramm-Austausch: Falls abs. und konkr. Syntax compliant, kann auch Diag-Austausch möglich sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

MOF

A

Meta Object Facility

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

OCL

A

Object Constraint Language

Modelltransformationssprache, um Ausdrücke und Constraints zu beschreiben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

OCL?

A
  1. Sprache für Ausdrücke und BEdingungen in UML
  2. Wichtig für formale Interpretation von UML-Modellen
  3. Steht wie ein Kommentar im UML-Modell
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Modelltransformationssprachen

A

QVT
ATL
OCL

28
Q

Constraint… (OCL)

A

…legt einen oder mehrere Werte in oo-System fest

29
Q

Ausdrücke beschreiben…OCL

A

(steht für einen Wert)

  • Anfangswert eines Attributs oder Assoziations-Endes
  • Ableitungsregel für ein Attr. oder Assoz.-Ende
  • Auswirkung einer Operation
  • Instanz in einem dyn. Diagramm
  • Bedingung in einem dyn. Diagramm
  • Konkrete Parameterwerte in dyn. Diagramm
30
Q

Context…OCL

A

-Ausdruck bezieht sich auf irgendein UML-Element wie

Klasse, Interface, Constraint od. Operation

31
Q

OCL Constraintstypen

A
  1. Invariante einer Klasse, eines Typs od. Interfaces
  2. Precondition einer Operation
  3. Postcondition einer Operation
  4. Guard einer Transition
32
Q

OCL Constraintstypen

A
  1. Invariante einer Klasse, eines Typs od. Interfaces
  2. Precondition einer Operation
  3. Postcondition einer Operation
  4. Guard einer Transition
33
Q

Invariante einer Klasse, eines Typs od. Interfaces

A

…Bedingung, die stets und von allen Instanzen erfüllt sein muss.

34
Q

Precondition einer Operation

A

…Einschränkung, die beim Aufruf erfüllt sein muss.

35
Q

Feature def.

A

…Eigenschaft oder Merkmal von SW, das für Benutzer erkennbar und unterscheidungsbildend ist.

36
Q

Wo sind Features besonders wichtig?

A

..in Software Product Lines (Produktlinien)

37
Q

Feature model def.

A

…modelliert Zusammenhang (Abhängigkeiten) zwsch. Features.

38
Q

Metamodell beschreibt…

A

..relevante Konzepte der Domäne.

39
Q

Metamodell beschreibt…(Diagramm)

A

..relevante Konzepte der Domäne.

40
Q

Formales Modell…(Diagramm)

A

..ist instance of Metamodell
…erhält Bedeutung durch Semantik.
…wird ausgedrückt mit Konkrete Syntax.
…respektiert die statische Semantik.

41
Q

Konkrete Syntax… (Diagramm)

A

…realisiert Abstrakte Syntax.

42
Q

Herausforderungen der Modellgetriebene Integration…

A
  • MDSD ist selten reine Neuentwicklung.
  • oft existieren Legacy Systems -> einbinden oder ersetzen
  • Aufgabe: APIs, Daten- und Protokolltransformationen integrieren

(Legacy Systems: outdated computer systems, programming languages or application software that are used instead of available upgraded versions. )

43
Q

Wichtig für MDSD:

A
  • auch Schnittstellen und Übergänge modellieren
  • skripts und Integrationscode dabei generieren
  • nicht manuell dazwischen gehen
44
Q

Wie modellieren Schnittstellen und Übergänge?

A
  • stereotyping für einfache Fälle
  • eigene, kleine DSL dafür erstellen, falls komplizierter
  • markieren, was auf Dauer wegfallen soll
45
Q

Wie Skripts und Integrationscode generieren?

A
  • umgang mit Legacy-Systemen automatisieren

- einfach abschalten, sobald legacy ersetzt ist

46
Q

KOMBINATION manueller und generierter Codeteile?

A
  • Gut: manuellen Code durch Generierung einbinden
  • schlecht: das Generat manuell verändern
  • generierten Code nicht verwalten, bei Bedarf neu generieren
  • manuell und generiert klar abgrenzen
47
Q

Wie kann man manuell und generierten Codeteile ABGRENZEN?

A
  • architektur benutzen, die regelt was generiert und wie kombiniert wird
  • separate Dateien
  • Koordinierte Entwicklungsstränge für manuell + generiert
  • Prozess, um inkonsistente Änderungen zu vermeiden
48
Q

Protected Areas:

A
  • aus Modell Methodenrümpfe generieren
  • Platzhalter für manuellen Code
  • Wird manuell gefüllt
  • Bei Neugenerierung wird manueller Code übernommen
49
Q

Nachteile Protected Areas

A

aufwändig
fehleranfällig
alles in eine Datei

50
Q

Manuell+generiert Integration mit Schichten

A

Modellschicht - generierte, abstr. Mittelklasse(verbindet manuellen Code und Plattform)
————————————
Applikations-logik-Schicht - manuell implementiert, nicht-abstr. Klasse

51
Q

XSLT

A

eXtensible Stylesheet Language Template

52
Q

Templates und Metamodell

A
  • Spezifikation wird geparst, sie beruht auf Metamodell
  • Das (evtl. erweiterte, angepasste) Metamodell wird instanziiert
  • Code wird aus Templates und Metamodellinstanz generiert
53
Q

API-basierte Generatoren…

A
  • Generator hat API
  • Client-Programm verwendet es, um Code zu erstellen
  • API beruht au dem Abstract Syntax Tree AST
  • Code wird eine konkrete Instanz von AST (ConcreteST)
54
Q

XText…

A

…ist ein Framework für die Entwicklung von Programmiersprachen und DSLs, welche nicht nur ein Parser generiert, sonder auch ein Klassen modell sowie einen abstrakten Syntaxbaum.

In Codegenerierung wird benutzt, um aus der frei definierte Grammatik einen Metamodell (ecore Modell) zu generieren.

55
Q

XPand…

A

… ist eine in Codegenerierung für Eclipse Modeling Framework spezialisierte Sprache.

In Codegenerierung XPand benutzt das aus Xtext generierte Metamodell, sowie vorgeschriebene Templates und Extensions um einen Generator zu erzeugen, welche wenn gestartet, Java.Dateien erzeugen kann.

56
Q

XText…

A

…ist ein Framework für die Entwicklung von Programmiersprachen und DSLs, welche nicht nur ein Parser generiert, sonder auch ein Klassen modell sowie einen abstrakten Syntaxbaum.

In Codegenerierung wird benutzt, um aus der frei definierte Grammatik einen Metamodell (ecore Modell) zu generieren.

KLAUSUR-AUFGABE!!!!!

57
Q

Idee der Generierung von Codeteilen…

A
  • komplexe Funktionen auf höherer Ebene modellieren
  • Details und wiederkehrende Teile automatisch hinzufügen
  • Die generierten Teile zu einer Plattform und zu manuell erstellten Teilen hinzufügen; das gesamte System entsteht
58
Q

XSLT…

A

..ist eine Turing-vollständige Programmierprache, die benutzt wird, um XML-Dokumente in das gewünschte Ausgabeformat zu transformieren und dient zur Definition von Umwandlungsregeln.

In Codegenerierung, aus die in XML definierte DSL wird mit Hilfe von Template Regeln bzw. Kommandos in XSLT direkt Java-code generiert.

KLAUSUR-AUFGABE!!!!!

59
Q

Codegenerierung xtext:

A
  • Frei wählbare Notation DSL als Ausgangsbasis

- wird Code generiert

60
Q

Codegenerierung XSLT:

Vorteile

Nachteile

A
  • die DSL wird immer in XML-Datei(en) definiert, welche als Modell dient(dienen)
  • wird Code generiert

+ plattformunabhängig
+ bekannt
+ kann Teile oder ganzen Code erzeugen

  • Input ist immer in XML
  • keine besonders anwendernahe Sprache
61
Q

Codegenerierung xtext:

A
  • hat frei wählbare Notation DSL als Ausgangsbasis

- wird Code generiert

62
Q

XSLT-Transformationsvorschrift enthält…

A

mindestens eine Regel oder “template rules”

63
Q

Template rules bestehen aus..

A
  • ein XPath pattern - ausdruck

- ein Template

64
Q

xPath pattern gibt an…

A

…auf welchem/n Knoten im Baum sich die Regel bezieht.

… query language für Knoten in XML-Dokument.

65
Q

Template beschreibt…

A

…die Wirkung der Transformation oder beschreibt Output in Abhängigkeit von Input.

66
Q

Protected Areas sind…

ausführliche Def.

A

… ein Mittel zur Integration von manuell geschriebenen Code in generierten Code. Protected Areas sollen dabei eine Lösung zu dem Problem bieten, wie man manuelle und generierte Code-Teile kombiniert und konsistent hält.

67
Q

Idee von Protected Areas:

A

..ist es, aus einem Modell die vorhandenen Methodenrümpfe zu generieren, während die Methoden dann manuell geschrieben werden.