Modellbasierte Softwareentwicklung
Modul aus dem Masterstudium
Modul aus dem Masterstudium
Kartei Details
Karten | 51 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 03.03.2014 / 25.02.2015 |
Weblink |
https://card2brain.ch/cards/modellbasierte_softwareentwicklung?max=40&offset=40
|
Einbinden |
<iframe src="https://card2brain.ch/box/modellbasierte_softwareentwicklung/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Geben Sie Einsatzbereiche für verschiedene MDD-Ansätze an!
Codegenerierung ist auf basis von templates mit tags möglich.
Oft eingesetzt für Z.B. Webseitenprogrammierung u. Testfallgenerierung
Beim Übergang von Problem zu Lösungsraum sind Entwurfsentscheidungen zu treffen. Erläutern Sie, wo diese bei MDD-Ansätzen getroffen werden.
Charakterisieren Sie eine DSL!
Modellierungs- oder Programmiersprache mit Fokus auf eine
Domäne
● Domänenvokabular
● Metamodell mit abstrakter Syntax und Constraints als Kern
● Klar definierte (dynamische) Semantik: formal oder intuitiv
● Höheres Abstraktionsniveau
● Meist vorhanden: Abbildung auf Implementierung z.B. auf
Programmiersprache
● Meist nicht Turing-vollständige Programmiersprachen, sondern
deklarativ
z.b. excel, html, matlab, sql, java...
Erläutern Sie die Rolle von Modellen bei der Entwicklung einer DSL!
Es gibt verschiedene Phasen für die DSL Entwicklung
1. Domänenanalyse
2. Entwicklung eines Metamodells
3. Entscheidung über Art und Technologie d. DSL (intern, extern, grafisch, textuell)
4. Definition der DSL: konkrete Syntax
5. Bereitstellung oder Entwicklung der Werkzeuge
Für die zweite Phase, Metamodell entwickeln, spielen Modell eine wichtige Rolle, um dies als basis für die weiteren Schritte zu verwenden
Wodurch unterscheiden sich interne und externe DSLs?
Interne DSL:
● mit Mitteln einer anderen (Host-)Sprache ausgedrückt, in diese
Sprache eingebettet
● Meist mit dynamisch getypten Sprachen wie Ruby und LISP
● Vergleichbar mit Bibliothek, sieht aber nicht wie Host-Sprache aus
sondern wie eigene Sprache
● Wenig Toolunterstützung möglich, für „kleine“ Anwendungen
Externe DSL:
● Unabhängig von anderen Sprachen erstellt
● eigener Parser
Stellen Sie Vor- und Nachteile sowie Einsatzbereiche von grafischen und textuellen DSLs gegenüber!
Informationen grafisch
● Gut für Kommunikation:
● Diskussionsgrundlage
● Strukturen verstehen
● Informationsmenge begrenzt
● Werkzeugunterstützung für
Veranschaulichung von
Sichten, Abstraktion,
Hierarchisierung notwendig
Informationen als Text
● Einfach durch Werkzeuge
unterstützbar
● Gemeinsame Bearbeitung
im Team
● Versionierung
● Werkzeugunterstützung für
Visualisierung notwendig
● Code Folding
● Outline View
Erläutern Sie Qualitätsanforderungen an DSL-Entwicklung, insbesondere gegenüber Softwareentwicklung!
keine ahnung???
Worin bestehen die Vorteile von Modellen bei V&V?
Ziele und nutzen:
Zielerreichung sichern:
Anforderungserfüllung des
Projektes prüfen
● Alle Ziele und Anforderungen
nach jedem
Entwicklungsschritt prüfen
Qualität verbessern: Anzahl von
Fehlern und Mängeln verringern
● Menschen: 3% Fehler,
Werkzeuge: systematisch
● Menschen: begrenzte Mengen
an Informationen verarbeitbar,
Werkzeuge können mehr
Fehlerbehebungskosten verringern
● Fehler und Mängel frühzeitig
finden
Entscheidungsfindung verbessern
● Systemeigenschaften bei
Entwurfsentscheidung
vorhersagen
● Lösungen bezüglich der Ziele
optimieren
Nennen Sie Systemeigenschaften, die Gegenstand von Verifikation und Validation sein können!
Struktur: Bestandteile, Gliederung, Beziehungen,
Zuordnung
● Funktionalität: (Semantische) Korrektheit, Vollständigkeit,
Interoperabilität
● Verhalten: Zustandsverhalten, Zeitverhalten,
Nebenläufigkeit
● Effizienz: Lastverhalten, Skalierbarkeit,
Ressourcenbedarf
● Sicherheits-Eigenschaften: Vertraulichkeit, Integrität,
Verfügbarkeit
● Zuverlässigkeit, Robustheit ... und viele mehr
Stellen Sie Aufwand und Nutzen bei modellgetriebener Verifika4on und Valida4on gegenüber!
Aufwand für formale Modellierung
der Ziele und Anforderungen
● Modellierungssprache
entwickeln
● Wissenserwerb und
Einarbeitung
● Formalisierung der Ziele und
Anforderungen
Aufwand für Werkzeuge
● Kosten des Werkzeugs
● Wissenserwerb und
Einarbeitung
● Aufwand für Bedienung
Nutzen
Vermiedene Schäden durch Fehler
und Mängel
● Reklamation
● Verlust an Reputation
Schwierigere Projekte möglich
● Mehr Gewinn weil besser
bezahlt
● Interessantere Arbeit, lukrativ
für Mitarbeiter
Formale Zulassung erreichbar
● Z.B. Luft- und Raumfahrt