Introduction (Continued) Design Patterns (I) Lecture Two.

Slides:



Advertisements
Similar presentations
Lecture 2 - Introduction Objective C is used primarily for application development on Apple's Mac OS X and iPhone. On the Apple it is used together with.
Advertisements

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
A component- and message-based architectural style for GUI software
18-1 Verifying Object Behavior and Collaboration Role playing – the act of simulating object behavior and collaboration by acting out an object’s behaviors.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Software Design and Documentation Individual Presentation: Composite Pattern 9/11/03.
The Composite Pattern.. Composite Pattern Intent –Compose objects into tree structures to represent part-whole hierarchies. –Composite lets clients treat.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Composite Design Pattern. Motivation – Dynamic Structure.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
OO Frameworks Department of Computer Science Kent State University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
MVC pattern and implementation in java
Linzhang Wang Dept. of Computer Sci&Tech, Nanjing University The Composit Pattern.
BDP Behavioral Pattern. BDP-2 Behavioral Patters Concerned with algorithms & assignment of responsibilities Patterns of Communication between Objects.
Design Patterns.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
Introduction to Object-oriented programming and software development Lecture 1.
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.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Patterns in programming 1. What are patterns? “A design pattern is a general, reusable solution to a commonly occurring problem in software. A design.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
1 Hammad Khan. COURSE CONTENTS.NET Framework And C# SQL Server 2008 ADO.NET LINQ ASP.NET Dynamics Data ASP.NET MVC framework 2 Advance C# Concepts Windows.
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.
 How are you going to collaborate?  How are you going to divide up work?  How are you going to make sure that changes work with other people’s code?
Patterns and Reuse. Patterns Reuse of Analysis and Design.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns IX Interpreter, Mediator, Template Method recap.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
CSE 403 Lecture 14 Design Patterns. Today’s educational objective Understand the basics of design patterns Be able to distinguish them from design approaches.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Frameworks CompSci 230 S Software Construction.
Data Abstaraction Chapter 10.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Ruby on Rails Evaluation – Cognitive Dimensions Joshua Sunshine
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Design Patterns David Talby. This Lecture Re-routing method calls Chain of Responsibility Coding partial algorithms Template Method The Singleton Pattern.
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.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
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.
ASP.NET MVC An Introduction. What is MVC The Model-View-Controller (MVC) is an architectural pattern separates an application into three main components:
Design Patterns (II) Lecture Three. Solution to Homework Two Used framework Used design patterns: composite and state Question: what are the differences.
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.
COMPOSITE PATTERN NOTES. The Composite pattern l Intent Compose objects into tree structures to represent whole-part hierarchies. Composite lets clients.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Design Patterns: MORE Examples
Abstract Factory Pattern
MVC Architecture, Symfony Framework for PHP Web Apps
Introduction to Design Patterns
Software Design and Architecture
Design Patterns.
Abstract Factory Pattern
Intent (Thanks to Jim Fawcett for the slides)
Jim Fawcett CSE776 – Design Patterns Summer 2003
A Pattern Language for Software Architecture
Software framework University of Kurdistan
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Presentation transcript:

Introduction (Continued) Design Patterns (I) Lecture Two

What is a framework Like a class library, but more than an ordinary toolkit. The framework components have structural and behavioral relations among them. Domain specific: –business, telecom, window systems, databases, OS kernels, …

What is a framework An integrated set of cooperating classes –architectural design of oo system –semi-complete application set of abstract class are specialized in application

Frameworks Inversion of control –main event loop is often in framework, rather than in application code –hollywood principle: don’t call us, we’ll call you –code in framework can invoke code in application by dynamic binding

Framework examples UI –model-view-controller (MVC) framework for smalltalk user interfaces [1980] –macapp - framework for Mac applications [1986] Others –MFC - Microsoft foundation classes –Choices - operating system framework –…..

Patterns vs Frameworks Patterns –reuse of design –tells you how to do good design –language independent –often covers general domains –addresses small part of a program architecture

Patterns vs Frameworks Framework –reuse of design and code –is a design (generic implementation) –language specific –often covers specific domain –addresses overall program architecture

State Pattern Butterfly Example –Caterpillar –Chrysalis –Adult Happy/Gloomy Example

State Pattern Book discussion –Applicability: state dependent behavior large conditional statements –Scheme: structure/participants/collaborations –Benefits extensibility make state transitions explicit can be shared (flyweight)

State Pattern Implementation –Who defines state transitions? –How about table-driven –Manage lifetime of state objects relation with Singleton –How about use dynamic inhertiance

Singleton Pattern What is it? How to implement?

Homework: Digital Watch Demo Code explained

Composite Pattern Objective: treat primitives and containers uniformly java.awt.* Example Basket

Composite Pattern Consequences –recursive composition –uniform interface –easier to add new components –can make design overly general

Implementation Issues Explicit parent references Sharing components Maximizing the Component interface Child management operations Who implements a list of components Child ordering Who should delete components Best structures for storing components