Bilkent University
Department of Computer Engineering


Introduction to Design Patterns:
Elements of Reusable Object Oriented Software


İsmet E. Kahraman

Software Development Engineer
Tarım Kredi Koop.

As an end product of software development, software is expected to be maintainable, flexible, robust and adaptable against changes in requirements. With new technologies, these goals become more difficult to achieve. For the last decade, object oriented methodologies are implying that they are fulfilling these goals. But, in industry implementation of object oriented systems contradicts with that assertion and practically this approach does not pay off the amount of work done. When regarded to the successful projects, it is understood that problems met in the development of the projects are not originating from object oriented approach but its malusages and developers' misunderstandings of object oriented concepts. "Design Patterns" emerged as a Ph.D work of four people, well-known as GoF (Gang of Four). "Patterns" are distilled and extracted from the techniques and approaches used in successful object oriented systems. There are 23 essential patterns. For the entry level developers, it provides a very good base of understanding, even for the ones not knowing object oriented programming and gives a quite good trick for a very well designed codes. For the experienced ones, gives a handle for common design techniques in communication between their colleagues. In this presentation, I am going to talk about the following questions: - Why do design patterns exist? - Why are design patterns accepted in a wide range of community? - What are design patterns? - How are design patterns used?


DATE: November 8, 2004, Monday @ 13:40