Ab Straction

Pattern name

Abstraction (see the alternative ExPlication)

Problem

How do we deal with a situation or object which has too much detail to comprehend or be useful?

Context and forces

Every day we are faced with a wealth of detail which would overwhelm us if we tried to understand it all. The colour that we perceive an object to be is produced by an incredibly complex interaction of light reflecting off the surface of the object and stimulating the cones and rods on the retina of the eye. If we wanted to describe the colour of an object to someone and had to do it in terms of levels of illumination, angles of reflection and sensitivity of the eye to light then it would be impossible to have a reasonable conversation about colour: it would take too long and all the participants would have to have a degrees in both physics and biology. We could just try to avoid talking about anything which is complex but there is almost nothing in the world, certainly not in everyday life, that is truly simple in both itself and its relationship to the rest of the world. So how do we cope when confronted with all this detail?

Solution

Filter out all unnecessary or irrelevant detail to produce an abstraction of the situation or object that allows us to think about it but reduces the level of complexity.

Solution example and resulting context

Our understanding of colours is not defined by physics and biology but rather by abstractions that have become commonplace and well-understood over time. Everyone over a certain age, who is neither blind from birth or colour-blind, knows what the colour red is. 'Red' is actually an abstraction of a whole range of colours grouped together by their common property of 'redness' which are themselves abstractions of certain wave-lengths of light interacting with the eye (another abstraction for what physical processes actually take place when we see colour). By removing all the unnecessary physical detail, and much of the irrelevant technical abstractions of classifying colours more exactly, we can now talk about something being 'red' without occupying our minds for anything more than the tinyest fraction of a split-second, and really lose nothing of importance if we employ it in a general conversation.

Whilst abstraction is an incredibly powerful process, it has an inherent problem in that, by its nature, it is impossible (and undesirable) to exactly define an abstraction. Suppose we are describing something as being red to a friend on the phone: they will picture the shade of red that most usefully represents the abstraction for them and so they may be thinking you mean something that is a bright fire-engine red when in fact it is a deeper, maroon, red. Depending on the situation, this misunderstanding may be irrelevant or disasterous. When faced with an abstraction that is useful in many cases but contains too little detail in a particular case we need a ReFinement? of the abstraction.

-- PaulDyson 26/11/96


Meaningful communication requires always a minimum sharing of context between sender and receiver. We resort to shared abstractions in order to be understood. Abstractions help facilitate the diffusion of our intended message, because it may increase the number of situations where the message can be understood and has relevance. But...this requires a minimum sharing of context. In requirement-engineering and analysis I've seen lots of situations where we overestimate mutual sharing of context and language.

I think I read something like this in MetaphorsWeLiveBy too, but better formulated. I am not sure of the source though. --- MartineDevos


It may be bit late to enter the discussion, but IMO this is not a pattern. IMO (bottom of PatternDefinitionThread) there is a difference between a pattern and a strategy. AbStraction is a strategy, it may even be the fundamental strategy by which we work and by which we find pattern (by abstraction from proven solutions), but it is not a pattern. It can't become an object. -- HelmutLeitner


See also: MeasuringAbstraction


CategoryPattern CategoryForces CategoryAbstraction


EditText of this page (last edited November 30, 2004) or FindPage with title or text search