Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design
Advertisements

CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812)
Introduction To System Analysis and Design
Fundamentals of Software Development 1Slide 1 Gang of Four The beginnings… The original “patterns” idea was from architecture – there are repeatable patterns.
Copyright © Active Frameworks, Inc.. - All Rights Reserved - V2.0 Introduction - Page L1-1 PS95&96-MEF-L1-1 Dr. M.E. Fayad Creationa l Paradigm.
Fall 2009ACS-3913 Ron McFadyen1 idea was first put forth by Christopher Alexander (1977) in his work on architectural design principles a pattern is a.
Eva TrosborgSlide no.: 1Elaboration Iteration 2 Object Oriented design and more patterns Fall 2005 UML Tools and UML as Blueprint (chapter 22, p 397)
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
The OOD Process Design as a Logical Continuation of Analysis.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Introduction To System Analysis and design
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Chapter 2: Approaches to System Development
Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Patterns 1 Patterns in OO - history 77 - Work of the architect Christopher Alexander 80s - Kent Beck playing with Smalltalk 91 - Gamma’s PhD thesis on.
CSSE 374: Introduction to Gang of Four Design Patterns
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
101 User Interface Patterns and its applications Tonya Groover Department of Computer Science.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Introduction To System Analysis and Design
BTS430 Systems Analysis and Design using UML Design Patterns.
Chapter 17. Initial Object Design Inputs: requirements meetings various Use Cases – 10% complete Key risks addressed with preliminary programming System.
Sept Ron McFadyen1 UML & Design Patterns Course outlineoutline /3 Advanced Systems Design.
Creational Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
CS 325: Software Engineering February 12, 2015 Applying Responsibility-Assignment Patterns Design Patterns Situation-Specific Patterns Responsibility-Assignment.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Y2 eProjects Session 4 – Advanced Topics. Objectives  Dynamic Models  Design Patterns (Optional)  Software testing (for S4) ACCP i7.1\Sem3_4\eProject\T4.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
GRASP: Designing Objects with Responsibilities
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
Design Patterns Introduction General and reusable solutions to common problems in software design SoftUni Team Software University
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
CS 160: Software Engineering October 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
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.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
CS251 – Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 و ابتغ فيما آتاك الله الدار.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
References: Applying UML and patterns Craig Larman
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 Good Object-Oriented Design Dr. Radu Marinescu Lecture 4 Introduction to Design Patterns.
GRASP – Designing Objects with Responsibilities
Introduction to Design Patterns
Software Design AITI GP John Paul Vergara.
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
Informatics 122 Software Design II
DESIGNING YOUR SYSTEM.
OBJECT ORIENTED ANALYSIS AND DESIGN
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Informatics 122 Software Design II
CIS 644  Object-Oriented Design and Development. (3) 
Presentation transcript:

Advanced Object-Oriented Design Patterns and Architectures Part One COEN396A John Xiao

Motivations It’s difficult to write good software It’s really difficult to write good, reusable software Where has OO failed to deliver? –where are the big success stories?

Course Home Page Information available at Course description Schedule Homeworks Handouts Patterns Project

Course Description Three primary topics: –design patterns –frameworks –component-based software engineering Advanced OO reuse constructs –Design –Implementation References at

Prerequisites Object-oriented analysis and design (Booch, Rumbaugh, Jacobson, UML) Object-oriented programming (C++, Java)

Patterns Project Team-oriented Pick pattern(s) Implementation in Java (Beans)

Patterns Project 30 minute class presentation –demo the pattern/discuss issues Prepare homework assignment –concrete design/implementation –reflective component Web page –summary, details, links to info Review –review other teams

Possible Groupings observer,mediator abstract factory,building,factory method prototype,singleton,flyweight adapter,bridge,decorator façade,interpreter state,strategy,template method composite,iterator,visitor command,interpreter OR memento, serialization visitor critiques

Deliverables Presentation Assignment Assignment Solution Web page Review

Deadlines See Syllabus

Patterns of Learning Successful solutions to human endeavors are often rooted in patterns Example: becoming a chess master –first learn the rules and physical requirements (pieces, legal moves, board layout, etc) –then learn principles (relative value of pieces, value of center squares, etc) –to become master: study games of other masters memorize their playing patterns –there are hundreds/thousands of patterns

Becoming a software design master first learn the rules (algorithms, data structures, languages) then learn principles (structured programming, object-oriented programming, functional programming) to become master: study designs of other masters memorize their designing patterns, apply them repeatedly there are hundreds/thousands of patterns

OOA Review OOA –Requirement Analysis –Use Cases/Use Case Diagrams High-level vs. expanded Essential vs. real –Conceptual Model/Class Diagrams Concepts/Classes Attributes Associations/Associative Type Aggregation(Composite/Shared) Generalization –System Sequence Diagrams –Contracts

OOD Review OOD –Interaction Diagrams (e.g. Collaboration Diagrams) (from real use cases) Design patterns Visibility (attribute/parameter/local/global) –Design Class Diagrams … Interfaces Methods Navigability Attributes type info

Design level reuse szyperski Sharing consistency: programming languages Sharing concrete solution fragments: libraries Sharing individual contracts: interfaces Sharing individual interaction architectures: patterns Sharing architectures: frameworks Sharing overall structure: system architectures Systems of subsystems: framework hierarchies

Patterns vs Frameworks vs Components patterns support reuse of software architecture and design capture static and dynamic structure and collaborations of successful solutions to common problems frameworks/components support reuse of detailed design and code an integrated set of software constructs that collaborate to provide a reusable architecture for a family of related applications

Design Patterns Gamma, Helm, Johnson, Vlissides (GOF) Studied “super programmers” Catalogued patterns Design patterns solve problems that are: –in every single program you will ever write Generic problem/Generic solution Specific problem/customization of generic solution

What is a pattern? Description of a problem/solution pair in a certain context Originate from architecture –Christopher Alexander 1977 –Explicit design expertise and experience Designing a house versus designing a program Building a house versus building a program

Pattern Format Format –Name –Context –Problem –Solution –…. Kinds –architectural (overall description) –design patterns (design problems) –idioms (language specific)

Example: Singleton See book

Patterns Review Expert Creator Controller Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Law of Demeter