Add questions about mdsd
This commit is contained in:
commit
0e8f64de83
|
@ -0,0 +1,305 @@
|
|||
In welchen zwei Bereichen der Softwareentwicklung spielen Modelle noch einer Rolle, neben Modellgetriebener Entwicklung?
|
||||
- Softwaremodelle (wie UML); Vorgehensmodelle (z.B. Wasserfall)
|
||||
|
||||
Wodurch grenzen sich MDSD Modelle von anderen Modellen der Softwareentwicklung ab?
|
||||
- Aus ihnen wird automatisch Code erzeugt anstatt nur zur Dokumentation / Kommunikation zu dienen.
|
||||
|
||||
Was ist das Ziel beim Einsatz von MDSD?
|
||||
- Die formale Modellierung domänenspezifischer Abstraktionen
|
||||
|
||||
Nenne zwei grundsätzliche Vorteile von MDSD:
|
||||
- Produktivitätssteigerung, verbesserte Qualität und Wartbarkeit
|
||||
|
||||
Welche grundlegenden technischen Möglichkeiten zur Umsetzung von MDSD existieren?
|
||||
- Codetransformation, Interpretation
|
||||
|
||||
Welcher technische Vorteil ergibt sich aus dem Einsatz domänenspezifischer Modelle?
|
||||
- Neutralität gegenüber der Zielplattform
|
||||
|
||||
Wie nennt sich die wichtigste Initiative, MDSD zu standardisieren?
|
||||
- Model Driven Architecture (MDA)
|
||||
|
||||
Wie nennt sich die Organisation, die eine MDSD Standardisierung anstrebt?
|
||||
- Object Management Group (OMG)
|
||||
|
||||
Wie profitiert die Codebasis vom Einsatz der MDSD? (3 Punkte)
|
||||
- höheres Abstraktionsniveau, einheitliche Architektur, bessere Wiederverwendbarkeit
|
||||
|
||||
Welche Fehler sind typisch, wenn auf MDSD verzichtet wird?
|
||||
- Copy & Paste & Adapt Fehler
|
||||
|
||||
MDSD verringert die Komplexität durch Trennung in welche beiden Bereiche?
|
||||
- Modellierung, Implementierung
|
||||
|
||||
Wie erreicht MDSD eine einheitliche Architektur?
|
||||
- Durch Generierung sind erzeugte Abbildungen automatisch einheitlich.
|
||||
|
||||
In welche drei Kategorien wird Code der Referenzimplementierung beim Umbau zu MDSD zerteilt?
|
||||
- schematisch (wiederholend), individuell (nicht abstrahierbar), generisch (immer gleich, bisher schon wiederverwendbar)
|
||||
|
||||
Wofür steht "DSL" bei MDSD?
|
||||
- Domain-specific Language
|
||||
|
||||
Woraus wird bei MDSD schematischer Code generiert?
|
||||
- Aus den Applikationsmodellen
|
||||
|
||||
Wann wurde mit der Entwicklung der Model Driven Architecture begonnen?
|
||||
- Im Jahr 2000
|
||||
|
||||
Was ist mit der MDSD Plattform gemeint? (bezogen auf unser Praktikumsprojekt)
|
||||
- C++ und Qt vs Rust und Gtk
|
||||
|
||||
Wofür steht "MOF" bei MDSD?
|
||||
- Meta Object Facility
|
||||
|
||||
Wofür steht "CIM" bei MDSD und was bedeutet es?
|
||||
- Computation-Independent Model; Anforderungen, rein fachlich, erlaubt keine Generierung
|
||||
|
||||
Wofür steht "PIM" bei MDSD und was bedeutet es?
|
||||
- Platform-Independent Model; nutzt DSL, keine Angabe zur Zielplattform
|
||||
|
||||
Wofür steht "PSM" bei MDSD und was bedeutet es?
|
||||
- Platform-Specific Model; Modell wurde transformiert für eine bestimmte Zielplattform
|
||||
|
||||
Welche zwei technischen Varianten von Transformationen existieren bei MDSD?
|
||||
- Modell zu Modell; Modell zu Code
|
||||
|
||||
Was ist bei MDSD nötig, wenn ein plattformspezifisches Modell eine Änderung erfordert?
|
||||
- Refactoring des plattformunabhängigen Modells
|
||||
|
||||
Welchen UML Erweiterungsstandard enthält die MDA?
|
||||
- UML-Profil
|
||||
|
||||
Nenne ein Beispiel für Zusatzattribute die das UML-Profil aus MDA festlegt:
|
||||
- Constraints für Objektattribute
|
||||
|
||||
Wie ist das UML-Profil aus MDA formal dargestellt?
|
||||
- Als Erweiterung des UML Metamodells
|
||||
|
||||
Wie sind typischerweise automatisch generierte Bereiche in eine Datei eingebettet, in welcher sich auch manuell geschriebener Code befindet?
|
||||
- in Protected Areas
|
||||
|
||||
Mit welchem technischen Hilfsmittel wird bei MDSD im letzten Schritt üblicherweise Code erzeugt?
|
||||
- mit Templates
|
||||
|
||||
Was ändert sich beim Einsatz von MDSD am Buildprozess?
|
||||
- Vor der Compilierung werden automatische Codeteile generiert
|
||||
|
||||
Was ist beim Umbau eines Generators in MDSD besonders kritisch?
|
||||
- Kompatibilität mit bisherigen Modellen
|
||||
|
||||
Welcher Aspekt ist essenziell bei der Zusammenarbeit zwischen Generator-Entwickler und Modell-Entwickler bei MDSD?
|
||||
- Zeitnahe Reaktion auf Anforderungen aus der Modell-Entwicklung
|
||||
|
||||
Welche zwei Kategorien können mit "Domäne" bei MDSD gemeint sein?
|
||||
- technisches oder fachliches Wissensgebiet
|
||||
|
||||
Was ist ein Metamodell?
|
||||
- formales Abbild der Domäne, damit Schablone für Modelle
|
||||
|
||||
Was ist eine abstrakte Syntax?
|
||||
- Festlegung der Struktur von Modellen ohne eine Repräsentationsform zu bestimmen
|
||||
|
||||
Was ist eine konkrete Syntax?
|
||||
- Definition eines parsbaren Formats für Modelle, z.B. als Text mit bestimmten Schlüsselwörtern
|
||||
|
||||
Was ist die statische Semantik?
|
||||
- Zusätzliche Einschränkungen/Kriterien für Modelle, welche in abstrakter Syntax nicht abbildbar sind.
|
||||
|
||||
Was ist die DSL bei MDSD?
|
||||
- konkrete Syntax und darauf aufbauende Semantik
|
||||
|
||||
Was ist ein formales Modell bei MDSD?
|
||||
- Eine Instanz des Metamodells, Grundlage für Codegenerierung
|
||||
|
||||
Was ist die Modellierungssprache bei MDSD?
|
||||
- Synonym für DSL
|
||||
|
||||
Was ist mit "Bausteinen einer Plattform" bei MDSD gemeint? (zwei Beispiele)
|
||||
- Middleware, Libraries
|
||||
|
||||
Was ist das Produkt bei MDSD?
|
||||
- generierter Code sowie nicht generierter Code, alles zusammen auf der Zielplattform
|
||||
|
||||
Was ist das Metametamodell bei MDSD?
|
||||
- Übergeordnete Beschreibung für allgemeine Metamodelle
|
||||
|
||||
Was ist das Problem beim Roundtrip Engineering?
|
||||
- Nicht jede Codeänderung kann im Modell abgebildet werden.
|
||||
|
||||
Welche Bedeutung haben Patterns bei MDSD?
|
||||
- Generierter Code erfüllt oftmals Patterns
|
||||
|
||||
Welche Bedeutung hat Agile Softwareentwicklung bei MDSD?
|
||||
- Kurze Integrationszeiten vertragen sich gut mit der parallelen Architektur- und Anwendungsentwicklung
|
||||
|
||||
Woraus besteht ein Metamodell?
|
||||
- abstrakte Syntax + statische Semantik
|
||||
|
||||
Wie prüft ein Generator üblicherweise die statische Semantik?
|
||||
- Garnicht, er verlässt sich auf valide Modelle, da die Validierung vorher passiert.
|
||||
|
||||
Wie kann die statische Semantik beispielhaft in XText implementiert werden?
|
||||
- Mit @Check annotierte Methoden
|
||||
|
||||
Wie viele Metaschichten beschreibt die OMG, was ist die oberste und die unterste Schicht?
|
||||
- 4 Schichten; M3: Meta-Metamodell; M0: Instanzen
|
||||
|
||||
Welche Metamodellierungssprache kann UML beschreiben, wurde aber nach UML entwickelt?
|
||||
- MOF
|
||||
|
||||
Wofür steht "EMF"?
|
||||
- Eclipse Modeling Framework
|
||||
|
||||
In welcher Sprache werden Metamodelle beim Einsatz von EMF verfasst?
|
||||
- Ecore
|
||||
|
||||
Was sind die beiden wichtigsten Features von EMF?
|
||||
- Klassen-Generierung, Editoren-Generierung
|
||||
|
||||
Wofür steht "XSD"?
|
||||
- XML Schema Definition
|
||||
|
||||
Was ist XSD?
|
||||
- Beschreibungssprache für Metamodelle die XML als Grundlage haben, XSD ist dabei selbst als XML ausgedrückt
|
||||
|
||||
Wie kann mit sehr komplexen Metamodellen umgegangen werden?
|
||||
- Aufteilung in ein Modulares Metamodell
|
||||
|
||||
Was sind Extension Points bei MDSD?
|
||||
- Öffnung des Metamodells für eine flexible aber plattformabhängige Erweiterbarkeit
|
||||
|
||||
Welche drei Blickwinkel hat die Komponenteninfrastruktur?
|
||||
- Typ, Komposition, System
|
||||
|
||||
Was beschreibt der Typ-Blickwinkel der Komponenteninfrastruktur?
|
||||
- Komponententypen mit deren angebotenen und angeforderten Schnittstellen und auf diesen Schnittstellen die genauen Operationen und Datentypen
|
||||
|
||||
Was beschreibt der Kompositions-Blickwinkel der Komponenteninfrastruktur?
|
||||
- Komponenteninstanzen mit deren Konfiguration und Verdrahtung zueinander um Interfaces zu erfüllen
|
||||
|
||||
Was beschreibt der System-Blickwinkel der Komponenteninfrastruktur?
|
||||
- Hierarchie aus Systemen, Knoten, Containern und darin Komponenteninstanzen
|
||||
|
||||
Nenne ein Beispiel für einen Bereich, der durch ein Aspektmodell beschrieben wird:
|
||||
- Persistenz
|
||||
|
||||
Inwiefern ist die Komponenteninfrastruktur unpräzise in Bezug auf Interfaces?
|
||||
- Interfaces werden immer als notwendig angesehen, in der Praxis ist das nicht immer der Fall.
|
||||
|
||||
Wie wird die Qualität eines Metamodells sichergestellt?
|
||||
- Szenarien werden durchgespielt, Modelle auf Basis des Metamodells erzeugt
|
||||
|
||||
Wie nennt man die Abbildung primitiver Datentypen einer Programmiersprache auf Datenbanktypen?
|
||||
- PrimitiveTypePersistence
|
||||
|
||||
Welche Schwierigkeit bringt Vererbung mit sich, wenn das Schema einer bestehende Datenbank modelliert werden soll?
|
||||
- Für Vererbung gibt es verschiedene Abbildungsmöglichkeiten, zur Modellierung sollte dies einheitlich sein.
|
||||
|
||||
Was ist die dynamische Semantik?
|
||||
- Die Bedeutung der Elemente eines Metamodells
|
||||
|
||||
Was ist eine interne DSL?
|
||||
- Eine Sprache ist in eine Hostsprache (Programmiersprache) eingebettet
|
||||
|
||||
Was ist eine externe DSL?
|
||||
- Eine neu erstellte Sprache mit eigenem Parser
|
||||
|
||||
Was ist ein Beispiel für eine interne DSL?
|
||||
- Method Chaining
|
||||
|
||||
Nenne zwei Nachteile der internen DSL:
|
||||
- Eingeschränkte Flexibilität, meist nur textuelle Repräsentation
|
||||
|
||||
Was ist ein Vorteil von grafischen gegenüber textuellen Modellen?
|
||||
- Struktur ist leichter erkennbar
|
||||
|
||||
Nenne drei Vorteile von textuellen gegenüber grafischen Modellen:
|
||||
- Höhere Produktivität, Auto Completion, bessere Versionierung
|
||||
|
||||
Wie kann die Syntax einer externen DSL beschrieben werden? (Beispiel)
|
||||
- Mit Xtext
|
||||
|
||||
Was ist das direkte Folgeprodukt nach Ausführung eines Parsers?
|
||||
- Ein Abstract Syntax Tree (AST)
|
||||
|
||||
Was sollte vor dem Release der ersten Version einer DSL berücksichtigt werden?
|
||||
- Erweiterbarkeit unter Einhaltung der Abwärtskompatibilität
|
||||
|
||||
Was kann neben Strukturen noch über eine DSL modelliert werden?
|
||||
- Verhalten
|
||||
|
||||
Was ist die wichtigste Anforderung an eine konkrete Syntax?
|
||||
- Verständlichkeit und Erlernbarkeit
|
||||
|
||||
Wie sollte eine DSL mit Elementen mit sehr vielen Attributen umgehen?
|
||||
- Oftmals passen Defaultwerte in den meisten Fällen sodass nur Änderungen angegeben werden müssen
|
||||
|
||||
Welche Bedeutung haben Konventionen innerhalb einer DSL?
|
||||
- Die DSL kann daraus Attribute ableiten sodass sie nicht angegeben werden müssen, sie sollten jedoch im Metamodell enthalten sein.
|
||||
|
||||
Wie nennt man wiederverwendbare Abschnitte eines Codegenerators?
|
||||
- Cartridges
|
||||
|
||||
Welche Technik der Codegenerierung ist in C/C++ schon lange üblich?
|
||||
- Makros
|
||||
|
||||
Wie werden Felder zum Einsetzen von Variablen oder Ausdrücken in einem Template genannt?
|
||||
- Tags
|
||||
|
||||
Wofür steht "XSLT"?
|
||||
- Extensible Stylesheet Language Transform
|
||||
|
||||
In welcher Syntax sind XSLT Modelle meistens gespeichert? (zwei Antworten)
|
||||
- XML / XMI
|
||||
|
||||
Wie nennt man den XSLT Codegenerator und in welcher Sprache ist dieser verfasst?
|
||||
- XSLT Stylesheet; ist ein XML Dokument
|
||||
|
||||
Nenne zwei Nachteile von XSLT:
|
||||
- Unübersichtlich, Fehler treten erst zur Laufzeit auf
|
||||
|
||||
Nenne zwei Vorteile der Codegenerierung direkt mit beispielsweise Java-Code, ohne Generator-Frameworks zu nutzen:
|
||||
- gut modularisierbar, gute IDE-Unterstützung
|
||||
|
||||
Nenne zwei Nachteile der Codegenerierung direkt mit Java-Code, ohne ein Generator-Framework zu nutzen:
|
||||
- Java hat keine mehrzeiligen Stringliterale, Anführungszeichen müssen maskiert werden
|
||||
|
||||
In welcher Sprache ist ein EMF Codegenerator verfasst?
|
||||
- Xtend
|
||||
|
||||
Wie werden Algorithmen (Schleifen, Verzweigungen) bei Verwendung einer DSL ausgedrückt?
|
||||
- Sie sind nicht Teil des Modells sondern zählen zum individuellen Code und werden nach der Generierung dazu gebunden.
|
||||
|
||||
Nenne zwei Beispiele von Artefakten, die neben Programmcode ebenfalls aus einem Modell generiert werden können:
|
||||
- Befehle zur DB-Erstellung, Dokumentation
|
||||
|
||||
Generierte Dateien müssen niemals manuell geändert werden. Wieso sollte generierter Code dennoch übersichtlich gebaut sein?
|
||||
- Entwickler werden beim Debuggen mit generiertem Code konfrontiert.
|
||||
|
||||
Wie wird im günstigsten Fall bewirkt, dass ein Generator manuell geschriebenen Code nicht überschreibt?
|
||||
- generierte / nicht generierte Teile in verschiedene Dateien trennen
|
||||
|
||||
Wie kann ein Generator nach Generierung der Klasse "Auto" erzwingen, dass eine Unterklasse "AutoImpl" manuell geschrieben wird?
|
||||
- Es wird Dummy-Code hinzu generiert, z.B.: if (false) { Auto a = (Auto)new AutoImpl(); }
|
||||
|
||||
Nenne ein Beispiel, wann eine Model-to-Model Transformation sinnvoll sein kann:
|
||||
- Ein Zustandsautomat wird um Not-Aus-Übergänge erweitert
|
||||
|
||||
Was ist an der Bezeichnung "JButton" in einer Gui-Modellierungssprache problematisch?
|
||||
- Das Metamodell sollte unabhängig von den Zielplattformen gebaut sein, "J" steht jedoch für Java Swing.
|
||||
|
||||
Was eignet sich nach Entwicklung einer DSL gut als Beispielcode zur Dokumentation?
|
||||
- Referenzmodell und dessen Referenzimplementierung
|
||||
|
||||
Was ist MOF?
|
||||
- Das Meta-Meta-Modell der OMG
|
||||
|
||||
Nenne ein Beispiel für alle Schichten der Meta-Modellhierarchie M3..M0:
|
||||
- MOF; Strukturbeschreibung von UML-Klassendiagrammen allgemein; Das Diagramm einer "Bankkonto"-Klasse; Konto Nr. 4422 mit 1000€
|
||||
|
||||
Wofür steht "OCL" bei MDSD?
|
||||
- Object Constraint Language
|
||||
|
||||
Wofür kann OCL bei MDSD genutzt werden?
|
||||
- OCL beschreibt Einschränkungen (statische Semantik) von Modellen
|
Loading…
Reference in New Issue