1. Broadly, the use of specialized software, such as an application programming interface (API), as a means of shielding software from device dependencies or the complexities of underlying software. Note: For instance, hardware abstraction enables programs to focus on a task, such as communications, instead of on individual differences between communications devices. 2. In object-oriented programming, the process of reducing an object to its essence so that only the necessary elements are represented. Abstraction defines an object in terms of its properties (attributes), behaviors (functionality), and interface (means of communicating with other objects). [MS]