Download presentation
Presentation is loading. Please wait.
Published byClementine Fletcher Modified over 8 years ago
1
Design Patterns: Summary and Next Steps Y. NARAHARI Computer Science and Automation INDIAN INSTITUTE OF SCIENCE Bangalore – 560 012 hari@csa.iisc.ernet.in
2
Design Patterns Analysis to Design Model Analysis to Design Model Best Design Practices to be used by everyone Best Design Practices to be used by everyone Provide a common vocabulary Provide a common vocabulary Documentation/ Learning Aid Documentation/ Learning Aid Find appropriate Objects Find appropriate Objects Design of application programs, toolkits, frameworks, middleware Design of application programs, toolkits, frameworks, middleware Everyday life Everyday life
3
Current Scenario CASE tools are being developed CASE tools are being developed Pattern Specification Languages Pattern Specification Languages Mining of Patterns Mining of Patterns Discovering Patterns from Code Discovering Patterns from Code Domain Specific Patterns Domain Specific Patterns Patterns for Concurrent/Distributed Computing, Embedded Computing Patterns for Concurrent/Distributed Computing, Embedded Computing
4
Myths About Design Patterns It is enough to know about DPs It is enough to know about DPs Analysis Architecture Data Structures Algorithms Technologies DPs solve all problems DPs solve all problems Complete automation is possible Complete automation is possible
5
Space of Patterns Analysis Patterns Analysis Patterns Architectural Patterns Architectural Patterns Design Patterns Design Patterns Idioms Idioms Anti-Patterns Anti-Patterns Meta-Patterns Meta-Patterns Domain Specific Patterns Domain Specific Patterns Architecture Specific Patterns (J2EE, CORBA, Web Services) Architecture Specific Patterns (J2EE, CORBA, Web Services) Continuously Evolving Continuously Evolving
6
Design Best Practices Program to Interface Program to Interface Interface implementation Interface implementation Postpone binding Postpone binding Postpone object creation Postpone object creation Effective use of polymorphism Effective use of polymorphism Effective use of reuse mechanisms Effective use of reuse mechanisms Decouple senders and receivers Decouple senders and receivers Classes should be neither tightly coupled nor loosely coupled but optimally coupled Classes should be neither tightly coupled nor loosely coupled but optimally coupled Encapsulate variation Encapsulate variation
7
Design Best Practices (Contd) Objects as arguments Objects as arguments Recursive composition Recursive composition Transparent Enclosure Transparent Enclosure Single Child Composition Single Child Composition Correct use of hierarchy Correct use of hierarchy Design for change Design for change Create objects indirectly Create objects indirectly
8
To Probe Further: Books Gamma’s book – Java Version Gamma’s book – Java Version Martin Fowler – Analysis Patterns Martin Fowler – Analysis Patterns Buschmann et al - Pattern Oriented Software Architecture (Volume 1) Buschmann et al - Pattern Oriented Software Architecture (Volume 1) Douglas Schmidt et al – Patterns for Concurrent and Distributed Systems Douglas Schmidt et al – Patterns for Concurrent and Distributed Systems Arthur Riel – OO Heuristics Arthur Riel – OO Heuristics Mary Shaw and David Garlan – Software Architecture Mary Shaw and David Garlan – Software Architecture Jim Conallen – Web Applications using UML Jim Conallen – Web Applications using UML
9
To Probe Further: Websites Patterns Homepage http://hillside.net/patterns/ Patterns Homepage http://hillside.net/patterns/ Homepages of Douglas Schmidt, Martin Fowler, Mary Shaw, Buschmann Homepages of Douglas Schmidt, Martin Fowler, Mary Shaw, Buschmann http://lcm.csa.iisc.ernet.in/hari http://lcm.csa.iisc.ernet.in/hari http://lcm.csa.iisc.ernet.in/hari http://www.rational.com http://www.rational.com http://www.rational.com
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.