420 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			420 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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?
 | |
| - XMI, was auf XML basiert
 | |
| 
 | |
| 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
 | |
| 
 | |
| Wofür steht "JMI"?
 | |
| - Java Metadata Interface
 | |
| 
 | |
| Was ist JMI?
 | |
| - Software zur Generierung einer Java Api für gegebenen MOF Modelle
 | |
| 
 | |
| Welche Arten von Objekten werden von JMI generiert?
 | |
| - instance objects, class proxy objects, association proxy objects, package proxy objects
 | |
| 
 | |
| Was ermöglichen die Methoden der von JMI generierten instance objects?
 | |
| - Zugriff auf Attribute und Assoziationen
 | |
| 
 | |
| Was ist die Aufgabe der von JMI generierten class proxy objects?
 | |
| - Erzeugen von instance objects und dabei alle generierten instance objects speichern
 | |
| 
 | |
| Was ist die Aufgabe der von JMI generierten association proxy objects?
 | |
| - Assoziationen erzeugen/löschen und Abfragen zu bestehenden Assoziationen ermöglichen
 | |
| 
 | |
| Was ist die Aufgabe der von JMI generierten package proxy objects?
 | |
| - Den Zugriff auf alle anderen Metaobjekte eines packages ermöglichen
 | |
| 
 | |
| Wofür steht "TEF"?
 | |
| - Textual Editing Framework
 | |
| 
 | |
| Wofür steht "TCS"?
 | |
| - Textual Concrete Syntax
 | |
| 
 | |
| Wie nennen sich die Sprachen für abstrakte und konkrete Syntax bei Xtext?
 | |
| - Beides Xtext, daraus wird ecore generiert
 | |
| 
 | |
| Wie nennen sich die Sprachen für abstrakte und konkrete Syntax bei TEF?
 | |
| - abstrakte Syntax: ecore, konkrete Syntax: etslt
 | |
| 
 | |
| Wie nennen sich die Sprachen für abstrakte und konkrete Syntax bei TCS?
 | |
| - abstrakte Syntax: km3, konkrete Syntax: tcs
 | |
| 
 | |
| Wie nennen sich die Sprachen für abstrakte und konkrete Syntax bei EMFText?
 | |
| - abstrakte Syntax: ecore, konkrete Syntax: cs
 | |
| 
 | |
| Wie nennen sich die Sprachen für abstrakte und konkrete Syntax bei MPS?
 | |
| - abstrakte Syntax wird durch concepts festgelegt, konkrete Syntax durch den Editor
 | |
| 
 | |
| Welches Modellierungsframework erlaubt kein freies Editieren der Modelldatei sondern erzwingt das explizite Erzeugen von Sprachelementen?
 | |
| - MPS
 | |
| 
 | |
| In welche drei Ebenen kann die statische Analyse (Architekturanalyse) unterteilt werden?
 | |
| - Micro-Ebene, Macro-Ebene, Architektur-Ebene
 | |
| 
 | |
| Was untersucht die statische Analyse auf der Micro-Ebene allgemein?
 | |
| - Syntax
 | |
| 
 | |
| Nenne ein Beispiel für einen Fehler, den die statische Analyse im Micro-Level finden könnte:
 | |
| - Einfaches Gleichheitszeichen (Zuweisung) in einer If-Abfrage
 | |
| 
 | |
| Was untersucht die statische Analyse auf der Macro-Ebene allgemein?
 | |
| - Klassendesign
 | |
| 
 | |
| Nenne ein Beispiel für einen Fehler, den die statische Analyse im Macro-Level finden könnte:
 | |
| - Attribute nicht am Anfang der Klasse (Konventionsverletzung)
 | |
| 
 | |
| Nenne ein Beispiel für einen Fehler, den die statische Analyse im Architecture-Level finden könnte:
 | |
| - Zyklische Abhängigkeiten
 | |
| 
 | |
| Nenne zwei Ursachen für Software-Erosion:
 | |
| - Die Soll-Architektur wird nicht von allen Entwicklern verstanden, Zeitdruck
 | |
| 
 | |
| Nenne eine Ausprägung (ein Merkmal) von Software-Erosion:
 | |
| - Workarounds
 | |
| 
 | |
| Wieso reichen Dependency-Management Werkzeuge wie gradle, composer, ... nicht aus, um Software-Erosion einzudämmen?
 | |
| - Es fehlt die Möglichkeit, Analysen zu erstellen und Trends aufzuzeigen
 | |
| 
 | |
| Was ist "Dependent BaseClass"?
 | |
| - Ein Antipattern, bei dem eine Oberklasse eine ihrer Unterklassen kennt
 | |
| 
 | |
| Nenne zwei Vorteile von Xtext:
 | |
| - viele Features, weit verbreitet
 | |
| 
 | |
| Nenne einen Nachteil von Xtext:
 | |
| - keine whitespace-sensitive Sprache abbildbar
 | |
| 
 | |
| Nenne zwei Vorteile von TEF:
 | |
| - Es wird ein textueller und ein grafischer Editor generiert, zahlreiche Editor-Features
 | |
| 
 | |
| Nenne einen Nachteil von TEF:
 | |
| - kaum verbreitet
 | |
| 
 | |
| Nenne zwei Vorteile von MPS:
 | |
| - IntelliJ-Unterstützung, keine Parsing-Errors da zellenbasiert
 | |
| 
 | |
| Nenne einen Nachteil von MPS:
 | |
| - Hohe Lernkurve
 | |
| 
 | |
| Nenne zwei Vorteile von TCS:
 | |
| - sehr flexibel, abstrakte Syntax wird textuell dargestellt
 | |
| 
 | |
| Nenne einen Nachteil von TCS:
 | |
| - Hohe Lernkurve
 | |
| 
 | |
| Wie steht XMI zu MOF in Relation?
 | |
| - XMI ist ein Datenformat für Modelle, die auf MOF basieren.
 | |
| 
 | |
| Durch wen wurde XMI spezifiziert?
 | |
| - Durch die OMG (Object Management Group)
 | |
| 
 | |
| Nenne drei Probleme, die MDA versucht zu lösen:
 | |
| - langsame Entwicklung, wechselnde Technologien, Architekturdiagramme sind nur Dokumentation und nicht technisch nutzbar
 | |
| 
 | |
| Nenne zwei Schwächen von MDA:
 | |
| - sehr umfangreiche Spezifikation, hat sich am Markt nicht durchgesetzt
 | |
| 
 | |
| Nenne drei Vorteile eines template-basierten Generators:
 | |
| - schnellere Entwicklung, konsistenter, weniger Fehler
 |