Frameworks is all about OOP

6.2 The framework approach

Next page:6.3 Constraint solution strategies Upwards:6. A hybrid framework Previous page:6.1 Introduction content   index

The emergence of object-oriented languages ​​and object-oriented programming (OOP) gave rise to approaches which increasingly aimed at increasing the reusability of software components that had been developed once (cf. Johnson, 1997b, a). In particular, these are object-oriented software frameworks in which a framework for coping with a certain range of tasks is provided. They provide architectural assistance in dividing the design into abstract classes and their specializations, as well as in defining their responsibilities and interactions. An object-oriented framework is specialized for a certain application in that the developer creates application-specific subclasses for abstract framework classes (cf. Gamma et al., 1996, p. 37).

Object-oriented constraint frameworks in particular serve to combine OOP languages ​​and techniques for constraint processing and to make them usable in different scenarios. As already mentioned in Section 4.5.3, a constraint framework is a way of making constraints as an inference mechanism independent of a specific domain, e.g. (logical) constraint programming, usable for different applications. A framework offers general mechanisms for this, which can be adapted to the specific problem in each case for use by a specific application (cf. Roy et al., 2000, p. 1 f.).

A constraint framework specifies a general control cycle in which different solution processes can be integrated as required. General procedures for constraint processing are already contained within a framework in an (expandable) library. In addition to a reusable architecture, a framework also provides reusable code. The architecture of a framework should guarantee easy use, and in this case hide the complex mechanisms of the CSP formalism from the user as far as possible (cf. Roy et al., 2000, p. 4).

As shown in the previous chapter 5, there are very different consistency and search or splitting procedures, heuristics and combinations of these. There is no optimal constraint solution method for all problems, but instead only methods that are well suited to different problems and domains. In order to be able to use suitable solution methods flexibly depending on the problem, an object-oriented framework approach is recommended for the constraint component YACS to be developed for several reasons:

  • Since the structure-based configuration with ENGC.ON a hybrid constraint system is required for both finite and infinite constraint domains, different constraint solvers are required.
  • In addition to implemented constraint solvers, existing constraint systems can be integrated into such a framework via an interface specification which, if they meet the requirements of ENGC.ON also do not fully meet, are sufficient (or even necessary) for certain problems.
  • A framework provides the necessary (reusable) environment for the simple implementation of new solution methods or for the simple integration of third-party systems.
  • It also offers the advantage of modular expandability and general interfaces for flexible use in different applications, even outside of structure-based configuration.

The framework approach is a very promising concept in the field of OOP, which has found widespread use (cf. Fayad and Schmidt, 1997, p. 34 ff.). In addition to the required modularity, the framework concept for the constraint component YACS also offers easy reusability and expandability of the software architecture created once.

Next page:6.3 Constraint solution strategies Upwards:6. A hybrid framework Previous page:6.1 Introduction content   index