Modellbasierte Softwareentwicklung

Modul aus dem Masterstudium

Modul aus dem Masterstudium

Monika Stromecki

Monika Stromecki

Fichier Détails

Cartes-fiches 51
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 03.03.2014 / 25.02.2015
Lien de web
https://card2brain.ch/cards/modellbasierte_softwareentwicklung?max=40&offset=40
Intégrer
<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.

Zwischen Problemmodell und Lösungsraum existiert eine semantische Lücke zwischen fachlichem Modell und technischer Realisierung. Dazu wird Konfigurationswissen benötigt wie

  • defaults
  • Abhängigkeiten
  • ungültigeKombintionen
  • Produktionsplan
  • optimierungen

 

 

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

Nennen Sie Modellierungssprachen ( Kalküle) für Verifikation und Validation dieser Eigenschaften!

  • siehe bild