Pattern-Oriented Cluster: Comp 630/650/655

Slides:



Advertisements
Similar presentations
Object Oriented Game Framework Design Riz Verghese Joj.
Advertisements

ANU COMP2110 Software Design in 2003 Lecture 16Slide 1 Lecture 16: Introduction to design patterns 1What are they? 2Where do they come from? 3Why study.
Design Patterns Examples of smart use of inheritance and polymorphism: Composite Pattern State Pattern FEN 2014UCN Teknologi/act2learn1.
Object-Oriented Design Patterns Composite Singleton State Observer … Autumn 2012UCN Technology: IT/Computer Science1.
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
Fundamentals of Software Development 1Slide 1 Gang of Four The beginnings… The original “patterns” idea was from architecture – there are repeatable patterns.
Design and Programming Patterns Associated with Java Networking by Margaret Toews cs843, Spring 2003.
Design Patterns Daniel McClain. Background What are they?  Way of recording solutions to recurring design problems History  “A Pattern Language: Towns,
Introduction to Design Patterns (1). “ In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software.
Ralph Johnson - University of Illinois1 Patterns: What They Are, and How to Write Them Ralph Johnson University of Illinois at Urbana-Champaign
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Proxy Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Introduction to software design patterns For CSE 3902 By: Matt Boggus.
Design Patterns Trends and Case Study John Hurst June 2005.
Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.
Session 05: C# Patterns Algorithm Patterns: Sweep Search FEN AK IT: Softwarekonstruktion.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Copyright © 2014 Atego. Patterns INCOSE MBSE WG – Simon A. Perry - Atego.
Introduction to Design Patterns (1). Definition: “ In software engineering, a design pattern is a general reusable solution to a commonly occurring problem.
Chapter Five An Introduction to Design Patterns Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information.
Advanced topics in software engineering CSC532 Term Paper Design Patterns Harpreet Singh Submitted By:-
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
BTS430 Systems Analysis and Design using UML Design Patterns.
January 12, Introduction to Design Patterns Tim Burke References: –Gamma, Erich, et. al. (AKA, The Gang of Four). Design Patterns: Elements of Reusable.
ANU COMP2110 Software Design in 2004 Lecture 15Slide 1 COMP2110 in 2004 Software Design Lecture 15: Software design patterns (2) 1What are design patterns?
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
A Reference Model for Event Patterns Christian Silberbauer
D ESIGN P ATTERNS Weslei A. de T. Marinho. T ALK O UTLINE Pattern Definition GRASP Patterns GoF Patterns GoF Patterns Classification Creational Patterns.
Design Patterns Introduction to Design Patterns Eriq Muhammad Adams J. Mail : | Blog :
CSE 403 Lecture 14 Design Patterns. Today’s educational objective Understand the basics of design patterns Be able to distinguish them from design approaches.
CSE 432: Design Patterns Introduction What’s a Pattern? What’s an Idiom? According to Alexander, a pattern: –Describes a recurring problem –Describes the.
Security Patterns Template and Tutorial - Darrell M. Kienzle, Ph.D., Matthew C. Elder, Ph.D., David S. Tyree, James Edwards-Hewitt Presented by Dan Frohlich.
Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao
Session 07: C# Design Patterns
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
Duke CPS Programming Heuristics l Identify the aspects of your application that vary and separate them from what stays the same ä Take what varies.
Sakai UI Design Patterns Design Patterns WG 12-Jun-2007, 14:05 Marc Brierley.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
1 Lecture Material Design Patterns Visitor Client-Server Factory Singleton.
Slide design: Dr. Mark L. Hornick
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
GRASP – Designing Objects with Responsibilities
Design Patterns: MORE Examples
COMP2110 Software Design in lecture 14 Patterns(1) /Detailed Design
The Object-Oriented Thought Process Chapter 15
An Introduction to Patterns
GoF Patterns (GoF) popo.
Introduction to Design Patterns
Design Patterns Introduction
Chapter 5: Object Oriented Analysis and Design
Instructor: Dr. Hany H. Ammar
Web Programming Language
3. Object-oriented Design
Introduction to Design Patterns Part 1
Object Oriented Design Patterns - Creational Patterns
Patterns.
Object-Oriented Programming
Pattern-Oriented Cluster: Comp 630/650/655
DESIGNING YOUR SYSTEM.
CS 350 – Software Design An Introduction to Design Patterns – Chapter 5 A proposition behind design patterns is that quality of software systems can be.
DESIGN PATTERNS : Introduction
Lecture taken from “Design Patterns Explained” by Addison Wesley
What to Expect from Design Patterns
Pattern-Oriented Cluster: Comp 630/650/655
Introduction to Design Patterns
Design Patterns Imran Rashid CTO at ManiWeber Technologies.
Informatics 122 Software Design II
Software Design Lecture : 27.
Characterization Characterization refers to the way a writer develops his characters. A writer may use any or all of the following methods of characterization:
Presentation transcript:

Pattern-Oriented Cluster: Comp 630/650/655 About patterns Outline What’s a pattern? An example from fast food Comments on the “definition” Patterns and software development culture Pattern definition exercises 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Pattern-Oriented Cluster: Comp 630/650/655 What’s a pattern? Alexander’s characterization (quoted by Fowler) Recurring problem Environment in which it occurs Core of a solution Has been used successfully multiple times Can be used many times without ever doing it the same way twice Christopher Alexander wrote about patterns in building architecture His ideas have proved very popular among software developers Like all good ideas, the building architecture/software architecture analogy has been taken too far 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Example: fast food pattern Problem: people getting burned on hot drinks Environment: fast food restaurants Solution: print warnings on packaging Name: Achtung - Heiss 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Pattern-Oriented Cluster: Comp 630/650/655 Other solutions Solution: make in advance, heat to safe temperature when serving Name: Heat-n-Serve Solution: make drinks at safe temperatures Name: Low-Temperature Recipe 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

What’s the real problem? Heat-n-Serve and Low-Temperature Recipe are about preventing burns Achtung-Heiss is about preventing lawsuits 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Definition vs Characterization Definition: Duck Any of numerous relatively small and short-necked web-footed swimming birds of the family Anatidae. Characterization: Duck Walk: waddle Sound: quack Patterns characterize more than they define 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Comments on the characterization Patterns have consequences Some patterns go together Class Table Inheritance (285) usually implies Domain Model (116) Using a pattern can introduce other problems Developers often have trouble getting comfortable with Domain Model (116) Architecture patterns differ from GOF It’s all Indirection … GOF (Gang of Four == Gamma, Helm, Johnson, Vlissides) are OO Design patterns that (mostly) address recurring problems of implementing architecture patterns such as Fowler’s Domain Model (116) 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Patterns and software culture At best: gray heads use patterns to help younger people without being dogmatic At worst: pattern writers kill lots of trees At best: patterns make communication more efficient Huffman codes for architecture/design descriptions Can save effort in project design documentation At worst: patterns add confusion People may have different understandings of a pattern 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

More on patterns and culture Naming patterns is Really important Really hard Patterns are owned by the community Nobody invents patterns You can’t patent a pattern Patterns are “identified” or “discovered” Pattern writers depend on feedback Especially about naming, applicability, consequences 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655

Pattern-Oriented Cluster: Comp 630/650/655 One more comment … The analogy between building architecture and software architecture Can be helpful Can be over-used 12/1/2018 Pattern-Oriented Cluster: Comp 630/650/655