Software Architecture and Design (COSC 6106)
Chapter 5: Frameworks
Ayalew Belay (Dr.)
[Link]@[Link]
1
Framework
◼Frameworks is a powerful technology for developing and
reusing middleware and application software that possess the
qualities including:
◼ Affordability
◼ Extensibility
◼ Flexibility
◼ Portability
◼ Predictability
◼A software framework is a program skeleton that may be
directly reused, or adapted according to well-defined rules, to
solve a family of related problems.
◼A framework usually implements a design pattern, and often
uses several patterns in combination.
2
Characteristics of frameworks
◼A framework provides an integrated set of domain specific
structures and functionality.
◼ Reuse of software depends largely on how well frameworks model the
commonalities and variability
◼A framework is a “semi-complete” application that
programmers can customize to form complete applications by
extending reusable components in the framework
◼A framework exhibits “inversion of control” at run time via
callbacks to component hook methods after the occurrence of
an event, such as a mouse click or data arriving on a network
connection.
◼ When an event occurs, the framework calls back to a virtual hook method
in a pre-registered component, which then performs application-defined
processing in response to the event.
3
4
Frameworks Category
◼Web Application Frameworks
◼Application Frameworks
◼ Mobile Apps Frameworks
5
Web Application Frameworks
◼Designed to support the development of dynamic websites,
web applications and web services
◼ AngularJS (open source, java script, single-page)
◼ Laravel (open source, php , web apps, MVC)
◼ ReactJS(java script library, UI, single-page web apps, facebook
,Instagram)
◼ NodeJS(java script, server-side)
◼ Ruby on rails (server-side, Ruby)
◼ Symfony (php)
◼ [Link](server-side, web service, dynamic web pages)
6
Application Frameworks
◼Implement the standard structure of an application.
◼ MVC (Model View Controller)
◼ MFC (Microsoft Foundation Classes)
◼ MacZoop (for macintosh) Coca on mac
7
Mobile Apps Frameworks
◼ Phone Gap (java script & HTML5, Apache)
◼ React native (HTML & CSS & Java script)
◼ Ionic framework(open source sdk, java script)
◼ Mobile Angular UI(bootstrap & Angular)
8
Difference between Framework & Model
◼Model: Something that has been tested and found to work.
But it must be executed in a specific way. A model will not
work if the steps are not followed exactly.
◼Models are an abstraction that provides a rough definition of
practices and inter-relationships needed by an organization
to deliver a product or service.
◼Models are valuable if they are theoretically consistent, fit the
real world and have predictive power.
◼The Capability Maturity Model Integration – Development
(CMMI-DEV) is a model leveraged in many software
development organizations.
◼The CMMI provides a core set of practices that organizations
have typically needed to deliver software. 9
◼The CMMI defines an outline of what needs to be done but
not how or in what order.
◼The model that is chosen influences the models and methods
that will be leveraged by different layers of the organization.
10
◼Frameworks provide the structure needed to implement a model
(or some part of the a model).
◼The Scaled Agile Framework Enterprise is a framework which
leverages other frameworks and methods as tools to deliver
value.
◼This framework defines the flow of work from an organization’s
portfolio to the Agile teams that will develop and integrate the
code.
◼The Framework calls leverages other frameworks and
methodologies such as DevOps, Scrum, Kanban and Extreme
Programing.
11
Framework, Model, Architecture, Protocol
12