Domänenmodellierung Georg Marth
Definition Domänenmodell ● Eine Zusammenfassung von Funktionen, Objekten, Daten und Relationen in einer Domäne. -Kang et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study, 1990 ● Ein konzeptuelles Modell, das Entitäten und ihre Beziehungen zueinander in einem System beschreibt. -Wikipedia
Domänenanalyse ● 3 Grundphasen: – Kontextanalyse – Domänenmodellierung – Architekturmodellierung
Domänenanalyse
Anforderungen ● An Domänenmodelle werden verschiedenste Anforderungen gestellt: – Softwarefeatures der Domäne – Standardvokabular der Domänenexperten – Darstellung der Entitäten, die in die Software eingebunden werden sollen – Generelle Softwarevorraussetzungen ● Irrelevant sind Implementierungsdetails und Umsetzung
FODA ● „Feature Oriented Domain Analysis“ ● Idee der Wiederverwendbarkeit ● Modellfeatures werden als Verfeinerung dargestellt
Zugrunde liegende Konzepte ● Ansammlung/Auflösung ● Generalisierung/Spezialisierung ● Parametrisierung
Zweck der Domänenmodelle ● Erfassen der Vorstellung des Endnutzers ● Eigenschaften: – Softwarefeatures – Performance der Anwendung – Benötigte Hardware – Kosten – Weiteres
Featurediagramm ● Stellt Standardfeatures dar ● Beispiel:
Featurediagramm ● Beschreibung: – Hierarchische Auflösung der Komponenten – Darstellung der obligatorischen/ optionalen Features – Definition der Features – Kompositionsregeln der Features
Featurediagramm ● Form der Featuredefinition Name: Synonyms: [FROM ] Description: Consists Of [ { optional | alternative } ] Source: Type: { compile-time | load-time | runtime } [Mutually Exclusive With: ] [Mandatory With: ]
Featurediagramm ● Alternativen:
Featurediagramm ● Alternativen mit Mehrwertigkeit: – 0..1 – 1 – 1..* – 0..*
Featurediagramm ● Kommunikationsmedium zwischen Nutzer und Entwickler ● Für den Nutzer: – Überblick über Features – Darstellung der Wahlmöglichkeiten ● Für den Entwickler: – Erstes Modell zur Orientierung für die Softwareentwicklung
Familienmodell ● Komponenten ● Bestandteile ● Quellen
Familienmodell ● Komponente: – Grundlegende Elemente – Mindestens ein Bestandteil(Part) – Kapselt eine oder mehrere Funktionalitäten
Familienmodell ● Bestandteil: – Genau einem Element zugeordnet – Definiert durch mindestens eine Quelle – Typen ähnlich Klassen, Objekte oder Funktionen – Neue Typen können jederzeit definiert werden
Familienmodell ● Quellen: – Physische Repräsentation eines Eintrags – Sind getypte Einträge – Typ bestimmt Transformation bei Erstellung
Entity-Relationship-Modell ● Zweck: – Konservierung des Wissens über die Einheitenbeziehungen in der Domäne für spätere Implementierung – Wahrt die Wiederverwendbarkeit
Entity-Relationship-Modell ● Beispiel
Entity-Relationship-Modell ● Nutzen: – Vereinfacht Objektorientierte Programmierung – Identifiziert eindeutig Objekte – Überblick über Modellkonsistenz
Quellen ● Feature Oriented Domain Analysis (FODA) – Kyo C. Kang (November 1990) ● Constraint-Basierte Feature-Modellierung – Markus Geisbauer ( ) ● Domain Modelling – Paul Oldfield ● pure::systems: Variantenmanagement mit pure::variants ● Wikipedia.org
Fragen ● Anmerkungen? ● Fragen? ● Unklarheiten?