A nice pattern

Klaus D. Witzel klaus.witzel at cobss.com
Mon Aug 21 08:00:08 UTC 2006

Hi Stef,

this pattern is bread and butter in practice, what is it that you find so  
important about it (perhaps besides that is gets a new name every now and  
then ;-)

You work in a Department which has a Location in a Building. All these  
departments belong to the same University which has Location  
(superlocation of the departments' location) and Web site (superpage of  
the departments' Web pages). Et cetera. Of course the Movie / VideoTape  
example is nicer, even kids would understand it when "tape" would be  
replaced by "game" 8-)

Students of database normalization even (hopefully :) know the value i of  
the pattern's corresponding i-th normal form. In its most general form,  
the pattern is B.O.M. (a pre-computer age name for it), see 4th entry on

- http://en.wikipedia.org/wiki/BOM

and it is indispensable in the construction business (yeah, also in the  
software construction business :)

But it also has drawbacks: say you have a B.O.M. for the A380 monster and  
you ask, how many of the constituent parts do we have to purchase for  
assembling one instance of that beast. Then you will see, that "S" in SQL  
stands for "simple", because SQL alone cannot explode a B.O.M. (regardless  
of how you design the corresponding database): the system (a data  
language) MUST be extended (i.e. by a computer language) for to obtain  
that solution (OT: has some form of G"odel's incompleteness).

And large B.O.M's are typically maintained by many people (in a  
collaborative fashion, like Squeak source code) and time dictates that  
they are often inconsistent. IMHO they are the "mother" of inconsistent  
designs (sw, hw, etc) in the construction business.


On Sun, 20 Aug 2006 21:02:26 +0200, Stéphane Ducasse wrote:

> I'm happy to find it on the web
> for this is a nice pattern that is the first level towards metamodeling.
> http://www.ksc.com/article3.htm
> (as an old CLOS Moper I do not like the aka MetaObject because the  
> typeObject is not really that
> but this is a really cool and important pattern).
> Stef

More information about the Squeak-dev mailing list