Upload
whitney-richardson
View
214
Download
1
Tags:
Embed Size (px)
Citation preview
Frameworks
CompSci 230 S2 2013Software Construction
Agenda & Reading Topics:
Frameworks Extensibility Inversion of Control Java Frameworks Advantages & Disadvantages
Reading Software framework Wikipedia Frameworks in Java
2 COMPSCI 230: 10
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 (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
3 COMPSCI 230: 10
Framework Examples
Web Application Frameworks
GUI Toolkits
4 COMPSCI 230: 10
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 loadcertain extra code in a specific format
Within the framework language: Subclassing & overriding methods Implementing interfaces Registering event handlers
5 COMPSCI 230: 10
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.
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
6 COMPSCI 230: 10
Inversion of Control 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.7 COMPSCI 230: 10
Inversion of Control Example: Java Applets
8 COMPSCI 230: 10
What is Java Frameworks? 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
9 COMPSCI 230: 10
Collections Framework 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.
10 COMPSCI 230: 10
Frameworks VS libraries 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.
11 COMPSCI 230: 10
Advantages 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)
12 COMPSCI 230: 10
Disadvantages 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.
13 COMPSCI 230: 10