What's all going around ?!? Hamed Shayan www.ChrisShayan.com.

Slides:



Advertisements
Similar presentations
Copyright © 2002 Systek Workshop SCEA for J2EE.
Advertisements

Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
Wrap-upCSC4071 CSC407 Wrap-Up. wrap-upCSC4072 Assignment #2/3 (pre-deductions) Average = 67%, S.dev. = 12.5%, max = 90%
18-1 Verifying Object Behavior and Collaboration Role playing – the act of simulating object behavior and collaboration by acting out an object’s behaviors.
J2EE Design patterns Sharath Sahadevan August 8, 2002 St Louis Java SIG.
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
Design Patterns CS is not simply about programming
Design Patterns. What are design patterns? A general reusable solution to a commonly occurring problem. A description or template for how to solve a problem.
© 2006 IBM Corporation SOA on your terms and our expertise Discovering the Value of SOA SOA In Action SOA & End-2-End Business Driven Development using.
Software Design Patterns Anton Danshin Moscow Institute of Physics and Technology Dolgoprudny
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Before Service Oriented Architecture SiloedClosedMonolithicBrittle News Agency #1 News Agency #2News Agency #3 MarketingSalesCRMFinance Date Warehouse.
Before Service Oriented Architecture SiloedClosedMonolithicBrittle News Agency #1 News Agency #2News Agency #3 MarketingSalesCRMFinance Date Warehouse.
Design Patterns Alan Shalloway, James Trott, Design Patterns Explained, Addison-Wesley, Gamma, Helm, Johnson, Vlissides, Design Patterns, Elements.
Design Patterns Trends and Case Study John Hurst June 2005.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
樣式導向設計 (Pattern-Oriented Design) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Moving the RFID Value Chain Value Proposition Cost and Complexity What is it? (passive RFID) Where is it? (active RFID) How is it? (Sensors) Adapt to it.
Software Architecture April-10Confidential Proprietary Click to edit Master text styles Second level Third level Fourth level Fifth level Software Architecture.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
January 12, Introduction to Design Patterns Tim Burke References: –Gamma, Erich, et. al. (AKA, The Gang of Four). Design Patterns: Elements of Reusable.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Object Oriented Software Engineering Chapter 16 and 17 review 2014/06/03.
CSE 403 Lecture 14 Design Patterns. Today’s educational objective Understand the basics of design patterns Be able to distinguish them from design approaches.
Testing Extensible Design Patterns in OO Frameworks through Scenario Templates D.S. Sanders Software Verification & Validation.
Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
Creational Patterns
Chapter 01 : 디자인 패턴 개요. chapter 01 : 디자인 패턴 개요.
What to know for the exam. Smalltalk will be used for questions, but there will not be questions about the grammar. Questions might ask – how particular.
CS616: Software Engineering Spring 2009 Design Patterns Sami Taha.
© 2011 Autodesk Popular Design Patterns and How to Implement Them in.NET Gopinath Taget Senior Developer Consultant.
S ystem P rogrammers' A ssociation for R esearching C omputer S ystems Design Pattern Study KAIST
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 7 1COMP9321, 15s2, Week.
Design Patterns. 1 Paradigm4 Concepts 9 Principles23 Patterns.
Design Patterns Introduction
CS251 – Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 و ابتغ فيما آتاك الله الدار.
Five Minute Design Patterns Doug Marttila Forest and the Trees May 30, 2009 Template Factory Singleton Iterator Adapter Façade Observer Command Strategy.
7 April 2004CSci 210 Spring Design Patterns 2 CSci 210.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
Structure of a web application
The Object-Oriented Thought Process Chapter 15
Chapter 10 Design Patterns.
樣式導向設計 (Pattern-Oriented Design) 課程簡介
Chapter 5:Design Patterns
Gang of Four’s Design Patterns for Microservices
Introduction to Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
Design Patterns Introduction
object oriented Principles of software design
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
How to be a Good Developer
CSE 403 Software Design.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
DESIGN PATTERNS : Introduction
CIS 644 Tues. Nov. 30, 1999 W15A … patterns.
Chapter 8, DesignPatterns Facade
Presentation transcript:

