Add questions about mdsd
This commit is contained in:
		
							
								
								
									
										305
									
								
								modellgetriebene_softwareentwicklung.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								modellgetriebene_softwareentwicklung.txt
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||
		Reference in New Issue
	
	Block a user