Software framework |
A software framework is a reusable design for a Software system (or subsystem). This is expressed as a set of abstract classes and the way their instances collaborate for a specific type of software (Johnson and Foote 1988; Deutsch 1989). All software frameworks are Object-oriented programming. Although designs don t have to be implemented in an Object-oriented programming language, they usually are.
For example, a software framework can be geared toward building graphical editors for different domains like artistic drawing, music composition, and mechanical CAD (Vlissides and Linton 1990; Johnson 1992). Another software framework can help build compilers for different programming language and target machines (Johnson, McConnell et al. 1992). Yet another might help build financial modeling applications (Birrer and Eggenschwiler 1993) or decision support systems (Gachet 2003).
According to Pree (1994), software frameworks consists of frozen spots and hot spots . On the one hand, frozen spots define the overall architecture of a software system, that is to say its basic components and the relationships between them. These remain unchanged (frozen) in any instantiation of the application framework. On the other hand, hot spots represent those parts of the software framework that are specific to individual software systems. Hot spots are designed to be generic. In other words, they can be adapted to the needs of the application under development.
Software frameworks define the places in the software architecture where adaptations for specific functionality should be made - the hot spots. In an object-oriented environment, a framework consists of Abstract class and Concrete class Class (computer science). Instantiation of such a framework consists of Composition (computer science) and subclass (computer science) the existing classes (Buschmann 1996).
When developing a concrete software system with a software framework, the hot spots are specialized according to the specific needs and requirements of the system. Software frameworks rely on the Hollywood Principle: Don’t call us, we’ll call you. (Larman 2002). This means that the user-defined classes (for example, new subclasses), receive messages from the predefined framework classes. These are usually handled by implementing superclass (computer science) abstract method.
= See also =
= References =
|
|