Abstraction in its main sense is a conceptual process where general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or "concrete") signifiers, first principles, or other methods.
Abstraction is the process of removing physical, spatial, or temporal details or attributes in the study of objects or systems in order to more closely attend to other Item of Interest (IOI)
Abstraction maybe performed for Applications or any process.
Abstraction and Refinement are complementary concepts.
Abstraction is the concept which enables you to model an otherwise complex real life entity in a simpler way that our limited brains can understand. Abstraction is core to modeling software systems. It means to concentrate on the necessary things and highlight the ones which are crucial to solving the problem at hand, without worrying about the details which are not relevant to the problem hand.[1] Abstraction is about hiding unwanted details while giving out most essential details, while Encapsulation means hiding the code and data into a single unit e.g. class or method to protect inner working of an object from outside world. In other words, Abstraction means extracting common details or generalizing things.[2]
Abstraction lets you focus on what the object does instead of how it does, while Encapsulation means hiding the internal details of how an object works. When you keep internal working details private, you can change it later with a better method.[2]
Abstraction focus on outer lookout e.g. moving of vehicle while Encapsulation focuses on internal working or inner lookout e.g. how exactly the vehicle moves.[2]
We Abstracted our Personal Computers to provide more flexibility.
We then Abstracted used the Hardware Abstraction Layer to Abstract our software from the hardware
We then Abstracted our Operating Systemusing Operating-system-level virtualization (Containerization).
We then Abstracted our Applications through the use of Application Programing Interfaces (APIs).
We then Abstracted our APIs through the use of Microservices
We then (or now) Abstracted Microservices] to Functions as a Service