Skip to Content.
Sympa Menu

patterns-discussion - Re: [patterns-discussion] A Generative Theory ofSimilarity (withreferences to Alexander)

patterns-discussion AT lists.cs.illinois.edu

Subject: General talk about software patterns

List archive

Re: [patterns-discussion] A Generative Theory ofSimilarity (withreferences to Alexander)


Chronological Thread 
  • From: Jesús Alonso <kenchoweb AT hotmail.com>
  • To: muegge AT iai.uni-bonn.de, patterns-discussion AT cs.uiuc.edu
  • Cc:
  • Subject: Re: [patterns-discussion] A Generative Theory ofSimilarity (withreferences to Alexander)
  • Date: Wed, 15 Feb 2006 10:46:13 +0100
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/patterns-discussion>
  • List-id: General talk about software patterns <patterns-discussion.cs.uiuc.edu>

Hello Holger,

In my opinion, it simply depends on how familiar you are with the pattern you are to recognise. Patterns like Façade, Observer, or Singleton are quite easy to find, and some patterns are more a philosophy than a generic structure, like the Façade or the Template Method, what makes them easy to find in code. Of course, if you have the design diagrams and not just the source code, they are much easier to spot.

Also, a few days ago Jens Dietrich sent a mail to one of these lists to announce their research project regarding automated pattern recognition in source code. The link is: http://www-ist.massey.ac.nz/wop/

About editting code, design patterns usually give the most appropiate solution for a problem. This solution stablishes a good design philosophy everyone should follow as much as possible. So the programmer just should have to follow that same OOP philosophy when editting that code. Based on a well defined structure and following correct OOP usually leads to the correct solution, even if he doesn't recognise the pattern or even doesn't know anything about it. From my personal experience, extending existing patterns-dense code was easy and found myself implementing the Observer pattern before I ever heard of it. Just as an example, anyone who has programmed a GUI in Java has found himself applying the Observer pattern everytime they create a new Listener (Observer participant) and attach them to a graphical component (attach method in Subject participant). As you can see, a well trained programmer will hardly destroy patterns when editting patterns-dense code.

Hope that helps.

Best regards,
Jesús Alonso


Hi Mike,

Mike Beedle wrote:

Any more “positive feedback” out there?


YES. Thanks very much for your posting.

I always appreciate hints towards a more general view on structures than just "technical" views from a software engineer's view (or even a Java programmer's).

I also have a question and request:

You say pattern usage is at least partly a cognitive process. Typically cognitive processes can be error-prone (misinterpretation of structures, obfuscation, easy and difficult to recognize structures, ...). In particular when it comes to formal stuff like a program.

Does anybody has links or own experience about problems with software patterns on this level? E.g. how good are they recognized in code? Under what circumstances is an average programmer able to edit pattern-dense code correctly, or when does he eventually destroy patterns by chance?

Thanks for

--
Holger Muegge

University of Bonn, Institute of Computer Science III
Roemerstrasse 164, D-53117 Bonn, Germany
Phone/Fax: +49-228-73-6528 / -4382


_______________________________________________
patterns-discussion mailing list
patterns-discussion AT cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/patterns-discussion






Archive powered by MHonArc 2.6.16.

Top of Page