Abstraction is the practice of representing essential behavior while hiding implementation details that are not needed at a particular level of work.
In software design, abstraction helps teams reason about complex systems through interfaces, modules, services, and documented contracts instead of every internal detail.
Related concepts include Source Code, Syntax and Variable.