[go: up one dir, main page]

0% found this document useful (0 votes)
28 views28 pages

Module6 Application Frameworks v2

This document provides an overview of application frameworks, defining what a framework is and detailing its components, including system infrastructure, middleware integration, and enterprise application frameworks. It discusses the process of extending frameworks, the features of web application frameworks, and the Model-View-Controller pattern. Additionally, it outlines the framework reuse lifecycle and considerations for building frameworks as products of domain engineering.

Uploaded by

kenma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views28 pages

Module6 Application Frameworks v2

This document provides an overview of application frameworks, defining what a framework is and detailing its components, including system infrastructure, middleware integration, and enterprise application frameworks. It discusses the process of extending frameworks, the features of web application frameworks, and the Model-View-Controller pattern. Additionally, it outlines the framework reuse lifecycle and considerations for building frameworks as products of domain engineering.

Uploaded by

kenma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 28

Software Reuse

Module 6:
Application Frameworks
Topics

• What is in a Framework?
• What is in Application
Framework?
• Building Frameworks
Objectives
• At the end of this module,
you should be able to:
 Understands what is
framework
 Understands what is
Application framework
 Understands on how to build
frameworks
What is framework

In general, a framework is a real or conceptual structure


intended to serve as a support or guide for the building of
something that expands the structure into something useful.

In computer systems, a framework is often a layered


structure indicating what kind of programs can or
should be built and how they would interrelate.

[Definition from WhatIs.com]


What is in Framework?(cont)
• Frameworks are moderately large entities that can
be reused. They are somewhere between system
and component reuse.
• Frameworks are a sub-system design made up of a
collection of abstract and concrete classes and the
interfaces between them.
• The sub-system is implemented by adding
components to fill in parts of the design and by
instantiating the abstract classes in the framework.
Framework classes/categories
• System infrastructure frameworks
– Support the development of system infrastructures
such as communications, user interfaces and
compilers.
• Middleware integration frameworks
– Standards and classes that support component
communication and information exchange.
• Enterprise application frameworks
– Support the development of specific types of
application such as telecommunications or financial
systems.
Extending frameworks
• Frameworks are generic and are extended to create a more
specific application or sub-system. They provide a skeleton
architecture for the system.
• Extending the framework involves
– Adding concrete classes that inherit operations from abstract
classes in the framework;
– Adding methods that are called in response to events that are
recognised by the framework.
• Problem with frameworks is their complexity which means that
it takes a long time to use them effectively.
What is in Application
Framework?
• An application framework defined as a set of interacting
objects and realize a set of functions
• The set of functions defines the area of expertise or
competencies of the framework (refer it as domain of
the framework)
• An application framework may be described by the
equation:
Application framework=a blueprint + component realizations
• * Most authors use the term design instead of
blueprint.
Web application frameworks(WAF)
• Support the construction of dynamic websites
as a front-end for web applications.
• WAFs are now available for all of the
commonly used web programming languages
e.g. Java, Python, Ruby, etc.
• Interaction model is based on the Model-
View-Controller composite pattern.

Chapter 16 Software reuse 9


WAF features
• Security
– WAFs may include classes to help implement user authentication (login) and access.
• Dynamic web pages
– Classes are provided to help you define web page templates and to populate these
dynamically from the system database.
• Database support
– The framework may provide classes that provide an abstract interface to different
databases.
• Session management
– Classes to create and manage sessions (a number of interactions with the system by a
user) are usually part of a WAF.
• User interaction
– Most web frameworks now provide AJAX support (Holdener, 2008), which allows more
interactive web pages to be created.

Chapter 16 Software reuse 10


Model-view controller
• System infrastructure framework for GUI
design.
• Allows for multiple presentations of an object
and separate interactions with these
presentations.
The Model-View-Controller pattern

Chapter 16 Software reuse 12


The anatomy of a framework
• E.g. MVC framework; THREE parts as the Model,
View and the Controller.
 Model: is the part responsible for the application’s state
and behaviors, and for notifying the other components of
state changes.
 View: is the part responsible for the graphical display
 Controller: is the component that is responsible for
reacting to user inputs and for translating them into
actions to be executed on the application side.
• Figure 1: The Model View Controller
Framework
Update display
User input
View Controller
Notifications
State data Application
calls
Model
The anatomy of a framework
• A framework views an application fragment as a set
of objects that interact to accomplish a set of domain
functions.Must include at least the following:
 A set of participants of the framework- role is
described as interface(properties and method
signatures ) that the participant must support.
component fulfilling that role must implement.
 A set of relationships between the participants of
the framework
 A set of interaction scenarios between the
participants of the framework
The framework reuse lifecycle
• A number of authors have characterized the reuse
lifecycle for reusable artifacts as follows:
1. specify the need in terms that can be matched
against the available descriptions of reusable
artifacts/ work-products
2. search and retrieve the most relevant artifacts
3. assess their reuse potential
4. select the best fit candidate, and adapt it to the
current need
5. integrate it in the current application
The framework reuse lifecycle (cont)
• The assessment step can take long time, per
candidate framework, especially in the final
selection stages.
• It can go from reading the documentation
and deciding that a framework is not
appropriate, to actually developing prototype
applications with the framework to test its
various qualities before committing a major
development project to it.
The framework reuse lifecycle(cont)
• In organizations that can afford it, and for major
developments, one to two senior developers would
be assigned to evaluate a particular framework and
this evaluation may take couple of days, to a few
weeks.
• Those developers would report back on their
experience accommodating their needs with the
candidate frameworks, and a choice is made on the
basis of that experience.
The framework reuse lifecycle(cont)
• Frameworks evolve through reuse.
• Each reuse instance of a framework will
encounter a number of difficulties that
identify area that can be improved, aspects
that can be further parameterized,
participants that should be further
generalized or split, etc.
• The framework reuse lifecycle will feed into
the framework development lifecycle.
Building Frameworks: Framework as
Products of Domain Engineering
• E.g. suppose we want to develop a Web-
enabled banking framework.
• In terms of computational infrastructure,
mission-critical Web-enabled business
(banking or otherwise) applications will
require.
Building Frameworks: Framework as
Products of Domain Engineering
1. Distribution:
– The application logic should be location transparent, which means
the use or development of a distribution infrastructure
2 Security:
– Communication across the network must be secure, which requires
the handling of users, authorizations, certification, encryption, etc.
3 Transaction Services:
– The use of transaction monitors to ensure the ACIDity of distributed
transactions
4 Recoverability:
– Distributed logging, mirror sites etc.
Building Frameworks: Framework as Planned
Byproducts of Application Development
• A good number of frameworks originated
from R&D labs and fall into this category.
• For instance, the work in R&D labs is driven by
creativity, trial and error, and risk taking
• These R&D values are often in contradiction
with notions of process, deliverables,
documentation etc.
Building Frameworks: Framework as Planned
Byproducts of Application Development
• A framework “hotspot” is a point of variability within
a framework. According to Pree [1999], TWO
applications within the application domain of a
framework will differ by the binding of at least one
hotspot. The idea here is that we can identify those
hotspots early on this process, but not necessary to
develop them in the first iteration. The first iteration
will solve a specific problem and later iterations will
design variability into the identified hotspots.
The End!
• Congrats! You have achieved
the following objectives:
 Understands what is
framework
 Understans what is
apllication framework
 Understands on how to
build frameworks

You might also like