Essence Of Patterns

Seminar on Essence Of Patterns at Mumbai National Book Fair 2005-2006 , Cross Maidan, Mumbai , Maharashtra , India

Event

Seminar on Essence Of Patterns conducted at Mumbai National Book Fair 2005 - 2006.

Venue

Cross Maidan, Mumbai, Maharashtra, India.

Organizers

Mumbai Book Sellers and Publishers Association.

Speaker

Mr. Rajesh Patkar (M.E. computers) , Director Rajesh Patkar Institute

This seminar presents a high level perspective of Design Patterns. It emphasises the role of patterns in Design and illustrates that patterns are present and can be used in almost all the Knowledge Areas. For instance apart from their use in Software, patterns have been used in Music and Architecture.

The whole seminar is divided into 24 parts.To get the best result see the videos in the Video PlayList Sequentially.

Welcome Speech

Mr. Jigar Thaleshwar and Ms. Ruta Thakkar ( Pithwa ) the Event Anchors, welcomes the participants on behalf of Rajesh Patkar Institute. Special thanks to Mumbai Book Sellers and Publishers Association for Organizing "Mumbai National Book Fair" and inviting us for special event "Essence Of Patterns"

Mr. Jigar Thaleshwar is a management graduate and apart from a very successful profession career he is also actively interested in performing arts especially Dance. He is founder of "Sony School Of Garba Dance". Mr. Jigar Thaleshwar is currently General Manager -India ( Sales & business development ) Deccan Charters Limited.

Ms. Ruta Thakkar ( Pithwa ) is an Engineering graduate and has an illustrious career in IT industry. She is currently Director Automation & Tooling , Diebold Nixdorf.

Felecitation

Mr. Fernandis and Mr. Varad from Mumbai Book Sellers and Publishers Association felicitate Mr. Rajesh Patkar from Rajesh Patkar Institute Of Software Engineering.

Prologue

Missed Deadline, lack of quality manpower and low quality software development are some of the several problems Softwere Industry is facing.We are in search for some fundamental solution that would solve some of these problems. Pattern movement offers glimmer of hope.

In this clip Ruta emphasises the current state of affairs in IT Industry and sets the premises for the seminar which discusses patterns. Lets explore the pattern space and see what it has to offer us.

Introduction to Essence of Patterns

Mr. Rajesh Patkar introduces patterns and the agenda of the Seminar.

Prisoners of the Past

Developers take design decisions. With each decision we not only buy its features but also the limitations. This clip highlights this fact. and suggests that Design Pattern can help us take design decisions where we can maximise the benefits and minimise the constraints.

Patterns Standard Definition

The standard definition of patterns states that "Pattern is a solution to a problem in context". There are three keywords here.

  1. Context
  2. Problem
  3. Solution

This clip gives you an overview of these terms

Name and Consequences

Every pattern opts for certain design decisions. This inevitably results in some limitations. Not only must one know the benefit of a pattern but one must also be aware of the Consequence of using a pattern in the overall scheme of things.

Adapter Pattern Overview

Adapter is a very commonly used pattern. It is widely used to solve the problem of Interface mismatch. This clip gives and overview of Adapter Pattern.

Proxy and Decorator Overview

Proxy and Decorator are both very widely used patterns. This clip gives an overview of Proxy pattern and gives a passing by reference to Decorator pattern in terms of proxy. Both Proxy and Decorator depend have constraint of Transparency form the customer's perspective.

Composite Pattern

Composite pattern uses a combination of IS-A and HAS-A relationship. It provides both structural and functional recursion. The accompanying video clip provides the overview.

Pattern as a Building Block

Pattern can be considered as a building block . Patterns offer higher level of abstraction. To become pattern oriented on has to start thinking in terms of patterns. If pattern is considered as a basic building block then one can start assembling patterns to create larger structures.

See the clip to get the feel of it.......

To know more about Pattern as a Building Block read the following article.

Pattern Life Cycle

Applying Patterns

Knowing patterns is just the beginning. True ownership comes when we apply patterns and create our solutions.

Patterns, Patterns Everywhere

Patterns are not just found in Software. Infact it is in the field of Architecture that Mr. Cristopher Alexander explored patterns. Mr. Kent Beck brought it to software field.

