About the Author A Lifetime of Software Development Started Writing Code at Age 11 Programming Summer Camp at Age 12 Writing Code Ever Since At Age 25,

Slides:



Advertisements
Similar presentations
Tag and Attribute Understanding appropriate citations and copyrights using creative commons licenses. Marcus Clark.
Advertisements

12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Sources  Cay Horstmann, Computing.
EngageNY.org ©2012 Core Knowledge Foundation. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
P2P and NAT How to traverse NAT Davide Carboni ©
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
Figures – Chapter 7.
Chapter 7 – Object-Oriented Design
CP — Concurrent Programming 8. Liveness and Asynchrony Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
ESE Einführung in Software Engineering N. XXX Prof. O. Nierstrasz Fall Semester 2009.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
The Software Composition Group Prof. O. Nierstrasz
ESE Einführung in Software Engineering
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
CP — Concurrent Programming 12. Petri Nets Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Metamodeling Seminar X. CHAPTER Prof. O. Nierstrasz Spring Semester 2008.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
N. XXX Prof. O. Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
© S. Demeyer, S. Ducasse, O. Nierstrasz Chapter.1 MakeMoney Corp. C*O of MakeMoney Corp. Our Vision  We invest in software  We do not know software 
OORPT Object-Oriented Reengineering Patterns and Techniques X. CHAPTER Prof. O. Nierstrasz.
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Façade Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Win8 on Intel Programming Course The challenge Paul Guermonprez Intel Software
A Behavior Object Pattern
1 4/97 Object-Oriented Design Workshop Week 6: Some Patterns for Implementing Associations, Part 1 David Van Camp Object Technology Consultant Software.
©2013 Core Knowledge Foundation. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Creative Commons Creative Commons Wanna Work TogetherWanna Work Together Video What is Creative Commons? An alternative to.
Facade Introduction. Intent Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
© 2009 Michigan State University licensed under CC-BY-SA, original at Traceability.
Creative Commons. GETTING MATERIALS Materials ARE USUALLY NOT FREE. They are usually SUBJECT TO COPYRIGHT and shouldn´t be used without payment. You should.
Copyright and CopyLeft. Art and Ownership 1710: Statute of Anne ‘A bill for the encouragement of learning and for securing the property of copies.
1 OER Sensitization Workshop Open University of Sudan November, 2011 OER Africa Open Educational Resources.
The PHEA Educational Technology Initiative. Project Partners PHEA Foundations – Ford, Carnegie, Kresge, MacArthur South African Institute for Distance.
Win8 on Intel Programming Course Paul Guermonprez Intel Software
Providing Access to Your Data: Rights Robert R. Downs, PhD NASA Socioeconomic Data and Applications Center (SEDAC) Center for International Earth Science.
FacadeDesign Pattern Provide a unified interface to a set of interfaces in a subsystem. Defines a high level interface that makes the subsystem easier.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
What does IP mean for educators? Teaching with technology.
State of the Ward in 2007 Version 1.0 A Fifth Sunday Lesson Given in the Sterling Park Ward, Ashburn, VA Stake by D. Calvin Andrus, Bishop
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Design of Everyday Things Part 2: Useful Designs? Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Images from:
The Mediator Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
CP — Concurrent Programming 6. Liveness and Guarded Methods Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Watching the movie the hard way…. Page 256 – Head First Design Patterns.
Your Copyright Crash Course! April Tafolla Adame Elementary September 2011.
Launching the Dean digitally : the Jonathan Jansen Collection in UPSpace eIFL.net in co-operation with the Research Library Consortium Institutional repositories.
Images of pesticides By: Leslie London, University of Cape Town This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5.
Digital Ecosystems supporting growth and SMEs 1st cluster meeting Results and commitments 1st cluster meeting Results and commitments.
An object's behavior depends on its current state. Operations have large, multipart conditional statements that depend on the object's state.
CS 350 – Software Design The Facade Pattern – Chapter 6 Many design patterns are catalogued in the “Gang of Four” text. I find their definitions not to.
Copyright Crash Course Laura Rivera EDTC
OBSERVER PATTERN OBSERVER PATTERN Presented By Presented By Ajeet Tripathi ISE
EngageNY.org ©2012 Core Knowledge Foundation. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
Patterns An Easier Way to Think About Common Software Designs This presentation is licensed under a Creative Commons License.
Design Patterns: MORE Examples
CS 350 – Software Design The Facade Pattern – Chapter 6
Presented by Igor Ivković
FOTW Worksheet Slides Christopher Penn, Financial Aid Podcast Student Loan Network.
Mediator Design Pattern (Behavioral)
Object Oriented Design Patterns - Behavioral Patterns
Presented by Igor Ivković
Presentation transcript:

