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?
- They make talking and getting things done much easier
- Composed abstractions can be built back up into new, larger abstractions
Split into two main parts:
- 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.
- 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:
- Where the data originates
- What processing is performed on it
and by whom