Abstraction

The process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics.

<aside> 💡 Abstracting something means to give names to things, so that the name captures the core of what a function or a whole program does.

</aside>

Why is it important?

Split into two main parts:

  1. Control abstraction - hides actions and programming control, such as IF statements. Also what high-level programming languages are based off...hiding the machine code from the developer.
  2. Data abstraction - hides how bits are organised for primitive data types such as floating points or dates

Decomposition

Representing systems in diagrammatic form

Entity relationship diagrams (ERDs)

Flow charts

Data flow diagrams (DFDs)

<aside> 💡 Can help describe the system, focusing on inputs, what processes are performed and outputs.

</aside>

They can show: