Software Pattern & FAQ
[Blog 3]
This week, the lecture was about Software Patterns, similar to Patterns except that Software Patterns is in terms of software development instead of real life. Software Pattern as everyone would guess is the idea which comes from Alexander’s construction engineering pattern. We also discussed about why patterns are used for software engineering and how it supports it.
Software pattern can be adapted in every stage of the systems development life cycle, for example, requirements pattern, analysis pattern, test pattern and so on, but we were told that we will be concentrating on design pattern only. To finish, more explanation was given to explain what a software pattern is not and the elements that we should not be confused of.
Pattern
Frequently Asked Questions
1. What is a Pattern?
A pattern is a solution which is applied to a specific problem which occurs repeatedly with time within a specific context. This means that a specific problem occurs in a particular environment and then a solution is applied to the problem to solve it.
2. Why do we have to use patterns?
We make use of patterns because they save a lot of development time, enable reuse of coding and solution and also they prevent guess work and provide more accuracy to find solutions for known problems.
3. Can the same solution be used for more than one problem?
Normally no, but in some circumstances it can be used to solve other problems as well because patterns can be adapted to solve similar problems in different situations. E.g. a Book library information system and a Video library information system.
4. If the problem is the same in 2 different occasions but the context is different, can the same solution be used for both problems?
No, although the problems are same, the same solution cannot be used if the contexts are different as the variables within each situation might be different.
5. Things you should not confuse of.
Patterns are not used where the solutions to problems have not been proven.
If a solution to a problem has worked only once then it is not a pattern as it should be usable to the same problem happening again in the future.
One solution cannot be applied to every situation where a problem arises, it can be applied to a certain specific problems only.
And finally, patterns do not represent solutions to all software design problems.
[Blog 2]
Software Pattern
Frequently Asked Questions
1. What is a Software Pattern?
A Software Pattern is a solution that is used to solve a recurring software engineering problem within a particular context. When software developers or programmers come across a software engineering problem which happened in the past, they solve that problem with the help of some software codes depending on the context of the problem and this is called a Software Pattern.
2. Why do we use Software Patterns?
Software Patterns are very useful for software development as it allows reuse of software solutions which reduces development time which is very important while developing a whole system. They also allow development through modularity as software problems are broken down into smaller and smaller problems and then a solution is found for each small piece of problem which makes implementation very easy as it does not affect other modules if it needs to be changed or removed.
3. Why use Software Patterns and not other methods for software development?
Software Patterns enable the developer to mould the solution according to their problem whereas other development methods have a generic solution which means that requirements have to be changed to match the solution.
4. Why are Software Patterns more preferred than pieces of codes from other software development methods?
Software Patterns gives more details and documentations on how the solution can be used and for what context it can be used whereas pieces of codes are just solutions for problems but there are no associated documentation on where and how it can be used.
5. What is the advantage of using Software Patterns in software engineering?
Software Patterns help novices to get knowledge from experts who developed the solution so instead of trying to come to a definitive solution to a problem by trial and error that solution (expert) can be used and the knowledge and understanding behind it can be grasped.
6. What Software Patterns are not?
Software Patterns are by no means: Business Objects, Frameworks, Algorithms, Components, Libraries and Packages. There are differences between a Software Pattern and those reusable elements.
Comments are most welcomed. Thanks

2 Comments:
Hello Sunny,
Software pattern surely have advantages when used in software engineering. For example, speeding up development processes, saving cost, just to mention a few.
Novices’ learning from experts isn’t a bad thing, but ignoring the tried and error method of solving problem could be a disadvantage to them.
I believe creativity is developed through tried and error methods of solving problems. It total avoidance and over dependent of novices on pattern could produce a generation of software engineers who lack creativity.
With time, expert knowledge will become obsolete and new methods to solve problems would not be available.
What do you think?
26 March 2007 at 16:42
Sorry Arkurst, I tool a long time to reply, i forgot my password.
Well I would say pattern is a quick solution to a problem. In the real world softwares need to be developed and deployed as quickest possible and thinking of starting from scratch and developing programs consisting of thousands of line will take a very long time which is not feasible at all.
Pattern consist of a section which is known as known uses and also another section called sample code. These two give an idea of where and how that solution might be used to solve a problem. It is an approximation and not a definite answer to every problem, so by looking at the sample code, the developer can have an idea of how the problem can be solved and solves his development problem with the help of the sample code and his own coding.
The coding that he will add or modify to make up his solution might be a much better solution to the pattern. The pattern can then be updated to the new solution.
Or it might simply be his own creativity.
Patterns if often used by developers are regularly updated and the updated version must be the most creative one.
If developers want to spend time to develop from scratch and being creative, then they are free to do so, but that's the traditional way of developing software which requires more time.
The patterns catalogue is built up using solutions for a common problem from various developers and so it is the most promising solution to that problem. So creativity is always there.
Thanks for the comment Arkurst. Hope that helps.
29 April 2007 at 13:47
Post a Comment
Subscribe to Post Comments [Atom]
<< Home