One of the most appreciated advantages of object-oriented versus other modern programming paradigms is the direct support for each of the most important and used principles of abstraction. The Dictionary of the Object Technology defines abstraction as: "Any model that includes the most important, essential, or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions so as to emphasize commonalities." Abstraction is an effective way to manage complexity, as it allows for concentrating on relevant characteristics of a problem. Abstraction is a very relative notion; it is domain and perspective dependent. The same characteristics can be relevant in a particular context and irrelevant in another one.

The abstraction principles used in the object-oriented approach are: Classification/instantiation, aggregation/decomposition, generalization/ specialization and grouping/individualization. By providing support for the abstraction principles, the object-oriented paradigm makes it possible to use conceptual modeling as an efficient tool during the phases of analysis and design. Conceptual modeling can be defined as the process of organizing our knowledge of an application domain into hierarchical rankings or orderings of abstraction, in order to better understand the problem in study [Tai96].

Classification is considered to be the most important abstraction principle. It consists of depicting from the problem domain things that have similarities and grouping them into categories or classes. Things that fall into a class/category have in common properties that do not change over time. Instantiation is the reverse operation of classification. It consists of creating individual instances that will fulfill the descriptions of their categories or classes. The majority of object-oriented languages provide capabilities for creating instances of classes/categories.

Figure 2-1 shows an example of classification and instantiation. Concept Tractor represents a set of properties that are typical for a tractor, regardless of their brand, horsepower, etc. Therefore, concept Tractor represents a classification. Bob's Tractor is a particular tractor that has some particular properties, the most important being that it is Bob's property. Therefore, concept Bob's Tractor represents an instantiation.

Classification and Instantiation


0 0

Post a comment