Startseite >> Wissen >> Techniken >> Merkmalsmodellierung

Merkmalsmodellierung

Ziel:

Der Fokus dieser Methode liegt auf der Identifikation von hervorstechenden und unverkennbaren Merkmalen von Software Systemen einer bestimmten Domäne. Die Merkmale einer Domäne definieren hierbei den gemeinsamen als auch den unterschiedlichen Teil mehrerer Softwaresysteme einer Domäne. Die Methode ermöglicht die hierzu notwendige Erkennung und die Repräsentation von Gemeinsamkeiten von Softwaresystemen.

Beschreibung:

Die systematische Erhebung von Gemeinsamkeiten von zu erstellenden Softwaresystemen ist Vorraussetzung für die erfolgreiche Wiederverwendung von Teilen der Software. Die Merkmalsmodellierung (auch Domänenmodellierung oder Domänenanalyse) unterstützt die Erfassung und die Repräsentation der Merkmale durch geeignete Techniken zur Erhebung sowie durch Notationen zur Modellierung der Merkmale.

Grundlegende Konzepte

Feature Oriented Domain Analysis (FODA)

Die Merkmalsmodellierung soll nachfolgend am Beispiel der „Feature Oriented Domain Analysis" (FODA) verdeutlicht werden, welche der Beschreibung von Merkmalen dient, die ein Benutzer in einer Applikation einer bestimmten Domäne typischerweise erwartet. FODA definiert dabei die Produkte sowie den Prozess der Domänenanalyse.
 
Die folgende Liste gibt einen Überblick über die in FODA verwendeten Konzepte und Begrifflichkeiten:

  • Applikation: Ein System das eine Menge von allgemeinen Services zur Lösung eines Benutzerproblems bereitstellt.
  • Kontext: Die Umstände, Situation oder Umwelt, in der ein System existiert.
  • Domäne: Eine Menge von aktuellen oder zukünftigen Applikationen, die eine Menge von gemeinsamen Fähigkeiten und Daten teilen.
  • Domänenanalyse: Der Prozess der Identifizierung, Sammlung, Organisation und Repräsentation relevanter Informationen einer Domäne basierend auf der Studie von existierenden Systemen, Wissen von Domänenexperten, zugrunde liegender Theorie sowie Technologien der Domäne.
  • Domain Engineering: Ein umgebender Prozess (beinhaltet die Domänenanalyse), welcher die nachfolgende Konstruktion von Komponenten, Methoden und Werkzeugen ermöglicht,  die das Problem der System-/Subsystem-Entwicklung durch Anwendung und Verarbeitung der Produkte der Domänenanalyse adressieren.
  • Domain Model: Die Definition der Funktionen, Objekte, Daten und Beziehungen einer Domäne.
  • Feature: Ein wohlunterschiedener, dem Benutzer sichtbarer, Aspekt, eine Qualität oder eine Charakteristik eines Softwaresystems.
  • Softwarearchitektur: Die abstrakte Struktur von Funktionen und Daten, deren Schnittstellen und Kontrollmechanismen zur Unterstützung der Implementierung eines Systems.
  • Wiederverwendung: Der Prozess der Implementierung einer neuen Software unter Verwendung existierender Softwareinformationen.
  • Wiederverwendbare Komponente: Eine Softwarekomponente (inkl. Anforderungen, Designs, Code, Testdaten, etc.) die speziell zum Zwecke der Wiederverwendung gestaltet und implementiert wurde.
  • Benutzer: Eine Person oder eine Applikation, die ein System bedient, um eine Aufgabe zu erfüllen.

Weitere Methoden sind:

  • Domain Analysis nach Prieto-Diaz 
  • Organization Domain Modeling (ODM) [Simos 1995]
  • Joint Object-Oriented Domain Analysis (JODA) [Holibugh 1982]
  • Reuse Library Process Model (RLPM) [RLPM 1991]
  • Domain Analysis and Design Process (DADP) [SofTech 1993]
  • Domain-Specific Software Architecture (DSSA) [Braun 1992]
  • SYNTHESIS [SPC 1993]
  • Reuse Business Methodology [Jacobson et al. 1997].

Vorgehen

Der in FODA verfolgte Prozess gliedert sich in drei Phasen:

Kontextanalyse

Der erste Prozessschritt ist die Definition des Umfangs und der Grenzen der zu analysierenden Domäne. Die Kontextanalyse untersucht dabei die Beziehungen zwischen Domäne und externen Elementen, deren Variabilitäten der Beziehungen, sowie die externe Umweltbedingungen. Die Resultate der Kontextanalyse werden in einem Kontextmodell festgehalten, welches sich aus Struktur- und Datenflussdiagrammen zusammensetzt. Die Strukturdiagramme beschreiben das Verhältnis der Domäne zu gleichrangigen, übergeordneten und untergeordneten Domänen. Die Datenflussdiagramme beschreiben den Informationsfluss zwischen der jeweils betrachteten und den anderenDomänen. Die Erstellung der Diagramme wird dabei durch Richtlinien gestützt. Das Kontextmodell dient weiterhin als Eingabe für die Domänenmodellierung.

Domänenmodellierung

Für die möglichen Applikationen der in der Kontextanalyse festgelegten Domäne werden in der Phase der Domänenmodellierung die Gemeinsamkeiten und Unterschiede herausgearbeitet. Dies geschieht durch drei Aktivitäten:

  • Feature-Modellierung: Die vom Nutzer benötigten Fähigkeiten der Software werden in einem Feature Model festgehalten. Eine Fähigkeit der Software wird hierbei als abstrakter Service für den Nutzer gesehen, z.B. „Anrufweiterleitung“. Dies gründet sich auf dem bevorzugten „Denken“ des Nutzers in Services statt in Funktionen, die einen Service ermöglichen.
  • Entity-Relationship-Modellierung: Ein ER-Diagramm beschreibt das in einer Domäne vorhandene Wissen, welches normalerweise entweder kontextbehaftet und somit nach Abschluss der Entwicklung verloren ist, oder auch tief in der Software verankert und deswegen schwer zu erfassen und zu finden ist. Dieses Wissen wird mittels ER-Diagrammen beschrieben deren Notation zur Verwendung innerhalb von FODA um einige Konstrukte angereichert wurde (z.B. Aggregation).
  • Funktionale Analyse: Die Funktionale Analyse identifiziert funktionale Unterschiede und Gemeinsamkeiten von Applikationen einer Domäne.

Architekturmodellierung

Das Architekturmodell beschreibt eine Softwarelösung zu den in der Domänenmodellierung definierten Problemen. Ausgehend von dem Architekturmodell (auch Design-Referenz-Modell) werden in späteren Phasen detaillierte Designs und Komponentenarchitekturen abgeleitet.
Zur Erreichung der Wiederverwendbarkeit der Domänenprodukte wird das Architekturmodell ebenenweise erstellt. Dies ermöglicht eine spätere Wahl der wieder verwendeten Architekturschicht und somit die Begrenzung möglicher Änderungen und Anpassungen auf die jeweils folgenden Schichten. Die Modellierungsphasen werden dabei durch jeweils speziell zugeschnittene Prozesse und Anleitungen gestützt.

Diese Technik erfüllt folgende Praktiken:

Funktionale Anforderungen erheben
Variabilität managen
Rationale dokumentieren

Literaturverweis:

Feature-Oriented Domain Analysis (FODA) - Feasibility Study
Merkmalmodellierung - Konzepte, Notationen und Einsatzmöglichkeiten
Generative Programming - Methods, Tools and Applications