1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”

Slides:



Advertisements
Similar presentations
Adaptive Object-Models Joseph W. Yoder University of Illinois The Refactory, Inc.
Advertisements

Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
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.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Introduction To System Analysis and Design
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Design Patterns CS is not simply about programming
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Ralph Johnson - University of Illinois1 Reflection and the Adaptive Object Model Architecture Ralph Johnson University of Illinois at Urbana-Champaign.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
© Copyright Eliyahu Brutman Programming Techniques Course.
Dept. of Computer Engineering, Amir-Kabir University 1 Design Patterns Dr. Noorhosseini Lecture 2.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
Reuse Activities Selecting Design Patterns and Components
Course Instructor: Aisha Azeem
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Introduction To System Analysis and design
OO Frameworks Department of Computer Science Kent State University.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
1 Frameworks Seaside Croquet. 2 Frameworks Interface design and functional factoring constitute the key intellectual content of software and are far more.
Design Patterns.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
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.
Introduction To System Analysis and Design
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #13.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
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.
CSE 219 Computer Science III Program Design Principles.
Systems Analysis and Design in a Changing World, 3rd Edition
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
1 How to Design Frameworks -- Copyright 2005 by Ralph E. Johnson How to Develop Frameworks Ralph E. Johnson Dept. of Computer Science 1304 W. Springfield.
Introducing Allors Applications, Tools & Platform.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Advanced Object-oriented Design Patterns Creational Design Patterns.
 2001 Lodewijk Bergmans University of Twente Pattern Languages.
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.
Design Patterns Creational Patterns. Abstract the instantiation process Help make the system independent of how its objects are created, composed and.
Basic Characteristics of Object-Oriented Systems
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Patterns: MORE Examples
Chapter 5:Design Patterns
MPCS – Advanced java Programming
Introduction to Design Patterns
OO Methodology OO Architecture.
object oriented Principles of software design
Tools for Composing and Deploying Grid Middleware Web Services
Chapter 20 Object-Oriented Analysis and Design
Ms Munawar Khatoon IV Year I Sem Computer Science Engineering
Automated Analysis and Code Generation for Domain-Specific Models
Chapter 8, Design Patterns Introduction
Presented by Igor Ivković
Presentation transcript:

1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”

2 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Presenters Joseph W. Yoder - Dragos Manolescu -

3 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Goals u u Have fun u u Learn a little about our framework u u Overview of patterns used in the framework u u See how to implement the patterns using Java

4 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Outline u u Project Overview u u Active Object-Model u u Overview of Frameworks u u Preview of Patterns in the Framework u u Architecture & Design of the Framework u u Patterns in the Framework u u Future Development u u Summary

5 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Active Object-Model (Dynamic Object-Model) – –An ACTIVE OBJECT-MODEL is an object model that provides “meta” information about itself so that it can be changed at runtime F F explicit object model that it interprets at run-time F F change the object model, system changes its behavior – –ACTIVE OBJECT-MODELS usually arise as domain-specific frameworks – –Business rules can be stored in ACTIVE OBJECT-MODELS

6 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Purpose Of Project “On-line Registration” Develop reusable Software System to be used for on-line Conference Registration – –Customizable F F Different Reports F F Different databases F F Different Business Logic – –Composable

7 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Requirements: u u Web Access u u Easy to Use u u Secure u u Platform Independent u u Integration with Legacy Databases u u Robust

8 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder How to Develop “Reusable Software” Reusable software is hard to develop – –Generalize from examples – –Refactor to pull out common parts – –Develop special interface/language for specifying application

9 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder u u Interface design and functional factoring constitute the key intellectual content of software and are far more difficult to create or re-create than code. Peter Deutsch u u Difference between framework and component library for framework (components get plugged in and are concrete sub- classes that do all the work). For detailed information about Frameworks attend Ralph Johnson’s tutorial or see: or cat.ncsa.uiuc.edu/~yoder/Research/Frameworks cat.ncsa.uiuc.edu/~yoder/Research/FrameworksFrameworks

