In today’s lecture Dr. Sri gave us an overview of software pattern, and at the end he gave us a task to develop a pattern FAQ.
Software Pattern
Developing patterns for software is emerging topic of discussion from the object oriented community. Software patterns are answers to reoccurring problems in software development. The purpose of developing such patterns is;
- To provide a common solution that can be applied in different languages and making code easily understandable
- To support reuse
- To decrease the development time by using tested, proven development solutions
- Increasing the reliability, efficiency and reuse of a design
- Each solution to a problem is made over a period of time and it goes through many refinements, thus it increases the quality of the solution
Pattern FAQ’s
Q – 1: What is a software pattern?
Software Patterns are solutions to problems that occur over and over again in software development, basically software pattern is “if you come across this problem in software development, solve it like this”.
Software Pattern = (Problem + Solution) in a context
Q – 2: Are patterns localized to one area in software development or they address other problems occurred in software development?
No, patterns are not localized just to one phase or area of software development; they can be applied in other phases of software development life cycle like [1];
Programming – reuse of some classes in C++ and Java
Algorithms – in parallel processing
Protocols – in concurrent object systems
Analysis Model – in dealing with accounting rules
Development Process – in steps and strategies in object oriented design
Q – 3: Can one problem has more than one pattern to solve it?
Yes, one problem can have more than one pattern. People working in different environment might come up with different solutions to same problem, both solutions might be correct , but since there is no standard or a governing body in this field so a particular solution can not be generalized.
Q – 4: How can a pattern reduce development time and increase quality at the same time?
Solutions to reoccurring problems are not found over night; these solutions are proposed and are thoroughly tested and verified, so they are of high quality. Since the solutions are already present, problems can be solved immediately.
Q – 5: If I develop my own pattern, how can I write it or preserve it?
There are different pattern preserving techniques, commonly followed are Alexander Christopher’s pattern preserving technique and GoF pattern preserving technique. These techniques can be used to write a pattern or as a developer of the pattern one can develop his/her own technique to write pattern.
Reference
[1] Patterns-Discussion FAQ
Available from URl
5 comments:
Hmmm...... Whats the difference between a "normal" pattern & a software pattern then. Please explain !
Hello,
as i said in my blog that pattern can be applied in our daily lifes as well, like we have eating patterns, traveling patters, study patterns etc. when we use patterns to address software development issues, then they are called software patterns.
hope answer to the question
It is indeed a good discussion on patterns. The fact you have pointed out that patterns can be applied to almost all the fields of software engineering is something that is worth to know. While talking about software patterns, you gave a general description of what a pattern is. Perhaps, software pattern can be defined as one that can be used to solve recurring problems faced during the development of any software. I would also like to say that using patterns does not necessarily give you a quality solution to a problem as the developer is only focused in implementing the solution that is being there without being creative in finding out other ways of solving the problem. You never know, there might be better solution to the problem than that.
Anyways my friend, keep up your good work
It is indeed a good discussion on patterns. The fact you have pointed out that patterns can be applied to almost all the fields of software engineering is something that is worth to know. While talking about software patterns, you gave a general description of what a pattern is. Perhaps, software pattern can be defined as one that can be used to solve recurring problems faced during the development of any software. I would also like to say that using patterns does not necessarily give you a quality solution to a problem as the developer is only focused in implementing the solution that is being there without being creative in finding out other ways of solving the problem. You never know, there might be better solution to the problem than that.
Anyways my friend, keep up your good work
I dnt really agree with what you said Iqbal. I thnk using patterns gives you a quality solution as the solution is not just derived over night The solution goes through all the mandatory testing required.
The thing you highlighted about developer not being creative is a valid point.
Another thing i would like to mention is that there is no governing body that can specifically say that Solution A is outclass, Solution B is very good etc. So people can come up with different solution for the same problem, its depends on you which one you would like to adopt
Post a Comment