tags:

views:

33

answers:

1

How can we clearly differ architectural term abstraction from a software component, can abstraction lie within a software component?

+1  A: 

Abstraction occurs THROUGHOUT software engineering - when you create a function to perform a computation, that's abstraction; when you group data and their operations into a class, that's abstraction; when you modularise your code into separate architectural components, that's abstraction.

The pattern is one of hiding the underlying complexity of a component in a simple interface - making a simple call to a function or procedure is much easier than typing all the required code each time - the function has abstracted that complexity.

That function might be part of a class, which is another layer of abstraction, and so on, up the abstraction ladder.

Take a look at Joel's fantastic article about leaky abstractions, which starts with an intro to the concept

Mark Pim