Course Notes
Computer Engineering

CSE776 - Design Patterns

Catalog of Design Strategies

image file not found image file not found image file not found
Pattern Presentations and Discussions are the Heart of this Course

Course Resources:

Syllabus, Lectures, Presentation Upload Instructions

Course Scope:

This seminar course is based on the book "Design Patterns", Gamma et. al. It is intended to provide a sophisticated look at Object Oriented Design methods with emphasis on conceptual understanding rather than writing a lot of code (this presumes you have already written a LOT of code in CSE681 and CSE687).

Students will make several presentations on patterns from the text and will write a small amount of supporting code. This work is conducted in teams of two students each. The presenting students and I jointly lead a discussion of each pattern following its presentation.

Prerequisites:

Either CSE681 - Software Modeling and Analysis or CSE687 - Object Oriented Design are required prerequisites. No exceptions without instructor's explicit permission, which is rarely granted.

Required Texts and Notes:

  1. Design Patterns, Elements of Reusable Object-Oriented Software, Erich Gamma, et. al., Addison-Wesley, 1994,
    ISBN 0-201-63361-2
  2. Student presentations available here, after the presentation, and will remain until the beginning of the next semester. www.ecs.syr.edu/faculty/fawcett/handouts/CSE776
  3. John Vlissides Patterns Home Page
    Presentation on Patterns (and more) by Erich Gamma
    Design Patterns Study Group

Books held in Sci-Tech Library:

  1. A copy of Design Patterns class text (above) is in the library, available while you wait for your book order to arrive.
  2. Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
  3. Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003
  4. Enterprise Integration Patterns, Gregor Hohpe, Bobby Woolf, Addison-Wesley, 2004
  5. Pattern-Oriented Software Architecture, Schmidt, et. al., Wiley, 2000
  6. Organizational Patterns of Agile Software Developement, James Coplien and Neil Harrison, Prentice-Hall, 2005

Presentation Resources:

Lectures Student Presentations Instructor Presentations Syllabus
File Download ScreenShot Project Upload Instructions
Collection of Plop papers from various conferences
Plop 2007 Conference Papers on-line
Plop 2006 Conference Papers on-line
Plop 2005 Conference Papers on-line
Input Output Pattern Language
Big Ball of Mud
Acyclic Visitor
Extension Object
Role Object
Value Object
Selfish Object
Security Patterns Repository
Customer Interactions
Restful Service Pattern
Pattern Catalog

Plop 4 - 1997 Conference Papers Table of Contents
Plop 3 - 1996 Conference Papers abstracts on-line
Hillside Group Site

Patterns Summary Patterns in a Nutshell Patterns Books
Survey of Design Patterns Design Patterns and Tips

Syllabus - Fall 2011:

