requiline seminar bassem ben helal. inhalt motivation kernfunktionalitäten architektur hierarchie...

20
Requiline Seminar Bassem Ben Helal

Upload: gerhart-lamp

Post on 05-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Requiline

SeminarBassem Ben Helal

Page 2: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration Evaluierung Demo Diskussion

Page 3: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Motivation RequiLine ist ein requirements engineering tool(Management von

Produktlinien). Graphische Editor: Modellierungsumgebung für Features und Requirements. Query interface: Zugriff und Suche bestimmter Features und Requirements. Produktkonfiguration: Produktlinie instanzieren. Konsistenzprüfung: Analyse vom Domain Modell (Integrität und Inkonsistenz) Analyse einer bestimmten Produktkonfiguration: Ist das Produkt Kompliant

zu der Produktlinie? Sind alle Variationspunkten sauber gelöst? Import/Export: RequiLine hat ein XML Interface damit Daten zwischen

verschiedenen Tools ausgetaucht werden können. (.dtd Dateien) User Management: Verschiedene User-Gruppen vom Adminstrator bis zum

Manager. Views: Z.B. der Manager möchte nur die Produkte anschauen, die er vertreibt.

Dabei werden manche Features und Requirements ausgeblendet.

Page 4: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Architektur

RequiLineTool

Microsoft .Net

Oracle Client

Configuration .iniSQL

Interface

ODBC .Net

XML Projekt/Produkt .dtd Oracle

8i/9iDB

Mysql

<=4.1.1

DB

Networ

k

User

Page 5: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Kernfunktionalitäten

- Netzwerkfähigkeit- Benutzermanagement- Filter (Hierarchie)- Verwaltung von Produktlinien und deren

Produkte- Verwaltung und Modellierung von

Features (variability points)- Konsistenzprüfung

Page 6: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Hierarchy Types

Komposition: Das Basis feature besteht aus mehreren Subfeautures.Generalization/Specialization: Die SubFeaures sind Spezielle Features vom Base-Feautre.Implementation: Die SubFeatures implementieren das Base Feautre.

Page 7: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Depencies (Abhängigkeiten) Die Depencies sind Constraints, das

sind keine strutturelle Hirarchien oder Variabilitäten

Die Abhängigkeiten können nur zwischen zwei Features oder zwei Requirements existieren.

Jede Abhängigkeit hat zwei Attribute:

- Rational: gibt den Grund an warum die Abhängigkeit eingeführt worden ist?

- Condition: eine Boolean Variable, die dann erklärt wann die Abhängigkeit gültig ist.

RequiLine hat drei verschiedene Typen von Abhängigkeiten:

.

Exclusion: F1 und F2 können nicht in einem Produkt existieren.

Implication: unidirektionale AbhängigkeitWenn ein Feature benutzt wird, dann muss der zweite auch mitbenutzt.

Influence: Die Attribute von F1 haben einen Effekt und hägen von den Attributen von F2.

Page 8: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Variabilitätstypen:

Die Variabilitätstypen erklären die Beziehung zwischen ein Hauptfeature und den dazu gehörigen Sub-Features.

Eine Domain Relation kann vier verschiedene Variabilitätstypen: Mandatory: Mandatory Features sind die Features, die das Produkt identifizieren. Wenn ein Hauptfeature in einer Produktkonfiguration enthalten ist, dann

müssen die zum Hauptfeature dazu gehörigen Subfeatures auch zum Produkt assoziiert werden.

Page 9: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Variabilitätstypen:Optional : Wenn ein Hauptfeature in einer Produktkonfiguration beinhaltet ist, dann muss keins der

Subfeatures zum Produkt assoziiert werden. Wenn die Optional-Features aktiviert sind, dann werden Werte zu den mandatory und externen

Features des Produktes assoziiert.

Beispiel:

Jeder E-mail-Client hat die Möglichkeit eine Signature zu jeder Message. Das ist ein optionales Feature und keine Mandatory. Nicht jeder Anwender benutzt es, aber das Feature ist da und die Möglichkeit um es zu

benutzen ist auch da.

Page 10: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Variabilitätstypen:

Alternative :

Wenn ein Hauptfeature in einer Produktkonfiguration beinhaltet ist, dann muss genau ein Subfeature zum Produkt assoziiert werden.

Beispiel:

Für ein E-mail Client ist es der Editor. Es ist erforderlich, dass ein Editor existiert, um die Nachricht einzugeben. Manche E-mail Clients geben dem Anwender die Möglichkeit, den Editor selbst zu konfigurieren und andere nicht.

Page 11: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Variabilitätstypen:

Or :

Wenn ein Hauptfeature in einer Produktkonfiguration enthalten ist, dann muss mindestens ein Subfeature zum Produkt assoziiert werden.

Beispiel:

Ein E-mail Client braucht eine TCP/IP Verbindung. Es ist erforderlich, dass die verbindung hergestellt wird. Die Software hat die Möglichkeit entweder selbst die Verbindung zu bauen oder die bereits gestellte verbindung vom BS zu benutzen.

Page 12: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Beispiel1: Feature Modell

Page 13: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Produktkonfiguration

Products

Features

Requirement

s

Produkt Linie

Ein Produkt ist eine Instanz vom Domän Model.

Ein Produkt ist die Ableitung einer bestimmten Produktlinie.

Produktkonfiguration: - Auswahl von Features und Requirements.- Wenn die Feature Attribute beinhalten dann müssen die Attributwerte assoziiert werden. - Die Produktkonfiguration und das jeweilige Produkt Modell müssen konsistent sein.

Page 14: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Konsistenzprüfung Der Konsistenzprüfer von Requiline arbeitet auf zwei verschiedene

Niveaus. Niveau Nr. 1: Bei der Produktkonfiguration wird ständig überprüft ob das neue

Produkt mit dem Domain Modell übereinstimmt. Fehlermeldungen werden generiert: warnings, anomalies and errors. Error: dies bedeutet es gibt ein fataler Fehler entweder bei der

Produkt Konfiguration oder im Domain Modell. Anomaly: dies bedeutet dass ein semantischer Fehler der mit der

Domain Relationen oder mit den Abhängigkeiten zu tun hat. Z. B: eine Komplett Mandatory Feature implementiert eine optionale

Feature, in diesem Fall wird Requiline eine Anomaly ausgeben. Warning: Eine Warnung deutet auf einen Möglichen Problem hin. Im

allgemein signalisiert eine Warnung eine Inkonsistenz im Domain Modell und können somit auf Konflikte zeigen, die im nachhinein auftreten könnten.

Page 15: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Abhängigkeitsprüfung Consistency of Dependencies

In RequiLine wird auf Fehler, die zwischen Features,und Requirements und deren Abhängigkeiten geprüft.

Das heißt aber nicht, dass nur die direkten Abhängigkeiten zwischen den Features selbst oder zwischen den Requirements selbst sondern auch zwischen den transitiven Relationen.

Zum Beispiel wenn ein Feature A ein zweites B implementiert und B implement ein anderes C, dann muss A das Feature C implementieren. Wenn A das Feature C nicht implementiert, dann gibt es einen Abhängigkeitsfehler.

Page 16: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Konsistenz prüfung

Page 17: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Aufgabe:

Feature Modell zeichnen.

Page 18: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Lösung:

Page 19: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Evaluierung

- Forschungsstudie durch Robert Bosch GmbH und Universität Stuttgart.

-Studie über fünf Werkzeuge zur Eignung für Feature Modellierung.

- RequiLine erhielt „langfristige Empfehlung“.

-Aktuelle Evaluierung durch das Aachener Softwarehaus.

-Prototyp läuft stabil.

Page 20: Requiline Seminar Bassem Ben Helal. Inhalt Motivation Kernfunktionalitäten Architektur Hierarchie Typen Abhängigkeiten Variabilitätspunkte Produktkonfiguration

Zusammenfassung und Diskussion

Requiline ist ein Tool um Gemeinsamkeiten und Unterschiede von Produkte einer Produktlinie zu modellieren.

Analyse vom Domain Modell (Integrität und Inkonsistenz), Analyse einer bestimmten Produktkonfiguration.

Damit die Ergebnisse der Feature Modellierung den nachgelagerten Entwicklungsschritten als Eingabe weiterverwendet werden können.