Hi folks, back once again. Today I have been looking at the gentle introduction to pattern. First of all I would like define pattern as in general term but once its have been defined we can focus on what it means in software designing and development.
To be honest I was in a bit of shock to learn that pattern is actually originated from engineering industry. But so far I have my perception of pattern is it is pretty handy in terms of software design and development. Ok, let’s define the pattern in general.
1. What is pattern?
Patterns deal with reoccurring problems in a specific context. So we can define pattern as a solutions for reoccurring problems that are seen again and again in a specific environment. It gives us hints about the solutions that can be developed to solve arisen problem.
On of the main advantages of pattern is that it can be applied to resolve similar problems that occurs in the same context.
2. What is pattern in software engineering?
When patterns are applied in software environment it becomes software pattern. By saying that, it’s not all about applying the pattern. We must be careful about the context when applying pattern. Analogy has to be developed in the problematic context prior to applying pattern.
So we can define software pattern as solution to reoccurring solutions to software problems that occur in software designing or development environment over and over.
We are in era of object oriented programming. Being a computing student I had to work on programming projects and my realization is patterns are very helpful in terms of developing software applications. It interacts between objects, so to say, it’s known as communication patterns.
Software patterns deals with object communication strategies for object inheritance and containment.
3. What are the benefits of using patterns?
To be honest I was in a bit of shock to learn that pattern is actually originated from engineering industry. But so far I have my perception of pattern is it is pretty handy in terms of software design and development. Ok, let’s define the pattern in general.
1. What is pattern?
Patterns deal with reoccurring problems in a specific context. So we can define pattern as a solutions for reoccurring problems that are seen again and again in a specific environment. It gives us hints about the solutions that can be developed to solve arisen problem.
On of the main advantages of pattern is that it can be applied to resolve similar problems that occurs in the same context.
2. What is pattern in software engineering?
When patterns are applied in software environment it becomes software pattern. By saying that, it’s not all about applying the pattern. We must be careful about the context when applying pattern. Analogy has to be developed in the problematic context prior to applying pattern.
So we can define software pattern as solution to reoccurring solutions to software problems that occur in software designing or development environment over and over.
We are in era of object oriented programming. Being a computing student I had to work on programming projects and my realization is patterns are very helpful in terms of developing software applications. It interacts between objects, so to say, it’s known as communication patterns.
Software patterns deals with object communication strategies for object inheritance and containment.
3. What are the benefits of using patterns?
As I have mentioned earlier the importance of patters are inevitable in software engineering. Below is a list of benefits software patterns offers us
*It saves time
*Reusability of pattern
*Provides many solutions to a particular problem
*Expected result upon implementation
4. What is the implication of software patterns to the software development?
Software developer is one of the key figures in software development industry and the importance of patterns is pretty crucial success factor for any of the big software development projects. Software patterns help to avoid reinventing the wheels and allow describing programming approaches in terms in which programmes can easily understand. Software patterns is one of the key components of software development that describes how objects communicate without becoming entangled in each others data models and methods which leads to be a good objective of object oriented programming.
"Designing object-oriented software is hard and designing reusable object-oriented software is even harder." [1]
The other important aspect of patterns is it helps developer to organize objects and establish interactions between classes and objects. It is also helpful to write and modify program for further development.
5. What is anti patterns?
There is a bit of speculation about this topic but there are always postive and negative aspects of any good things. I think the concept of anti pattern is very useful in terms of constructing a good pattern for reoccurring problems. According to wikipedia
“Anti-patterns, also called pitfalls, are classes of commonly-reinvented bad solutions to problems. They are studied as a category so they can be avoided in the future, and so instances of them may be recognized when investigating non-working systems.” [2]
“Anti-patterns, also called pitfalls, are classes of commonly-reinvented bad solutions to problems. They are studied as a category so they can be avoided in the future, and so instances of them may be recognized when investigating non-working systems.” [2]
Anti pattern may be the result of:
· A manager, developer or architecture not knowing any better
· Not having sufficient knowledge of experience in solving a particular type of problem
· Having applied a perfectly good pattern in the wrong context.
Conclusion
In conclusion, it’s been entertaining knowing about software pattern in software engineering. I would like welcome any comments on this feature. Please feel free to post comments if you have any concern to share with regarding patterns.
References:
1. Design Patterns: Elements of Reusable Object-Oriented Software By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
2. http://en.wikipedia.org/wiki/Anti-pattern
2 comments:
Hi there, you have posted very interesting F.A.Q’s. Infect reading your F.A.Qs’ give more information about patterns and its related terms in quite simple words. Easy to understand. Good work. Keep it up.
It is a common misconception that patterns solve all problems. There are disadvantages and trade-offs need to be made with each pattern. FAQs could point a few disadvantages or trade-offs.
Post a Comment