2.1.1 Abstraction Flashcards
What is abstraction?
Simplifying a problem by only considering the necessary details required to obtain a solution.
What form of abstraction involves grouping together similarities within a problem to identify what kind of problem it is?
Abstraction by generalisation.
What form of abstraction involves hiding details about how data is being stored?
Data abstraction
What kind of problems make use of multiple levels of abstraction
Large, complex problems.
How does abstraction allow non experts to make use of a system?
By hiding complex and irrelevant information in abstract models.
Advantages of using abstraction in software development
- Easier for the programmers to focus on the core aspects
- Reduces the time needed to be spent on the project
- The software will require less computational power
- Prevents program from getting unnecessarily large
Applications of layers of abstraction
- Networking (TCP/IP Layer)
- Programming languages
Disadvantages of using abstraction in software development
It is possible to have too much abstraction depending on the software / problem.
Advantages of using abstraction in programming languages
- Easier to remember syntax in high level languages, because it is closer to natural language
- Coding becomes accessible to beginners
How is object oriented programming an abstraction?
- Objects are abstractions for real world entities
- Attributes are an abstraction for the characteristics of an object.
- Methods are an abstraction for the actions a real word object can perform.
What is the difference between abstraction and reality?
Abstraction is a simplified representation of reality.