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.

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

COM vs. CORBA.
UML an overview.
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Software Reuse SEII-Lecture 28
Framework is l Reusable Code, often domain specific (GUI, Net, Web, etc) l expressed as l a set of classes and l the way objects in those classes collaborate.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
Software Architecture Design Instructor: Dr. Jerry Gao.
The Architecture Design Process
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Design Patterns CS is not simply about programming
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Building software from reusable components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Reuse Activities Selecting Design Patterns and Components
Course Instructor: Aisha Azeem
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
OO Frameworks Department of Computer Science Kent State University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©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.
Design Patterns.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Method-Oriented B2B Application Integration Chapter 4 Sungchul Hong.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Systems Analysis and Design in a Changing World, 3rd Edition
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Frameworks CompSci 230 S Software Construction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
CSE 303 – Software Design and Architecture
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Chapter 16 – Software Reuse
Design Patterns: MORE Examples
Distribution and components
Inventory of Distributed Computing Concepts and Web services
Chapter 20 Object-Oriented Analysis and Design
Chapter 7 –Implementation Issues
Informatics 122 Software Design II
Presentation transcript:

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 subclasses –everything else: script that specified which concrete classes will be used and how they will be interconnected objects that have no relationship to framework use one or more framework objects, but not called by framework objects

R R R 3 “How to’s” for Frameworks Use Learn Evaluate Develop

R R R 4 How to use Application Frameworks Easiest way: Blackbox (e.g., GUI frameworks) –connect existing components –DOES NOT change framework or make any new concrete subclasses –reuses framework’s interfaces and rules for connecting components –Analogous to: Building from Legos Connected integrated circuits for circuit board –Application programmers only need to know: type A objects can be connected to type B objects not need to know exact implementation of A and B

R R R 5 How to use Application Frameworks Next easiest way: (Graybox) –Define new concrete subclasses; use them to build application –Subclasses are tightly coupled to superclasses: Requires more knowledge about abstract classes –Subclasses must meet specification implied by superclasses Programmer must understand framework’s interfaces in detail

R R R 6 How to use Application Frameworks Most challenging way: (Whitebox) –Change the abstract classes that form core of framework add new operations or variables to them –Analogous to fleshing out a skeleton of an application. –Usually requires the source code of framework –Most challenging, but most powerful –Changes to abstract classes can break existing concrete classes

R R R 7 How to Learn Application Frameworks Learning a framework is more challenging than learning a class library –not just individual classes –learn a set of classes with specific interconnections –many classes are abstract Must have concrete examples (easy to challenging) Documentation should include: –Purpose of framework –How to use framework (e.g., cookbook style) –How the framework works : interaction between objects how responsibility is partitioned between objects

R R R 8 How to Evaluate Application Frameworks Most application domains have no commercially available domain-specific frameworks Criteria: –Run on “right” platform –“right” programming language –“right” standards –“right” tradeoffs between simplicity and power. Make checklist for objectives of frameworks. –Features that must be supported (e.g., distributed, networking issues, interaction styles, etc.)

R R R 9 How to Develop Application Frameworks Design of framework analogous to design of reusable SW –Domain analysis (collect examples) –First version: should implement examples Usually whitebox –Then use to build applications Will point out weak points in frameworks Parts that are hard to change –Experience leads to improvements in framework Make it more blackbox Iteration is important: –Domain analysis will gain more information –Framework makes explicit the parts that will change Components should implement changeable parts –Frameworks are abstractions Design of framework depends on original examples

R R R 10 Hooks Hook: Point in framework meant to be adapted –Filling in parameters –Creating subclasses Hook Description: –Describes problem/requirement that framework builder anticipates application developer will have –Provides guidance as to how to use hook –Focuses on small requirement –Details required changes to design –Constraints to be satisfied –Effects on the framework

R R R 11 Hooks (cont’d) Adaptation: –Enabling/disabling a feature –Replacing a feature –Augmenting a feature –Adding a feature

R R R 12 Benefits of Frameworks Modularity: –Encapsulate volatile implementation details behind stable interfaces –Localize impact of design/implementation changes Reusability: –Stable interfaces enhance reusability of generic components –Leverages domain knowledge/prior experience Extensibility: –Hook methods that allow applications to extend its stable interfaces –Hook methods decouple stable interfaces and behaviors of an application domain

R R R 13 Benefits of Frameworks (cont’d) Inversion of Control: –Application processing customized by event handler objects invoked via framework’s reactive dispatching mechanism –Allow framework (rather than each application) to determine which set of application-specific methods to invoke in response to external events (e.g., window messages from end users or packets arriving on communication ports)

R R R 14 Classification of Frameworks System Infrastructure Middleware Integration Enterprise application

R R R 15 System Infrastructure frameworks Simplify development of portable and efficient system infrastructure: Examples: –OS (Campbell-Islam 93) –Communication (Schmidt 97) –UI and language processing tools Primarily used internally within SW org

R R R 16 Middleware Integration Frameworks Commonly used to integrate distributed applications and components Designed to enhance ability of SW developers to modularize, reuse, and extend SW infrastructure in distributed environment Examples: –ORB –Message-oriented MW –Transactional databases

R R R 17 Enterprise Application Frameworks Address broad application domains: –E.g.: telecommunications, avionics, manufacturing, financial eng., Expensive to develop/purchase Good investment: –Support development of end-user applications/products directly System Infrastructure/Middleware Frameworks: –Focus largely on internal SW development concerns –Contribute significantly to rapid creation of high-quality SW –Not contribute to high revenue for large business orgs.