next up previous contents index
Nächste Seite: 6.3 Constraint-Lösungsstrategien Aufwärts: 6. Ein hybrides Framework Vorherige Seite: 6.1 Einführung   Inhalt   Index

6.2 Der Framework-Ansatz

Durch das Aufkommen von objektorientierten Sprachen und objektorientierter Programmierung (OOP) entstanden Ansätze, welche verstärkt die Steigerung der Wiederverwendbarkeit von einmal entwickelten Software-Komponenten zum Ziel hatten (vgl. Johnson, 1997b,a). Im Besonderen sind dies objektorientierte Software-Frameworks, in denen ein Rahmenwerk für die Bewältigung eines bestimmten Aufgabenspektrums bereitgestellt wird. Sie bieten eine Architekturhilfe beim Aufteilen des Entwurfs in abstrakte Klassen und deren Spezialisierungen sowie bei der Definition ihrer Zuständigkeiten und Interaktionen. Ein objektorientiertes Framework wird für eine bestimmte Anwendung spezialisiert, indem der Entwickler anwendungsspezifische Unterklassen für abstrakte Framework-Klassen erstellt (vgl. Gamma et al., 1996, S. 37).

Objektorientierte Constraint-Frameworks im Speziellen dienen dazu, OOP-Sprachen und Techniken zur Constraint-Verarbeitung zu verbinden und in unterschiedlichen Szenarien nutzbar zu machen. Wie in Abschnitt 4.5.3 bereits angesprochen, ist ein Constraint-Framework eine Möglichkeit, Constraints als Inferenz-Mechanismus unabhängig von einer konkreten Domäne, z.B. der (logischen) Constraint-Programmierung, nutzbar für unterschiedliche Anwendungen zu machen. Ein Framework bietet hierfür allgemeine Mechanismen, die zur Nutzung durch eine bestimmte Anwendung an die jeweils spezielle Problemstellung angepasst werden können (vgl. Roy et al., 2000, S. 1 f.).

Durch ein Constraint-Framework wird ein allgemeiner Kontrollzyklus vorgegeben, in den unterschiedliche Lösungsverfahren je nach Bedarf eingebunden werden können. Allgemeine Verfahren zur Constraint-Verarbeitung sind innerhalb eines Frameworks in einer (erweiterbaren) Bibliothek bereits enthalten. Neben einer wiederverwendbaren Architektur stellt ein Framework somit ebenfalls wiederverwendbaren Code zur Verfügung. Die Architektur eines Frameworks sollte dabei eine einfache Nutzung garantieren, und in diesem Fall die komplexen Mechanismen des CSP-Formalismus vor dem Benutzer weitestgehend verbergen (vgl. Roy et al., 2000, S. 4).

Wie im vorherigen Kapitel 5 dargestellt, existieren sehr unterschiedliche Konsistenz- und Such- bzw. Splitting-Verfahren, Heuristiken und Kombinationen dieser. Es gibt kein optimales Constraint-Lösungsverfahren für alle Problemstellungen, sondern stattdessen nur unterschiedlich gut geeignete Verfahren für unterschiedliche Probleme und Domänen. Um je nach Problemstellung flexibel geeignete Lösungsverfahren einsetzen zu können, bietet sich für die zu entwickelnde Constraint-Komponente YACS aus mehreren Gründen ein objektorientierter Framework-Ansatz an:

Der Framework-Ansatz ist ein vielversprechendes Konzept im Bereich der OOP, welches weite Verbreitung gefunden hat (vgl. Fayad und Schmidt, 1997, S. 34 ff.). Neben der geforderten Modularität bietet das Framework-Konzept für die Constraint-Komponente YACS außerdem die leichte Wiederverwendbarkeit und Erweiterbarkeit der einmal erstellten Software-Architektur.


next up previous contents index
Nächste Seite: 6.3 Constraint-Lösungsstrategien Aufwärts: 6. Ein hybrides Framework Vorherige Seite: 6.1 Einführung   Inhalt   Index