However , patterns are everywhere. They can be found in Indian classical music in forms of RAGAS for hundred of years.

Idioms

Three levels of granularity for patterns.


  1. Idioms ( Small mostly language specific )
  2. Design Patterns ( Middle level )
  3. Architectural Patterns ( Patterns which define and characterize the whole system )

Four Patterns Related Activities

Four Pattern related activities

  1. Applying Patterns
  2. Mining Patterns
  3. Documenting Patterns
  4. Creating Patterns.

Wise Man

A wise man ( Kent Beck ) with a camel ( Pattern ) has changed the way we do design. He has done it without changing anything and yet changing everything. Pattern can act as catalyst.

Seminar Conclusion by Ms. Ruta

Ruta informs the participants about the follow through activities after the seminar.

Interview - Anand and Krishnan

Interview - Dhiraj and Francy

Interview - Kaushik and Purav

Interview - Vipul and Krishnadas

Interview - Bharat Kini

Peer to Peer Interaction

Seminar Pics

We thanks all the Organizations, Institutions and Individuals who made this event a success. This photo album will help us cherish those moments.

This event evangelized Patterns. Pattern Oriented thought process must be a part of every serious designer. We hope that this event will encourage you to get involved in the four activities related to patterns.


  1. Applying Patterns
  2. Mining Patterns
  3. Documenting Patterns
  4. Creating Patterns

A Pattern a day keeps Entropy away.

Paper on Essence of Patterns

Pattern is a solution to a problem in context. It is a unit of expression that captures experience and enables reuse. It is relevant to all modern crafts including Software Development

Action packed Software Industry has its own set of problems. Technology is getting sophisticated, problems are growing complex, and software professionals are struggling with deadlines. The rate of change of contextual environment underlying the developmental activities is alarmingly high.Patterns offer a shimmer of hope.

Abstraction has always been an effective tool against complexity. Every engineering discipline offers a set of fundamental building blocks. Engineers use this off-the-self fundamental building blocks to create their products.This set of fundamental building blocks and the principles governing their use, form the context within which the product formation in envisioned. The pace of evolution of Software Engineering is unsettling from the building block's perspective.There always seems to be a need for better abstractions.

A prospective Pattern is formed when an engineer identifies a particular configuration of basic building blocks achieving a well defined motive. This newly discovered Pattern becomes graduated, if it can be re-purposed in a variety of applications while still retaining it's configuration. Graduated Patterns are named, documented and communicated for wider adoption. Successful patterns find place in widely distributed Pattern Catalogs. Patterns offer higher level of abstraction and are a larger unit of construction in comparison to the fundamental building blocks. In the process of evolution successful patterns are directly supported in the contextual environment and they eventually become fundamental building blocks. When a pattern becomes a fundamental building block it is no longer a pattern. The following diagram depicts Life Cycle of a Pattern

Pattern building is a technique which every good engineer needs to acquire. Patterns form the modern building blocks. They encourage and cultivate refined thought process. Patterns allow rapid design prototyping and elegant implementations.Patterns are not just limited to the design phase of Software Development. They are relevant to all phases of software development. From requirement specifications to maintenance, patterns and pattern languages are coming to life.For instance, there are patterns for Use Case( UML) formation and there are also patterns for GUI designs.


Patterns vary in size and scope. Be it a small elegant coding technique or an intimidating software architecture, patterns capture them all. However it is not enough to know patterns. What's more important is to be able to harness its power in day-to-day solutions. Applied in the programming context, small patterns are referred to as Idioms. Large patterns that can characterize entire systems are referred to as Architectural patterns. All patterns between this two extremes are design patterns.

Judicious use of patterns has been proved to deliver the following benefits

  • Rapid Design Prototyping
  • Increased Reliability
  • Effective Communication
  • Increased Reuse
  • Compact and Complete Documentation


Software Design

It is not always possible to express a Software Design completely in terms of patterns. However, the following diagram illustrates how to approximate Patterns based Software Design. The expression is in terms of patterns and the fundamental building blocks.

  • Pattern Activities
    • Activities related to Patterns
  • Pattern Mining
    • Identifying patterns in existing solutions
  • Pattern Formulation
    • Creating new Patterns
  • Pattern Documentation
    • Documenting the pattern configuration and motives
  • Pattern Application
    • Using patterns in the development process.