abstraction by generalisation
Grouping objects together by their shared characteristics
representational abstraction
Creating a simpler version of something real by removing unnecessary details
procedural abstraction
Creating a subroutine that runs a process without thinking about the values used in the process
functional abstraction
Where the process that occurs is hidden from the user
data abstraction
The process of being aware of a complex data structure without considering its implementation
problem abstraction (reduction)
Reducing a problem into a more simple and already solved one
automation
Where your problem has been fully abstracted and so therefore has no fluff and works to the required accuracy
decomposition
Breaking big problems down into smaller ones
composition
Simplifies complex systems with lots of smaller simple solutions