Top Banner
Software Construction Lecture 10 Frameworks
19

Software Construction Lecture 10 Frameworks. Agenda & Reading 2 Topics: Frameworks Extensibility Inversion of Control Java Frameworks Advantages.

Dec 28, 2015

Download

Documents

Maria Hamilton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Software ConstructionLecture 10

Frameworks

Page 2: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Agenda & Reading

2

Topics: Frameworks Extensibility Inversion of Control Java Frameworks Advantages & Disadvantages

Reading Software framework Wikipedia Frameworks in Java

Page 3: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Framework

3

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 (e.g. 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

Page 4: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Framework Examples

4

Web Application Frameworks

GUI Toolkits

Page 5: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Extensibility

5

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 loadcertain extra code in a specific format

Within the framework language: Subclassing & overriding methods Implementing interfaces Registering event handlers

Page 6: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Inversion of Control

6

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.

i.e. "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 your listeners

Page 7: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Inversion of Control

7

Traditional Program Execution Inversion of Control

The app has control over the execution flow,

calling library code when it needs to.

The framework has control over the execution flow, calling app code for app-

specific behavior.

Page 8: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Inversion of Control Example: Java Applets

8

Page 9: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

What is Java Frameworks?

9

Frameworks are large bodies (usually many classes) of prewritten code to which you add your own code to solve a problem in a specific domain.

In Java technology there are so many frameworks that helps the programmers to build complex applications easily. Examples: GUI Framework: eg Java's Swing and AWT classes Collection Framework/library

It is a unified architecture for representing and manipulating collections

It contains Interfaces, Implementations and algorithms

Page 10: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Collections Framework

10

The Java Collections Framework provides the following benefits: Reduces programming effort

Concentrate on the important parts of your program rather than on the low-level "plumbing" required to make it work.

Increases program speed and quality It provides high-performance, high-quality

implementations of useful data structures and algorithms Fosters software reuse

New data structures that conform to the standard collection interfaces are by nature reusable. The same goes for new algorithms that operate on objects that implement these interfaces.

Page 11: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Frameworks VS libraries

11

Framework uses your code because it is usually the framework that is in control. It means the framework controls the sequence

and logic of some operation and calls your code to provide certain details

You make use of a framework by calling its methods, inheritance, and supplying "callbacks", listeners, etc

Note: although sometimes large libraries are referred to as frameworks, this is probably not the most common use of the term.

Page 12: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Advantages

12

Reuse can save cost and time Higher level of abstraction

Frameworks provides a standard working system through which user can develop the desired module of application or complete application instead of developing lower level details.

Developers can devote more time in developing the software requirement

Reduced maintenance cost (if the framework is maintained by someone else)

Page 13: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Disadvantages

13

Can lead to code bloat Framework may contain lots of unused code May need to use several frameworks

Cost of learning a framework Spend more time in assessing the concept,

function and its uses in developing the program. Licensing cost (for commercial frameworks) A generic ‘one-size-fits-all’ does not work so

efficiently for any specific software. There is need to extend framework with specific code to develop any specific software.

Page 14: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

GUI Programming Concepts

conventional programming: sequence of operations is determined

by the program what you want to happen, happens when you want

it event-driven programming:

sequence of operations is determined by the user’s interaction with the application’s interface

anything that can happen, happens at any time

Page 15: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

GUI Design Concepts a wealth of information creates a poverty of

attention- Herbert Simon

Principles of good GUI Design IBM's Design concepts Saul Greenberg's HCI pages Tim's HCI notes

Page 16: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

GUI Programming Concepts in Java

Java GUI has components Windows GUI has controls Unix GUI has widgets examples: labels, buttons, check boxes, radio

buttons, text input boxes, pull down lists Swing components: JLabel, JButton, JCheckBox,

JRadioButton, JTextField, JTextArea, JComboBox

Page 17: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Java GUI history: the AWT

AWT(JDK 1.0, 1.1): Abstract Window Toolkit

package: java.awt, java.awt.event heavyweight components using native GUI

system elements used for applets until most browsers supported

JRE 1.2

Page 18: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Swing in Java Swing(Java 2, JDK 1.2+) lightweight components that do not rely on

the native GUI or OS “look and feel” of Swing components

are identical on different platforms can be customized

Swing inherits from AWT AWT still used for events, layouts

Page 19: Software Construction Lecture 10 Frameworks. Agenda & Reading 2  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages.

Swing Components in Java

advanced GUI support. e.g. drag-and-drop package names: javax.swing, javax.swing.event components inherit from JComponent components are added to a top-level container:

JFrame, JDialog, or JApplet.