The concept of abstraction so permeates the study of computer science and the design of computer systems that it behoves me to address it in this introduction. The term abstraction, as we are using it here, refers to the distinction between the external properties of an entity and detail of the entity and the details of the entity’s internal composition. It is abstraction that allows us to ignore the internal details of complex device such as a computer, automobile, or microwave oven and use it as a single, comprehensible unit. Moreover, it is by means of abstraction that such complex systems are designed and manufactured in the first place. Computers, automobiles, and microwave ovens are constructed from components, each of which is constructed from smaller components. Each components represents a level of abstraction at which the use of component is isolated the details of the component’s internal composition.
It is by applying abstraction, then, that we are able to construct, analyze, and manage large, complex computer systems, which would be overwhelming of viewed in their entirely at a detailed level. At each level of abstraction, we view the systems in terms of components, called abstract tools, whose internal components we ignore. This allows us to concentrate on how each component interacts with other components at same level and how the collection as a whole forms a higher-level component. Thus we are able to comprehend the part of the system that is relevant to the task at hand rather than being lost in a sea of details.
Abstraction is not limited to science and technology. It is an important simplification technique with which our society has created a lifestyle that would otherwise be impossible. Few of us understand how the various convenience of daily life are actually implemented. We eat food and wear clothes that we cannot produce by ourselves. We use electrical devices without understanding the underlying technology. We use the services of others without knowing the details of their professions. With each new advancement, a small part of society choose to specialize in its implementation while the rest of us learn to use the result as abstract tools. In this manner, society’s warehouse of abstract tools expands, and society’s ability to progress increases.
Abstraction is everywhere, have you ever wonder how your iPod works?
Abstraction is a recurring theme in our study. We will learn that computing equipment is constructed in levels of abstract tools. We will also see that the development of large software systems is accomplished in a modular fashion in which each module is used as an abstract tool in larger modules. Moreover, abstraction plays an important role in the task of advancing computer science, itself, allowing researchers to focus attention on particular ares within a complex field. In fact, the organization of this text reflects this characteristic of the science. Each subject in computer science, focuses on particular area within the science, is often surprisingly independent of the others, yet together the chapters form a comprehensive overview of a vast field of study.
Related entries:
