Modellierung und Produktkonfigurierung

Erweiterung des Hausratmodells

In diesem Abschnitt werden wir unser Hausratmodell vervollständigen. Die folgende Abbildung zeigt das Modell.

hausratmodell
Figure 1. Hausratmodell mit Grunddeckung und Zusatzudeckung

Jeder Hausratvertrag hat genau eine Grunddeckung und kann beliebig viele Zusatzdeckungen haben. Die Grunddeckung deckt immer die im Vertrag definierte Versicherungssumme. Darüber hinaus kann ein Hausratvertrag optional Zusatzdeckungen enthalten, typischerweise sind dies Deckungen gegen Risiken wie zum Beispiel Fahrraddiebstahl oder Überspannungschäden. Die Zusatzdeckung werden wir im zweiten Teil des Tutorials näher betrachten.

Wir öffnen die Klasse „HausratVertrag“ und definieren die Attribute der Klasse (analog zahlweise):

Table 1. Attribut Felder der Klasse „HausratVertrag“
Name : Datentyp Beschreibung, Bemerkung

plz: String

Postleitzahl des versicherten Hausrats

/tarifzone : String

Die Tarifzone (I, II, III, IV, V oder VI) ergibt sich aus der Postleitzahl und ist maßgeblich für den zu zahlenden Beitrag. → Achten Sie also bei der Eingabe darauf Typ des Attributs auf abgeleitet (Berechnung bei jedem Aufruf der Gettermethode) zu setzen!

wohnflaeche : Integer

Die Wohnfläche des versicherten Hausrats in Quadratmetern. Der erlaubte Wertebereich ist min=0 und unbeschränkt. Den Wertebereich definieren Sie auf der zweiten Seite des Dialogs „Vorbelegung und Werte“. In der Auswahlbox „Typ der Wertemenge“ wählen Sie Bereich aus. Für „Minimum“ geben Sie eine 0 ein, Felder „Maximum“ und „Schrittweite“ lassen Sie leer.

/vorschlagVersSumme : Money

Vorschlag für die Versicherungssumme. Wird auf Basis der Wohnfläche bestimmt.
→ Achten Sie bei der Eingabe darauf den Typ des Attributs auf abgeleitet (Berechnung bei jedem Aufruf der Gettermethode) zu setzen!

versSumme : Money

Die Versicherungssumme.
Der erlaubte Wertebereich ist min=0 EUR und max lassen Sie leer.

Der Editor, der die Klasse „HausratVertrag“ anzeigt, sieht wie folgt aus:

hausratvertrag
Figure 2. Klasse HausratVertrag

Die abgeleiteten Attribute werden UML-konform mit einem vorangestellten Schrägstrich angezeigt.

Öffnen Sie nun die Klasse „HausratVertrag“ im Java-Editor und implementieren die Gettermethoden für die beiden abgeleiteten Attribute tarifzone und vorschlagVersSumme wie folgt:

/**
 * Gibt den Wert des Attributs tarifzone zurueck.
 *
 * @generated NOT
 */
@IpsAttribute(name = "tarifzone", kind = AttributeKind.DERIVED_ON_THE_FLY, valueSetKind = ValueSetKind.AllValues)
public String getTarifzone() {
	return "I"; // TODO wird spaeter anhand einer Tarifzonentabelle ermittelt
}

/**
 * Gibt den Wert des Attributs vorschlagversSumme zurueck.
 *
 * @generated NOT
*/
@IpsAttribute(name = "vorschlagversSumme", kind = AttributeKind.DERIVED_ON_THE_FLY, valueSetKind = ValueSetKind.AllValues)
public Money getVorschlagversSumme() {
	// TODO: Der Multiplikator wird spaeter aus den Produktdaten ermittelt.
	return Money.euro(650).multiply(wohnflaeche);
}

Denken Sie daran, hinter @generated ein NOT zu schreiben, damit der manuell eingefügte Code nicht überschrieben wird!