The process of picking out (abstracting) common features of objects and procedures. A programmer would use abstraction, for example, to note that two functions perform almost the same task and can be combined into a single function. Abstraction is one of the most important techniques in software engineering and is closely related to two other important techniques -- encapsulation and information hiding. All three techniques are used to reduce complexity.
Abstraction, Encapsulation, and Information Hiding Interesting article about the differences between abstraction, encapsulation, and information hiding, and how the three terms are often used incorrectly.