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.
Context
Problem
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.
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.
Idioms ( Small mostly language specific )
Design Patterns ( Middle level )
Architectural Patterns ( Patterns which define and characterize the whole system )
Four Patterns Related Activities
Four Pattern related activities
Applying Patterns
Mining Patterns
Documenting Patterns
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.
Applying Patterns
Mining Patterns
Documenting Patterns
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.