At the end of each class next week's presenters will meet briefly with the instructor.
Syllabus for CSE776 - Design Patterns
Session Pattern Pattern Presenters
Monday
Pattern Presenters
Wednesday
Session #1a
MW, Aug 28,30
Introduction Jim Fawcett Jim Fawcett
Session #1b
MW, Aug 28,30
Abstract Factory - Example Presentation Jim Fawcett Jim Fawcett
Session #1c
MW, Aug 28,30
Assign Presentations Jim Fawcett Jim Fawcett
Holiday
MW, Sep 05,07
Labor Day No Class First presenters meet with Instructor
Session #2a
MW, Sep 12,14
Builder Kajal Kapoor, Snehal Gunjal Pratik Sule, Yateen Nikharge
Session #2b
MW, Sep 12,14
Singleton Priyank Kabaria, Robert Roach Anjali Banka, Miten Patwa
Session #2c
MW, Sep 12,14
Factory Method Jim Fawcett Jim Fawcett
Session #3a
MW, Sep 19,21
Prototype Parminder Singh, Drumil Bhattad Jian Zheng, Yu Chen
Session #3b
MW, Sep 19,21
Adapter Satyajeet Desale, Harshal Bhakta Ravi Kumar, Ajai Narayanan
Session #3c
MW, Sep 19,21
Bridge Jim Fawcett Jim Fawcett
Session #4a
MW, Sep 26,28
Composite Nitin Kapoor, Oluwaseye Jinadu Himanshu Gupta, Shashank Hegde
Session #4b
MW, Sep 26,28
Decorator Xi Chen, Xiang Chen Pooja Gore, Priya Dodwad
Session #4c
MW, Sep 26,28
Facade Mansi Barodia, Poorva Karandikar Shaoyuan Chen, Jim Fawcett
Session #5a
MW, Oct 03,05
Flyweight Yiou Li, Jingyi Ren Suchit Sundaram, Prasad Ubhalkar
Session #5b
MW, Oct 03,05
Proxy Agnelo Dcosta, Puneet Mittal Indranil Mitra, Krishna Nigalye
Session #5c
MW, Oct 03,05
Chain of Responsibility Amit Ahlawat, Rajit Rao Girish Balaiah, LogeshKumar
Session #6a
MW, Oct 10,12
Command Jim Fawcett Yu Jen, Jim Fawcett
Session #6b
MW, Oct 10,12
Interpreter Mubarek Mohammed, Aditya Patil, Harshal Bhakta Hariram Shankar, Ravi Kumar, Aravindh Manickavasagam
Session #6c
MW, Oct 10,12
Iterator Hao Meng, Awdesh Sharma Ashwin Kunder, Nandita Shekar
Session #7a
MW, Oct 17,19
Mediator Vignesh Sriram, Bliss Vaz Nandita Shekar, Sumukh Marasandra
Session #7b
MW, Oct 17,19
Memento Nijeel Parekh, Jim Fawcett Liu Fang, Jim Fawcett
Session #7c
MW, Oct 17,19
Observer Satyajeet Desale, Robert Roach, Puneet Mittal Rohan Shah, Himanshu Gupta, Krishna Nigalye
Session #8a
MW, Oct 24,26
State Priyank Kabaria, Parminder Singh, Prasad Ubhalkar Pratik Sule, Miten patwa; Suchit Sundaram
Session #8b
MW, Oct 24,26
Strategy Amit Ahlawat, Oluwaseye Jinadu Shaoyuan Chen, Ashwin Kundar, Jim Fawcett
Session #8c
MW, Oct 24,26
Template Method Drumil Bhattad, Snehal Gunjal Anjali Banka, Ajai Narayanan
Session #9a
MW, Oct 31,02
Visitor Kajal Kapoor, Nitin Kapoor, Vignesh Sriram Yateen Nikharge, Aravindh Manickavasagam, Jian Zheng
Session #9b
MW, Oct 31,02
Extension Object
PLOP 3, pg 79
Mubarek Mohammed, Aditya Patil, Awdesh Sharma Hariram Shankar, Indranil Mitra, Mitten Patwa
Session #9c
MW Oct 31,02
Role Object,
PLOP 4, pg 15
Poorva Karandikar, Agnelo Dcosta, Rajit Rao Shashank Hegde, Logeshkumar, Yu Chen
Session #10a
MW, Nov 07,09
Acyclic Visitor,
PLOP 3, pg 93
Jingyi Ren, Xi Chen Nandita Shekar, Prasad Ubhalkar
Session #10b
MW, Nov 07,09
Security Patterns Repository Mansi Barodia, Nijeel Parekh, Bliss Vaz, Ravi Kumar Girish Balaiah, Priya Dodwad, Ashwin Kunder, Rohan Shah
Session #10c
MW, Nov 07,09
Customer Interaction
PLOP 4, pg 26
Xiang Chen, Poorva Karandikar, Aditya Patel Ajai Narayanan, Shashank Hegde, Pooja Gore
Session #11a
MW, Nov 14,16
Patterns for Scripted Acceptance Test-Driven Development
PLOP 2007
Awdesh Sharma, Meng Hao, Harshal Bhakta Pooja Gore, Fang Liu, Jian Zheng
Session #11b
MW, Nov 14,16
Input and Output Pattern Language
PLOP 4, pg 503
Rajat Rao, Vignesh Sriram, Yiou Li, Nijeel Parekh Yu Chen, Yu-Chi Jen, Krishna Nigalye, Shaoyuan Chen
Session #11c
MW, Nov 14,16
Patterns for Agile Developent, PLOP 2006 Drumil Bhattad, Satyajeet Desale, Agnelo Dcosta Girish Balaiah, Himanshu Gupta, Sumukh Marasandra
No Classes
MW, Nov 21,23
Thanksgiving Holiday
Session #12a
MW, Nov 28,30
Restful Service Pattern
PLOP 1998
Jingyi Ren, Yiou Liu, Xi Chen Yateen Nikharge, Pratik Sule, Sumukh Marasandra
Session #12b
MW, Nov 28,30
Value Object/Selfish Object
PLOP 2006
Amit Ahlawat, Xiang Chen, Bliss Vaz Suchit Sundaram, Rohan Shah, Indranil Mitra
Session #12c
MW, Nov 28,30
Big Ball of Mud
PLOP 4, pg 653
Snehal Gunjal, Kajal Kapoor, Robert Roach Aravindh Manickavasagam, Priya Dodwad, Hariram Shankar
Session #13a
MW, Dec 05,07
Software Visualization Patterns Mubarek Mohammed, Mansi Barodia, Priyank Kabaria, Puneet Mittal, Oluwaseye Jinadu Mubarek Mohammed, Ravi Kumar, Angela Banka, Parminder Bela, Yu-Chi Jen
Session #13b
MW, Dec 05,07
Refactoring to Patterns
Chap7 - Simplification
Chap8 - Generalization
Nitin Kapoor, Jim Fawcett Logeshkumar, Jim Fawcett
Session #13c
MW, Dec 05,07
More on Pattern Languages
Where do we go from here?
Jim Fawcett Jim Fawcett
Class meets once each week for three hours.