
Related to the discussion of the "levels of information." There is a "levels of abstraction: Class - a group of related data and functionality Property - data belonging to a class/object which may be a variable or the result of a computation Pattern - a generalization of a recurring problem and its solution set Idiom - a pattern within the context of a given language Framework - a collection of related idioms packaged into a standalone unit Aspect - A cross-section of one consideration in a program (say, Security), factored out to make it modular Module - Some amount of functionality which is packaged as a standalone unit Component - A class or collection of classes which are packaged as a standalone unit and can be swapped in and out of a system. Library - A collection of functionality packaged for re-use Distributed Component - A component which spreads its functionality across multiple computers. Guideline - A recommendation for use, more specific than a pattern. Style Guideline - Standards for presenting code for maintenance. Documentation - Details about the documented system, high-level programs for human metacomputers. Pattern Language - A group of patterns which are mutually supporting or related Don't know how useful this is to anyone. Most of these relate to the tenets of pattern design and OO: * Seperate what changes from what stays the same (or things which change with different frequencies). * Solve problems by adding a layer of abstraction * Work at as high a level as possible to promote clarity. Clarity is the key for maintainable and extensible systems. -- Dethe Elza (delza@burningtiger.com) Chief Mad Scientist Burning Tiger Technologies (http://burningtiger.com)