Lesson 2 | Abstraction |
Objective | Define the Process and Goal of Abstraction |
Process and Goal Abstraction
Question: Define the process and goal of abstraction when modeling a real object?
Abstraction, in the realm of modeling, is a methodological approach that simplifies complex systems by focusing on the essential characteristics of an object or system, while deliberately ignoring the underlying complexities or specific details that are not pertinent to the problem at hand. The primary aim of this process is to create a manageable and comprehensive model of a real-world object or system.
Here is the procedural breakdown of abstraction when modeling a real object:
- Requirement Analysis: The first step involves identifying and understanding the essential requirements of the object or system that needs to be modeled. This includes understanding its function, behavior, and interaction with other objects or systems.
- Identifying Relevant Characteristics: This involves identifying the relevant attributes and characteristics of the object that needs to be abstracted. It could be physical properties, behaviors, interactions, or other relevant attributes.
- Simplification: The next step is to simplify the object by excluding irrelevant or unnecessary details. The level of detail in the model will depend on the problem domain and the specific requirements of the modeling task.
- Formalization: This is the step where the abstracted object is translated into a formal model. The form this takes will depend on the particular method of modeling employed. This could be a mathematical model, a simulation model, a diagram, a software model, etc.
The primary goal of abstraction in modeling is twofold:
- Manageability: Abstraction allows for the handling of complex systems by reducing them into simpler, digestible components, thus making them easier to work with and understand.
- Generalization: Through the process of abstraction, generalized models can be created that are not limited to a specific instance of an object or system, but rather represent a class of objects or systems. These generalized models can then be re-used in different contexts, increasing efficiency.
The abstraction process is an essential technique in many scientific and engineering disciplines, including computer science, physics, economics, and engineering. It allows us to create models that are both tractable and useful, enabling us to understand and design complex systems. It should be noted, however, that while abstraction simplifies reality for usability, the trade-off is the potential loss of detail or accuracy, hence the importance of careful and thoughtful implementation of this process.
Each model object we create is an abstraction of a real object. There is an almost infinite amount of information about any real object. But
how much of that information is really needed? Here are three closely related criteria that can help you decide what information is really
needed.
Context of Object
The first criterion is the context. Who will use the object? Why do they need the object? For example, if the object is a room, does the
client need to know the dimensions? In a drafting context, the dimensions are essential. In the context of a hotel reservation system, the
dimensions would not be needed.
Level of Detail
Next ask, "How much detail do I need?"
For example, cars have engines. A car salesman might need to know a car's engine size,
but probably does not need to know the type of carburetor it has.
On the other hand, a mechanic would need to know about the carburetor and much more.
Time frame
Next ask,
How long do I need to track the object?
In a
product engineering application, you need to know only what the design
options are. However, when the product is being manufactured, you need information such as cost of production and the length of time to
produce it. In short, to create an abstraction means to represent a real entity in a useful manner for a specific problem. Questions about context, level
of detail, and time frame help determine whether the representation you create is
useful for the
specific problem you are
solving.
Describe Object using Abstraction - Exercise