Lecture Software construction - Lecture 10: Frameworks. In this chapter, the following content will be discussed: Frameworks, extensibility, inversion of control, java frameworks, advantages & disadvantages, software framework wikipedia, frameworks in Java. | Software Construction Lecture 10 Frameworks Agenda & Reading Topics: Frameworks Extensibility Inversion of Control Java Frameworks Advantages & Disadvantages Reading Software framework Wikipedia Frameworks in Java Framework Generic software platform for a certain type of applications Consists of parts that are found in many apps of that type Libraries with APIs (classes with methods etc.) Ready-made extensible programs ("engines") Sometimes also tools (. for development, configuration, content) Often evolved by developing many apps of that type and reusing code more and more Characteristics: Reusable: the parts can be used for many apps of that type Extensible: developers can add their own app-specific code Inversion of Control: framework often calls your code Framework Examples Web Application Frameworks GUI Toolkits Extensibility All frameworks can be extended to cater for app-specific functionality. A framework is intended to be extended to meet the needs | Software Construction Lecture 10 Frameworks Agenda & Reading Topics: Frameworks Extensibility Inversion of Control Java Frameworks Advantages & Disadvantages Reading Software framework Wikipedia Frameworks in Java Framework Generic software platform for a certain type of applications Consists of parts that are found in many apps of that type Libraries with APIs (classes with methods etc.) Ready-made extensible programs ("engines") Sometimes also tools (. for development, configuration, content) Often evolved by developing many apps of that type and reusing code more and more Characteristics: Reusable: the parts can be used for many apps of that type Extensible: developers can add their own app-specific code Inversion of Control: framework often calls your code Framework Examples Web Application Frameworks GUI Toolkits Extensibility All frameworks can be extended to cater for app-specific functionality. A framework is intended to be extended to meet the needs of a particular application Common ways to extend a framework: Extension is carried out by sub-classing, overriding methods, and implementing interfaces Plug-ins: framework can load certain extra code in a specific format Within the framework language: Subclassing & overriding methods Implementing interfaces Registering event handlers Inversion of Control A framework employs an inverted flow of control between itself and its clients. When using a framework, one usually just implements a few callback functions or specializes a few classes, and then invokes a single method or procedure. The framework does the rest of the work for you, invoking any necessary client callbacks or methods at the appropriate time and place. . "Don't call us, we'll call you.“, or "Leave the driving to us.“ Example: Java's Swing and AWT classes. They have a huge amount of code to manage the user interface, and there is inversion of control because you start the GUI framework and then wait for it to call