Upcoming SlideShare
Loading in...5




Object-oriented analysis and design(OOAD) and Design Pattern Slides UML Slides. for more slides refer

Object-oriented analysis and design(OOAD) and Design Pattern Slides UML Slides. for more slides refer



Total Views
Views on SlideShare
Embed Views



1 Embed 1 1


Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Introduction Introduction Presentation Transcript

  • Design Patterns
  • Main Objective
    • Motivation
    • Design patterns
    • Classification
    • Selected Patterns
    • Selecting and Using Design Patterns
  • Motivation REUSE To develop reusable software To reduce the depth of Class hierarchy To develop high cohesive classes
  • Patterns Background
    • What is a Pattern ?
      • A pattern is an abstract concrete form which keeps recurring in specific contexts
      • “ Patterns = Problem/solution pairs in a context”
      • Patterns capture the static and dynamic structure and collaboration among key participants in software designs
      • Patterns facilitate reuse of successful software architectures and designs
  • Qualities of Software Pattern
    • Encapsulation and Abstraction
    • Inheritance & composability
  • Reuse Types
    • Source code
    • Executables
    • Object code
    • Personnel
    • Design
  • Approaches of Reusability
    • Library routines
    • Overloading
    • Generic code / structures
    • Black box reuse ( composition )
    • White box reuse ( inheritance )
    • Toolkits: architecture independence
    • Frameworks: rigid architecture
    • Patterns: Problem, context & solution
  • Toolkits
    • Often an application will incorporate classes from one or more libraries of predefined classes called toolkits.
    • Set of related and reusable classes,Designed to provide useful general purpose functionality
      • E.g.: Set of classes for Lists, associative tables, stacks.
  • Framework
    • Frameworks provide domain specific functionality- e.g. business application, telecommunication application, window system, distributed applications etc.
    • It is semi-complete applications
    • // complete applications are developed by inheriting form and instantiating parameterized framework components
    • Set of co-operating classes that make up a reusable design for a specific class of software systems
      • Graphical editors for Multimedia domains like artistic drawing , music composition and CAD
      • Compilers for different programming language and target machines
  • Framework
    • Dictates architecture
    • Captures design decisions common to application domain
    • Emphasizes design reuse over code reuse
  • OO Frameworks
  • Frameworks v/s Design Patterns
    • Design patterns are more abstract than frameworks.
    • - frameworks can be embodied in code but example s of patterns can be embodied in code
    • Design patterns are smaller architectural elements than frameworks.
    • - a typical framework contains several design patterns, but the reverse is never true
    • Design patterns are less specialized than frameworks. – patterns are independent of application
  • Design Patterns Description
    • Description of communicating objects and classes, their roles and collaborations, and the distribution of responsibilities.
    • customized to solve a general design problem in a particular context
    • names, abstracts and identifies key aspects of a common design structure
      • useful for creating reusable object oriented design
    • Focuses on a particular object oriented design problem or issue
  • Essential Element
    • Name
    • Problem
    • Solution
    • Consequences
    • Documentation & illustration Purpose
      • Intent
      • Motivation
      • applicability
      • structure
      • Consequences
      • Sample Code
  • Classification
    • Purpose
      • Creational - concern process of object creation
      • Structural - deal with composition of classes or object
      • Behavioral - characterize ways in which classes or objects interact and distribute responsibility
    • Scope
      • class
      • object
  • Design Pattern space
  • Session No Name Type Session 1 Factory Method Creational Session 2 Strategy Behavioral Session 3 Decorator Structural Session 4 Composite Structural Session 5 Iterator Behavioral Session 6 Template Method Behavioral Session 7 Abstract Factory Creational
  • Session No Name Type Session 8 Builder Creational Session 9 Singleton Creational Session 10 Proxy Structural Session 11 Adapter Structural Session 12 Bridge Structural Session 13 Mediator Behavioral Session 14 Observer Behavioral
  • Session No Name Type Session 15 Chain of Responsibility Behavioral Session 16 Memento Behavioral Session 17 Command Behavioral Session 18 Prototype Creational Session 19 State Behavioral Session 20 Visitor Behavioral Session 21 Facade Structural Session 22 Flyweight Structural
  • Patterns concluding I am top of the world!!
  • Selecting a Design Patterns
    • Consider how design patterns solve design problem
    • Scan intent section
    • Study how patterns interrelate
    • Study patterns of like purpose
    • Consider what should be variable in your design
    • Examine a case of Redesign
  • Summary
    • Reusable elements in a design
    • Recurring similarity
    • Increase representational power
    • Favour object composition over class inheritance
    • Delegation of an underlying principle
    • Use Design Patterns whenever possible