Frameworks CompSci 230 S2 2013 Software Construction.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Classes & Objects Computer Science I Last updated 9/30/10.
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Software Reuse Building software from reusable components Objectives
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Reuse Activities Selecting Design Patterns and Components
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Oakkar Fall The Need for Decision Engine Automate business processes Implement complex business decision logic Separation of rules and process Business.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Introduction to Object-oriented programming and software development Lecture 1.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
An Object-Oriented Approach to Programming Logic and Design
Software Construction Lecture 10 Frameworks
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Chapter 1 Introduction to Databases Pearson Education ©
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
CompSci 230 S Software Construction Frameworks & GUI Programming.
Introduction To System Analysis and Design
Java Applets. 2 Introduction to Java Applet Programs  Applications are stand alone programs executed with Java interpreter executed with Java interpreter.
Computer Concepts 2014 Chapter 12 Computer Programming.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
SE: CHAPTER 7 Writing The Program
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
Java Applets. 2 Introduction to Java Applet Programs Applications are ___________________ programs –executed with Java interpreter Applet is a small program.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
November 25, 2015 © IBM Corporation Unified Method Framework (UMF) RMC Reference Architecture Overview Kelli Houston
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Intelligent Agent Framework1 From Chapter 7 of Constructing Intelligent Agents with Java.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Lecture 21: Component-Based Software Engineering
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Introduction to Databases
CompSci 280 S Introduction to Software Development
IS301 – Software Engineering V:
CompSci 230 S Software Construction
Behavioral Design Patterns
Review: Java GUI Programming
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Java Applets.
Need for the subject.
Chapter 7 –Implementation Issues
Programming Languages
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Presentation transcript:

Frameworks CompSci 230 S Software Construction

Agenda & Reading  Topics:  Frameworks  Extensibility  Inversion of Control  Java Frameworks  Advantages & Disadvantages  Reading  Software framework Wikipedia Software framework  Frameworks in Java Frameworks 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 load certain 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