Frameworks and operating systems

The emergence of the unified modeling language (UML) as an industry standard for modeling complex systems has encouraged the use of automated tools that facilitate the development process from analysis through coding.

One major benefit of the object-oriented paradigm is the inherent support for abstraction-centric, reusable, and adaptable design. In particular, it is common to construct complex systems using predefined frameworks.

A framework is a collection of collaborating classes that provides a set of services for a given domain. You customize the framework to a particular application by subclassing and composing instances of the framework classes. Therefore, frameworks represent object-oriented reuse.

There are several advantages to using frameworks:

  • You do not need to write the application from scratch because it reuses elements of the framework.
  • Frameworks structure the design of the application by providing a set of predefined abstractions, given by the classes in the framework. These classes provide architectural guidance for the system design.

Frameworks are open and flexible designs because their classes can be customized by subclassing.