Difference between revisions of "Abstraction - Automation"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
Line 1: Line 1:
 +
==Information Hiding==
 +
Information Hiding is the process of hiding the complexity of a system behind the interface for that system. For example a car has an accelerator to control the speed of the car, however you car is deciding how much fuel to inject, what the ratio of fuel to air, when to time the sparks etc.
 +
 
== Abstraction ==
 
== Abstraction ==
 +
Removing details that are not essential for a problem to be solved. This can be interpreted as removing indirectly relevant data repeatedly until a complex problem  (function) becomes a series of simpler problems (functions) which can easily accomplish the same larger problem (function) in a more efficient & simpler way. This process of breaking down a large problem into several smaller ones is also known as '''procedural decomposition'''.
  
Abstraction is the process of hiding details that are not essential for a problem to be solved. This can be interpreted as removing indirectly relevant data repeatedly until a complex problem  (function) becomes a series of simpler problems (functions) which can easily accomplish the same larger problem (function) in a more efficient & simpler way. This process of breaking down a large problem into several smaller ones is also known as '''procedural decomposition'''.
+
===Data Abstraction===
 
+
===Functional Abstraction===
Procedural and functional abstraction can simplify the problem by allowing use of existing functions without an understanding of how they work.  
+
===Procedural Abstraction===
 +
===Problem Abstraction==
 +
==Decomposition==
 +
Solving a problem by breaking the problem down into small mini problems.  
  
This type of abstraction also allows a computer scientist to reference a function that is currently non-existent, if they know its purpose but not how to achieve it, meaning that that part of the problem can be solved later or left to another computer scientist without delaying work on the rest of the solution.
+
For example, making a cup of tea can be broken down into tasks such as fill kettle, boil kettle, wash cup, add tea bag, remove tea bag, add milk, stir etc.
  
Data abstraction hides irrelevant data, complex information and how it is stored from the user through the interface.
+
==Composition==
 +
Solving a problem by taking several small problems and grouping them together to specify a bigger problem (Opposite of decomposition).
  
 
== Automation ==
 
== Automation ==
  
 
Automation is the process of building models of real world objects to solve a problem. Models can be made by including only details that are relevant to the problem and discarding those that are irrelevant or have only minor effects. Using the model, an algorithm can then be designed to solve and automate the problem.
 
Automation is the process of building models of real world objects to solve a problem. Models can be made by including only details that are relevant to the problem and discarding those that are irrelevant or have only minor effects. Using the model, an algorithm can then be designed to solve and automate the problem.

Revision as of 11:44, 26 January 2017

Information Hiding

Information Hiding is the process of hiding the complexity of a system behind the interface for that system. For example a car has an accelerator to control the speed of the car, however you car is deciding how much fuel to inject, what the ratio of fuel to air, when to time the sparks etc.

Abstraction

Removing details that are not essential for a problem to be solved. This can be interpreted as removing indirectly relevant data repeatedly until a complex problem (function) becomes a series of simpler problems (functions) which can easily accomplish the same larger problem (function) in a more efficient & simpler way. This process of breaking down a large problem into several smaller ones is also known as procedural decomposition.

Data Abstraction

Functional Abstraction

Procedural Abstraction

=Problem Abstraction

Decomposition

Solving a problem by breaking the problem down into small mini problems.

For example, making a cup of tea can be broken down into tasks such as fill kettle, boil kettle, wash cup, add tea bag, remove tea bag, add milk, stir etc.

Composition

Solving a problem by taking several small problems and grouping them together to specify a bigger problem (Opposite of decomposition).

Automation

Automation is the process of building models of real world objects to solve a problem. Models can be made by including only details that are relevant to the problem and discarding those that are irrelevant or have only minor effects. Using the model, an algorithm can then be designed to solve and automate the problem.