10 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Frameworks Encode Domain Knowledge u u Frameworks solve particular sets of problems. get different points of view explain/defend current design u u Some frameworks are more technology (horizontal) frameworks verses application domain (vertical) frameworks. Are we solving GUI’s, object persistence verses more application domain related such as insurance, medical, or manufacturing.

11 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Frameworks u u Framework is: reusable design of an application or subsystem represented by a set of abstract classes and the way objects in those classes collaborate. u u Use framework to build application by: Creating new subclasses Configuring objects together Modifying working examples

12 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Frameworks u u Framework prescribes how to decompose a problem. u u Not just the classes, but the way instances of the classes collaborate. – –shared invariants that objects must maintain, and how they maintain them – –framework imposes a collaborative model that you must adapt to.

13 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Relevant Principles u u Frameworks are abstractions: people generalize from concrete examples u u Designing reusable code requires iteration u u Frameworks encode domain knowledge u u Customer of framework is application programmer

14 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Generalize from Concrete Cases u u People think concretely, not abstractly. u u Abstractions are found bottom-up, by examining concrete examples. u u Generalization proceeds by finding things that are given different names but are really the same, parameterizing to eliminate differences, breaking large things into small things so that similar components can be found, and categorizing things that are similar.

15 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Finding Abstract Classes u u Abstract classes are discovered by generalizing from concrete classes. u u To give two classes a common superclass: give them common interface + rename operations so classes use same names + reorder arguments, change types of arguments, etc. + refactor (split or combine) operations if operations have same interface but different implementation, make them abstract if operations have same implementation, move to superclass

16 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Frameworks Require Iteration Reusable code requires many iterations. Basic law of software engineering (Johnson’s law) If it hasn't been tested, it doesn't work. Corollary: software that hasn't been reused is not reusable.

17 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder White-box vs. Black-box Black-box Customize by configuring Emphasize polymorphism Must know interfaces Complex, harder to design Easier to learn, requires less programming. Harder to customize because you need to learn how objects collaborate White-box Customize by subclassing Emphasize inheritance Must know internals Simpler, easier to design Harder to learn, requires more programming. Easier to customize because you can overwrite the code

18 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder 1) Three Examples 2) White-box Framework 3) Component Library – –Build applications and add components to library 4) Hot Spots – –Separate Changeable from Stable Code – –Design Patterns Patterns for Developing Frameworks

19 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder 5) Pluggable Objects 6) Fine-grained Objects 7) Black-box Framework 8) Visual Builder 9) Language Tools Patterns for Developing Frameworks

20 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Mapping Objects To Persistence Pattern Language u u Persistence Layer u u CRUD u u SQL Code u u Attribute Mapping Methods u u Type Conversion

21 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder u u Changed Manager u u OID Manager u u Transaction Manager u u Connection Manager u u Table Manager Mapping Objects To Persistence Pattern Language

22 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Security Patterns

23 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Architecture u u To be presented by Dragos Manolescu – – cat.ncsa.uiuc.edu/~yoder/Research/PLoP/arch.htmlhttp://www- cat.ncsa.uiuc.edu/~yoder/Research/PLoP/arch.html

24 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Future Development u u Metadata stored in database u u Visual Builders and Editors u u Debugging Tools u u Distribution through CORBA etc

25 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Patterns used in the System u u GOF Patterns – –Strategy, State, Singleton, Composite, Factory Method, Prototype u u Layered Architecture u u Security Patterns – –Limited View, Single Access Point, Roles, Check Point, Session, Secure Access Layer u u Persistence Object Patterns – –Attribute Mapping Methods, Transaction Manager, OID Manager, Change Manager, CRUD, Type Conversion, Connection Manager, Table Manager, Persistence Layer u u Type-Object, Properties, Metadata u u Evolving Frameworks

26 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Summary u u We have developed a reusable design for on-line registration u u Patterns can be very useful for solving problems in your domain u u Frameworks take time to develop but the payoff can be tremendous

27 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Where to Find more Information u u u u u u u u u u u u

28 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder That’s All