In order to explain the principles of software composition and composition anomalies, we have been looking for more 'physical' metaphors, which help people to look and play with the concepts in a better known/more comfortable manner. One obvious, and much used metaphor for software components are LEGOTM blocks. We are currently investigating the application of Lego blocks to the education of software composition and Composition Filters.
Here's an example of a Composition Filters object built from LEGO:

| On the left-front side, there are four methods, built from 4 colors of statements/code fragments (marine, red, yellow, green | |
| On the right/front side, there are three composition filters, each based on a black tile, with a blue filter type and three pairs of matching/substitution elements. | |
| In the middle are four internal objects, some consisting of nested objects |
![]()
I used the following free-ware tool to draw these pictures quite easily (you need to get used to it a bit to understand how to navigate the 3-D space): It is called BlockCAD, here's the home-page:
You can download the program from here as well (a self-extracting archive, runs on Windows 9x/NT).
Finally, here's some WordArt:

More to come in the future (?)..
![]()