[hand with pencil]
Stuff For Sale
2004 Summer Tour
Class Stuff
Email Me
In The Press
Veggie Van Gogh

© 2002,

[this is simply a banner and menu bar]

Please patronize sponsors of this page!

Bytesmiths no longer is involved in software consulting. Maintenance of this web site is currently subsidised by unrelated business activities. Please pass the word to other interested folks, so I can continue to host this page!
Your site could be listed here, for as little as $12 per month! Go to Bytesmiths Press for details.

This site has been selected by PC Webopaedia as one of the best on this topic!
This site has been awarded a Links2Go Key Resource Award in the Smalltalk category!

[ prev | top | next ]

Component Relationships

(This is a slide show. You really won't get 
anything out of it unless you have a graphical web browser with graphics turned 
- The shaded components, configurations and sub-applications, are optional components. Class extensions are not required, but they are so useful that you will almost certainly use them.

- Configurations (configuration maps) are a named collection of applications. They are under version control, and know how to load themselves, so the developer does not need to be concerned about load order of the applications in the configuration. A configuration can be used to build an entire production image, or it can be used to load related groups of applications, such as a corporate widget set.

- Applications are a set of related classes and class extensions that together serve a useful purpose. An application knows exactly which versions of its classes to load. Applications know which other applications they depend upon, which must be present already in the image. They also know which versions of their prerequisites they are compatible with. Lastly, they can determine at load time what their own structure should be (which of their sub-applications should be loaded).

- SubApplications are just like applications except that they cannot be loaded without their parent, and they rely on the parent application to know their prerequisites. Instead of children, they can be considered more like "wards", since a sub-application can be a part of more than one application. They cannot be part of two applications which are loaded into a single image. They are useful for organization of large applications, and they are valuable for separation of platform specific code. They are a typical means for developers to share code which has not been moved into a "project application" yet.

- Classes differ from Class Extensions in their inclusion of the class definition and class comment. In all other respects they are alike. Of course, a Class Extension depends upon the presence of the defining Class in the image. Different developers can and often do have responsibility for a Class and Extensions to it. There can be good reasons for a class to be defined in one application and extended in several others all as part of one configuration map.

- Methods cannot exist except as part of a Class or Class Extension.

[ prev | top | next ]