About the Author A Lifetime of Software Development Started Writing Code at Age 11 Programming Summer Camp at Age 12 Writing Code Ever Since At Age 25, Realized People Pay For This A Lifetime of Hacking Welding; MIG, TIG, and Gas Metal Machining Circuit Hacking Woodworking, Plumbing, Electrical

Patterns An Easier Way to Think About Common Software Designs This presentation is licensed under a Creative Commons License.

The Carburetor Pattern The thing between the air filter and the intake manifold that mixes fuel and air and regulates the flow of the air/fuel mixture. This presentation is licensed under a Creative Commons License.

The Carburetor Pattern Holley Street/Strip 750 CFM Four Barrel Carb This presentation is licensed under a Creative Commons License.

The Carburetor Pattern Carburetor This presentation is licensed under a Creative Commons License.

The Facade Pattern The class between the client and the backend classes that hides the complexity of the backend classes to make it easier for the client to use the backend classes. This presentation is licensed under a Creative Commons License.

The Facade Pattern galaxy.framework.model.domain.util.PersistenceHelper This presentation is licensed under a Creative Commons License.

The Facade Pattern Facade This presentation is licensed under a Creative Commons License.

Patterns are Platform Independent Since you're not thinking about implementation details, patterns are independent of any particular platform or programming language. This presentation is licensed under a Creative Commons License.

The Bumper Pattern This presentation is licensed under a Creative Commons License.

The Bumper Pattern The bumper pattern is platform independent. This presentation is licensed under a Creative Commons License.

Patterns Simplify Communication Patterns make it easier to think about, design, and talk about software. This presentation is licensed under a Creative Commons License.

The Collection Pattern Intent How do you model a one to many relationship? Solution 1. Make a Collection Object 2. Usually encapsulates a linked list or queue 3. May be ordered or unordered Consequences * Usually used to implement uni-directional relationships * Most common form of Relationship Object This presentation is licensed under a Creative Commons License.

The Collection Pattern Two “Car Trunk” Implementations of The Collection Pattern This presentation is licensed under a Creative Commons License.

The Facade Pattern Intent Encapsulate a subsystem using a high-level interface, simplifying subsystem usage and hiding structural details. Solution 1. Clients communicate with subsystem objects by calling methods in Facade 2. Clients never (or as seldom as possible) directly accessing objects in subsystem -- any such access weakens the encapsulation 3. Subsystem objects usually retain no knowledge of client 4. Subsystem objects do not normally maintain any reference to Facade This presentation is licensed under a Creative Commons License.

The Facade Pattern The “Give Me Money” and “Start the Car” implementations of the facade pattern. This presentation is licensed under a Creative Commons License.

The Observer Pattern Intent Define relationship between a group of objects such that whenever one object is updated all others are notified automatically. Applicability * Changes to one object in a group requires changes to the others in the group * The number of objects in the group may vary * Loose coupling is desired between the objects in the group This presentation is licensed under a Creative Commons License.

The Observer Pattern The “Security Guard” implementation of the observer pattern. This presentation is licensed under a Creative Commons License.

Thank You You are free: * to copy, distribute, display, and perform the work. * to make derivative works. * to make commercial use of the work. Under the following conditions: Attribution: You must give the original author credit. Share Alike: If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. * For any reuse or distribution, you must make clear to others the license terms of this work. * Any of these conditions can be waived if you get permission from the author. Your fair use and other rights are in no way affected by the above. This is a human-readable summary of the Legal Code (the full license). Copyright 2003 Robert Bushman This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.