Describe what you understand by abstraction, and how it is relevant to software engineering.

Two parts: Abstraction: Separating ideas from reality / implementationHiding (irrelevant) details from the userA representation / simplification of a concept Application: Object oriented programming is full of abstractions e.g. polymorphism, inheritance, objects themselves are an abstraction of real life concepts.Software engineering will rely on behaviours and attributes, not how a real-life object behaves e.g. in a racing game how is the car programmed?Modularity : functions will be used in order to abstract unnecessary data or operations from the user. For example, in Python there is a list.sort() method. Which algorithm is used here? Do we need to know?Layering from the Operating System : e.g. a command in HLL e.g. Python is much simpler than in LLL. We do not need to concern ourselves with how the command works, hence we can focus on the logic behind it.

JN

Related Computing A Level answers

All answers ▸

Give two types of management of either hardware or other resources that are performed by an operating system.


Given a graph with n nodes and m edges, every edge has a passing cost that can be negative, find the minimum distance between node 1 and every other node


A binary, 8-bit floating point number 0111 0010 is said to have a 4-bit mantissa and a 4-bit exponent. What is meant by the terms 'mantissa' and 'exponent'? What is the value of this 8-bit binary floating point number?


How can the idea of precondtioning as part of 'Thinking Ahead' benefit a programmer when writing code?