Lebensversicherung als Vorreiter moderner SW-Techniken

Objektorientierter Entwurf eines funktionalen Systems

16.08.1991

Die Volksfürsorge Deutscher Lebensversicherer mit einem Bestand von zirka sechs Millionen Versicherungsverträgen führt zur Zeit eine Reorganisation der Bestandsführung durch, die sowohl zu einer neuen Geschäftsvorfall-Bearbeitung als auch zu einer neuen Bestandsdatenbank führen wird. Im Rahmen dieser Reorganisation ergab sich die Notwendigkeit, auch die Berechnung der versicherungstechnischen Werte neu zu organisieren.

Bei der Neuorganisation stand man vor dem für Altsysteme bekannten Problem, daß aufgrund der existierenden Dokumentation die Abhängigkeiten zwischen den bestehenden Berechnungsfunktionen nicht ermittelt werden konnten. Eine Analyse des bestehenden Systems wäre viel zu aufwendig geworden. Abgesehen davon hätte dann erst die eigentliche Arbeit beginnen müssen, nämlich das Aufstellen der auf die Geschäftsvorfälle einer Lebensversicherung bezogenen Abhängigkeiten der versicherungstechnischen Werte, so daß diese mit möglichst wenig Aufwand berechnet werden können.

An diesem Punkt angekommen, wurden auch andere Entwurfstechniken diskutiert Üblich war bisher nur der funktionale Ansatz. Untersucht wurden jetzt aber insbesondere Techniken, bei denen sich die Reihenfolge der Berechnungen fast automatisch optimal ergibt, nämlich der deklarative Ansatz der zum Beispiel von der Sprache Prolog unterstützt wird, und der objekt-orientierte Entwurf. Bei dem letzteren Ansatz werden die zu modellierenden Objekte und ihre Beziehungen zueinander betrachtet. Als Ergebnis erhält man dann die Systemstruktur.

Einfacher modellieren als mit deklarativem Ansatz

Die Untersuchungen ergaben, daß sich mit der objektorientierten Entwurfsmethode die Anforderungen sehr viel einfacher modellieren lassen als mit dem deklarativen Ansatz. Für die Volksfürsorge wurde nun das sogenannte Symafu-Konzept (System der mathematischen Funktionen) entwickelt. Bei Symafu sind die zu modellierenden Objekte die zu berechnenden Funktionswerte; bei einem funktionalen Entwurf wären die zu modellierenden Aktionen die Berechnungsfunktionen gewesen.

Der Unterschied liegt darin, daß die Funktionswerte beim objektorientierten Entwurf als aktive Entitäten angesehen werden, denen Nachrichten wie "Errechne deinen Wert" gesendet werden können. Sie sind nicht passive Datenträger wie bei der funktionalen Sichtweise. Dort sind die Funktionswerte lediglich Ergebnis einer Aktion.

Ein Symafu-Objekt ist also ein zu berechnender Funktionswert. Symafu-Objekte stehen in Beziehung zueinander, denn bevor ein bestimmter Funktionswert berechnet werden kann, muß eventuell ein anderer Funktionswert ermittelt werden. Beim funktionalen Entwurf spräche man von abhängigen Funktionen.

Aus objektorientierter Sicht besteht Symafu aus einer Sammlung von Funktionswerten (Objekten) und aus einer partiellen Ordnungsrelation zwischen den Funktionswerten (Beziehungen). Im folgenden soll nur ein Objekt, also ein Funktionswert, betrachtet werden. Vom objektorientierten Standpunkt aus besteht die Aufgabe dieses Objekts darin, seinen Wert zu bestimmen. Dazu wird diesem Objekt die Nachricht gesendet: "Berechne deinen Wert."

Um dies tun zu können, müssen die Eingabewerte des Objektes vorliegen. Sind die Eingabewerte selbst Objekte vom Typ Funktionswert, so müssen zunächst diese ihren Wert bestimmen, bevor der Wert der Funktion berechnet werden kann. Dazu sendet das Objekt Funktionswert an die Eingabeobjekte ebenfalls die Nachricht: "Berechne deinen Wert" .

Symafu-Objekte auf der DB2-Datenbank

Spätestens dann, wenn viele Objekte miteinander kommunizieren müssen, tauchen Kommunikationsprobleme auf. Denn es ist bei einer größeren Anzahl von Objekten oft schwer, den richtigen Empfänger einer Nachricht zu ermitteln. Um diesem Problem zu begegnen, wurde ein Manager-Programm implementiert. Dieser Manager weiß nicht, wie Funktionswerte berechnet werden sollen, wohl aber, welches Objekt welchen Funktionswert berechnet. Braucht also ein Objekt vom Typ Funktionswert als Eingabe einen zu errechnenden Funktionswert, so sendet dieses Objekt dem Manager die Nachricht: "Veranlasse, daß dieser Funktionswert errechnet wird. Ich brauche ihn zu meiner eigenen Berechnung." Der Manager weiß, welches Objekt die Anforderung des ersten Objekts befriedigt, und leitet die Anforderung weiter.

Diese Vorgehensweise entspricht den Kommunikationsstrukturen in größeren Unternehmen. Auch dort haben (menschliche) Manager die Aufgabe, die Kommunikation im Unternehmen zu steuern.

Für die Volksfürsorge ergab sich durch das Manager-Konzept Symafu eine Architektur, die lediglich eine Anzahl von Objekten und einen die Kommunikation der Objekte steuernden Manager kennt. Deshalb können zum Beispiel Berufsanfänger oder Leute ohne versicherungsmathematischen Hintergrund von Anfang an vollständig in die Projektarbeit integriert werden.

In diesem Zusammenhang sei noch angemerkt, daß - ausgehend von einem unternehmensweiten Datenmodell - eine DB2-Datenbank als der Ort festgelegt wurde, an dem die Attribute der Symafu-Objekte gespeichert werden sollen. Die Attribute beschreiben dabei die internen Zustände von Objekten.