Modellbasierte SW-Entwicklung Flashcards
Grundidee der Modell-basierte Entw.
- Modellieren, nicht Programmieren
- Einfache, kundenorientierte Modelle und Sprachen DSL
- Aus wenig Modell soll viel Programm generiert werden
Herausforderungen der Modell-bas. Entw.
- Technik muss bekannt sein
- Anwendung der Technik in das Vorgehensmodell integrieren
- Zusammenpassung der generierter und manuell erzeugter Code
- DSL ändert sich - was passiert mit den Modellen?
Domain-Specific Languages…
- sind Domänen-spezifisch
- damit nicht allgemeinverständlich
Grundideen (detailliert) in Modell-basierte Entw.
- Erfahrungsengpass -> nicht alles neu programmieren
- UML-Modellierung weit verbreitet -> Modelle statt Code
- Integrierte UML-Modelle -> formaler modellieren und generieren
- Komplizierte Domänen -> nah an der Domäne modellieren
- Änderungen nötig -> Evolution durch agile Methoden
(Aus Domänen-spezifisch erweiterten Modellen Code generieren)
Wofür werden Modelle in MDSD verwendet?
- Dokumentation
- Generierung von Code-Teilen
- Referenz für Verifikation
Netzwerktopologie im Fahrzeug?
Linientopologie
Umsetzung im CAN und FlexRay
Rollen in Model Driven Software Development
- Manager / Entscheider
- Architekten
- Anwendungs-Entwickler
Manager (MDSD)
- bessere Planbarkeit durch breite Wiederverwendung
- Effizientere Vorgehensweise, schnellere Projektabwicklung
- Lerneffekte beschleunigen und einsetzen (Qualität)
Architekten (MDSD)
- Formal interpretierbare Modelle
- Gestaltet als SW-Familien, -Produktlinien, -Domänenarch.
- Umfassende Arch für DSL, Generat und Zielsystem
Anwendungs-Entwickler (MDSD)
- klare, domänen-nahe Modellierung (DSL)
- einfach bedienbare, angemessene Generierungs-Werkzeuge
- Klare Schnittstellen für manuell enwickelte Teile
Metamodell def
beschreibt die Elemente des Modells.
Modell def
beschreibt die Elemente der zu beschreibenden Domäne oder der ‘wirklichen Welt’.
Domain Specific Language def
..ist eine formale Sprache, die für ein bestimmtes Problemfeld entworfen und implementiert wird und daher sind sie nicht allgemeinverständlich.
Wann loht sich der Einsatz von DSLs?
Wenn man aus wenig wie möglich Modell viel Programm generieren möchte und aufgrund der Komplexität der Domäne nah an der Domäne modellieren möchte.
UML-Profil def.
…erweitern eine Metamodellreferenz (UML) und ermöglichen die Umstellung und Anpassung eines Metamodells an Konstrukte, die spezifisch zu einem Domain, Plattform oder SWentwicklungsmethode sind.
Bestandteile eines UML-Profils
- Stereotypen
- Tagged values
- Constraints
Wofür werden UML-Profils erstellt?
für fachliche oder technische Anwendungsdomänen erstellt und zur Anpassung an solche Domäne benutzt.
Stereotypen (UML-Profil)
…ergänzen die Bedeutung und Darstellung der UML und sind abgeleitet von Elementen des UML-Metamodells. Sie definieren wie eine existierende Metaclass als Teil eines Profils erweitert werden kann.
Constraints (UML-Profil)
…werden benutzt, um Einschränkungen (wie Bedingungen) auszudrücken. Sie sind im Pseudocode oder in der Object Constraint Language OCL erfasst.
Tagged Value (UML-Profil)
… is a tag value pair that can be used to add properties to model elements in UML. z.B. {tag = Value} = { author=’‘Joe Smith’’, deadline = ‘31.03.2019’ }
UML-Objektdiagramm vs Feature-Diagramm
Feature-Diagramm hat den Vorteil, dass derselbe Sachverhalt mit einer übersichtlicheren Notation dargestellt werden kann.
- bessere Lesbarkeit des Diagramms
- der Betrachter kennt die Syntax und die Problemstellung
Wieso Metamodellieren?
- Metamodell beschr. abstrakte Syntax (für DSL)
- Verifizieren von Modellen gegen die Constraints des Metamodells
- Transformationen zwsch. Metamodellen (mehrstufig)
- Verbindlicher Ausgangspunkt für Codegenerierung
- Referent für Werkzeugintegration
Aspekte der Compliance von Tools
- abstr. Syntax: Metaklassen, Strukturen (Beziehungen), Constraints, I/O
- konkrete Syntax: Falls abs. Syntax compliant, dann auch konkret
- Diagramm-Austausch: Falls abs. und konkr. Syntax compliant, kann auch Diag-Austausch möglich sein
MOF
Meta Object Facility
OCL
Object Constraint Language
Modelltransformationssprache, um Ausdrücke und Constraints zu beschreiben
OCL?
- Sprache für Ausdrücke und BEdingungen in UML
- Wichtig für formale Interpretation von UML-Modellen
- Steht wie ein Kommentar im UML-Modell