What's all going around ?!? Hamed Shayan

Pattern in google Coplien, J.O. and B.C. Schmidt. Pattern Languages of Program Design. Reading, MA: Addison-Wesley, "Projects fail despite the latest technology for lack of ordinary solutions"

Etymology: Middle English patron, from Anglo- French, from Medieval Latin patronus Date: 14th century a form or model proposed for imitation What’s pattern as a word? a repeated decorative design

What’s Pattern in Computer Science? Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution. —Christopher Alexander Each pattern is a three-part rule, which expresses a relation between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain software configuration which allows these forces to resolve themselves. —Richard Gabriel A pattern is an idea that has been useful in one practical context and will probably be useful in others. —Martin Fowler

Pattern in nutshell Patterns are observed through experiencePatterns are typically written in a structured formatPatterns prevent reinventing the wheelPatterns exist at different levels of abstractionPatterns undergo continuous improvementPatterns are reusable artifactsPatterns communicate designs and best practicesPatterns can be used together to solve a larger problem

Categorizing Patterns Design Patterns Architectural patterns Structural patterns Behavioral patterns Analysis patterns Creational patterns

Tiered Approach Client Tier Application clients, applets, applications and other GUIs Presentation Tier JSP, Servlets and other UI elements Business Tier EJBs and other business objects Integration Tier JMS, JDBC, Connectors, and Legacy Resource Tier Databases, external systems, and legacy resources User interactions, UI presentation, devices SSO, session management, content creation, format and delivery Business logic, transactions, data, and services Resource adapters, legacy, External systems, rules Engines, workflow Resources, data and external services

Liferay Enterprise Portal Apache Portal Bridge iparadise-web ERP-object-model.jar iparadise-logging iparadise-security ERP-GUIs-based-on-portlet.war (based on struts) ERP-GUIs-based-on-portlet.war (based on struts) iparadise-chain-of-responsibility Apache COR iparadise-CRUD-generics iparadise-business-facade iparadise-business iparadise-common-business iparadise-persistence-manager iparadise-business ERP-business.jar(s) (based on EJB, Session Bean, Stateless) ERP-business.jar(s) (based on EJB, Session Bean, Stateless) Hibernate.org JDBC Java OLAP iparadise-CRUD-generics (POJO based) Spring-core ( DI and AOP) iparadise-common-business ERP-business.jar(s) (based on Comand Pattern) ERP-business.jar(s) (based on Comand Pattern) iparadise-commons

Patterns GoF Creational Abstract Factory Builder Factory Method Prototype Singleton Structural Adapter Bridge Composite Decorator Facade Flyweight Proxy Behavioral Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Service Oriented Architecture SOI Choreography ESB Orchestration BPEL Monitoring BAM Methodology Governance Product Realization Communications Project Management Data Management Service Management Human Resource Management

iParadise Development Style Pattern Tier 1 Primary Tier Tier 2 Framework Tier Tier 3 Services Tier Tier 4 Application Tier

Primary Tier Source Control such as SVN Repository Manager such as Apache Nexus Build System and Dependency Manager such as Apache Maven 2+ Behavioral Driven Development tools such as JBehavior Continuous Integration tool such as Cruise Control Web Content Management System such as Alfresco Community Control Project tool such as XPlanner Issue tracking tool such as track+ Software Team Enterprise Web Portal

Before Service Oriented Architecture SiloedClosedMonolithicBrittle Manufacturer #1 Manufacturer #2Manufacturer #3 MarketingSalesCRMFinance Date Warehouse External Partner Check Customer Status Determine Product Availability Check Customer Status Determine Product Availability Verify Customer Credit Order Status Calculate Shipping Charges Order Status Check Credit

After Service Oriented Architecture Shared ServicesCollaborativeInteroperableIntegrated MarketingSalesCRMFinance Date Warehouse External Partner Document Library & Image Gallery Content Management System Message Boards Blogs Wiki calendar Polls Administration Single Sign On Chat and IMs Composite Services Order Processing Account Management Service Scheduling Bid Management Human Management Composite Business Processes Reusable Service Create Invoice Check Customer Status Check Order Status Reusable Service Check Inventory Check Credit Reusable Service